当前位置: 移动技术网 > IT编程>脚本编程>Python > [AI数据]数据增强之路

[AI数据]数据增强之路

2020年07月26日  | 移动技术网IT编程  | 我要评论

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 inline

image = imageio.imread("car2.jpeg")
ia.imshow(image)

rotate=iaa.Affine(rotate=(-50, 30))
rotated_image=rotate.augment_image(image)
ia.imshow(rotated_image)

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)

2.1.4 扭曲

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

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)

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

2.1.6 改变亮度

image = imageio.imread("car2.jpeg")
contrast=iaa.GammaContrast(gamma=2.0)
contrast_image =contrast.augment_image(image)
ia.imshow(contrast_image)

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

本文地址:https://blog.csdn.net/guaguastd/article/details/107573275

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网