赞
踩
1) 镜像翻转(水平、垂直):对图像进行水平或垂直翻转。
2) 随机裁剪和缩放:随机地从图像中裁剪出不同尺寸的区域,或者随机缩放图像大小,引入了尺度和视角的变化。
3) 颜色变化:调整图像的亮度、对比度、饱和度等颜色属性,使模型更能适应不同光照条件。
4) 旋转和倾斜:对图像进行旋转或倾斜变换,增加了模型对旋转和倾斜情况下的鲁棒性。
5) 加噪声:向图像中添加随机噪声,可以使模型对噪声更具有鲁棒性。
6) 变形和弯曲:对图像进行变形、弯曲或扭曲,模拟真实场景中的形变情况。
7) 局部遮挡:随机遮挡图像的一部分,使模型能够更好地处理遮挡情况。
8) 组合多种增强方法:将多种增强方法组合起来,创造更多样化的变化。
Ps:imgaug可实现的数据增广方式还有很多,类似相机美颜中一些添加滤镜,局部特征点亮度、对比度调节都可实现,或者理解为photoshop可实现的,imgaug都可以实现。基于机械臂scooping和pouring的任务场景,可暂时选用以上列出的方法。
1) 镜像翻转(水平、垂直):
iaa.Fliplr(p)
iaa.Flipud(p)
2) 随机裁剪和缩放:
iaa.Crop(percent=(0.1,0.2))
(图像将被裁剪成原始尺寸的10%-20%,随机选择)或iaa.Crop(px=(0, 16))(从每边裁剪图像0到16px,随机选择)
iaa.Affine(scale={"x": (0.8, 1.2), "y": (0.8,1.2)})
(x方向上缩放80%-120%,y方向上缩放80%-120%。Ps:变换后空白像素的默认填充方式为replicate,即采用图像的边缘像素平铺,可通过mode参数更改填充方式,一般不更改。)
3) 颜色变化:
iaa.MultiplyAndAddToBrightness(mul=(a, b), add=(c, d))
4) 旋转和倾斜:
旋转变化iaa.Affine(rotate=(-15, 15))
(-15度到+15度随机)
倾斜变化iaa.Affine(shear=(-20, 20))
(-20度到+20度随机)
5) 加噪声:
iaa.AdditiveGaussianNoise(scale=(0, 0.05))
6) 变形和弯曲:
iaa.PiecewiseAffine(scale=(0, 0.05))
(变形强度处于0-0.05之间)7) 局部遮挡:
iaa.Cutout(nb_iterations=(1, 2), size=(1, 4))
(每次迭代随机选择 1 到 28) 组合多种增强方法:
iaa.Sequential([augmenter1, augmenter2, ...],random_order=True)
(多种增强方法依次随机作用于图像,random_order控制是否随机,False时按照列表中的顺序依次作用于图像)
Ps:1’例子中的参数为常用参数 2’可选用其中2-4个方法组成增强序列,每种方法的强度或概率不宜过大。
一般均采用以下代码模板(以采用裁剪旋转明暗变化和遮挡四种方法为例)
1. import numpy as np 2. import imgaug as ia 3. import imgaug.augmenters as iaa 4. from skimage import data 5. 6. # 用随机种子来保持可重复性 7. ia.seed(1) 8. 9. # 生成一批示例图像(这里用的是 skimage 库中的 Quokka 图像) 10. images = [data.quokka() for _ in range(8)] # 生成8张图像 11. images = np.array(images, dtype=np.uint8) # 转换图像类型为 uint8 12. 13. # 创建数据增强流水线 14. augmenter = iaa.Sequential([ 15. iaa.Crop(percent=(0, 0.1)), # 随机裁剪,裁剪范围在 0% 到 10% 16. iaa.Affine(rotate=(-20, 20)), # 随机旋转角度在 -20 度到 20 度之间 17. iaa.Multiply((0.8, 1.2)), # 随机调整亮度,乘法因子范围在 0.8 到 1.2 之间 18. iaa.Cutout(nb_iterations=(1, 5), size=(8, 16)) # 随机遮挡,迭代次数在 1 到 5 之间,遮挡区域大小在 8x8 到 16x16 之间 19. ], random_order=True) 20. 21. # 应用数据增强到批量图像 22. images_aug = augmenter(images=images) 23. 24. # 显示原始图像和增强后的图像 25. for i in range(len(images)): 26. combined = np.hstack([images[i], images_aug[i]]) 27. ia.imshow(combined)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。