Python数据增强的库
1. 数据增强(旋转、翻转、加噪声、加对比度、亮度):imgaug(更多操作,也可以加天气效果,推荐)、Augmentor(简单操作) 直接pip install(windows下面,需要去python第三方非正式库下载Shapely,以及numpy1.15,才不会报错)
2. 数据增强(添加下雨 下雪 雾效果) :Albumentations
3. 数据增强:opencv-python、PIL中的ImageEnhance
区分:
imgaug:操作更多(但相对opencv-python,代码简洁),支持keypoint, bounding box同步处理 ******
Albumentations: 据说可以进行 加雨雪雾的效果
Augmentor:操作较少(但相对opencv-python,代码简介)
ImageEnhance: 4种操作颜色增强
1、对比度:白色画面(最亮时)下的亮度除以黑色画面(最暗时)下的亮度;
2、色彩饱和度::彩度除以明度,指色彩的鲜艳程度,也称色彩的纯度;
3、色调:向负方向调节会显现红色,正方向调节则增加黄色。适合对肤色对象进行微调;
4、锐度:是反映图像平面清晰度和图像边缘锐利程度的一个指标。
opencv-python:
1、随机裁剪、旋转、翻转;
2、随机颜色、明暗;
3、仿射变换;
imgaug:简单使用
可以查看官网(锻炼自己的英文水平,推荐),也可以百度搜一些imgaug的博客,有些博客写的挺好的,自己就不用整理了。“imgaug学习笔记” 百度一下!!
import cv2
from imgaug import augmenters as iaa
# 单张图片的处理(左右翻转等操作)[H,W,C] or [H,W]
img = cv2.imread(img_path, -1)
aug_func = iaa.Fliplr( “Probability 0-1.0” )
result = aug_func.augment_image(img)
{裁剪:iaa.crop(), 填充:iaa.pad(), 锐化:iaa.sharpen, 明暗(亮度):iaa.Multiply, 对比度:iaa.ConstratNormalization, 仿射变换:iaa.Affine,..... }
# 多张图片的处理(左右翻转等操作) [N,H,W,C] or [N,H,W]
imgs=[]
for i in range(N):
imgs.append(img)
imgs = np.array(imgs)
result = aug_func.augment_images(imgs)
# 针对图片的系列处理,使用全部增强方式,若部分随机使用采用iaa.someOf()/one of()/Sometimes()
seq = iaa.Sequential(
iaa.Crop(***)
iaa.Fliplr(***)
iaa.GaussianBlur(***) )
seq.augment_image() / seq.augment_images()
# 针对图片的批量处理,用到的比较少,往往是写for循环实现。
seq.augment_batch(batch=”调用iaa.Batch()”)