我需要一个RCNN结构来在使用OpenCV提取帧后对视频进行分类。我已经为这个结构进行了大量的搜索和搜索,并在Keras达到了这个模型:
model = Sequential([
#Visual features learning
TimeDistributed(Conv2D(units=128, kernel_size=5, strides=1, input_shape(28, 28, 1))),
TimeDistributed(MaxPooling2D(pool_size=2)),
Dropout(0.25),
TimeDistributed(Conv2D(units=256, kernel_size=5, strides=1)),
TimeDistributed(MaxPooling2D(pool_size=2)),
Dropout(0.25),
TimeDistributed(Conv2D(units=128, kernel_size=5, strides=1)),
TimeDistributed(MaxPooling2D(pool_size=2)),
Dropout(0.25),
TimeDistributed(Conv2D(units=128, kernel_size=5, strides=1)),
TimeDistributed(MaxPooling2D(pool_size=2)),
Dropout(0.25),
#Flatten
TimeDistributed(Flatten()),
#LSTM for sequence learning
LSTM(units, activation, recurrent_activation, use_bias),
#FC
Dense(units=500, activation='relu'),
Dropout(0.25),
Dense(units=4, activation='softmax')
])
我可以调整这个结构(或直接使用它)来学习LSTM层的图像数据和时间特征吗? 如果没有,我该如何正确调整这个模块?
OBS:这个例子中的超参数仅仅是一个例子。我仍然需要找到一种方法来参数化LSTM层以使其工作。
感谢您的支持!
答案 0 :(得分:1)
使用ConvLSTM2D 像这个例子 https://github.com/keras-team/keras/blob/master/examples/conv_lstm.py 但是用分类层改变模型的结尾
或使用prebuild模型使用它来编码帧的特征 在一定时间内将此功能提供给LSTM 然后在最后进行分类