是否有用于整个数据集的图像数据增强的python代码?

时间:2019-05-10 09:20:24

标签: python tensorflow keras data-augmentation

我正在研究CNN(卷积神经网络)以解决图像分类问题。我有一个包含1000张图像的数据集,这些图像不足以适合我设计的模型,并且我想在训练CNN之前增加图像数量。如何使用python扩充我的数据集。

2 个答案:

答案 0 :(得分:0)

这是tensorflow中的内置函数。查找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

答案 1 :(得分:0)

您可以使用keras的ImageDataGenerator类。此类具有许多有趣的功能,可以生成增强的图像数据集。此类也可以用于扩充文件夹中的数据集。
例如

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

有关ImageDataGenerator类的更多信息,请参见here

现在,您可以按以下方式将此生成器与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= ... )