目录
前言
这一篇论文是动作检测中较早的一篇,阅读这篇论文有助于近几年最新论文的阅读。
如何在静态的图像和动态过程之间捕获一种连接性的信息,让两者能够很好的联系起来?这篇论文就针对这样的问题,提出了很好的方案,它介绍了一种双流卷积网络,来实现视频中的行为识别。
1.论文亮点
1.1 双流卷积网络
在过去的行为处理中,我们会把重点放在空间信息上,所谓空间信息就是独立于这个帧的表面信息(也就是视频中的物体和场景信息)。而时间信息,就是帧间的光流,它会携带帧之间的运动信息。
论文就提出了空间网络和时间网络并存的双流卷积网络结构,它是利用空间网络去处理静态信息,利用时间网络去处理动态信息。两者结合起来可以大大提高行为识别的准确率。
论文还提出了一个很好的结论:在多帧密集光流训练的卷积网络中,即使在训练数据有限的情况下,也能实现非常好的效果。这里所指的多帧密集光流是时间网络的载体,它是用来表征时序信息的。
在时间网络中,我们是通过对光流的处理,来对动态的过程进行表达。
1.2 多任务学习
所谓多任务学习概念,即将不同种类的分类数据进行融合训练,论文中采用UCF-101和HMDB-51进行融合训练。多任务一方面可以提高它的数据量,也可以改善它的训练效果,来降低过拟合。
2. 双流卷积结构
- 首先对输入的视频进行分流,分为空间流卷积和时间流卷积,在空间流卷积中可以看到,输入的是单个的帧,在时间流卷积中可以看到它是多帧的光流。
- 空间流卷积和时间流卷积有很大的相似性,首先进行相似的卷积操作,卷积具有局部连接和权值共享的特点,能够大大降低训练时间,有效提取图像信息。
- 经过卷积后,后面可以连接一个归一化层,归一化就是将这些数据调整到同一个数量级,来加快梯度下降来求最优解的速度。
- 归一化之后会连接池化层,这里采用的池化法是最大池化法,对这个区域中最主要的信息进行提取。这样可以降低输出的大小,也可以降低过拟合。
- 在经过五个卷积层之后,会连接两个全连接层,全连接层主要对前面的连接进行伸展和扁平化,
- 第一个全连接层就是将不同大小的信息映射到更大的空间,来增加这个模型的表征泛化能力
- 第二个全连接层是为了更好的匹配网络的输出尺度,为维度变化做准备,也就是得到我们想输出的形式
- 两个卷积层的最后一层都是softmax层,主要对输出进行分类,最终将他们的分类的分数进行融合。
分数的融合有2种方法:
- 平均法:将两者的分数进行平均,最后得到结果。
- 线性SVM(支持向量机法)
3.空间网络结构
空间网络是对单个帧进行操作,即在静态图像中对动作进行识别。空间网络本身就是一种图像分类结构。可以在大型的图像分类数据集上,对这个网络进行预训练,来提高训练效果。
4.时间网络
- 光流是时间网络的载体。
- 图a、图b就是一对连续的视频帧,动作是一个人想要去拿东西的动作,在图中用矩形框勾画了出来。
- 图c是动作动作轮廓的表征,图中有很多矢量,这些矢量组成的区域叫做密集光流(光流位移场)。光流位移场分为水平分量和垂直分量。
- 图d 表示光流位移场的水平分量
- 图e 表示光流位移场的垂直分量
- 我们所说的时间网络就是对应多个连续视频帧的光流位移场来形成的
5. 光流估计方法
- 光流堆叠(Optical flow stacking):将多个视频帧的光流通道叠加在一起 ,如上图左边,就是光流堆叠的过程,图中不同帧的相同位置有3个光流。
- 轨迹堆叠(Trajectory stacking):如上图右边,沿着运动轨迹产生的光流
- 双向光流(Bi-directional optical flow):在一个帧的前向区间和一个帧的后向区间,堆叠一定数量的光流,然后来达到双向传递的效果。
- 平均流减法(Mean flow subtraction):对网络的输入进行零中心化(或者说是 光流可以人为操作进行位移调整),在论文中,是对每一个位移场距减去一个平均向量来实现平均流减法,这样做主要是纠正模型的非线性的问题
6.实现细节
6.1 网络配置
- 网络中所有的隐藏层都是采用relu激活函数
- 空间卷积网络和时间卷积网络极其相似,但是在时间卷积网络中的第二个卷积层它并没有采用归一化,原因是减少内存的消耗。
6.2 训练过程
- 空间卷积网络和时间卷积网络采用带有动量的小批量随机梯度下降来学习网络的权重,在每一次迭代当中,对256个训练视频进行采样,构建一个256个样品的小批量,然后从每个小批量中随机选择单个帧
- 在空间网络的训练中从所选的帧中随机采点出224x224的子图像,然后经历随机的水平翻转和RGB抖动
- 在时间网络的训练中,选定训练帧,计算它的光流体积,从这个体积中选择固定大小的输入,然后对它进行固定的采点和翻转
- 对于学习率最开始设置为 1 0 − 2 10^{-2} 10−2,后续会根据固定的时间表进行降低,在训练过程中,当训练50k后,学习率变为 1 0 − 3 10^{-3} 10−3,当训练70k后,学习率变为 1 0 − 4 10^{-4} 10−4,在80k后就会停止训练
6.3 测试过程
给定一个视频,采样固定数量的帧,这些帧有相同的时间间隔,每一个帧通过裁剪和翻转帧的四个角和中心,来获得10个卷积输入,最后通过对这些采样帧的平均,来获得整个视频的分类分数。
6.4 预训练
在ILSVRC-2012数据集上进行预训练,如果不进行预训练,很容易造成网络的过拟合和网络的不收敛,所以预训练可以大大减少这方面的影响。
6.5 光流
使用opencv里面现有的图形处理器来实现的
6.6 多GPU的训练
通过公开的Caffe工具箱来实现,包括在单个系统中安装了多个图形处理器的并行训练,用数据的并行性,就可以将每个随机梯度下降批处理,拆分到几个图形处理器当中,来提高训练速度,减少训练时长。
7. 评估
- 上图表示时间网络和空间网络在UCF-101数据集上的准确率。
- 在左边的空间网络中,经过了预训练和微调的,准确率是最高的。另外选择合适的丢失率可以提高准确率。
- 在右边的时间网络中,当选择光流堆叠这个方法,准确度是比较高的
- 从上图可以看出,最后一行,多任务学习的准确度是最高的,就表明我们要尽可能利用的数据进行训练,这样可以提高泛化能力,提高训练准确度。
- 上图展示了空间网络和时间网络相融合,在训练准确度上大大提升了,在最后一行,当采用SVM的融合方法进行训练,训练准确度达到最高。
- 第一行采用双向光流估计方法。
- 上图占了是双流卷积网络与其它网络进行对比分析
8. 结论
-
论文提出基于神经网络的双流卷积网络的视频动作识别方法
-
在光流基础上训练网络要比在原始帧上训练好得多,因为光流是基于恒定性和平滑性进行计算的。
9. 改进方向
- 在时间网络中考虑的光流的轨迹问题,但在空间网络中并没有考虑轨迹这个问题,是否轨迹对训练结果有影响还需要探究。
- 网络并没有处理时间特征和空间特征之间的像素对于关系,最终融合只是基于分类的分数,并没有考虑考虑两者的像素对应关系。
- 双流卷积网络在时间尺度上是有限的,在空间网络上是训练的单个帧,在时间网络上是训练一段时间内相邻光流帧。
参考
行为识别-双流法Two-Stream Convolutional Networks for Action Recognition