使用ImageDataGenerator(Keras)进行图像序列处理

时间:2018-07-06 10:06:44

标签: python tensorflow machine-learning keras data-manipulation

因此,我有一个train / val / test文件夹,其中包含形状为(img_w,img_h,3)的RGB图像数据集。由于输入图像是随时间推移拍摄的,因此我想将该时间信息合并到我的模型中。 为此,我使用ImageDataGenerator类读取数据,然后将输入分成形状较小的较小序列(num_frames,img_w,img_h,3),以4D input_shape将其输入到我的LRCN模型中。

到目前为止我尝试过的代码:

def gen_multi_frame(image_data_gen, dir, input_shape=(256, 256), batch_size=1, shuffle=False, frames=5, channels=3):
    gen = image_data_gen.flow_from_directory(dir,
                                             target_size=input_shape,
                                             class_mode='binary',
                                             batch_size=batch_size,
                                             shuffle=shuffle,
                                             seed=90)
    x = np.zeros([batch_size, frames, input_shape[0], input_shape[1], channels])
    y = np.zeros([batch_size, frames])
    while True:
        for frame in range(frames):
            x1i = gen.next()
            x[:, frame, :, :] = x1i[0]
            y[:, frame] = x1i[1]

        yield [x, y]  # Yield both images and their mutual label

尽管从理论上讲这是可行的,但它不允许我整理训练数据。同样,这对我来说有点不客气,我觉得应该有一个更好的解决方案。

0 个答案:

没有答案