我正在使用Keras(v.2.3.1)对视频进行分类以进行动作检测。我的模型是CNN和LSTM。我的数据集包含3-7秒的视频,每个视频代表特定的动作。我使用OpenCv从每个视频中获取帧。但是由于视频长度不同,因此每个视频获得的帧数也不同。但是,对于LSTM层,我需要具有相同数量的帧。我进行了一点搜索,看起来应该像填充和遮罩层一样,但是我不知道如何使用Keras做到这一点。任何帮助表示赞赏。这是我的模型:
conv_base = VGG16(weights= 'imagenet', include_top=False)
model = models.Sequential()
model.add(TimeDistributed(conv_base, input_shape = (n_timesteps, img_length, img_height, channel)))
model.add(TimeDistributed((Flatten())))
model.add(LSTM(units = lstm_cells))
model.add(Dropout(0.5))
model.add(Dense(512, activation='relu'))
model.add(Dense(256, activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='sigmoid'))