如何使用 Keras 执行离线图像增强?

Posted

技术标签:

【中文标题】如何使用 Keras 执行离线图像增强?【英文标题】:How to perform offline image augmentation using Keras? 【发布时间】:2019-11-25 20:19:21 【问题描述】:

我想在我的数据集中对不同的图像类执行离线图像增强,并将图像保存到其中一个文件夹中,然后再开始创建模型。

使用具有save_to_dir 的 Keras ImageDataGenerator - flow_from_directory() 并将其值设置为我的目标文件夹

datagen = ImageDataGenerator(
        rescale=1./255,
        shear_range=0.2,
        zoom_range=0.2,
        horizontal_flip=True)

datagen_set = datagen.flow_from_directory(
        'C:/Users/...',
        target_size=(64, 64),
        batch_size=32,
        classes = ['class_A'],
        save_to_dir = 'C:/Users/.../AugImages',
        save_prefix = 'class_A',
        save_format = 'jpg')

我是否必须创建我的模型并使用它的 fit_generator/fit 方法,或者在创建模型之前是否有任何其他方式来执行离线图像增强?

【问题讨论】:

【参考方案1】:

如果您想保存增强图像,您需要定义一个模型并使用fit/fit_generator。请注意,datagen_set 是一个迭代器,因此您可以使用 next 方法从迭代器中获取值。

for i in range(no_iter):
    image, label = next(datagen_set)

上面的代码会将batch_size*no_iter的图片保存到save_to_dir

【讨论】:

以上是关于如何使用 Keras 执行离线图像增强?的主要内容,如果未能解决你的问题,请参考以下文章

使用 ImageDataGenerator 进行 Keras 数据增强(您的输入没有数据)

如何使用 Keras(增强、拆分)预处理我的 ImageDataset

如何使用 AdaBoost 增强基于 Keras 的神经网络?

如何在 Pytorch 中使用 torchvision.transforms 对分割任务进行数据增强?

OSMDroid 从资产文件夹加载自定义离线图块

如何使用Keras OCR示例推断新图像?