【论文阅读】Long-Term Recurrent Convolutional Networks for Visual Recognition and Description
这篇文章是15年的一篇文章,文章设计了CNN+LSTM的网络结构用于行为识别、图像描述、视频描述。因为我研究行为识别相关的内容,所以只介绍行为识别的部分。 本文的网络和之前介绍的一篇很像链接地址,区别主要在本文的网络使用的是端到端训练的,所以就非常非常非常简略地介绍一下这个网络,其中行为识别的一些实验还是挺有意思的。
论文地址:链接地址
代码(pytorch):链接地址
正文
文章提出了一种LRCNs的网络结构可以用于行为识别、图像描述以及视频描述。其网络结构如下图所示:
可以看到网络的结构很容易理解,视频的每一帧输入到CNN网络中,然后CNN网络的输出作为LSTM的输入,LSTM的输出作为最终网络的输出。当然CNN和LSTM的参数是沿着时间共享的。然后CNN和LSTM的基础知识我就不再详细介绍了。
训练细节
文章的LRCNs网络使用端到端的训练方法,输入为RGB和光流两种模式,损失为所有时刻损失的和。输入光流时,将光流的数值归一化到[-128,128],第三个通道的值为x分量和y分量的合成光流的幅值。输入的视频长度为16帧,网络的最终预测结果是所有时刻预测结果的平均。
实验结果
在UCF101上的实验结果
首先文章在ucf101数据集上做了相关的实验,其中的single frame对比方法表示对于输入视频,使用2DCNN对每一帧进行分类,最后融合的方法。对比实验结果如下表所示:
可以看到LRCNs网络的结果在RGB输入和光流输入下都优于基于单帧CNN方法。因为单模式输入下光流的效果更好,所以最后late fusion时光流的结果占比更大可以得到更好的效果。
哪些行为更加依赖时序建模?哪些不依赖呢?
文章又将 single frame的方法作为了baseline,实验了如果使用LRCNs的网络各种行为类别的准确率的变化,如下表所示:
左侧是效果提升的行为,右侧是效果降低的行为,可以看到提升的强度远大于降低的强度。我大致看了一下,single frame方法效果好的类别一般motion动作不易区分,而LRCNs表现好的行为要么1.动作行为持续时间较长,比如一些需要助跑的行为,需要长时行为推理,要么2.要么静态appearance非常容易和其他行为混淆。
分析一下就可以发现single frame的方法因为是使用CNN作用于每一帧,所以完全没有考虑到帧间的时序信息,从而视频每一帧的appearance特征决定了最终的分类结果,从而那些motion动作不易区分而appearance易区分的行为的分类准确率更高。而LRCNs网络使用了LSTM,所以会考虑视频中的运动信息,所以那些需要使用时间推理的行为可以得到更高的准确率(所以后来有人使用conv-lstm来弥补这个缺点)。
哪些行为更适合RGB输入?哪些更适合光流输入呢?
LRCNs网络可以输入RGB和光流两种模式,那么哪些行为更适合RGB输入,哪些行为更适合光流输入呢?文章同样对此做了相关实验,如下表所示:
表中
Δ
\Delta
Δ 为正,表示该种行为在光流的输入模式下效果更好,文章认为如果视频帧中包含着目标,并且目标是行为类别的强相关因素(即只看到这个目标就很容易分类视频)那么使用RGB输入的效果更好。如果视频帧中不包含目标,或者包含的目标不具有典型性(包含着common的目标,不易和其他行为类别区分),那么使用光流作为输入的效果更好。(所以还是不同的行为对appearance和motion的敏感度不同)。