Is Space-Time Attention All You Need for Video Understanding?论文学习笔记

本文提出的是一种无卷积的视频分类方法,该方法通过对在空间和时间上二维上的信息应用自注意力机制,从而直接从一系列的帧级patch中学习视频的时空维度的特征。实验使用了“分裂注意机制”,即在每个块上分别应用时间注意和空间注意。与3D卷积网络相比,该模型训练速度更快,它可以实现更高的测试效率(精度下降很小),并且它也可以应用于更长的视频剪辑(超过一分钟)。代码在https://github.com/facebookresearch/TimeSformer

Introduction

过去的几年里,自然语言处理(NLP)领域由于自注意力机制而得到巨大发展,其中的代表就是Transformer模型。而视频理解和NLP有异曲同工之处。首先,视频和句子都是顺序的。此外,句子中对于某个词含义的理解需要联系上下文,而视频片段中的原子动作也需要和视频的其余部分联系起来才能消除歧义。因此,NLP领域的模型理论上也能应用于视频理解上。

本文提出了一个问题,即是否可能通过自注意力机制来代替2D或3D卷积算子来构建一个高性能的无卷积视频架构。文章作者认为这样的设计可能克服卷积模型在视频分析中的一些固有限制。首先,CNN虽然在小型训练集上效果较好,但它的模型架构限制了它的表达能力,这使它在面对更大且数据种类更多的数据集时效果并不佳。与CNN相比,Transformer的限制更少,这使它更适合学习处理大型数据集。其次,卷积核不能对当前信息和超出其感受野的信息之间的关联进行建模,即其只能捕获附近的时空信息。这虽然可以通过扩展感受野来间接解决,但是这在捕获远距离的信息方面的作用仍是有限的。而自注意力机制可以直接通过比较所有时空位置的特征来获得远程信息和当前信息的关系,即能在代价较少的情况下获得远超CNN的感受野。最后,已经有证明Transformer与CNN相比有更快的训练和推理速度,且能再相同计算量下构建有更强学习能力的模型。

基于这些观察结果,作者提出了完全基于自注意力机制的视频处理模型架构。文章将图像处理模型“Vision Transformer”应用于视频,将自注意力机制从图像空间扩展到时空三维体,并命名为TimeSFormer。它将视频每一帧视为一个patch并在结合了位置编码后输入到Transformer中。由于视频中帧数过多,用传统Transformer对所有的patch进行相似性度量的代价无疑是昂贵的。因此,文章提出了几种自注意力机制的变体架构,并在大规模动作分类数据集上对它进行了评估。其中“分散注意力”架构效果最好,它在网络处理每个patch时分别应用了时间注意力和空间注意力。实验表明该模型可用于长时间视频的远程建模。

Related Work

本文的工作受到了使用自注意力机制进行图像分类的工作的影响。这些工作有的将自注意力机制与卷积算子结合,有的工作则使用自注意力卷积代替了传统的2D卷积。除了分类之外,Relation Networks和DETR等对象检测方面的工作也启发了本文的工作。

本文的工作更与一些使用自注意力机制代替卷积的图像处理网络工作密切相关。这些工作由于以像素为单位进行查询,为了保证较小的计算成本和内存消耗,需要将自注意力的范围限制在较小的局部邻域,或者在大幅缩小的图片版本上使用全局自关注。具体到技术上就是使用稀疏采样或者限制自注意力所作用的空间轴。本文提高效率的方法是将视频分解成一系列帧级的patch,然后将这些patch嵌入位置编码后输入到Transformer中。这个策略在ViT模型中被使用,并在图像分类方面表现出优良的性能。本文则将这一策略扩展到视频处理方面。

Transformer也有被应用于视频生成的应用。同时,有些工作将Transformer作用于卷积生成的特征图上以应用于动作识别,视频分类,群体活动识别等工作中。也有一些文献将文本处理Transformer和视频CNN结合来解决字幕,问答,对话等视频相关的语言任务。有的视频转文本的模型也采用语言处理邻域的pretext tasks方法来实现模型的自监督训练。

