Существует ли код Python для увеличения данных изображения для всего набора данных? - PullRequest
0 голосов
/ 10 мая 2019

Я работаю над CNN (Convolution Neural Network) для проблемы классификации изображений.У меня есть набор данных из 1000 изображений, этих изображений недостаточно, чтобы соответствовать модели, которую я разработал, и я хочу увеличить количество изображений перед тренировкой CNN.Как увеличить мой набор данных с помощью python.

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Вы можете использовать класс keras ImageDataGenerator.Этот класс имеет много интересных функций для генерации набора данных дополненных изображений.Этот класс также можно использовать для дополнения набора данных из папки.
Например,

generator = ImageDataGenerator(
    rotation_range=20,
    width_shift_range=0.2,
    height_shift_range=0.2,
    horizontal_flip=True)

Более подробная информация о классе ImageDataGenerator найдена здесь .

Теперь вы можете использовать этот генератор с вашей моделью keras следующим образом:

model.fit_generator(generator.flow(x_train, y_train, batch_size= ... ),
                    steps_per_epoch= .... , epochs= ... )

. Для создания расширенного набора данных из папки используйте метод flow_from_directory класса.

model.fit_generator(generator.flow_from_directory(directory, target_size=(64, 64), batch_size= ...),steps_per_epoch= .... , epochs= ... )

0 голосов
/ 10 мая 2019

Это встроенный тензор потока. Посмотрите документацию tf.image

Например, вы можете использовать следующие функции, используя tf.Dataset.map:

  • tf.image.random_flip_up_down
  • tf.image.random_flip_left_right
  • tf.image.random_contrast
  • tf.image.random_brightness
...