08组-《Quo Vadis, Action Recogniti

作者: lclmaopao | 来源:发表于2018-05-18 00:00 被阅读32次

    摘要

    当前动作分类数据集缺乏,很难确定好的视频识别架构。本文介绍了一个叫Kinetics的人类动作视频数据集,该数据集有400个动作类,每个类拥有超过400个来自YouTube上的视频片段。作者分析了当前架构在Kinetics数据集上的动作分类表现,并且展示了在Kinetics上训练后的架构在其他数据集上表现的提升。

    同时,作者介绍了一个新的基于2D ConvNet的I3D模型,该模型将ConvNet的filters和pooling kernels扩展到3D,从而使得它能够从视频中学习到无缝的时空特征提取器,同时可以利用成功的ImageNet架构设计甚至它的参数。最后作者展示了,在Kinetics上预训练的I3D模型在其他动作分类数据集上(UCF-101和HMDB-51)的表现得到了很大的提高。

    1.介绍

    ImageNet竞赛一个意想不到的好处是经过大量数据训练的深度框架也可以应用于其他的任务和领域。而在视频领域里,在一个足够大的数据集上训练一个动作分类网络是否也能够在其他任务或数据集上的表现得到同样的提升是一个开放问题。在本文中,作者将使用新的Kinetics人类动作视频数据集来给出这个问题的答案。

    作者的实验策略是,从文献中重新实现一些具有代表性的神经网络框架,在Kinetics上进行训练,然后在其他数据集上分析迁移行为。结果表明表现总是有提升的,但是提升的程度在不同的框架下明显不同。

    基于上述发现,作者引入了一个称作I3D的新模型,该模型具有在Kinetics上预训练的能力并且可以达到较高的性能,同时该模型将filters和pooling kernels扩展到3D,从而实现了非常深的自然时空分类器。

    在作者的模型对比中,没有考虑类似可视词袋表示的经典方法。但是kinetics数据集是公开可用的,其他人可以进行这种比较。

    2.视频分类模型

    虽然近年来图像分类模型进展迅速,但是在视频分类模型中并没有有特别大的进步。目前有两种主要的视频分类模型,一种是用3D卷积核替换2D卷积核的模型,用视频数据取代了RGB图像数据,另一种是考虑帧与帧之间关联的模型,例如CNN+LSTM。本文中我们三种模型,一种是3D卷积模型(C3D),一种是CNN+LSTM模型,最后一种是结合空域与时域的Two-steam模型。

    这些模型都有不同的网络结构,例如VGG16,ResNet等,并且有不同的初始化参数,本文中默认使用Inception V3网络与在ImageNet上初始化的设定。

    2.1 ConvNet+LSTM模型

    在图像分类方面,CNN高效的性能同样可以用于视频分类领域。从“词袋”模型中受到启发,在视频分类中,可以将每一帧独立的提取特征,然后池化后用于预测整个视频的分类,但在实践中这可能破坏视频的局部结构(比如开门,关门等片段动作)。

    理论上,更加好的方法是递归的添加视频特征到模型,比如LSTM,这样可以获取视频的局部状态与长期特征。在实验中,我们使用LSTM层接入Inception-V1的Pooling层,最后通过全连接层接入损失函数。

    模型使用交叉熵损失函数,在测试过程中,我们从25帧每秒的视频中每5帧抽取1帧,最后测试结果见实验测试部分。

    2.2 3D卷积模型

    3D卷积是2D CNN模型向3D迁移的自然的想法,但是这种模型存在两种问题。一种问题是3D卷积模型因为维度原因,比2D模型有更多的参数,另一种问题是无法使用ImageNet预训练参数初始化模型。但是通过测试,这种模型是测试我们数据集的一种较好的候选模型。

    在本文中,我们实现了一种有8个卷积层,5个池化层,2个全连接层的3D卷积网络,输入使用16帧112x112大小的视频图像,我们在每个池化层与FC层后加入了BN层,并且在较大的显存下用2步长代替了1步长。在K40 GPU上,我们有能力在一个batch内使用15个视频片段进行训练。

    2.3 Two-Stream模型

    LSTM用于特征层虽然可以区分较高维度的视频差异,但是在低层次视频动作中并没有捕捉视频差异的能力,而且在训练中迭代输入视频帧耗费非常多的时间。

    一种非常实际的想法是结合单张RGB视频帧与其附近的视频帧的光流场(视频两帧之前的光流差异)。在追踪X,Y两个方向的光流通道以后,只会产生两倍数量的输入帧,这在测试中非常的高效。

    在最近的研究中,使用3D卷积网络,通过SVM或者全连接层等方法融合原始图像与光流通道的方法可以减少计算光流通道的时间。在我们的视线中,我们使用连续的5帧计算出10帧光流通道,使用Inception-V1的平均池化层提取特征,网络训练初始化使用高斯分布。

    不管是Two-steam模型或者3D two-steam模型,都可以做到端到端训练。

    2.4 新结构:双流I3D卷积网络

    通过这种架构,我们展示了3D卷积网络如何从ImageNet 2D卷积网络的设计和它们的学习参数中获益。我们在这里也采用双流配置,我们会在第四节展示尽管3D卷积网络可以直接从RGB流中学习实践模式,但通过包含光流数据,它们的性能仍然可以得到很大提升。

    2D卷积网络扩展到3D.多年来已经开发出了许多非常成功的图像分类体系结构,其中部分是通过艰苦的实验和错误得来的。我们提出简单地将成功的图像(2D)分类模型转换为3D卷积网络,而不是重复对时空模型的加工。这可以通过将2D结构的所有滤波器和pooling核通过赋予额外的时间维度来膨胀实现。滤波器通常是NxN的方阵,我们将其变为NxNxN的立方体。

    2D滤波器中获得3D滤波器.除了结构以外,我们可能还需要从预训练好的ImageNet模型中提取参数。为此,我们注意到通过将图像重复复制到视频序列中,可以将图像转换为视频。视频上的pooled激活值应该与原始单图像的输入相同,通过这些视频固定点,3D模型可以再ImageNet上隐式预训练。由于是线性的,因此通过沿时间维度重复2D滤波器N次并通过除N来重新缩放,可以实现这一点。这确保了卷积滤波器的响应是相同的。由于视频卷积层在时间上的输出是恒定的,因此点状没线性层和average和max pooling层的输出和与2D情况下一致。[21]中研究了其他的提取方法。

    在空间、时间和网络深度上实现接受域增长.视频定点为如何在时间维度上给pooling操作充气,以及如何设置卷积/pooling的时间步长提供了充分的自由度,而这些正是形成特征感受域大小的主要因素。实际上,所有图像模型对待水平和竖直这两个空间维度是相同的,pooling核与步幅也是相同的。这很自然,并且意味着网络中更深的特征同样受两个维度中越来越远的图像位置的影响。然而,当考虑时间时,对称的接受域不一定是最佳的,这应该取决于帧速率和图像尺寸。如果它相对于空间增长的过快,它可能会混淆不同对象的边缘,从而影响早期特征检测,而如果增长的过慢,则可能无法很好地捕捉场景动态。

    在Inception-v1里,第一个卷积层步长为2,除了平行于初始分支的max-pooling层外,在最后的线性分类器前有四个步长为2的max-pooling层和一个7x7的average-pooling层。在我们的实验中,输入视频以每秒25帧的速率处理;我们发现在前两个max-pooling层中不执行时间pooling是很有效的(在时间上使用1x3x3的核步幅为1),而在所有其他的max-pooling层中都用对称的核与步幅。最后的average-pooling层使用一个2x7x7的核。整个结构如图3所示。我们用64帧片段进行训练,用整个视频进行测试,对时间序列进行平均预测。

    两个3D. 尽管3D ConvNet应该能够直接从RGB输入学习运动特征,但它仍然执行纯前馈计算,而光流算法在某种意义上是经常性的(例如它们对流场进行迭代优化)。也许是由于缺乏这种循环,实验上我们仍然发现拥有双流配置非常有价值,这一点在图2-e中展示了,一个I3D网络接受RGB输入的训练,另一个接受具有优化的平滑流量信息的流输入。我们分别训练了两个网络,并在测试时间内对他们的预测进行了平均。

    2.5实施细节

    除了类C3D 3D卷积网络外我们都使用了在ImageNet上预训练的Inception-V1作为基准网络。对于所有的结构,除了每个网络里最后用于产生类分数的卷积层,我们在每个卷积层后放置了一个批量标准化层和一个ReLU激活函数。

    我们使用了标准的SGD方法进行视频的训练,所有情况下的动量均设置为0.9。32个GPU同步并行使用在了所以模型上,除了由于接受大量输入帧因此需要更多GPU来形成大批量数据的3D卷积网络,这些我们用了64个GPU。我们在Kinetics上训练了110k步的模型,当验证loss达到饱和时,学习率降低了10倍。我们调整了Kinetics验证集上的学习率超参数。我们在UCF-101和HMDB-51上使用于在Kinetics上类似的学习率适应方法对模型训练了5k步,但这次只使用了16个GPU。所有的模型都在TensorFlow上实现。

    众所周知,数据增强对深层结构的性能至关重要。在训练中,我们使用了空间上的随机裁剪-将视频较小的一遍缩放至256像素,然后再随机的裁剪出224x224的片段,并且在时间上选择足够早的起始帧来保证期望的帧数。对于较短的视频,我们会根据输入的需要循环播放几次。在训练时,我们也会对视频进行随机左右翻转。在测试阶段,模型会对整个视频进行卷积获取224x224的结果,并会对预测的结果取平均值。我们简要的尝试了256x256视频的空间卷积测试,但并没有观察到性能的提升。通过在测试阶段考虑左右翻转视频或是在训练阶段进行数据增强可以获得更好的性能。我们将在未来的工作中进一步完成。

    我们通过TV-L1算法计算光流量。

    3. 人类动作视频数据集-Kinetics

    Kinetics是一个关注人类动作的数据集(而不是活动或者事件)。动作类的列表里包括了:单人动作(画画,喝东西,笑,击打),人与人之间的动作(拥抱,亲吻,握手),还有人与物体的动作(打开礼物,修剪草坪,洗碟子)。一些行为是有精细度的,需要时间推理来区分,例如不同类型的游泳。其他动作需要更加强调对象的区分,例如演奏不同类型的管乐器。

    该数据集有400个人类行为类,每个类有400个或更多的剪辑,每个剪辑分别来自一个独特的视频,总共240k个训练视频。剪辑持续10s左右,并且有的是没有修剪的视频。测试集每类有100个剪辑。[16]给出了数据集完整的描述以及它的建立方式。

    4 实验与结论

    4.1 单一数据集

    作者最后对比了前述5个模型在不同数据集上进行训练和测试的结果。

    上图中展示了只利用UCF-101,HMDB-51和Kinetics其中一个数据集进行训练和测试的结果。从中我们可以得出以下结论:

    1、I3D模型在所有数据集上都比其他模型更好,不管是RGB流,光流或者RGB流+光流的版本。这个结论很有意思,因为I3D模型有大量的参数,而UCF-101和HMDB-51的数据量都比较小。这说明了利用ImageNet预训练得到的参数可以扩展应用到3D卷积网络中。

    2、UCF-101数据集上所有模型的表现都优于Kinetics,这说明两个数据集难度不同。而Kinetics数据集上所有模型的表现又基本上都优于HMDB-51,这一方面是由于HMDB-51数据量比较小,另一方面是因为HMDB-51刻意增加了难度,例如在相同的场景中“拔剑”被标记为“击剑”和“练剑”两种不同的动作。

    3、第二点中的排序在所有模型上基本是一致的。

    4、双输入流I3D模型在所有数据集上都取得了最好的效果,但RGB流和光流两个单独版本则在Kinetics和其他数据集上的表现有很大不同。在UCF-101上,光流略好于RGB流;在HMDB-51上,光流远好于RGB流;在Kinetics上,光流远低于RGB流。观察发现Kinetics中有很多的相机运动,导致光流难以得到好的结果。I3D模型好像可以更好的利用光流提供的信息,这可能和采用了更长的时域感受野和更整体性的时域特征有关。我们人眼很难从Kinetics数据集上的光流图像中分辨出动作,所以看起来RGB流中含有更多的可供分辨的信息,然而事实上并不是这样。也许将来的研究可以向上述框架中添加一些运动稳定处理

    上图中显示的是利用Kinetics数据集,从零训练和利用ImageNet预训练的差距。从中可以看出预训练基本在所有情况下都有更好的效果,尤其是在RGB流上。

    4.2 利用Kinetics预训练

    这部分研究了利用Kinetics数据集训练得到的参数的泛化能力。主要有两种考察方式:

    1、固定Kinetics训练得到的特征网络参数,并用它产生UCF-101和HMDB-51上的特征,再用后面两个数据集完成最后的分类训练。

    2、使用Kinetics训练得到的特征网络参数进行初始化,然后利用UCF-101和HMDB-51进行fine-tune以及分类训练。

    此外还对比了只用Kinetics预训练和使用ImageNet+Kinetics预训练的区别。

    从上图中可以看出,所有模型都能从预训练中收益,但I3D和3D模型从中收益最大。甚至只训练最后的分类网络也能为I3D模型带来显著提升。

    对于I3D模型强大的迁移能力,一个可能的解释是采用了64帧视频片段(25帧每秒)进行训练,并在测试时使用所有帧。这使得模型可以更好的捕捉到细粒度的时域特征。换句话说,输入帧数少的模型从Kinetics预训练中收益更少,因为这些视频和ImageNet中的图像没什么区别。I3D优于C3D模型的原因可以解释为更深同时参数更少,使用ImageNet初始化,使用4倍长的视频,使用2倍的分辨率。

    双输入流的I3D模型即使从头开始训练也能达到很好的效果,这可能是由于光流输入效果好,更难过拟合。同时,还可以观察到Kinetics预训练比ImageNet效果好。

    4.3 与目前最好的模型对比

    大多数模型都得到差不多的结果,最好的是ResNet-50 RGB流+光流的模型。

    使用平均准确率MAP衡量,单输入流I3D已经比其他所有结果都更好。双输入流扩大了领先优势。

    使用Kinetics预训练的I3D比之前的C3D模型明显效果好,即使C3D使用了更大的Sports-1M数据集训练再加上IDT。

    4.4 讨论

    对于开头提到的问题:视频邻域的预训练是否有用?显然,使用Kinetics进行预训练会带来显著的好处,就像使用ImageNet对卷积网络进行初始化一样。这表明对于相似任务的数据集是有效的。然而,使用Kinetics预训练是否对视频分割,视频物体检测或者光流计算是否有用仍然需要验证。

    相关文章

      网友评论

        本文标题:08组-《Quo Vadis, Action Recogniti

        本文链接:https://www.haomeiwen.com/subject/nucwdftx.html