行为识别之——Two-Stream Convolutional Networks

Two-Stream Convolutional Networks for Action Recognition in Videos

论文地址:http://de.arxiv.org/pdf/1406.2199

       在目前的研究中行为识别的方法比较多,主要可以分为两类,基于传统的方法和基于深度学习的方法。这两周我读了一篇行为识别论文《Two-Stream Convolutional Networks for Action Recognition in Videos》,这篇论文发表在是NIPS 2014顶会上,比较经典,使用双流法(two stream网络)来做action recognition in video。该文章的主要贡献有三个:(1).提出了two-stream的卷积网络结构,由时间网络和空间网络组成;(2).证明了在多帧密集光流上训练的卷积网络,在有限的数据集上仍然能够获得好的性能;(3).使用多任务学习,应用了两种不同的动作分类的数据集,增加了训练集的数据量,并提高了性能。

       论文主要按6个部分来讲解双流网络,那么本报告也将从6个部分对其进行阐述,对于每一部分,我会用自己的话进行概括和总结。

        对于引言部分(Introduction),作者主要对行为识别的传统方法进行了回顾和对构建双流网络的思想进行了简单阐述。双流网络网络结构源自于人类视觉结构包含两条路径相关,不过作者并没进一步研究这种联系。在该部分作者也对当前行为识别的方法进行了阐述,一类是对浅高维度的局部时空特征进行编码,相关算法有基于检测稀疏时空兴趣点的算法,基于密集的局部特征采样算法,基于密集轨迹点的算法;还有一类算法是试图开发一种深度结构来进行行为识别,在这里算法的大多数网络的输入是堆叠连续的视频帧,相关模型有HMAX。还有基于使用非监督方法比如RMS和ISA来学习时间和空间特征,之后会在后面网络后面接入判别模型作为分类。对于这部分作者其实是通过和目前方法对比,来说明双流网络表现好。最后,作者也说明了Temporal Stream ConvNet对多帧的密集光学流进行操作,光流的计算通常在能量最小化框架中通过求解位移场来计算。

行为识别之——Two-Stream Convolutional Networks_第1张图片

                                                                                    图1. 双流网络结构

         第二部分作者介绍了双流网络的结构,如图1,网络由两部分组成,一部分是Spatial stream ConvNet,另一部分是Temporal stream ConvNet。首先介绍Spatial stream ConvNet,该网络对视频的的单个帧进行操作,从静止的图片中进行特征的提取。对于Optical flow ConvNets,其输入是几个连续帧之间堆叠光流位移场,该输入描述了视频帧之间的运动信息。作者在文章中也介绍

行为识别之——Two-Stream Convolutional Networks_第2张图片

                                                                                  图2. 光流图

了基于光流输入的几种变种,如图2,(a),(b)表示一对连续的视频帧,在移动的手周围用青色矩形勾勒出区域。(c).表示在轮廓区域

行为识别之——Two-Stream Convolutional Networks_第3张图片

                                                                               图3. 多帧光流计算

密集的光流。(d).位移矢量场的水平分量dx。(e).表示位移矢量场的垂直分量dy。现在介绍一下光流堆叠(Optical flow stacking),密集光学流可以看作成对连续帧t和t + 1之间的一组位移矢量场dt。用dt(u,v)表示帧t中点(u,v)的位移矢量,表示它将点移动到下一帧t+1中的相应点。如图3左边图所示,矢量场的水平和垂直分量dt(x)和dt(y)可以看作图像通道。为了表示一系列帧之间的运

                                                                        图4. 帧τ中点(u,v)位移矢量分量

动,将L个连续帧的流通道dt(xy )叠加在一起,形成总共2L个输入通道。图4为通过光流堆叠卷积网络的输入。接下来,介绍一下轨迹堆叠(Trajectory stacking),其沿着运动轨迹采样的光流,而光流堆叠在几个帧的相同位置采样的光学流动。如图5,pk是沿

行为识别之——Two-Stream Convolutional Networks_第4张图片

                                                                    图5. 堆叠光流计算

着轨迹的第k个点,它从帧τ中的位置(u,v)开始,并由图5中最下面的递归关系定义。文中提到了双向光流(Bi-directional optical flow),光流堆叠和轨迹堆叠都是处理前向光流,即帧t的位移场dt定义为其在下一帧t + 1中的像素的位置,而双向光流指的是通过在帧τ-π/ L和τ之间堆叠L / 2前向流并且在帧τ-L / 2和τ之间堆叠L / 2后向流来构造输入。最后是Mean flow subtraction,对网络输入进行零中心化可以使模型更好地纠正非线性。对于一对帧,它们之间的光流动可以由特定位移支配,比如相机的移动,在本论文中作者从每个位移场中减去其平均向量。在这部分中,作者也阐述了Temporal ConvNet架构与先前表示的关系,表明了

