Как обработать и сохранить одно и то же увеличение данных на нескольких входах - PullRequest
0 голосов
/ 23 июня 2019

Я пытаюсь обработать и сохранить некоторое увеличение данных в моем наборе данных, состоящем из 500 классов с 10 изображениями на класс. Мой набор данных является стерео, это означает, что он имеет два просмотра на сцену. Другими словами, он имеет следующую архитектуру:

->left
|_____0001
|_____0002
   ...
|_____0500

->right
|_____0001
|_____0002
   ...
|_____0500

Я хочу выполнить одинаковое автономное увеличение данных для левого и правого входов и сохранить их в тех же каталогах исходных изображений. Вот мой код:

from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
import os
import numpy as np


data_path_l=".\TRAIN\left\"
data_path_r=".\TRAIN\right\"

#Create a generator
input_imgen =ImageDataGenerator(rotation_range=15,horizontal_flip=True,
                                fill_mode='nearest'

#Get all the images in the left sub-directories
for file, subfolder, folder in os.walk(data_path_l):
      for fo in folder:
          path = os.path.join(file,fo)
          img = load_img(path)
          X = img_to_array(img)  
          X = np.expand_dims(X, 0)  
          i = 0
          for batch in data_generator.flow(X,save_to_dir=file,save_prefix='aug',save_format='png',shuffle=False,batch_size=1,seed=666):
              i += 1
              if i % 3 == 0:  # Generate three transformed pictures
                  break       # To avoid generator to loop indefinitely

 #Get all the images in the right sub-directories
for file, subfolder, folder in os.walk(data_path_r):
      for fo in folder:
          path = os.path.join(file,fo)
          img = load_img(path)
          X = img_to_array(img)  
          X = np.expand_dims(X, 0)  
          i = 0
          for batch in data_generator.flow(X,save_to_dir=file,save_prefix='aug',save_format='png',shuffle=False,batch_size=1,seed=666):
              i += 1
              if i % 3 == 0:  # Generate three transformed pictures
                  break       # To avoid generator to loop indefinitely

проблема в том, что предыдущий код выполняет те же преобразования для левой и правой пар, но только для последнего изображения в каждом классе !! Кто-нибудь может предложить мне решение или предложить мне другой способ выполнить мою задачу?

...