其他分享
首页 > 其他分享> > 【深度学习】基于Keras的Data Augmentation方法

【深度学习】基于Keras的Data Augmentation方法

作者:互联网

首先为什么我们需要对数据集进行Data Augmentation

本文主要参考的博客

那么数据加强都有哪些功能

实现代码:

# -*- coding: utf-8 -*-
__author__ = 'Administrator'

import numpy as np
import tensorflow

# import packages
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img

datagen = ImageDataGenerator(
    rotation_range=0.2,
    width_shift_range=0.2,
    height_shift_range=0.2,
    shear_range=0.2,
    zoom_range=0.2,
    horizontal_flip=True,
    fill_mode='nearest')

# img = load_img('C:\Users\Administrator\Desktop\dataA\lena.jpg')  # this is a PIL image, please replace to your own file path
img = load_img(
    'D:/picture1/xz.jpg')  # this is a PIL image, please replace to your own file path

x = img_to_array(img)  # this is a Numpy array with shape (3, 150, 150)
x = x.reshape((1,) + x.shape)  # this is a Numpy array with shape (1, 3, 150, 150)

# the .flow() command below generates batches of randomly transformed images
# and saves the results to the `preview/` directory

i = 0
for batch in datagen.flow(x,
                          batch_size=1,
                          save_to_dir='D:/picture',  # 生成后的图像保存路径
                          save_prefix='lena',
                          save_format='jpg'):
    i += 1
    if i > 20:  # 这个20指出要扩增多少个数据
        break  # otherwise the generator would loop indefinitely

实现效果如下:

1.首先我们需要自己去找到一张需要加强数据集的图片
在这里插入图片描述
2.然后就是数据加强之后的图片
在这里插入图片描述
3.虽然结果出来了,但是还是有点问题,虽然说数据加强代码实现了旋转,平移,放大缩小,填充像素,但是还是有一些不足的地方
比如下图,图片的周围都是不清晰的像马赛克一样的东西
在这里插入图片描述

每一岁的成长,都仍要奔走在自己的热爱里

标签:img,Keras,0.2,像素,range,Augmentation,图像,array,Data
来源: https://blog.csdn.net/qq_44833724/article/details/123212629