Keras用于数据增强的最佳图像数据生成器参数

Mej*_*lel 5 image-processing keras

我正在使用Keras进行面部表情识别,我正在使用的数据集没有大量可用的数据,所以我将使用Keras的图像预处理进行数据增强.

我想知道ImageDataGenerator的最佳参数,以生成可以用来训练我的神经网络的正常面.

这是我用于数据扩充的代码:

def data_augmentation(subdir):

    datagen = ImageDataGenerator(
        featurewise_center=False,
        samplewise_center=False,
        featurewise_std_normalization=False,
        samplewise_std_normalization=False,
        zca_whitening=False,
        rotation_range=30,
        width_shift_range=0.2,
        height_shift_range=0.2,
        horizontal_flip=True,
        vertical_flip=False)

    print ("\nData augmentation...")
    print ("\nProcess...")

    for file in glob.glob(subdir+"*/*.jpg"):
        img = load_img(file)
        print ("\nProcessing..." + str(file))
        x = img_to_array(img)
        x = x.reshape((1,) + x.shape)

        i = 0
        for batch in datagen.flow(x, batch_size=1, save_to_dir='data_aug', save_prefix='Fig', save_format='jpg'):
            i += 1
            if i > 20:
                break
Run Code Online (Sandbox Code Playgroud)

这是所有ImageDataGenerator的参数

keras.preprocessing.image.ImageDataGenerator(featurewise_center=False,
                samplewise_center=False,
                featurewise_std_normalization=False,
                samplewise_std_normalization=False,
                zca_whitening=False,
                zca_epsilon=1e-6,
                rotation_range=0.,
                width_shift_range=0.,
                height_shift_range=0.,
                shear_range=0.,
                zoom_range=0.,
                channel_shift_range=0.,
                fill_mode='nearest',
                cval=0.,
                horizontal_flip=False,
                vertical_flip=False,
                rescale=None,
                preprocessing_function=None,
                data_format=K.image_data_format())
Run Code Online (Sandbox Code Playgroud)

这是使用我的代码生成的图像的示例:

在此输入图像描述

在此输入图像描述

在此输入图像描述

在此输入图像描述

如您所见,图像失真并且不足以训练我的网络.

我想知道ImageDataGenerator最适合人脸的参数是什么,还是有更好的数据增强方法?

小智 1

如果您只处理人脸,请查看这篇论文: http://www.openu.ac.il/home/hassner/projects/augmented_faces/ 它可以从单个人脸图像生成 30 张图像。您还可以使用 python 中的虚拟化妆实现。它们易于使用且成功。