论文:《Two-Stream Convolutional Networks for Action Recognition in Videos》
论文: Quo Vadis,Action Recognition? A New Model and the Kinetics Dataset
1.1 Two-Stream网络结构
每个流都有一个CNN网络,其尾部接一个softmax输出概率分布值,最后对两个网络的softmax值进行融合。考虑两种融合方法:平均average和使用SVM
- 空间流卷积网络
- 输入是单个帧画面(静态图片),空间流从静止的视频帧中执行动作识别.主要学习场景信息。因为是处理静态图片,所以可以使用预训练的模型来做,更容易优化。最后根据网络输出的特征得出一个logist。
- 时间流卷积网络
- 以多帧图像的的光流(是从video中提取的特征信息)作为输入,通过多帧画面的光流位移来获取画面中物体的运动信息,两部分在经过softmax后进行late fusion。时间流则经过训练,以密集的光流的形式从运动中识别动作。
1.2什么是光流
光流(optical flow)是空间运动物体在观察成像平面上的像素运动的瞬时速度。
光流法是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。
通常将二维图像平面特定坐标点上的灰度瞬时变化率定义为光流矢量。
一言以概之:所谓光流就是瞬时速率,在时间间隔很小(比如视频的连续前后两帧之间)时,也等同于目标点的位移
1.3 光流估计方法
1.光流堆叠(Optical flow stacking):在同样的点的位置上去取光流(图左)
2.轨迹堆叠(Trajectory stacking):利用光流的轨迹信息(图右)
2.1 什么是I3D?
- I3D【Inflated 3D ConvNet】——膨胀卷积网络用于行为识别
- CNN+LSTM是一种方法,其中CNN用于提取视频中关键帧的特征,而LSTM用于对这些特征进行时序建模。首先,视频中的关键帧被提取出来,得到K张图片。然后,这些图片经过CNN网络,得到它们的特征表示。接下来,这些特征被输入到LSTM网络中,用于对不同时间戳上的图片特征进行融合,从而得到整个视频的融合特征。最后,通过一个全连接层将LSTM最终时刻的特征映射到分类结果。
- 3D Conv是另一种方法,它直接将视频帧输入到3D CNN网络中进行时空学习。与传统的2D卷积网络不同,3D卷积网络的卷积核具有时间维度,因此可以同时学习空间和时序信息(运动信息)。然而,由于增加了一个维度,模型的参数量很大,训练困难,并且效果也不理想。
- Two stream(late fusion)是一种改进的方法。它使用光流来获取视频中的时序信息(运动信息),将其与2D网络结合起来。通过利用光流提供的物体运动信息,模型的性能得到了显著提升。
- 3D Fused Two stream(early fusion)是对双流网络的改进。在传统的双流网络中,两个网络的输出仅仅进行简单的加权平均处理,效果不够理想。因此,将两个网络替换为一个较小的3D网络,并进一步融合特征。实验证明,先进行2D卷积网络训练,再进行3D卷积网络融合的效果更好。
- Two stream 3D ConvNet是I3D的一种结构扩展方式。I3D结合了3D网络和双流网络的优势。由于单纯使用3D网络效果不佳,通过添加光流信息可以显著提高模型性能。因此,可以将I3D视为Two stream与3D Conv的结合。在I3D中,两个分支网络都是3D网络,不需要额外添加一个3D网络来进行融合,直接通过加权平均得到最终结果。
2.2 I3D实现细节
- In flated Inception-V1架构(左)和其详细的初始子模块(右)
2.3实验结果对比
- I3D在所有数据集上的表现最好