Keras:用于视频识别的时间CNN + LSTM

时间:2019-02-14 17:30:40

标签: keras lstm

Proposed deep learning model

我正在尝试实现上图中所示的模型,该模型主要由时间分布的CNN和随后的一系列使用Keras和TF的LSTM组成。 我将类分为两种,并从捕获的每个视频中提取帧。帧提取是可变的,请不要解决。

但是,我在尝试找出如何为每个班级中的每个视频加载图像帧时遇到问题,从而变成了x_trainx_testy_train,{{1 }}。

y_test

如果每个视频包含提取的n个不同数量的帧,我不知道如何键入model = Sequential() model.add( TimeDistributed( Conv2D(64, (3, 3), activation='relu'), input_shape=(data.num_frames, data.width, data.height, 1) ) )

输入的是3-8秒(即一帧帧)的小型视频。

1 个答案:

答案 0 :(得分:0)

您可以使用None,因为此尺寸不会影响模型的可训练权重数量。

但是,由于numpy不接受可变大小,因此使用numpy创建一批视频会遇到问题。

您可以单独训练每个视频,也可以创建虚拟帧(零填充)以使所有视频达到相同的最大长度。然后使用Masking层忽略这些帧。 (某些Keras版本在使用TimeDistributed + Masking时有问题)