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