行为识别之——Two-Stream Convolutional Networks_第5张图片

                                                             图6. 第一层卷积核在10个堆叠光流学习结果

temporal network特征可以概括了手工设计特征。最后作者对卷积核进行了可视化操作,如图6。

       第四部分为多任务学习(Multi-tasklearning),这主要针对与temporal ConvNet,由于现有的视频行为数据集相对是少的。训练在UCF-101和HMDB-51数据集上。为了防止过拟合,考虑将多个数据集进行合并成一个,由于不同数据集类别上由交叉,所以一种做法是增加不在原始图像类别中的图片,然而这需要手动进行。而组合多个数据集的更有原则的方法是基于多任务学习,其目的是学习(视频)的表示,它不仅适用于所关心的任务,还适用于其他任务。额外的任务充当一个regulariser,并允许利用额外的训练数据。对于多任务学习,具体实现,论文中也给出了做法,修改ConvNet架构,使其在最后一个全连接层的顶部有两个softmax分类层:一个softmax层计算HMDB-51分类分数,另一个是UCF-101分数。每个层都由有自己的损失函数,该操作仅对来自相应数据集的视频进行操作。整体训练损失计算为各个任务的损失之和,并且可以通过反向传播更新网络参数。

       第五部分为实现细节,这一部分介绍了网络的配置,对于时间和空间网络配置如图1所示,所有隐藏层激活函数都是用RELU,最大池化的核大小为3X3,步长为2,使用了局部响应归一化,空间和时间ConvNet配置之间的唯一区别是后者移除了第二个规范化层以减少内存消耗。对于具体的训练,使用mini-batch stochastic gradient descent with momentum (set to 0.9),在每次迭代中,通过对256个训练视频(均匀地跨越类)进行采样来构建小批量的256个样本,从每个训练视频中随机选择单个帧。在Spatial Net训练中,从所选择的帧中随机裁剪224×224子图像; 然后它经历随机水平移动和RGB抖动。视频会事先重新缩放,因此帧的最小边等于256。从整个帧中采样子图像,不仅仅是中心采样。在temporal net training时候输入是经过随机裁剪和翻转固定尺寸的224×224×2L的volume。学习率初始设置为0.01,然后根据固定的时间进行降低,所有固定时间内对所有训练集保持相同。也就是说,当从头开始训练ConvNet时,学习率在50K迭代后变为10-3,然后在70K迭代后变为10-4,并且在80K iterations之后停止训练。在对网络进行微调时,在14K iterations之后,学习率变化为10-3,并且在20K迭代后训练停止。在测试阶段,给定视频,采样固定数量的帧(论文中设定25),它们之间具有相等的时间间隔。然后,从每个帧中通过裁剪和移动四个角和帧的中心来获得10个ConvNet输入。通过对采样帧和对其进行裁剪的分数求平均来获得整个视频的类分数。

行为识别之——Two-Stream Convolutional Networks_第6张图片

                                                    图7. 时间和空间网络在UCR-101的split1数据集上的准确率

       第六部分为评估,图7为时间和空间网络在UCR-101的split1数据集上的准确率。图8说明了多任务学习是最好的,尽可能地利用所有可用的训练数据进行训练。图9可以得出:(i)时间和空间识别流是互补的,因为它们的融合在两者上都显着改善; (ii)基于SVM的softmax分数融合优于融合平均; (iii)在ConvNet融合的情况下,使用。双向流动并不是有益的; (iv)使用多任务学

行为识别之——Two-Stream Convolutional Networks_第7张图片

                                                 图8. 时间网络准确度(是否进行多任务学习)

行为识别之——Two-Stream Convolutional Networks_第8张图片

                                                                    图9. 两个网络融合分类准确率

习训练的时间ConvNet在单独和与空间网融合时表现最佳。图10,说明了从表4可以看出单独的时空网络都大大优于其他网络。两个网络的结合进一步推动了结果。

行为识别之——Two-Stream Convolutional Networks_第9张图片

                                                                              图10. 与当前最优模型对比

你可能感兴趣的:(深度学习,行为识别,计算机视觉,行为识别,双流卷积网络)