2017-07-06 51 views
3

我的面部表情識別使用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 

這裏的所有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()) 

而這裏的圖像的一個例子使用我的代碼生成:

enter image description here

enter image description here

enter image description here

enter image description here

正如你所看到的,圖像失真並不夠好訓練我的網絡。

我想知道什麼是ImageDataGenerator的最佳參數,人臉或者是有數據擴充任何更好的方法?

回答