Image augmentation library in Python-Augmentor使用心得

article/2025/10/10 23:35:57

Augmentor是个增强图像训练数据的库,减少了使用图像库自己编写代码的繁杂工序,能够批量完成图像的旋转,放大,缩小,添加噪音以扩充数据量。接下来结合官方文档介绍下这个库和使用心得。

首先github:https://github.com/mdbloice/Augmentor

DOCs:https://augmentor.readthedocs.io/en/master/userguide/mainfeatures.html#perspective-skewing

安装:

pip install Augmentor

升级:  pip install Augmentor --upgrade  

导入:(导入需要增强数据的目录,这里以该路径下的100张图像初始化)

import Augmentor
p = Augmentor.Pipeline("/path/to/images")
然后你就可以使用这个pipeline对象p进行图像变换了:

在执行完所需的处理操作后通过:

p.sample(10000)

来进行样本的输出(在路径目录上新生成的output文件夹中)

首先是基本的旋转:

p.rotate(probability=0.7, max_left=10, max_right=10)
input and output
输入图像输出图像例
其中左右旋转的数值不能超过25,probability参数为生成图像中执行操作图像的比例,当数值为1时全部的生成图像都会进行旋转操作。

在0.1.10版本中的旋转区间表示稍微有所变更:

p.rotate(probability=1,max_left_rotation=20,max_right_rotation=20)
如图所示为-20,20区间内的随机旋转。

透视,形变:

p.skew_tilt(probability=1,magnitude=1)
skew_tilt为上下左右方向的垂直型变,参数magnitude为型变的程度(0,1),当设置为1时的随机型变效果如下:

输入图像输出图像
同理,向四个角形变:

p.skew_corner(probability=1,magnitude=1)
如果只想执行其中的某一类型变 skew_left_right()#(只左右方向)

如果想进行所有方向的随机变化请使用skew()

弹性扭曲:

p.random_distortion(probability=1,grid_height=5,grid_width=16,magnitude=8)
参数的不同扭曲程度不同,这里可以通过自己调整达到想要的效果:

输入图像输出图像
错切变换(shearing):

也就是使图像向某一侧倾斜啦,参数与旋转类似,范围是0-25

p.shear(probability=1,max_shear_left=0,max_shear_right=20)

截取(cropping):

当需要截取某一堆数据的某一个区域时不妨试试这个函数:

p.crop_by_size(probability=1,width=100,height=100,centre=True)

输入图像输出图像
当然还有以下几种截取方式:

p.crop_centre()
p.crop_random()
镜像变换:

p.flip_left_right()
p.flip_random()
p.flip_top_bottom()
这个函数就不放例子了,结合透视型变的话会有很好的变形结果。

随机去除:

p.random_erasing(probability=1,rectangle_area=0.5)
这个函数是随机遮盖掉图像中的某一个部分,rectangle_area的变化范围为0.1-1,效果如下:

输入图像输出图像
怎么样,对于批量处理图像数据来说也是一个不错的选择吧,合理组合这些函数可以输出更多的效果,例如:

p=Augmentor.Pipeline('/')p.random_distortion(probability=1, grid_width=4, grid_height=4, magnitude=8)p.rotate(probability=1,max_right_rotation=10,max_left_rotation=10)
p.sample(100)

输出:



http://chatgpt.dhexx.cn/article/WRIHnrGF.shtml

相关文章

9.1_image-augmentation

9.1 图像增广 在5.6节(深度卷积神经网络)里我们提到过,大规模数据集是成功应用深度神经网络的前提。图像增广(image augmentation)技术通过对训练图像做一系列随机改变,来产生相似但又不同的训练样本&…

ObjectFormer for Image Manipulation Detection and Localization

paper:https://arxiv.org/abs/2203.14681 Abstract 近年来图像编辑技术的发展对多媒体数据的可信度提出了严峻的挑战,这推动了图像篡改检测的研究。在本文中,我们提出了ObjectFormer来检测和定位图像操作。为了捕捉在RGB域中不可见的细微操…

Multimodal Co-Attention Transformer for Survival Prediction in Gigapixel Whole Slide Images

用于千兆像素全切片病理图像生存预测的多模态下跨模态注意机制的transformer 概念: premutation invariance(置换不变):指输入顺序的改变不会影响输出值 permutation-equivariant(置换等边):与premutation invariance …

【Image Captioning】Improve Image Captioning by Estimating the Gazing Patterns from the Caption

Improve Image Captioning by Estimating the Gazing Patterns from the Caption Department of Computer Science, The George Washington University, CVPR 2022 Abstract CNN等神经网络模型中提取的图像特征中产生类人描述方面达到了良好的性能。然而,之前没有…

Image_captioning

