TimeSformer

https://blog.csdn.net/m0_37169880/article/details/114941518

Is Space-Time Attention All You Need for Video Understanding?

我们提出了一种完全基于空间和时间上的自我注意的无卷积视频分类方法。我们的方法名为“TimeSformer”,通过直接从一系列帧级补丁(a sequence of frame-level patches)中进行时空特征学习,使标准Transformer结构用到视频上。我们的实验研究比较了不同的自注意模式,并表明divided attention“”,即时间注意和空间注意在每个块内分别使用(temporal attention and spatial attention are separately applied within each block),导致最佳的视频分类精度的设计选择。尽管采用了全新的设计,时间转换器在多个动作识别基准上取得了最先进的结果,包括Kinetics-400和Kinetics-600的最佳报告准确率。最后,与3D卷积网络相比,我们的模型训练速度更快,(精度下降一点点的话)实现更高的测试效率,它也可以应用于更长的视频剪辑(超过一分钟长)。代码和型号位于:https://github.com/facebookresearch/TimeSformer.

1. 引言

在过去的几年里,自然语言处理(NLP)领域因基于自注意的方法的出现而发生了革命性的变化(Vaswani et al.,2017a)。由于其在捕捉单词之间的长期依赖性方面的出色能力以及训练的可伸缩性(training scalability),自注意体系结构(如Transformer模型)代表了包括机器翻译在内的广泛语言任务的当前最新水平(Ott等人,2018;Chen等人,2018a),问答(Devlin等人,2019;Dai等人,2019),以及自回归词生成(Radford等人,2019;Brown等人,2020年)。

视频理解与自然语言处理有几个高层次的相似之处。首先,视频和句子都是序列的。此外,确切地说,一个词的含义往往只能通过与句子中的其他词联系起来来理解,因此可以认为,短片段中的原子行为需要与视频的其余部分结合起来,以便完全消除歧义。因此,人们期望NLP的长距离自注意模型对于视频建模也是非常有效的。然而,在视频领域,2D或3D卷积仍然是跨不同视频任务时空特征学习的核心算子(Feichtenhofer等人,2019a;Teed&Deng,2020年;Bertasius和Torresani,2020年)。虽然自注意在卷积层上的应用显示出优势(Wang等人,2018a),但据我们所知,还没有尝试将自注意作为视频识别模型的唯一构建块的报道。

