200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【图像增强】python图像数据增强

【图像增强】python图像数据增强

时间:2020-12-07 11:20:26

相关推荐

【图像增强】python图像数据增强

导入数据增强包:

from imgaug import augmenters as iaa #引入数据增强的包sometimes = lambda aug: iaa.Sometimes(0.5, aug) #建立lambda表达式,

这里定义sometimes意味有时候做的操作,然而实际上在深度学习的模型训练中,数据增强不能喧宾夺主,如果对每一张图片都加入高斯模糊的话实际上是毁坏了原来数据的特征,因此,我们需要“有时候”做,给这个操作加一个概率。

下面建立一个图像增强流程,有详细注释:

seq = iaa.Sequential([iaa.Fliplr(0.5), # 对50%的图像进行上下翻转iaa.Flipud(0.2), # 对20%的图像做镜像翻转sometimes(iaa.Crop(percent=(0, 0.1))), #这里沿袭我们上面提到的sometimes,对随机的一部分图像做crop操作# crop的幅度为0到10%sometimes(iaa.Affine(#对一部分图像做仿射变换scale={"x": (0.8, 1.2), "y": (0.8, 1.2)},#图像缩放为80%到120%之间translate_percent={"x": (-0.2, 0.2), "y": (-0.2, 0.2)}, #平移±20%之间rotate=(-45, 45), #旋转±45度之间shear=(-16, 16), #剪切变换±16度,(矩形变平行四边形)order=[0, 1], #使用最邻近差值或者双线性差值cval=(0, 255), #全白全黑填充mode=ia.ALL #定义填充图像外区域的方法)),# 使用下面的0个到5个之间的方法去增强图像。注意SomeOf的用法iaa.SomeOf((0, 5),[# 将部分图像进行超像素的表示。o(╥﹏╥)o用超像素增强作者还是第一次见,比较孤陋寡闻sometimes(iaa.Superpixels(p_replace=(0, 1.0),n_segments=(20, 200))),#用高斯模糊,均值模糊,中值模糊中的一种增强。注意OneOf的用法iaa.OneOf([iaa.GaussianBlur((0, 3.0)),iaa.AverageBlur(k=(2, 7)), # 核大小2~7之间,k=((5, 7), (1, 3))时,核高度5~7,宽度1~3iaa.MedianBlur(k=(3, 11)),]),#锐化处理iaa.Sharpen(alpha=(0, 1.0), lightness=(0.75, 1.5)),#浮雕效果iaa.Emboss(alpha=(0, 1.0), strength=(0, 2.0)),#边缘检测,将检测到的赋值0或者255然后叠在原图上sometimes(iaa.OneOf([iaa.EdgeDetect(alpha=(0, 0.7)),iaa.DirectedEdgeDetect(alpha=(0, 0.7), direction=(0.0, 1.0)),])),# 加入高斯噪声iaa.AdditiveGaussianNoise(loc=0, scale=(0.0, 0.05*255), per_channel=0.5),# 将1%到10%的像素设置为黑色# 或者将3%到15%的像素用原图大小2%到5%的黑色方块覆盖iaa.OneOf([iaa.Dropout((0.01, 0.1), per_channel=0.5),iaa.CoarseDropout((0.03, 0.15), size_percent=(0.02, 0.05),per_channel=0.2),]),#5%的概率反转像素的强度,即原来的强度为v那么现在的就是255-viaa.Invert(0.05, per_channel=True), # 每个像素随机加减-10到10之间的数iaa.Add((-10, 10), per_channel=0.5),# 像素乘上0.5或者1.5之间的数字.iaa.Multiply((0.5, 1.5), per_channel=0.5),# 将整个图像的对比度变为原来的一半或者二倍iaa.ContrastNormalization((0.5, 2.0), per_channel=0.5),# 将RGB变成灰度图然后乘alpha加在原图上iaa.Grayscale(alpha=(0.0, 1.0)),#把像素移动到周围的地方。这个方法在mnist数据集增强中有见到sometimes(iaa.ElasticTransformation(alpha=(0.5, 3.5), sigma=0.25)),# 扭曲图像的局部区域sometimes(iaa.PiecewiseAffine(scale=(0.01, 0.05)))],random_order=True # 随机的顺序把这些操作用在图像上)],random_order=True # 随机的顺序把这些操作用在图像上)

最后对图像进行数据增强操作:

images_aug = seq.augment_images(images) #实现图像增强

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。