Image caption——图像理解 文章目录 Image caption——图像理解1、任务综述以及早期做法2、从Encoder-Decoder结构谈起(前身)3、Show and Tell: A Neural Image Caption Generator(image caption 开山之作) 1、任务综述以及早期做…

From Image to Imuge: Immunized Image Generation

From Image to Imuge: Immunized Image Generation Brief Introduction of myselfIntroduction of this workRelated WorksImage Self-EmbeddingImage Reconstruction (Inpainting) MethodExperimentsConclusion and Contact Brief Introduction of myself 大家好,…

PhotometricStereo

PhotometricStereo 小强老师留下了道CMU的习题,见此题十分有趣,而且博客许久不曾更新,特把该作业奉上。作业是CV中的Photometric Stereo方面的,基本原理还是视觉领域的复原建模,详见这篇论文: Aaron Hertzm…

Free-Form Image Inpainting with Gated Convolution

CVPR 2020的一篇文章 解读一下题目: - free form 自由形式 - image inpainting 图像补全 - gated convolution 门控卷积该文章提出了一个,缺失区域为自由形式的图像补全情况的解决方法,针对该方法提出了一个门控卷积的方法。 模型结构图…

Deep Image Prior

Deep Image Prior 摘要 深度卷积网络已经成为图像生成和重建的常用工具。人们猜想,他们优秀的表现是归功于他们能够从大量图像样本中学习到真实图像先验的能力。而相反,本文中作者展示生成网络在经过任何学习之前就能够捕获大量的低级图像统计信息&…

Automatic Trimap Generation for Image Matting

Automatic Trimap Generation for Image Matting翻译 Abstract image matting 是计算摄影中的一个重要问题。虽然已经研究了二十多年,但是开发一种不需要人工干预的自动matting算法仍然是一个挑战。大多数最先进的matting算法都需要人工干预,以trimap或涂…

Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition程序运行记录

论文题目: 《Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition》 作者列表: 杨洋(天津大学),王超岳(悉尼大学),刘日升(大连理工大学),张…

Learning Continuous Image Representation with Local Implicit Image Function

1. 简介 文章简称为LIIF,即Local Implicit Image Function,受到了3D视觉里场景或物体的隐式表示思想的启发,主要的想法便是把正常的图像当做是连续的,用神经网络表示这个图像之后,对于图像上的每一个像素点其实就当做…

【InternImage】Exploring Large-Scale Vision Foundation Models with Deformable Convolutions

基于Deformable Conv的大规模基础模型 特点: 采用Deformable Conv V3 【v2 19论文】CNN模型 背景 大规模的ViT模型借助模型能力在超大规模数据集上取得了非常高的性能,然而大规模CNN模型研究才刚刚开始。 近期CNN研究倾向于使用大的卷积kernel&#…

ImageMol

ai圈也是卷的狠啊~~ 又发现一个全球首个分子图像自监督学习框架来也 分子是维持物质化学稳定性的最小单位。对分子的研究,是药学、材料学、生物学、化学等众多科学领域的基础性问题。 分子的表征学习(Molecular Representation Learning)是…

Morphological image processing

目录 基本思想: 一.集合论基础 1.集合的概念 2.集合间的关系和运算 二.二值形态学的基本运算 1.腐蚀 (1)概念 (2)结构元素形状对腐蚀运算结果的影响 (3)腐蚀运算在物体识别中的应用 2…

实用的图片批量压缩优化工具

ImageOptim ImageOptim 支持 PNG/JPEG/GIF 动画,本质是各种影像优化工具的图形前端:AdvPNG、OptiPNG、Pngcrush、JpegOptim、jpegtran、Gifsicle 和 PNGOUT素材。 ImageOptim软件非常小! 2.6M而已ImageOptim操作非常非常非常快捷&#xff01…

【UNI APP】globalData全局变量

uni-app 在app.vue文件export default里面定义globalData,在当前文件(app.vue)里面获取globalData需要用this.$options.globalData获取,其他文件则用getApp().globalData获取。 this.$options是用来获取自…

uniapp 全局数据(globalData)的设置,获取,更改

因为uniapp基本上都是将页面,或者页面中相同的部分,进行组件化,所以会存在父,子,(子,父)之间的传值的情况,但在某些情况下,可以选择将内容设置为一个全局的变…

微信小程序定义和调用全局变量globalData

先看看文件结构: 1.现在app.js里面定义globalData对应的全局变量 2.然后在其他js文件进行调用。例如在photo.js里面 要注意的是需要在文件开始的时候初始化 app这个对象 //获取应用实例 const app getApp()

微信小程序:globalData和Storage数据存储的错误示例

前言 在小程序登录是,将返回的用户数据,存储在globalData中和storage中。 // 存储的数据是一个对象 wx.setStorageSync(userAuthData, user.data.data); this.globalData.userAuthData user.data.data; 之前,数据更新了,为了避…