在这项工作中,我们提出的问题是,是否有可能建立一个性能好而没有卷积的视频架构,将所有的卷积都换成自注意力。我们认为,这样的设计有可能克服一些视频分析的卷积模型的固有限制。首先,尽管它们的强归纳偏差(例如,局部连通性和平移等变性)无疑对小训练集有利,但在数据可用性充足且可从示例中学习“所有”的情况下,它们可能会过度限制模型的表达能力。与CNN相比,Transformer施加的限制性归纳偏置较少。这拓宽了它们所能代表的功能家族(Cordonnier等人,2020;赵等人,2020年),并使他们更适合现代大数据制度,在训练数据较多的情况下,强归纳先验是不太需要的。第二,虽然卷积核是专门设计用来捕捉短程时空信息的,但它们不能建模扩展到感受野之外的依赖关系。而深层卷积(Simonyan&Zisserman,2015;Szegedy等人,2015年;Carreira&Zisserman,2017)自然地扩展了感受野,这些策略在通过聚合较短范围的信息来捕获长范围依赖性方面具有固有的局限性。相反,自注意机制可以通过直接比较所有时空位置的特征激活来捕获局部和全局的长程依赖,远远超出了传统卷积滤波器的感受野。最后,尽管在GPU硬件加速方面取得了进步,但训练深度CNN仍然非常昂贵,尤其是在应用于高分辨率和长视频时。静止图像领域的最新工作(Dosovitskiy等人,2020年;Carion等人,2020年;Zhao等人(2020年)已经证明,与CNN相比,Transformer具有更快的训练和推理速度,这使得在相同的计算预算下构建具有更大学习能力的模型成为可能。

基于这些观察,我们提出了一个完全基于自注意力的视频架构。我们将图像模型“视觉变换器”(ViT)(Dosovitskiy et al.,2020)应用于视频,将自我注意机制从图像空间扩展到时空三维体。我们提出的模型名为“timeformer”(来自时空转换器),将视频视为从各个帧中提取的一系列补丁(views the video as a sequence of patches extracted from the individual frames.)。在ViT中,每个patch被线性映射成一个嵌入,并增加了位置信息。这使得将得到的向量序列解释为令牌嵌入成为可能,令牌嵌入可以被馈送到Transformer编码器,类似于从NLP中的字计算出的令牌特征。(看起来很复杂但没什么信息量的一句话:This makes it possible to interpret the resulting sequence of vectors as token embeddings which can be fed to a Transformer encoder, analogously to the token features computed from words in NLP.)

标准Transformer中自注意的一个缺点是,它需要为所有令牌对计算一个相似性度量。在我们的设置中,由于视频中有大量补丁,因此计算成本很高。为了应对这些挑战,我们提出了几种可伸缩的space-time volume上的自注意设计,并在大规模动作分类数据集上对其进行了实证评估。在所提出的方案中,我们发现最佳的设计是由一个“分开的注意(divided attention)”架构来表示的,该架构在网络的每个块中分别应用时间注意和空间注意。与已建立的基于卷积的视频架构模式相比,时间转换器采用了完全不同的设计。然而,它达到的精度相当于,在某些情况下优于,在这个领域的最先进的状态。我们还表明,我们的模型可以用于长距离建模的视频跨越许多分钟(our model can be used for long-range modeling of videos spanning many minutes)。

2.相关工作

我们的方法受到最近使用自关注进行图像分类的工作的影响,这些工作可以与卷积算子结合使用,甚至可以完全替代卷积算子。在前一类中,非局部网络(Wang et al.,2018b)采用非局部平均值,有效地概括了变压器的自我注意功能(Vaswani et al.,2017b)。Bello et al.(Bello et al.,2019)提出了一种2D自我注意机制,作为2D卷积的替代品,该机制具有竞争力,但当用于使用自我注意特征增强卷积特征时,会产生更强大的结果。除了图像分类,关系网络(Hu et al.,2018)和DETR(Carion et al.,2020)在卷积特征图的基础上使用自我注意进行目标检测。

我们的方法与利用自我注意代替卷积的图像网络更为密切相关(Parmar等人,2018;Ramachandran等人,2019年;Cordonnier等人,2020年;赵等,2020)。由于这些工作使用单个像素作为查询,为了保持可管理的计算成本和较小的内存消耗,它们必须将自我关注的范围限制在局部邻域,或者对严重缩小的图像版本使用全局自我关注。可扩展到完整图像的替代策略包括稀疏关键值采样(Child et al.,2019)或限制要沿空间轴计算的自我注意(Ho et al.,2019;Huang等人,2019年;Wang等人,2020b)。在我们的实验中,我们考虑的一些自注意算子采用了类似的稀疏和轴向计算,尽管它们被推广到了时空体。然而,我们的方法的效率主要来源于将视频分解成一系列帧级补丁,然后将这些补丁的线性嵌入作为输入令牌嵌入到转换器。视觉变换器(ViT)(Dosovitskiy et al.,2020)最近引入了这一策略,该策略在图像分类方面表现出令人印象深刻的性能。在这项工作中,我们建立在ViT设计的基础上,通过提出和实证比较几种视频时空自我关注的可伸缩方案,将其扩展到视频领域。

虽然Transformer最近被用于视频生成(Weissenborn等人,2020年),但我们还不知道以前的视频识别架构使用自我关注作为唯一的构建块。然而,我们注意到,有将Transformer结构用在卷积网络输出的特征图上的工作:动作定位和识别(Girdhar et al.,2019),视频分类(Wang et al.,2018b;Chen等人,2018b)和群体活动识别(Gavrilyuk等人,2020)。我们还注意到,有大量文献基于文本Transformer与视频CNN的结合来处理各种视频语言任务,如字幕(Zhou等人,2018)、问答(Yang等人,2020)和对话(Le等人,2019)。最后,多模态视频文本转换器(Sun等人,2019;Li等人,2020a)也通过采用改编自语言领域的蒙面代币借口任务(Devlin等人,2018;Radford等人,2018年)。

4.实验

我们在四个流行的动作识别数据集上评估时间转换器:Kinetics-400(Carreira&Zisserman,2017)、Kinetics-600(Carreira et al.,2018)、SomethingV2(Goyal et al.,2017b)和Diving-48(Li et al.,2018)。我们采用了在ImageNet-1K或ImageNet-21K(Deng等人,2009)上预训练的“基本”ViT架构(Dosovitskiy等人,2020),如每个实验所规定。除非另有说明,我们使用的剪辑大小8× 224× 224,帧采样率为1/32。补丁大小为16× 16像素。在推断过程中,除非另有说明,我们在视频中间采样一个时间片段。我们使用3个空间作物(左上,中心,右下)从时间剪辑,并获得最终的预测平均分数为这3作物。

4.1. 自我注意方案分析

对于第一组实验,我们从在ImageNet-21K上预训练的ViT开始。在表1中,我们给出了使用时间成型器在Kinetics-400(K400)和SomethingSomething-V2(SSv2)上获得的五个时空注意方案的结果。首先,我们注意到只有空间注意的时间转换器在K400上表现良好。这是一个有趣的发现。事实上,先前的研究(Sevilla Lara et al.,2021)已经表明,在K400上,空间线索比时间信息更重要,以便获得更高的准确性。在这里,我们表明,有可能获得固体精度K400没有任何时间建模。但是,请注意,仅空间注意在SSv2上的性能很差。这强调了对后一个数据集进行时态建模的重要性。

此外,我们观察到分割时空注意力在K400和SSv2上都达到了最好的精确度。这是有意义的,因为与联合时空注意相比,分割时空注意具有更大的学习能力(见表1),因为它包含不同的时间注意和空间注意的学习参数。

在图3中,我们还比较了在使用更高空间分辨率(左)和更长时间(右)的视频时,联合时空注意力和分割时空注意力的计算成本。我们注意到,在这两种情况下,划分时空的方案都能很好地伸缩。相比之下,当分辨率或视频长度增加时,联合时空注意方案导致显著更高的成本。在实践中,一旦空间帧分辨率达到448像素,或者一旦帧的数目增加到32,联合时空注意就导致GPU存储器溢出,因此它实际上不适用于大帧或长视频。因此,尽管参数数目较多,但在较高的空间分辨率或较长的视频上操作时,分割时空注意比联合时空注意更有效。因此,对于所有后续的实验,我们使用一个由分割的时空自我注意块构成的时间成型器

4.2. 与3D CNN的比较

在本小节中,我们进行了一项实证研究,旨在了解时间成型器与三维卷积结构(近年来视频理解的主要方法)相比的区别特性。我们重点比较了两种3D CNN模型:1)SlowFast(Feichtenhofer et al.,2019b),这是视频分类领域的最新技术;2)I3D(Carreira&Zisserman,2017),它已被证明受益于基于图像的预训练,类似于我们自己的模型。我们在表2中给出了这两个网络的定量比较,并在下面强调了关键的观察结果。

