语义分割数据增强--Augmentor

随机数据增强 

# 导入数据增强工具
import Augmentor

# 确定原始图像存储路径以及掩码文件存储路径
p = Augmentor.Pipeline("1")
p.ground_truth("1_1")

# 图片逆时针随机旋转90度(随机概率可自行设定)
p.rotate90(probability=0.5)

# 图片顺时针随机旋转90度(随机概率可自行设定)
p.rotate270(probability=0.5)

# 不固定角度微小旋转:比如向左最大旋转15度,向右最大旋转15度(备注:旋转最大角度范围是0-25度)
p.rotate(probability=0.8, max_left_rotation=15, max_right_rotation=15)

#按概率随机左右翻转
p.flip_left_right(probability=0.8)

#按概率随机上下翻转
p.flip_top_bottom(probability=0.8)

# 图像放大缩小: 按照概率0.8执行,面积为原始图0.85倍
p.zoom_random(probability=0.8, percentage_area=0.85)

# 图像放大
p.zoom(probability=1, min_factor=1.1, max_factor=1.5)

# 弹性扭曲,类似区域扭曲的感觉
p.random_distortion(probability=0.8,grid_width=10,grid_height=10, magnitude=20)#小块变形

# 随机区域擦除
p.random_erasing(probability=0.8, rectangle_area=0.3)

# 透视形变-垂直方向形变:magnitude取(0,1),指的是形变程度
p.skew_tilt(probability=0.7, magnitude=0.5)

# 透视形变-斜四角形变:magnitude取(0,1),指的是形变程度
p.skew_corner(probability=0.7,magnitude=1)

# 错切变换
p.shear(probability=1,max_shear_left=15,max_shear_right=15)

# 最终扩充的数据样本数
p.sample(100)

语义分割数据增强--Augmentor_第1张图片

如果想对每张图片都进行数据增强

for i in range(1,10):
    if i == 1:
        p.flip_top_bottom(probability=1)
        p.process()
    if i == 2:
        p.flip_left_right(probability=1)
        p.process()
    if i == 3:
        p.rotate90(probability=1)
        p.process()
    if i == 4:
        p.rotate270(probability=1)
        p.process()
    if i == 5:
        p.rotate(probability=1, max_left_rotation=25, max_right_rotation=25)
        p.process()
    if i == 6:
        p.random_distortion(probability=1, grid_width=5, grid_height=5, magnitude=10)
        p.process()
    if i == 7:
        p.skew_corner(probability=1, magnitude=0.2)
        p.process()
    if i == 8:
        p.skew_tilt(probability=1, magnitude=0.2)
        p.process()
    if i == 9:
        p.shear(probability=1,max_shear_left=15,max_shear_right=15)
        p.process()

 注意,图片和掩码格式要一致,都为jpg或png

你可能感兴趣的:(语义分割数据增强--Augmentor)