[行为识别论文理解]Two-Stream ConvNet
[行为识别论文理解]Two-Stream Convolutional Networks for Action Recognition in Videos
- 摘要:
1. 提出三个贡献: 提出two-stream convnet的网络结构,包括空间卷积网络(spatial network)即时间卷积网络(temporal network)、证明在多帧密集光流的convnet上并在有限数据集下获得更好的性能、将多任务学习应用于两个不同的动作分类数据集,可以增加训练数据的数量,提高两者的性能。
2. 数据集: UCF-101、HMDB-51。
- Two-Stream结构:
视频可以分解为关于空间域和时间域。空间部份已单独的帧形式,描述视频中场景和对象的信息;时间域以帧间运动的形式表示,描述观察者(相机)和物体的运动。
下图为two-stream convnet的网络结构,每一个stream皆采用卷积神经网络(ConvNet),其中softmax的分数进行后期组合。考虑两种组合方法:averaging和训练一个多分类的线性SVM。
Spatial stream ConvNet主要作用于单个独立的帧,图像仍对行为识别组成有有效的结果。我们可以借鉴大型图像识别方法的最新进展,并在大型图像分类数据集(ImageNet Challenge数据集)上对网络进行预训练。
- 光流卷积网络(Optical flow ConvNets):
模型的输入是通过在几个连续的帧之间叠加光流位移场形成的。
1. ConvNet输入配置:
Optical flow stacking. 密集光流可以看作是连续帧t和t+1对之间的一组位移矢量场dt。dt(u,v)我们表示在第t帧中的点(u,v)处的位移矢量,它将该点移动到下一帧t+1中的对应点。向量场的水平和垂直分量dx
t和dy t,可以看到作为图像通道。为了表示穿过一系列帧的运动,我们叠加了流通道dx,Yt的L连续帧以形成总共2L个输入通道。
Trajectory stacking.相较于optical flow在数帧间采样同一个位置,trajectory stacking则采样运动路径。Pk表示运动路径第k-th的点。
双向光流(bi-directional optical flow). 考虑双向光流的一个扩展是,它可以通过计算另一组相反方向的位移场来获得,我们通过叠加帧τ和帧τ+L/2之间的L/2正向流和帧τ-L/2和帧τ之间的L/2反向流来构造输入体积iτ。
平均流减法(mean flow subtraction).输入采用零中心化(zero-centering),为了更好的校正非线性。摄像机运动补偿的重要性已经得到了强调,其中估计了全局运动分量并从稠密流中减去。在本文中,考虑一种更简单的方法:从每个位移场d中减去其平均矢量
结构,上述描述了几种组合光流位移场的方法Iτ ∈ Rw×h×2L,由于Convnet有固定大小的输入,所以从Iτ采样224*224*2L,关于隐藏层大部份和spatial convnet配置相同。
2. 卷积滤波器可视化:
可以看到,一些滤波器计算光流的空间导数,捕捉运动随图像位置的变化,从而推广基于导数的手工描述子(例如mbh)。其他滤波器计算时间导数,捕捉运动随时间的变化。
- 多任务学习(Multi-task learning):
与spatial stream convnet不同(可在ImageNet上预训练),temporal stream convnet必须在视频上训练,主数据集为UCF101、HMDB51。为了减少唾拟合发生,一种更为原则的组合多个数据集的方法是基于多任务学习。附加任务充当正则化器,并允许利用附加的训练数据。对convnet架构进行了修改,使其在最后一个完全连接的层之上有两个softmax分类层:一个softmax层计算hmdb-51分类分数,另一个是ucf-101分数。
Each of the layers is equipped with its own loss function, which operates only on the videos, coming from the respective dataset. The overall training loss is computed as the sum of the.
- 评估:
主办方提供了三个分为训练和测试数据的分档,并通过各分档的平均分类精度来衡量成绩。
Spatail ConvNets.讨论三种情况,(i) training from scratch on UCF-101, (ii) pre-training on ILSVRC-2012 followed by fine-tuning on UCF-101, (iii) keeping the pre-trained network fixed and only training the last (classification) layer.
Temporal ConvNets.由于上表采用training from scratch,所以dropout参数设为0.9,提升泛化能力。
Multi-task learning of temporal ConvNets.由于训练集的大小,所以在UCF101上训练temporal stream convnets更为困难,包括HMDB51。所以采用几种方法增加有效的训练集大小在HMDB上: (i) fine-tuning a temporal network pre-trained on UCF-101; (ii) adding 78 classes from UCF-101, which are manually selected so that there is no intersection between these classes and the native HMDB-51 classes; (iii) using the multi-task formulation to learn a video representation, shared between the UCF-101 and HMDB-51 classification tasks.
Two-stream ConvNets.
A spatial net, pre-trained on ILSVRC, with the last layer trained on UCF or HMDB. The temporal net was trained on UCF and HMDB using multi-task learning, and the input was computed using uni-directional optical flow stacking with mean subtraction.
尽管使用光流作为输入,我们的时间模型并不需要大量的手动模型,因为流是使用基于恒定性和平滑性的一般假设的方法计算的。