模型容量。

从表2中,我们首先观察到,虽然时间转换器具有较大的学习能力(参数数目为121.4M),但其推理成本较低(TFLOPs为0.59)。相比之下,SlowFast 8x8 R50尽管只包含346万个参数,但其推理成本更大(1.97tflops)。类似地,I3D 8x8 R50尽管包含较少的参数(28.0M vs 121.4M),但其推理成本也比时间转换器(1.11 vs 0.59 TFLOPs)大。这表明timeformer更适合于涉及大规模学习的环境。相比之下,现代三维cnn的计算量大,使得它很难在保持效率的同时进一步提高模型容量。

视频培训时间。

ImageNet预训练的一个显著优点是,它可以对视频数据进行非常有效的时间变换器训练。相反,即使对图像数据集进行了预训练,最先进的3D cnn的训练成本也要高得多。在表2中,我们比较了时间转换器Kinetics-400(特斯拉V100GPU小时数)与SlowFast和I3D的视频训练时间。从在ImageNet-1K上预训练的ResNet50开始,SlowFast 8× 8 R50需要3840特斯拉V100 GPU小时,以便在Kinetics-400上达到75.6%的精度。在类似设置下,培训I3D需要1440特斯拉V100 GPU小时,达到73.4%的精度。相比之下,同样在ImageNet-1K上预训练的时间转换器只需要352特斯拉V100 GPU小时就可以达到75.8%的精度(见表2)。此外,如果我们将SlowFast限制在与timeformer类似的计算预算(即448gpu小时)下进行训练,其准确率将下降到70.0%。类似地,使用类似的计算预算(即444gpu小时)训练I3D会导致71.0%的较低精度。这突出了一些最新的3D CNN(Feichtenhofer等人,2019b;Feichtenhofer,2020)需要一个非常长的优化时间表来实现良好的性能(即使在使用ImageNet预训练时)。相比之下,TimeSformer提供了一个更有效的替代方案,以取代无法访问数百个GPU的实验室。

