【语义分割】数据加强方法(原图与标签同时扩增)

[复制链接]
查看656 | 回复0 | 2023-8-23 11:50:18 | 显示全部楼层 |阅读模式
1、数据加强作用

   制止过拟合
   提升模子的鲁棒性
  进步模子的泛化能力
  制止样本不平衡的题目
2.、数据加强分类

可分为两类:在线加强和离线加强。这两者的区别在于离线加强是在训练前对数据集进行处置处罚,每每能得到多倍的数据集,在线加强是在训练时对加载数据进行预处置处罚,不改变训练数据的数量。
离线加强一样平常用于小型数据集,在训练数据不敷时利用,在线加强一样平常用于大型数据集。
3、方法

比力常用的多少变更方法重要有:翻转,旋转,裁剪,缩放,平移转换,色彩抖动,尺度变更,对比度变更,噪声扰动,旋转变更;
比力常用的像素变更方法有:加椒盐噪声,高斯噪声,进行高斯含糊,调解HSV对比度,调节亮度,饱和度,直方图平衡化,调解白平衡等。
利用Augmentor模块加强

   注意:
原图与标签图的后缀名必须保持划一,否则只标签图不会加强的
  由于我的图像是由labelme标注的,且将其转化为voc的格式,转化后原图为jpg,原图为png,由于需要同一。同一方式如下:批量修改图像后缀名。
1、安装:
创建一个情况,然后输入安装下令,下令如下

   pip install Augmentor
  conda install Augmentor
  表现安装乐成,既可以继承了。
 2、利用:
语义分割使命需要同时对原始图和掩码图(mask)进行加强,因此,很多现有的深度学习框架中自带的图像加强工具都不能直接利用。但是通过Augmentor可以很方便的实现该功能。下面举例分析。将图像原图以及它们对应的掩码图,分别放在test1文件夹以及test2文件夹中。利用以下代码进行加强
原始图

标签图

  1. #导入数据增强工具
  2. import Augmentor
  3. #确定原始图像存储路径以及标签图的文件存储路径,创建Pipeline实例p
  4. p = Augmentor.Pipeline("originalImages")
  5. p.ground_truth("Segmentationimages")
复制代码
(1)旋转(rotate)
probability指定进行操纵的概率大小,max_left_rotation, max_right_rotation指定向左向右最大旋转角度,最大值为25。sample表示从给定图像中生成指定命量的加强图像,可指定多个。
rotate操纵默认在对原图像进行旋转之后进行裁剪,输出与原图像同样大小的加强图像。
  1. p.rotate(probability=1, max_left_rotation=25, max_right_rotation=25)
  2. p.sample(1)
复制代码
(2)缩放(scale),但貌似只能等比放大
scale_factor表示缩放比例,只能大于1,且为等比放大。
  1. p.scale(probability=1, scale_factor=1.3)
复制代码
(3)翻转(flip)
左右翻转、上下翻转、随机翻转
  1. p.flip_random(probability=1)   %随机翻转
  2. p.flip_left_right(probability=0.5)   %左右翻转
  3. p.flip_top_bottom(probability=0.5)    %上下翻转
复制代码
(4)随机亮度加强/削弱(random_brightness)
min_factor, max_factor为厘革因子,决定亮度厘革的程度,可根据结果指定。
  1. p.random_brightness(probability=1, min_factor=0.7, max_factor=1.2)   %随机亮度
  2. p.random_color(probability=1, min_factor=0.0, max_factor=1)   %随机颜色
  3. p.random_contrast(probability=1, min_factor=0.7, max_factor=1.2)   %随机对比度
复制代码
(5)随机透视变形(skew)
magnitude表示变形程度。隐蔽参数skew_type,值为``TILT``, ``TILT_TOP_BOTTOM``, ``TILT_LEFT_RIGHT``,  ``CORNER``,睁开源码才可以看到。源码中接纳randomly的方式从四种参数中选择,不需指定。
此中,``TILT_TOP_BOTTOM``表示只在顶部底部方向进行透视变形。
``TILT_LEFT_RIGHT``表示只在左右方向进行透视变形。
``CORNER``表示只在四角方向进行透视变形。
``TILT``包含上述方向的聚集,即上下左右和四角的八个方向。
 
  1. p.skew(probability=1, magnitude=0.8)
复制代码
(6)随机剪切(shear)
剪切变更,max_shear_left,max_shear_right为剪切变更角度
  1. p.shear(probability=1, max_shear_left=15, max_shear_right=15)
复制代码
(7)随机裁剪(random_crop)
percentage_area表示裁剪面积占原图像面积的比例,centre指定是否从图片中间裁剪,randomise_percentage_area指定是否随机生成裁剪面积比。
  1. p.crop_random(probability=1, percentage_area=0.8, centre=False, randomise_percentage_area=True)
复制代码
(8)随机擦除/遮挡(random_erasing)
rectangle_area指定随机擦除面积的百分比。固然这个指定的是擦除面积的上限。
  1. p.random_erasing(probability=1, rectangle_area=0.5)
复制代码
(9)小块变形distortion
  1. p.random_distortion(probability=0.8,grid_width=10,grid_height=10, magnitude=20)
复制代码
完备代码:
  1. import Augmentor
  2. # 确定原始图像存储路径以及掩码文件存储路径,需要把“\”改成“/”
  3. p = Augmentor.Pipeline("originalImages")
  4. p.ground_truth("Segmentationimages")
  5. # 图像旋转: 按照概率0.8执行,范围在0-25之间
  6. p.rotate(probability=0.8, max_left_rotation=25, max_right_rotation=25)
  7. # 图像左右互换: 按照概率0.5执行
  8. p.flip_left_right(probability=0.5)
  9. p.flip_top_bottom(probability=0.5)
  10. # 图像放大缩小: 按照概率0.8执行,面积为原始图0.85倍
  11. p.zoom_random(probability=0.3, percentage_area=0.85)
  12. #scale_factor表示缩放比例,只能大于1,且为等比放大。
  13. p.scale(probability=1, scale_factor=1.3)
  14. #小块变形
  15. p.random_distortion(probability=0.8,grid_width=10,grid_height=10, magnitude=20)
  16. #随机亮度增强/减弱,min_factor, max_factor为变化因子,决定亮度变化的程度,可根据效果指定
  17. p.random_brightness(probability=1, min_factor=0.7, max_factor=1.2)
  18. #随机颜色/对比度增强/减弱
  19. #p.random_color(probability=1, min_factor=0.0, max_factor=1)
  20. p.random_contrast(probability=1, min_factor=0.7, max_factor=1.2)
  21. #随机剪切(shear)  max_shear_left,max_shear_right为剪切变换角度  范围0-25
  22. p.shear(probability=1, max_shear_left=10, max_shear_right=10)
  23. #随机裁剪(random_crop)
  24. p.crop_random(probability=1, percentage_area=0.8, randomise_percentage_area=True)
  25. #随机翻转(flip_random)
  26. p.flip_random(probability=1)
  27. # 最终扩充的数据样本数可以更换为100。1000等
  28. p.sample(10)  
复制代码
会自动生成一个out结果,结果如下:

 然后自己手动分开即可。
 

来源:https://blog.csdn.net/weixin_45912366/article/details/127855494
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则