视频理解论文串讲(上)【论文精读】
我们研究了多种扩展CNN在时域上的连接性的方法,以利用局部的时空信息,并建议采用多分辨率、凹陷的架构作为加速训练的一种有希望的方式。
在图像领域积极成果的鼓舞下,我们研究了CNN在大规模视频分类中的表现,在这种情况下,网络不仅可以获得单个静态图像中的外观信息,还可以获得其复杂的时间演变。在这种情况下,扩展和应用CNN有几个挑战。
视频分类的标准方法包括三个主要阶段。首先,描述视频区域的局部视觉特征被密集地提取出来或在一组稀疏的兴趣点上提取。接下来,这些特征被组合成一个固定大小的视频级描述。最后,训练一个分类器(如SVM),以区分感兴趣的视觉类别。
与图像数据领域相比,在视频分类中应用CNN的工作相对较少。由于CNN在图像领域的所有成功应用都有大量的训练集,我们推测这部分是由于缺乏大规模的视频分类基准。我们的模型是在完全监督下进行端到端的训练。
我们将每个视频视为一袋短的、固定大小的片段。由于每个片段在时间上包含几个连续的帧,我们可以在时间维度上扩展网络的连接性,以学习空间-时间特征。对于扩展连接的精确细节有多种选择,我们在下面描述了三种广泛的连接模式类别(早期融合、晚期融合和缓慢融合)。
红色、绿色和蓝色方框分别表示卷积层、归一化和池化层。在慢速融合模型中,所描述的列共享参数。
输入帧被送入两个独立的处理流:一个是模拟低分辨率图像的上下文流,一个是处理高分辨率中心作物 (因为感兴趣的对象往往占据中心区域) 的凹陷流。这两个流由交替的卷积(红色)、归一化(绿色)和池化(蓝色)层组成。两个数据流都汇聚到两个完全连接层(黄色)。
未来的工作中,我们希望在数据集中纳入更广泛的类别,以获得更强大和通用的特征,研究明确推理摄像机运动的方法,并探索循环神经网络作为一种更强大的技术,将片段级预测结合到全局视频级预测中。
我们研究了用于视频中动作识别的辨别性训练的深度卷积网络(ConvNets)的架构。我们面临的挑战是如何从静止帧和帧之间的运动中捕捉到互补的外观信息。
我们的贡献有三个方面。首先,我们提出了一个包含空间和时间网络的双流ConvNet架构。其次,我们证明,尽管训练数据有限,但在多帧密集光流上训练的ConvNet能够达到非常好的性能。最后,我们展示了多任务学习,应用于两个不同的动作分类数据集,可以用来增加训练数据量并提高两者的性能。
与静态图像分类相比,视频的时间成分为识别提供了额外的(重要的)线索,因为一些动作可以根据运动信息被可靠地识别。此外,视频为单一图像(视频帧)分类提供了自然的数据增强(抖动)。
我们研究了一种基于两个独立识别流(空间和时间)的不同架构,然后通过后期融合将其结合起来。空间流从静止的视频帧中进行动作识别,而时间流则被训练为从密集的光流形式的运动中识别动作。
视频可以自然地被分解为空间和时间部分。空间部分,以单个帧的形式出现,带有视频中描述的场景和物体的信息。时间部分,以跨帧运动的形式,表达了观察者(摄像机)和物体的运动。
一个ConvNet模型,它构成了我们架构的时间识别流,模型的输入是由几个连续帧之间的光流位移场堆叠而成。这种输入明确地描述了视频帧之间的运动,这使得识别更容易。
光流的叠加:
密集的光流可以被看作是一组连续帧t和t+1之间的位移矢量场dt,矢量场的水平和垂直分量,d x t和d y t,可以被看作是图像通道,非常适合使用卷积网络进行识别。为了表示一连串帧的运动,我们将L个连续帧的流动通道堆叠在一起,形成总共2L个输入通道。
轨迹叠加:
左图:光流堆叠(1)在多帧中的同一位置对位移向量d进行采样。右图:轨迹堆叠(2)对轨迹上的向量进行采样。帧和相应的位移向量以相同的颜色显示。
涨点方法:(需要在代码中体现)
训练采用了很多技巧:裁剪、翻转、RGB抖动、多GPU加速、光流图被缩放到[0,255]并保存为JPEG格式。
在使用迁移学习,如果对所有网络做微调,则Dropout率设大一点可以防止过拟合。如果只做最后一层的参数更新的话,Dropout率应设置小一点,因为只有最后一层参数参与学习。
(i) 时间和空间识别流是互补的,因为它们的融合对两者都有明显的提高(比时间网提高6%,比空间网提高14%);
(ii) 基于SVM的软分数融合优于平均法的融合;
(iii) 在ConvNet融合的情况下,使用双向流没有好处;
(iv) 使用多任务学习训练的时间ConvNet,单独和与空间网融合时都表现最好。
我们提出了两种能够处理全长视频的方法。第一种方法探索了各种卷积时间特征池架构,研究了在为这项任务调整CNN时需要做出的各种设计选择。第二种提议的方法明确地将视频建模为一个有序的帧序列。为此,我们采用了一个循环神经网络,该网络使用长短期记忆(LSTM)单元,这些单元与底层CNN的输出相连。
我们评估了两种能够满足这一要求的方法:特征集合和递归神经网络。特征汇集网络使用CNN独立处理每一帧,然后使用各种汇集层结合帧级信息。我们采用的递归神经网络架构源自长短时记忆(LSTM)单元,并使用记忆单元来存储、修改和访问内部状态,使其能够发现长范围的时间关系。与特征池一样,LSTM网络在帧级CNN激活的基础上运行,可以学习如何随着时间的推移整合信息。通过通过时间共享参数,这两种架构都能够保持恒定的参数数量,同时捕捉到视频的时间演变的全局描述。
为了在保持低计算量的同时学习视频的全局描述,我们建议每秒钟只处理一帧。为了弥补隐性运动信息的丢失,我们以相邻帧计算的光流图像的形式纳入显性运动信息。光流使我们能够保留运动信息的好处(通常通过高帧率采样实现),同时仍然捕捉到全局视频信息。
我们的贡献可以概括为以下几点:
我们没有试图在小时间段内学习空间-时间特征,而是考虑了几种不同的方法,在视频的长时间内(几十秒)聚集强大的CNN图像特征,包括特征池和递归神经网络。由于梯度消失和爆炸的问题,标准的递归网络在长序列的学习上有困难。相比之下,长短时记忆(LSTM)使用记忆单元来存储、修改和访问内部状态,使其能够更好地发现长距离的时间关系。
不同的特征池架构。堆叠的卷积层用 "C "表示。蓝色、绿色、黄色和橙色的矩形分别代表最大池、时域卷积层、全连接层和softmax层。
与产生顺序不变的表征的Max-pooling相比,我们建议使用一个循环神经网络来明确考虑CNN激活的序列。由于视频包含动态内容,帧与帧之间的变化可能编码了额外的信息,这对做出更准确的预测很有帮助。
这里作者介绍了LSTM的模型,但现在LSTM使用的很少。
深度视频LSTM在每个连续的视频帧中接受最后一个CNN层的输出的输入。CNN输出通过时间向前处理,并通过五层堆叠的LSTM向上处理。一个softmax层预测每个时间步骤的类别。卷积网络(粉色)和softmax分类器(橙色)的参数在不同的时间步骤中共享。
与以前在几秒钟的视频上进行训练的工作不同,我们的网络利用了长达两分钟的视频(120帧)来获得最佳的分类性能。如果对速度有要求,我们的方法可以在一次拍摄中处理整个视频。通过将较小的网络扩展到逐渐变大的网络并进行微调,可以进行训练。由此产生的网络在Sports-1M和UCF-101基准上都达到了最先进的性能,支持了学习应该在整个视频而不是短片段中进行的想法。
我们也表明,使用光流并不总是有帮助的,特别是如果视频没有被预处理,如Sports-1M数据集的情况。为了在这种情况下利用光流的优势,有必要采用更复杂的序列处理架构,如LSTM。此外,在图像帧上使用LSTM和光流,可以产生Sports-1M基准的最高公开性能指标。
我们研究了一些在空间和时间上融合ConvNet的方法,有如下的:
(i)利用卷积代替softmax可以节约参数,不损失精度
(ii)在最后一个卷积层融合这种网络的空间性比早期更好,另外在类预测层融合可以提高准确性
(iii)在时空邻域汇集抽象的卷积特征进一步提高性能
利用卷积网络解决动作识别问题的效果不如卷积网络在其他任务中的表现。可能原因是数据集太小而且噪声很大,而且卷积网络专注与空间信息,无法充分利用时间信息。
双流结构(或以前的任何方法)无法利用视频中两个非常重要的线索进行动作识别。(i) 识别什么东西在哪里移动,即把外观识别(空间线索)与光流识别(时间线索)登记在一起;
(ii) 这些线索如何随时间演变。
C3D在有限时间学习3D卷积,卷积核为3×3×3。另一种方法是将三维卷积拆分成二维空间卷积与一维时间卷积。
截止到目前为止(2016年),双流网络是深度学习应用于动作识别的最有效方法。
作者的结构构建在双流网络上。该网络有两个主要缺点:
作者列举了一系列融合空间层的方式:Sum fusion,Max fusion,Concatenation fusion,Conv fusion,Bilinear fusion
在实验部分,我们评估和比较了这些可能的融合方法在分类准确性方面的表现
左边的例子显示了在第四个卷积层之后的融合。从融合的角度看,只使用了一个网络塔。右图显示了在两层(conv5之后和fc8之后)的融合,其中两个网络塔都被保留,一个是混合时空网,一个是纯粹的空间网。
融合时间信息的不同方式。( a ) 二维汇集忽略了时间,只是在空间邻域上进行汇集,单独缩小每个时间样本的特征图的大小。( b ) 三维汇集从局部时空邻域汇集,首先跨时间堆叠特征图,然后收缩这个时空立方体。( c ) 三维卷积+三维汇集在三维汇集之前,还用一个跨越特征通道、空间和时间的融合核进行了卷积。
将特征图xt与时间t相结合,有3D Pooling,3D Conv + Pooling
在细的时间尺度上捕捉短期信息,在粗的时间尺度上捕捉时间相邻的输入。
对于表中所示的所有融合方法,与ReLU5相比,FC层的融合导致了较低的性能,方法的排序与表1相同,除了双线性融合不可能在FC层实现。在所有FC层中,FC8比FC7和FC6表现更好,Conv融合为85.9%,其次是Sum融合为85.1%。我们认为ReLU5表现稍好的原因是在这一层,外观和运动之间的空间对应关系被融合了,这在FC层就已经被折叠。
在ReLU5或ReLU5+FC8融合时,性能最好(但涉及的参数几乎是两倍)。
(1)相比在最后的Softmax层融合,在中间的卷积层融合既能够提升性能,又不会增加太多参数(见融合方式)
(2)在最后一个卷积层融合(relu5)的性能是最好的,如果再配合最后一个全连接层融合(fc8),性能还能再提升一点(见融合位置)
(3)在融合后使用pool3d代替代替pool2d能更进一步地提高性能(见3D Conv和3D Pooling)
作者主要想通过较少的训练样本,高效的训练出用于动作识别的ConvNet,主要贡献有两点:
在动作识别中,有两个关键和互补的方面:外观和动态。识别系统的性能在很大程度上取决于它是否能够从中提取和利用相关信息。然而,由于许多复杂因素,如比例变化、视点变化和相机运动,提取此类信息并非易事。
主流ConvNet框架通常侧重于外观和短期运动,因此缺乏整合长期时间结构的能力。
ConvNets在基于视频的动作识别中的应用受到两个主要障碍的阻碍。首先,长距离的时间结构在理解动作视频的动态方面起着重要作用。
然而,主流的ConvNet框架通常专注于表象和短期运动,因此缺乏纳入长程时间结构的能力。其次,在实践中,训练深度ConvNets需要大量的训练样本以达到最佳性能。但数据集有限。因此,卷积网络面临着过拟合的风险。
时空段网络(TSN),这个框架用稀疏的采样方案在一个长的视频序列上提取短的片段,其中的样本沿着时间维度均匀分布。在此基础上,采用分段式结构来汇总采样片段的信息。在这个意义上,时间段网络能够对整个视频的长距离时间结构进行建模。此外,这种稀疏的抽样策略以极低的成本保留了相关的信息,从而在合理的时间和计算资源预算下实现了长视频序列的端到端学习。
探索了一些好的做法来克服上述因训练样本数量有限而造成的困难,包括:1)跨模态预训练;2)正则化;3)增强数据增量。
作者认为,在训练视频分类模型时,连续的帧会造成冗余,所以密集采样的策略是没必要的,所以作者采用了稀疏采样的策略。
主要有两种做法:
具体来说,我们提出的时间段网络框架,旨在利用整个视频的视觉信息来进行视频级预测,也是由空间流ConvNets和时间流ConvNets组成。
时间段网络不是在单帧或帧堆上工作,而是在整个视频中稀疏采样的短片段序列上工作。
一个输入视频被分成K个片段,并从每个片段中随机选择一个简短的片段。不同片段的等级分数通过片段共识函数进行融合,产生片段共识,这是一个视频级别的预测。然后,来自所有模式的预测被融合以产生最终的预测。所有片段的ConvNets共享参数。
模型架构:之前的two-stream模型采用的是相对浅的模型结构,作者选择BN-Inception这种比较深的模型结构来当做building block,因为该模型在速度和准确率上都不错。
模型输入:之前two-stream模型采用RGB作为spatial stream的输入,采用光流作为temporal stream的输入。作者研究了额外的两种模态,RGB difference和warped光流。
图2. 四种类型的输入模式的例子。RGB图像、RGB差分、光流场(x,y方向)和扭曲的光流场(x,y方向)
。
(1)跨模态预训练和partial BN with dropout实验:
(2)新模态特征:RGB Difference和warped optical flow fields实验
RGB Difference和RGB特征有一定的互补性
结合RGB和光流特征,能取得非常好的效果
"BN-Inception+TSN "指的是在性能最好的BN-Inception架构上应用时间段网络框架的设置。
UCF101数据集上的拟议方法的成分分析。从左到右,我们一个一个地添加组件。BN-Inception被用作ConvNet架构
基于时间段网络(TSN)的方法与其他最先进的方法的比较。分别介绍了使用两种输入模式(RGB+Flow)和三种输入模式(RGB+Flow+Warped Flow)的结果。
作者提出了Temporal Segment Network,用于建模视频级模型,捕获长时间的运动特征。通过稀疏采样的分段结构以及各种数据增强策略,该模型在HMDB51和UCF101上取得了非常好的效果。