训练前的重要性。

由于大量的参数,从零开始训练我们的模型是困难的。因此,在对视频数据训练时间变换器之前,我们用从ImageNet学习的权值对其进行初始化。相比之下,可以从头开始在视频数据上学习SlowFast,尽管这是以非常高的训练成本为代价的(见表2)。我们还尝试直接在Kinetics-400上训练时间转换器,而不需要任何ImageNet预训练。通过使用更长的训练时间和更多的数据扩充,我们发现可以从头开始训练模型,尽管视频级别的准确率要低得多,只有64.8%。因此,基于这些结果,在随后的所有研究中,我们继续使用ImageNet进行预训练(Deng等人,2009年)

在表3中,我们研究了ImageNet-1K与ImageNet-21K在K400和SSv2上的预训练优势。在这些实验中,我们使用了我们模型的三个变体:(1)TimeSformer,它是我们模型的默认版本,运行于8×224×224个视频剪辑,(2)时间转换器HR,一种高空间分辨率的变体,在16× 448× 448个视频剪辑,最后是(3)TimeSformer-L,我们型号的一个远程配置,在96上运行× 224× 224个视频剪辑,帧采样率为1/4。

根据表3中的结果,我们观察到ImageNet21K预训练对K400是有益的,与ImageNet-1K预训练相比,它导致了更高的精确度。另一方面,在SSv2上,我们观察到ImageNet-1K和ImageNet-21K预训练导致了相似的精度。这是有意义的,因为SSv2需要复杂的时空推理,而K400更倾向于空间场景信息,因此,它更受益于在更大的训练前数据集上学习的特征。

视频数据规模的影响。为了了解视频数据规模对性能的影响,我们在K400和SSv2的不同子集上训练时间转换器:完整数据集的{25%,50%,75%,100%}。我们在图4中展示了这些结果,其中我们还将我们的方法与在相同子集上训练并使用相同预训练的SlowFast R50(Feichtenhofer et al.,2019b)和I3D R50(Carreira&Zisserman,2017)进行了比较。由于我们无法访问在ImageNet-21K上预训练的ResNet,因此我们对所有3种体系结构都使用ImageNet-1K预训练。

图4的结果显示,在K400上,时间转换器在所有训练子集上都优于其他模型。然而,我们在SSv2上观察到不同的趋势,只有在75%或100%的完整数据上进行训练时,timeformer才是最强的模型。这可以解释为,与K400相比,SSv2需要学习更复杂的时间模式,因此timeformer需要更多的示例来有效地学习这些模式。

4.3. 改变令牌的数量

与大多数3D cnn相比,我们模型的可扩展性使得它能够在更高的空间分辨率和更长的视频上运行。我们注意到,这两个方面都会影响馈送到转换器的令牌序列的长度。具体地说,提高空间分辨率会导致每帧的面片数(N)增加。当使用更多帧时,输入标记的数量也会增加。为了调查这些好处,我们进行了一项实证研究,我们分别沿着这两个轴增加代币的数量。

