欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

[AI数据]数据增强之路

程序员文章站 2024-01-22 12:27:16
1.维度位置增强(包括Scaling/Cropping/Flipping/Padding/Rotation/Translation/Affine transformation)颜色增强(包括Brightness/Contrast/Saturation/Hue)2.方法2.1.imgaug法2.1.1 旋转import imageioimport imgaug as iaimport imgaug.augmenters as iaaimport numpy as npi....

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)

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

2.1.2 增加噪声

gaussian_noise=iaa.AdditiveGaussianNoise(10,20)
noise_image=gaussian_noise.augment_image(image)
ia.imshow(noise_image)

[AI数据]数据增强之路

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

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