Method

自注意力机制的应用过程

输入:TimeSFormer从原始视频中采样大小为H*W的F个RGB视频帧组成H*W*3*F大小的数据作为输入。

分解:使用和ViT相似的方法,Time将每个帧分解成N个不重叠的patch,每个patch大小为P*P。每个patch被一维化为3P^2大小的向量x(p,t),下标p代表了它的空间位置,而t代表了时间位置。

线性编码:TimeSFormer通过一个可学习的矩阵E将每个patch线性映射为一个大小为D的向量z(p,t),映射公式如1。其中e是一个可学习的位置编码,被用来编码每个patch的时空位置。最终得到的序列z被用作Transformer的输入。与最早期的BERT类似,序列的起始位置被添加了一个特殊的可学习向量z(0,0),以表示分类token(好像是作为最终分类依据用的token,即将这个token输入到MLP中得到视频类别)。

Transformer encoder:文章采用了L层的编码层迭代处理输入的patch。在每个编码层中,首先,根据公式2,3,4计算q,k,v矩阵。其中LN代表正则化层,a = 1,2,3,...A,A是多头注意力的注意力头总数,a代表第几个。然后,根据公式5计算权重矩阵,其中SM代表softmax层。注意当自注意力机制仅作用在某一维度(时间或空间维度)上时,计算量将大大减少。比如在空间维度上做自注意力运算时,只需要进行N+1个查询键的比较,如6。最后通过计算加权和获得每个头经过自注意力处理后的新向量,如7。这些头的向量被连接后通过MLP投影,并加以残差连接,获得最终的输出向量,如8,9。

最终,输入起始的token,通过一个正则化层获得向量y,并通过一个一层的MLP来预测视频的分类。

时空自注意力模型

可以通过公式6的单空间注意力机制代替公式5的时空注意力机制,但这种方式会弱化数据的时间属性,从而导致分类精度的下降。

文章提出了一种更有效的时空注意力架构,称为“时空分裂注意力”,即将时间注意力和空间注意力分开应用。在每个块内,文章先通过将每个patch与其他帧相同的空间位置的所有patch进行比较计算时间注意力,即公式11.

然后,对于使用时间注意力编码(公式8)后的结果z再被用于空间注意力计算中,即公式6。这两次注意力机制用的Transformer权值是不共享的。与公式5的联合时空注意模型所需的每个patch(NF + 1)次比较相比,分散注意每个斑块只进行(N+F+2)次比较,效率更高的同时也更加合理。

文章还尝试了“稀疏局部全局”(L+G)和“轴向”(T+W+H)注意力模型。对于每个patch (p, t), 局部全局注意力模型首先通过考虑相邻的F × H/2 × W/2 patch计算一个局部注意力,然后在整个剪辑上使用沿时间维度和两个空间维度的2个patch的步幅计算一个稀疏的全局注意力。“轴向”注意力将注意力计算分解为三个不同的步骤:随时间、宽度和高度分别应用自注意力机制。上述各个架构用到的模型都如下图所示。

注意力机制可视化如图所示:用蓝色表示查询补丁,用非蓝色表示查询补丁在每个方案下的自注意力机制下的时空邻域(即用到的key的位置)。没有颜色的小块不用于蓝色小块的自注意计算。方案中的多种颜色表示沿不同维度(例如(T+S)的空间和时间)或不同邻域(例如(L+G))分别应用的注意力。

Experiments

文章在四种主流的动作识别数据集上评估了TimeSformer:Kinetics-400,Kinetics-600,Something-Something-V2和Diving-48。使用了经过了预训练的ViT架构。使用大小为8 × 224 × 224的片段,帧采样率为1/32。补丁大小为16 × 16像素。在推理过程中,除非另有说明,我们在视频中间采样一个单一的时间片段。对于每个帧采样了左上,中间,右下三部分做了预测,并平均三部分的预测分数作为最终的分数。