我们在图5中报告了这些发现。我们发现提高空间分辨率(达到某一点)可以提高性能。同样,我们观察到,增加输入片段的长度可以获得一致的精度增益。由于GPU内存限制,我们无法在超过96帧的剪辑上测试我们的模型。尽管如此,我们还是想指出,使用96帧的片段与当前的卷积模型有很大的不同,目前的卷积模型通常仅限于处理8帧的输入− 32帧。

4.4. 位置嵌入的重要性

为了研究我们学习到的时空位置嵌入的重要性,我们还对几种不同的时间转换器进行了实验,它们使用:(1)无位置嵌入,(2)仅空间位置嵌入,和(3)时空位置嵌入。我们在表4中报告了这些结果。基于这些结果,我们观察到使用时空位置嵌入的我们模型的变体在Kinetics-400和Something-Something-V2上产生了最佳精度。有趣的是,我们还观察到,仅使用空间位置嵌入在Kinetics-400上会得到可靠的结果,但在Something-Something-V2上会得到更糟糕的结果。这是有意义的,因为Kinetics-400在空间上更偏向,而SomethingSomething-V2需要复杂的时间推理。

4.5. 与现有技术的比较

动力学-400和动力学-600。

在表5和表6中,我们给出了K400和K600验证集的结果。对于这些实验,我们使用在ImageNet-21K上预训练的时间转换器。除了准确度指标,我们还包括推断成本,以TFLOPs表示。我们注意到,以前的大多数方法在推理过程中使用10个时间片段和3个空间裁剪(总共30个时空视图),而timeformer只使用3个视图(3个空间裁剪)就获得了可靠的精度,这降低了推理成本。我们的远程变型,TimeSformer-L达到了80.7%的最高精确度。此外,在最新的最先进的模型中,我们的默认时间转换器具有最低的推理成本。然而,它仍然提供了78.0%的准确率,优于许多更昂贵的模型。

我们还测量了Kinetics-400(使用8个特斯拉V100 GPU)的20K验证视频上的实际推理运行时间。而SlowFast需要14.88小时才能完成推理,timeformer、timeformer-HR和timeformer-L分别需要36分钟、1.06小时和2.6小时。因此,尽管SlowFast和timeformer-L在TFLOPs方面具有相当的成本,但实际上timeformer-L的运行时间要低得多。

在表6中,我们还展示了Kinetics-600的结果。就像Kinetics-400一样,我们观察到时间转换器在这个基准上表现良好,优于所有以前的方法。

最后,在图6中,我们研究了在推理过程中使用多个时间片段(每个片段都有一个空间裁剪)的效果。我们用K表示精确性∈ {1,3,5,10}测试的时间片段。我们将我们的模型与X3D(Feichtenhofer,2020)和SlowFast(Feichtenhofer等人,2019b)进行了比较。X3D和SlowFast需要多个(≥ 5) 剪辑,以接近其最高精度。相反,我们的远程变体TimeSformer-L不需要多个剪辑就可以获得最佳性能,因为它可以用一个剪辑跨越约12秒的动力学视频。

Something-Something-V2和Diving-48。

在表7中,我们还在SSv2和Diving-48上验证了我们的模型。由于ImageNet-21K预训练不能提高SSv2的精度(见表3),在这种情况下,我们使用ImageNet-1K上预训练的时间转换器。这也允许我们使用ImageNet-1K上的ResNet预训练,将相同的预训练应用于此比较中的所有其他模型。我们的结果表明,时间转换器实现了较低的精度比最好的模型在这个数据集。然而,考虑到我们的模型使用了完全不同的设计,我们认为这些结果表明timesformer是一种很有前途的方法,即使对于具有挑战性的时间密集型数据集,如SSv2。在表7中,我们还介绍了另一个“临时性”数据集Diving-48的方法。由于最近发现了以前版本的Diving-48标签的问题,这里,我们仅将我们的方法与复制的SlowFast 16进行比较×8 R101型号。我们的结果表明,时间转换器的表现优于慢的一个很大的差距。

4.6. 长期视频建模

