#|[AI数据]数据增强之路

1.维度 位置增强(包括Scaling/Cropping/Flipping/Padding/Rotation/Translation/Affine transformation)
颜色增强(包括Brightness/Contrast/Saturation/Hue)

2.方法 2.1.imgaug法 2.1.1 旋转

import imageio import imgaug as ia import imgaug.augmenters as iaa import numpy as np import pandas as pd import matplotlib.pyplot as plt import matplotlib.patches as patches import matplotlib %matplotlib inlineimage = imageio.imread("car2.jpeg") ia.imshow(image)rotate=iaa.Affine(rotate=(-50, 30)) rotated_image=rotate.augment_image(image) ia.imshow(rotated_image)

#|[AI数据]数据增强之路
文章图片

2.1.2 增加噪声
gaussian_noise=iaa.AdditiveGaussianNoise(10,20) noise_image=gaussian_noise.augment_image(image) ia.imshow(noise_image)


2.1.3 裁剪
crop = iaa.Crop(percent=(0, 0.3)) # crop image corp_image=crop.augment_image(image) ia.imshow(corp_image)

#|[AI数据]数据增强之路
文章图片

2.1.4 扭曲
shear = iaa.Affine(shear=(0,40)) shear_image=shear.augment_image(image) ia.imshow(shear_image)

#|[AI数据]数据增强之路
文章图片

2.1.5 翻转
#flipping image horizontally flip_hr=iaa.Fliplr(p=1.0) flip_hr_image= flip_hr.augment_image(image) ia.imshow(flip_hr_image)

#|[AI数据]数据增强之路
文章图片

flip_vr=iaa.Flipud(p=1.0) flip_vr_image= flip_vr.augment_image(image) ia.imshow(flip_vr_image)

【#|[AI数据]数据增强之路】
2.1.6 改变亮度
image = imageio.imread("car2.jpeg") contrast=iaa.GammaContrast(gamma=2.0) contrast_image =contrast.augment_image(image) ia.imshow(contrast_image)

#|[AI数据]数据增强之路
文章图片

2.2 pytorch法 https://iq.opengenus.org/data-augmentation/
2.3 tensorflow法 https://medium.com/@prasad.pai/data-augmentation-techniques-in-cnn-using-tensorflow-371ae43d5be9
2.4 keras法
# import the necessary packages from keras.preprocessing.image import ImageDataGenerator from keras.preprocessing.image import img_to_array from keras.preprocessing.image import load_img import numpy as np import argparse# construct the argument parse and parse the arguments ap = argparse.ArgumentParser() ap.add_argument("-i", "--image", required=True, help="path to the input image") ap.add_argument("-o", "--output", required=True, help="path to output directory to store augmentation examples") ap.add_argument("-p", "--prefix", type=str, default="image", help="output filename prefix") args = vars(ap.parse_args())# load the input image, convert it to a NumPy array, and then # reshape it to have an extra dimension print("[INFO] loading example image...") image = load_img(args["image"]) image = img_to_array(image) image = np.expand_dims(image, axis=0)# construct the image generator for data augmentation then # initialize the total number of images generated thus far aug = ImageDataGenerator(rotation_range=30, width_shift_range=0.1, height_shift_range=0.1, shear_range=0.2, zoom_range=0.2, horizontal_flip=True, fill_mode="nearest") total = 0# construct the actual Python generator print("[INFO] generating images...") imageGen = aug.flow(image, batch_size=1, save_to_dir=args["output"], save_prefix=args["prefix"], save_format="jpg")# loop over examples from out image data augmentation generator for image in imageGen: # increment our counter total += 1# if we have reached 10 examples, break from the loop if total == 10: break

3.参考 https://towardsdatascience.com/data-augmentation-techniques-in-python-f216ef5eed69

    推荐阅读