我正在使用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
这是所有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())
这是使用我的代码生成的图像的示例:
如您所见,图像失真并且不足以训练我的网络 .
我想知道ImageDataGenerator最适合人脸的参数是什么,还是有更好的数据增强方法?