最后,我们使用HowTo100M对时间转换器的长期视频建模任务进行了评估(Miech et al.,2019)。HowTo100M是一个教学视频数据集,包含约100万个教学网络视频,显示人类执行超过23K项不同任务,如烹饪、修理、制作艺术等。这些视频的平均持续时间约为7分钟,这比标准动作识别基准中视频的持续时间长几个数量级。每个HowTo100M视频都有一个标签,指示视频中演示的任务(23K类中的一个),可用于监督培训。因此,它是一个很好的基准来评估一个模型识别在很长时间范围内显示的活动的能力。

对于此评估,我们只考虑至少有100个视频示例的类别。这给出了HowTo100M的子集,对应于跨越1059个任务类别的120K视频。我们将这个集合随机划分为85K个训练视频和35K个测试视频。

我们在表8中给出了我们的结果。作为我们的基线,我们使用了四种不同的SlowFast R101,它们都在以1/32的帧速率采样的视频剪辑上运行,但帧数不同:8、32、64和96。我们对时间转换器使用相同的四种配置,从ImageNet-21K上预训练的ViT开始。比较中的所有模型都是在动力学-400上预先训练的,然后再微调到100m。

在推断过程中,对于每种方法,我们根据需要采样尽可能多的非重叠时间片段以覆盖视频的整个时间范围,例如,如果单个片段跨越8.5秒,我们将采样48个测试片段以覆盖410秒的视频。视频级别分类是通过平均剪辑预测来完成的。

从表8的结果中,我们首先注意到,对于相同的单剪辑覆盖率,timeformer比相应的SlowFast快8倍− 11%. 我们还观察到,更长距离的时间格式做得更好,即,我们的最长距离变种实现了最好的视频级分类精度。这些结果表明我们的模型非常适合于需要长期视频建模的任务。

我们还试验了直接从ImageNet-1K和ImageNet21K上预训练的ViT上微调时间转换器(跳过Kinetics-400训练)。我们报告说,当仅在ImageNet-1K上进行预训练时,我们的模型在8、32、64、96帧输入时分别达到52.8、58.4、59.2、59.4的top-1精度。在考虑ImagNet21K预训练时,timeformer对8、32、64、96帧输入的精度分别为56.0、59.2、60.2、62.1。这些结果表明,我们的模型可以有效地利用长期的时间依赖性,而不考虑我们使用的预训练数据集。

4.7. 附加烧蚀

小型和大型变压器。

除了“基本”维生素T模型(Dosovitskiy等人,2020年),我们还试验了“大”维生素T。我们报告说,这使得Kinetics-400和Something-Something-V2的结果都差1%。鉴于我们的“基本”模型已经有121M个参数,我们怀疑当前的数据集不够大,不足以证明模型容量的进一步增加。我们还尝试了“小型”ViT模型,其精度比我们默认的“基本”ViT模型差5%。

更大的补丁大小。

我们还试验了不同的补丁大小,即P=32。我们报告说,我们模型的这种变体产生的结果比使用P=16的默认变体差3%左右。我们推测P=32的性能下降是由于空间粒度减小。我们没有训练任何P值低于16的模型,因为这些模型有更高的计算成本。

空间和时间的顺序自我注意。

我们提出的“分时空注意”方案将时间注意和空间注意依次应用。在这里,我们研究了改变时空注意顺序(即先应用空间注意,再应用时间注意)是否对我们的结果有影响。我们报告说,先应用空间注意,然后再应用时间注意,会导致Kinetics-400和Something-Something-V2的准确率下降0.5%。我们还尝试了平行时空自我注意。我们报告说,它产生0.4%较低的精度相比,我们采用的“分时空注意”方案。

4.8. 定性结果

想象学习到的时空注意力。

在图7中,我们展示了通过在Something-Something-V2视频上应用timeformer获得的时空注意力可视化。为了将学习到的注意力形象化,我们使用了(Abnar&Zuidema,2020)中提出的注意力展开方案。我们的结果表明,时间转换器学习关注视频中的相关区域,以便执行复杂的时空推理。例如,我们可以观察到模型在可见时关注手的配置,而在不可见时只关注对象的配置。

可视化学习的特征嵌入。