自注意力框架分析

下标给出了五种时空注意力方案使用TimeSformer获得的结果。首先注意到只有空间注意力的TimeSformer在K400上变现也十分良好。结合之前的研究,作者认为空间信息可能比时间信息更加重要。但仅限空间的注意力机制在SSv2上表现很差,这说明了时间注意力的重要性。同时,分裂时空注意力机制在K400和SSv2上的表现都是最好的,因为分裂时空注意力机制包含更多的参数,从而有更强的学习能力。

下图比较了更高空间分辨率(左)和更长的视频(右)上应用联合时空注意力机制和分裂时空注意力机制的计算成本。注意到分辨率或视频长度增加时,联合注意力机制方案的计算成本会显著增加。因此,尽管参数数量较多,但在更高的空间分辨率或更长的视频上操作时,分裂时空注意力比联合时空注意力更有效。因此,后续所有的实验使用的都是分裂时空自注意力块组成的TimesFormer。

与3DCNN的比较

这一节旨在分析TimeSFormer和3DCNN的区别。比较重点放在了两个3DCNN模型上:SlowFast和I3D。

模型体积和训练时长:比较结果如下表2。首先观察到TimeSformer学习能力较强,且对计算的要求更低。这体现在它最大的参数个数和最低的TFLOP上,这表明TimeSformer更适合大规模学习的环境。同时,文章比较了各个模型在达到相应准确率的情况下所需的训练时长。结果表明,即使是当时最新的模型,即使是经过预训练的3DCNN也需要很长的优化时间才能实现良好的性能,相比之下TimeSformer提供了更便宜有效的解决方案。

预训练的重要性:在对视频数据进行TimeSformer训练之前,文章使用ImageNet学习到的权重对TimeSformer进行了权值初始化。文章也尝试了在没进行预训练的情况下直接在Kinetics-400上训练TimeSformer,结果发现视频准确率要低得多,因此后续实验都会使用ImageNet的预训练权重。在下表3中论文比较了在两个不同的数据集上应用两个不同的预训练数据集的TimeSformer网络的几种变体的训练和测试效果。除了传统版本的TimeSformer,还有TimeSformer-HR,一种高空间分辨率的变体,适用于16 × 448 × 448视频片段;以及TimeSformer-L,一种模型的远程配置,适用于96 × 224 × 224视频片段,帧采样率为1/4。观察到ImageNet21K预训练对K400是有益的,与ImageNet-1K预训练相比,它带来了更高的准确性。另一方面,在SSv2上,观察到ImageNet-1K和ImageNet-21K预训练导致相似的准确性。这是有道理的,因为SSv2需要复杂的时空推理,而K400更倾向于空间场景信息,因此,它从更大的预训练数据集中学习到的特征中获益更多。

视频数据规模的影响:文章在K400和SSv2的不同大小的子集上训练了TimeSformer,结果如图4。文章还在相同子集上训练了I3D和SlowFast以做比较,所有三种架构都用了ImageNet-1K进行预训练。图4结果表示在K400上,TimeSformer在所有训练子集上的表现都优于其他模型。然而,文章在SSv2上观察到不同的趋势,只有在75%或100%的完整数据上训练时,TimeSformer才是最强的模型。这可能是因为与K400相比,SSv2需要学习更复杂的时间模式,因此TimeSformer需要更多的示例来有效地学习这些模式。

Token数量的影响

由于使用了Transformer,因此TimeSformer能允许更长的或更高清的视频作为输入。而帧数更多或空间分辨率更高时,输入的patch会更多,即序列的token数量会更多。文章比较了分别在时间和空间维度上增加token的结果。如图5,可以看出在一定范围内,准确率会随着时间和空间分辨率的增加而增长。由于GPU内存的限制,文章无法在超过96帧的片段上测试模型,但是当时大多数的3DCNN都只能处理8-32帧的输入,而TimeSformer在这方面明显更有优势。

