▊ 写在前面 在本文中,作者提出了纯基于Transformer的视频分类模型。本文的模型从输入视频中提取时空token,然后由一系列Transformer层进行编码。为了处理视频中遇到的长token序列,作者提出了模型的几个有效的变体,可以分解输入的空间和时间维度。 ▊ 1. 论文和代码地址 论文:https:///abs/2103.15691 代码:https://github.com/google-research/scenic ▊ 2. Motivation 自AlexNet以来,基于深度卷积神经网络的方法已经提高了许多视觉问题的SOTA性能。同时,在序列到序列建模(如自然语言处理)中,最突出的结构选择是Transformer,它不使用卷积,而是基于多头自注意。 ▊ 3. 方法 3.1. Overview of Vision Transformers (ViT)视觉Transformer(ViT)采用了Transformer架构,以最小的变化处理二维图像。ViT提取N个不重叠的图像patch,然后将其线性投影成1D token。Transformer编码器的token输入序列为: 其中的投影等价于一个二维卷积。 如上图所示,该序列中有一个学习分类token(也可能没有) ,其在编码器最后一层的表示作为分类层使用的最终表示。此外,在token中添加一个学习到的位置嵌入,以保留位置信息。 MLP由两个由GELU非线性分隔的线性投影组成,token维数d在所有层中保持不变。最后,基于或者对所有token进行平均池化,并采用线性层对编码输入进行分类。 3.2. Embedding video clips作者考虑了两种简单的方法来将视频映射到token序列。然后,作者添加了位置嵌入并reshape为中得到,即Transformer的输入。 Uniform frame sampling如上图所示,tokenise输入视频的一种简单方法是从输入视频片段中均匀采样帧,使用与ViT相同的方法独立嵌入每个2D帧,并将所有这些token concat到一起。 Tubelet embedding如上图所示,另一种方是从输入视频中提取不重叠的时空“tubes”,并线性投影到。该方法是ViT嵌入到三维扩展,对应于三维卷积。对于维度为的tubelet(),分别从时间、高度和宽度维度中提取token。较小的tubelet维度因此会产生更多的token,从而增加了计算量。 3.3. Transformer Models for Video如上图所示,作者提出了多个基于Transformer的架构。作者从ViT的直接扩展开始,模拟所有时空token之间的成对交互,然后开发更有效的变体,在Transformer架构的不同层次上分解输入视频的空间和时间维度。 Model 1: Spatio-temporal attention该模型简单地通过Transformer编码器处理从视频中提取的所有时空token。与感受野随层数呈线性增长的CNN架构相比,每个Transformer层能够建模所有输入时空token之间的交互。然而,由于它建模了所有的成对交互,多头自注意(MSA)对于token的数量具有二次复杂度。 Model 2: Factorised encoder如上图所示,该模型由两个独立的Transformer编码器组成。第一个为空间编码器,只建模从同一时间索引中提取的token之间的交互作用。经过层时间Transformer之后,就可以获得每一帧的表示。 Model 3: Factorised self-attention相比之下,该模型包含了与模型1相同数量的Transformer层。在该模型中,作者将操作分解,首先只计算空间自注意,然后计算时间自注意力,如上图所示。因此,Transformer中的每个自注意块模拟时空交互,但通过在两组更小的元素集上进行操作分解,比模型1更有效,从而实现与模型2相同的计算复杂度。 Model 4: Factorised dot-product attention最后,作者还开发了一个与模型2和模型3具有相同的计算复杂度的模型,同时保留了与未分解模型1相同数量的参数。具体地说,作者使用不同的head分别在空间和时间维度上计算每个token的注意权重。首先,每个head的注意力操作被定义为: 其中,,。非分解情况下(模型1)中,空间和时间维度合并为。这里的主要思想是通过构建,,修改每个query的key和value,以便只attend来自同一时空索引的token。 3.4. Initialisation by leveraging pretrained modelsViT已被证明只有在大规模数据集上训练时才有效,因为Transformer缺乏卷积网络的一些归纳偏差。然而,即使是最大的视频数据集,如Kinetics,标注的样本也要少了几个数量级。 Positional embeddings在每个输入token中添加一个位置嵌入。然而,本文的视频模型的位置比预训练的图像模型多倍。因此,作者通过从在时间维度上“重复”位置嵌入得到,来初始化位置嵌入。因此,在初始化时,所有具有相同空间索引的token都有相同的嵌入方式,然后进行微调。 Embedding weights, E当使用“tubelet embedding”方法时,嵌入滤波器是一个三维tensor,与预训练模型中的二维tensor相比。从二维滤波器中初始化三维卷积滤波器的一种常见方法是通过沿着时间维度复制滤波器并将其平均: 作者考虑了一个额外的策略,称为“central frame initialisation”,其中在所有时间位置上初始化为零,除了在中心: Transformer weights for Model 3模型3中的Transformer块与预训练的ViT模型的区别在于,它包含两个多头自注意(MSA)模块。在这种情况下,作者从预训练的模块中初始化空间MSA模块,并用零初始化时间MSA的所有权值。 ▊ 4.实验 4.1. Ablation studyInput encoding上表展示了不同输入embedding方式的实验结果,可以看出Central frame的实验结果最好。 Model variants上表展示了不同模型变体在 Kinetics 400和Epic Kitchens数据集上的实验结果。 Model regularisation上表展示了添加不同正则化技术的实验结果。 Varying the backbone上图展示了在Kinetics 400数据集上,模型1的主干结构对精度和计算量的影响。 Varying the number of tokens上图展示了在Kinetics 400数据集上,不同数量的时间token对精度和计算量的影响。 Varying the number of input frames上图显示,随着向网络输入的帧数增加,处理单个视图的精度就会增加,因为网络包含了更长的时间上下文。 4.2. Comparison to state-of-the-artKinetics上表展示了本文方法在Kinetics数据集上和其他SOTA方法的对比。 Moments in Time上表展示了本文方法在Moments in Time数据集上和其他SOTA方法的对比。 Epic Kitchens 100上表展示了本文方法在Epic Kitchens 100数据集上和其他SOTA方法的对比。 Something-Something v2 (SSv2)上表展示了本文方法在Something-Something v2数据集上和其他SOTA方法的对比。 ▊ 5. 总结 在本文中,作者提出了四种用于视频分类的纯Transformer模型,具有不同的精度和效率,在五个流行的数据集上实现了SOTA的结果。此外,作者还展示了如何有效地regularise这种高容量模型,以便在更小的数据集上进行训练。作者将在未来的工作是消除对图像预训练模型的依赖,并超越视频分类转向更复杂的任务。 ▊ 作者简介 知乎/公众号:FightingCV ![]() END |
|