在图8中,我们还可视化了timeformer在Something-Something-V2上学习的特性。可视化是使用t-SNE(vandermaaten&Hinton,2008)完成的,其中每个点表示一个视频,不同的颜色表示不同的动作类别。基于这一说明,我们观察到,与仅具有空间注意或ViT的时间形成器相比,具有分割时空注意的时间形成器学习语义上更可分离的特征(Dosovitskiy等人,2020)。

5.结论

在这项工作中,我们引入了时间变换器,这是一种与基于卷积的视频网络的既定模式相比根本不同的视频建模方法。我们证明了设计一个有效的、可伸缩的、完全基于时空自我关注的视频体系结构是可能的。我们的方法(1)概念简单,(2)在主要动作识别基准上获得最新的结果,(3)训练和推理成本低,(4)可以应用于超过一分钟的视频片段,从而实现长期的视频建模。在将来,我们计划将我们的方法扩展到其他视频分析任务,如动作定位、视频字幕和问答。

附录

A.实施细则

我们的时间转换器实现是使用PySlowFast(Fan等人,2020)和pytorch图像模型(Wightman,2019)包构建的。下面,我们将描述关于我们模型的训练和推理过程的具体实现细节。

培训。

我们用初始学习率0.005(在第11和第14个阶段除以10)对15个阶段的模型进行训练。在训练过程中,我们首先将视频的较短部分调整为[256320]中的随机值。然后我们随机抽取224个样本× 224从调整大小的视频剪辑。对于我们的高分辨率模型TimeSformer HR,我们将视频的短边调整为[448,512]中的一个随机值,然后随机采样一个448× 448作物。我们以1/32的帧速率从全长视频中随机抽取视频片段。批量大小设置为16。我们在32个GPU上使用同步SGD训练所有模型。动量设置为0.9,而权重衰减设置为0.0001。除非另有说明,在我们的实验中,我们使用“基本”ViT模型(Dosovitskiy等人,2020)。每个块中的时间和空间注意层被初始化为相同的权重,这些权重是从ViT中相应的注意层获得的。

推理。

正如在主要草稿中所讨论的,在推断过程中,我们在视频中间采样一个时间片段。我们将视频的较短空间侧缩放到224像素(或448表示TimeSformer HR),并选取3个224大小的裁剪×224 (448 × 448表示时间转换器(HR),以覆盖剪辑内更大的空间范围。最后的预测是通过平均这3个预测的softmax得分得到的。

我们比较中的其他模型。

为了训练I3D(Carreira&Zisserman,2017)和SlowFast(Feichtenhofer等人,2019b),我们使用了原始论文中使用的训练协议。对于I3D,我们使用2D ImageNet CNN对其进行初始化,然后以0.01的基本学习率对其进行118个时期的训练,在44和88个时期被10除。我们按照Goyal等人(2017a)的线性缩放方法在32个gpu上使用同步SGD。我们把动量设为0.9,重量衰减设为0.0001。批大小设置为64。对于SlowFast模型,当从ImageNet weights初始化时,我们使用相同的精确训练协议。当从头开始训练慢速度时,我们使用作者描述的训练协议(Feichtenhofer等人,2019b)。更具体地说,在这种情况下,使用余弦学习率时间表对196个时期进行训练,并且初始学习率被设置为0.1。我们在前34个阶段使用线性热身,开始时的学习率为0.01。在最终分类层之前使用0.5的差分。动量设置为0.9,重量衰减为0.0001,批量大小设置为64。与之前一样,我们采用线性缩放配方(Goyal等人,2017a)。

数据集。

Kinetics-400(Carreira&Zisserman,2017)包含24万个培训视频和20万个验证视频,涵盖400个人类行为类别。Kinetics-600(Carreira等人,2018)有392K个培训视频和30K个验证视频,涵盖600个动作类别。SomethingSomething-V2(Goyal等人,2017b)包含170K个培训视频和25K个验证视频,跨越174个动作类别。最后,Diving-48(Li et al.,2018)有16K训练视频和3K测试视频,涵盖48个细粒度潜水类别。对于所有这些数据集,我们使用标准分类精度作为主要性能指标。

你可能感兴趣的:(TimeSformer)