位置编码的重要性

为了研究时空位置嵌入的重要性,文章做了如下几种变体的对比:(1)无位置嵌入,(2)仅空间位置嵌入和(3)时空位置嵌入。表4中报告了这些结果。观察到使用时空位置嵌入的模型变体在Kinetics-400和SSV2上都产生了最好的精度。还观察到只使用空间位置嵌入会在Kinetics-400中产生稳定的结果,但在SSV2中却会产生更糟糕的结果。这是因为Kinetics-400更偏向于空间,而SSV2则需要复杂的时间推理。

与最先进技术的比较

表5给出了K400验证集上包括TimeSformer在内的各个模型的表现,包括精度和推理成本。之前的大多数模型需要使用10个视频片段的3个不同空间位置进行推理,而TimeSFormer仅需要三个空间位置(一个片段的?)就能达到可靠的精度。此外,TimeSformer还具有最低的推理成本和相对较高的准确度,且训练推理时间也是较短的。表6则展示了TimeSformer在Kinetics-600上的效果,可以看出TimeSformer的表现仍然优于其他模型。图6则展示了不同视频片段数对于推理结果的影响,可以看出X3D和SlowFast需要多个片段才能达到较好效果,而TimeSformer则不需要。

表7展示了模型在SSV2和dive-48两个数据集上的验证效果。使用了ImageNet-1K来预训练TimeSFormer,因为ImageNet-21K在之前表3的实验中被证明不能提高模型在SSv2上的准确性。对本次比较中的所有其他模型应用相同的预训练。结果表明,在SSV2数据集上,TimeSformer模型的精度低于最佳模型。然而,考虑到TimeSformer使用了完全不同的设计,文章认为这些结果表明TimesSformer是一种很有前途的方法,即使对于如SSv2这种有挑战性的时间繁重的数据集。在Diving-48上,由于该数据集存在过标签问题,因此文章只与SlowFast做了比较。结果证明TimeSformer的性能大大优于SlowFast。

长视频建模

最后,文章使用了HowTo100M评估了TimeSFormer在长视频建模上的效果。HowTo100M是一个教学视频数据集,包含大约1M个教学网络视频,展示人类执行超过23K个不同的任务,如烹饪、修理、制作艺术等。这些视频平均的时长是7分钟,比标准动作识别视频数据集的视频时长长了几个数量级。每个HowTo100M视频都有一个标签,指示视频中演示的任务,可用于监督训练。文章只用了其中的一个子集进行训练。对应于跨越1059个任务类别的120K视频。文章将这个子集随机划分为85K训练视频和35K测试视频。表8展示了与SlowFast的对比结果。文章使用了SlowFast R101的四种变体,所有这些变体都以1/32的帧率采样视频剪辑,帧数分别为8,32,64和96。对TimeSformer使用相同的四种配置,而训练则从ImageNet-21K上预训练的ViT开始。在推理过程中,对于每种方法,文章采样尽可能多的非重叠时间片段,以覆盖视频的整个时间范围。结果表明本文的模型很适合需要长期视频建模的任务。文章还用了在不同数据集上进行过预训练的模型进行测试,结论不变:无论使用什么预训练数据集,TimeSformer都可以有效地利用长期时间依赖性。

Conclusion

本文介绍了基于Transformer的视频分类建模模型TimeSFormer。它基于一个分裂时空注意力机制进行设计,用Transformer代替了传统3DCNN。该方法有如下优点:(1)概念简单,(2)在主要动作识别基准上取得了最先进的结果,(3)具有较低的训练和推理成本,(4)可以应用于超过一分钟的片段,从而实现长期视频建模。

个人总结:我认为这篇文章提供了对于具有三维关联性(时间一维,空间两维)的数据类型使用Transformer进行学习的一种方法框架。同时也证明了Transformer在一定条件下能实现比传统CNN更好的效果。最后,本文对于不同数据集的数据特征的分析以及这些特征对于训练的影响也值得学习。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值