我正在尝试训练将图像转换为另一图像的模型(因此,不是图像分类问题)。它是自动着色,即将灰度图像转换为颜色。
我已经建模了我的顺序DL模型。
我想提供(image_x,image_y)而不是(image_x,label)作为model.fit()方法的输入。
我如何使用ImageDataGenerator来做到这一点?
如果ImageDataGenerator不是合适的方法,请您参考适当的Keras方法来完成这项工作吗?
我有目录中的图像
train/grayscale/
train/color/
validation/grayscale
validation/color
test/grayscale
test/color
提前致谢。
答案 0 :(得分:1)
您的问题就像图像分割任务一样。有一个例子是将图像和蒙版(在你的情况下是彩色图像)与keras documentation中的ImageDataGenerator一起转换。
以下是示例:
# we create two instances with the same arguments
data_gen_args = dict(featurewise_center=True,
featurewise_std_normalization=True,
rotation_range=90.,
width_shift_range=0.1,
height_shift_range=0.1,
zoom_range=0.2)
image_datagen = ImageDataGenerator(**data_gen_args)
mask_datagen = ImageDataGenerator(**data_gen_args)
# Provide the same seed and keyword arguments to the fit and flow methods
seed = 1
image_datagen.fit(images, augment=True, seed=seed)
mask_datagen.fit(masks, augment=True, seed=seed)
image_generator = image_datagen.flow_from_directory(
'data/images',
class_mode=None,
seed=seed)
mask_generator = mask_datagen.flow_from_directory(
'data/masks',
class_mode=None,
seed=seed)
# combine generators into one which yields image and masks
train_generator = zip(image_generator, mask_generator)
model.fit_generator(
train_generator,
steps_per_epoch=2000,
epochs=50)
请注意,如果class_mode = None,数据仍然需要 驻留在目录的子目录中,以使其正常工作。
例如,当您将train/grayscale
和train/color
传递给两个flow_from_directory
函数时,列车图像的目录应如下所示:
train/grayscale/images
train/color/images