MoViNets: Mobile Video Networks for Efficient Video Recognition
https://arxiv.org/pdf/2103.11511v2.pdf
https://blog.csdn.net/h137437/article/details/115417742
我们提出了移动视频网络(MoViNets),这是一个计算和存储效率高的视频网络家族,可以对流视频进行在线推理。三维卷积神经网络(CNNs)在视频识别方面有很高的精度,但是需要大量的计算和内存,并且不支持在线推理,因此很难在移动设备上工作。我们提出了一种三步方法来提高计算效率,同时大大降低3D cnn的峰值内存使用率。首先,我们设计了一个视频网络搜索空间,并利用神经网络结构搜索来生成高效多样的三维CNN结构。第二,我们引入了流缓冲技术,该技术将内存与视频片段的持续时间分离,使得3D cnn能够嵌入任意长度的流视频序列,以便在较小的恒定内存占用下进行训练和推理。第三,我们提出一个简单的加密技术,以进一步提高精度,而不牺牲效率。这三种先进的技术使MoViNets能够在动态、瞬间和字谜视频动作识别数据集上实现最先进的准确性和效率。例如,MoViNet-A5-Stream实现了与Kinetics 600上的X3D-XL相同的精度,同时要求减少80%的触发器和65%的内存。
https://github.com/tensorflow/models/tree/master/official/vision
高效的视频识别模型为移动摄像机、物联网和自动驾驶应用程序带来了新的机遇,在这些应用程序中,高效和准确的设备处理至关重要。尽管在深度视频建模方面取得了最新进展,但仍然很难找到在移动设备上运行并实现高视频识别精度的模型。一方面,三维卷积神经网络(CNN)[76,80,25,24,63]提供了最先进的精度,但消耗大量的内存和计算
另一方面,2D CNN[48,88]需要的适合移动的资源要少得多,并且可以使用逐帧预测在线运行,但精度不够。
使3D视频网络精确的许多操作(例如,时间卷积、非本地块[80]等)要求同时处理所有输入帧,从而限制了在移动设备上部署精确模型的机会。最近提出的X3D网络[24]为提高3D CNN的效率做出了重大努力。然而,它们需要在大的时间窗口上占用大量内存资源,这会导致高成本,或者在小的时间窗口上占用大量内存资源,从而降低准确性。其他工作的目的是通过时间聚集来提高2D cnn的准确性[48,23,82,51,22],但是它们有限的帧间交互降低了这些模型对长时间依赖性(如3D cnn)进行充分建模的能力。
本文介绍了设计高效视频模型的三个步骤,并将其用于生产移动视频网络(MoViNets),这是一个存储和计算效率都很高的3D cnn家族。
1.我们首先定义一个MoViNet搜索空间,允许神经架构搜索(NAS)有效地权衡时空特征表示
2.然后我们为MoViNets引入流缓冲区,它处理小的连续子片段中的视频,在不牺牲长时间依赖性的情况下需要恒定的内存,并且支持在线推断。
3.最后,我们创建流电影的时间集合,从流缓冲区中恢复稍微损失的精确度。
首先,我们设计MoViNet搜索空间来探索如何混合空间、时间和时空操作,使得NAS能够找到最佳的特征组合来权衡效率和准确性。图1显示了生成的movinet的效率。MoViNet-A0在Kinetics 600[39]上实现了与MobileNetV3 large+TSM[33,48]相似的精度,并减少了75%的触发器。MoViNet-A6达到了最先进的83.5%的准确率,比X3D-XL高出1.6%[24],所需的触发器减少了60%。
第二,我们通过引入流缓冲区来创建流式movinet,以将训练和推理的输入帧数从线性减少到恒定,从而允许movinet以更少的内存瓶颈运行。例如,流缓冲区将MoViNet-A5的内存使用率降低了90%。与传统的多剪辑评估(测试时数据增强)方法[65,78]相比,流缓冲区通过缓存子剪辑边界处的特征映射,在连续的非重叠子剪辑之间携带时间依赖性,这些方法也减少了内存。与最近提出的时态转移相比,流缓冲区允许更大类别的操作来增强在线时态建模[48]。我们为流缓冲区配备了时间上单向的因果操作,如因果卷积[55]、累积池、因果挤压和激发[34],并使用位置编码强制时间感受野只查看过去的帧,从而使movinet能够在流视频上增量操作以进行在线推断。然而,因果运算的成本很小,平均降低了动力学600的精度1%。
第三,我们临时集成movinet,表明它们比单个大型网络更精确,同时达到相同的效率。我们独立地训练两个流式电影,总的失败次数和一个模型相同,并平均他们的逻辑。这种简单的技术弥补了使用流缓冲区时的精度损失。
综合起来,这三种技术创建的movinet精度高、内存使用率低、计算效率高,并且支持在线推理。我们使用Kinetics 600数据集[9]搜索MoViNets,并在Kinetics 400[39]、Kinetics 700[10]、Moments in Time[54]、Charades[64]和SomethingSomething V2[28]上对其进行广泛测试。
2.相关工作
高效的视频建模。深度神经网络在视频理解方面取得了显著的进展[35,65,74,79,12,80,60,24,25]。他们扩展了具有时间维度的2D图像模型,最显著的是合并了3D卷积[35,73,74,84,29,59,36,63]。
提高视频模型的效率得到了越来越多的关注[25,75,26,24,48,23,6,14,45,57]。一些研究探索了2D网络在视频识别中的应用,方法是先处理较小片段的视频,然后进行后期融合[38、20、86、79、26、69、44、47、80、87、88]。时间移位模块[48]使用早期融合沿时间轴移位一部分通道,提高了精确度,同时支持在线推理。
因果模型。
WaveNet[55]引入了因果卷积,一维卷积叠加的感受野仅扩展到当前时间步长的特征。我们从其他使用因果卷积[11,13,17,15,18]的作品中获得灵感,设计用于在线视频模型推断的流缓冲区,允许使用3D内核进行逐帧预测。
多目标NAS。
NAS[89、49、56、71、8、37]与多目标架构搜索的结合使用也引起了人们的兴趣,在图像识别[71、8、4]和视频识别[57、63]的过程中产生了更有效的模型。我们使用TuNAS[4],这是一个一次性的NAS框架,它使用了非常适合计算密集型视频模型的主动权重共享。
高效集成。
为了提高CNNs的性能,深集合被广泛应用于分类挑战中[7,66,70,30]。最近的研究结果表明,在图像分类方面,小模型的深层集合比单个大模型更有效[40,52,67,42,27],我们将这些发现扩展到视频分类。
3.移动视频网络(MoViNets)
本节描述了movinet的渐进式三步方法。我们首先详细说明设计空间,以搜索movinet。然后,我们定义了流缓冲区,并解释了它如何减少网络的内存占用,然后进行时间合并以提高准确性。
3.1.搜索MoViNet
遵循2D移动网络搜索的实践[71,72],我们从TuNAS框架[4]开始,这是一个在候选模型的超级网络上具有权重共享的一次性NAS的可扩展实现,并将其重新用于3D CNN以进行视频识别。我们使用Kinetics 600[39]作为视频数据集来搜索我们的所有模型,包括10秒的视频序列,每帧25fps,总共250帧。
移动搜索空间。我们在MobileNetV3[33]上构建了我们的基本搜索空间,它为移动cpu提供了一个强大的基线。它由若干个反向瓶颈层块组成,每个层具有不同的过滤器宽度、瓶颈宽度、块深度和内核大小。类似于X3D[24],我们在MobileNetV3中扩展了2D块来处理3D视频输入。表1提供了搜索空间的基本概述,详细内容如下。
我们用T表示× S2=50× 2242和τ = 5(5fps)输入到目标MoViNets的尺寸和帧步幅。对于网络中的每个块,我们搜索基本滤波器宽度c base和层数L≤ 在街区内重复10次。我们在每个块内的特征图通道上应用乘法器{0.75,1,1.25},四舍五入为8的倍数。我们设置n=5个块,除了第4个块外,每个块中的第一层都进行跨步空间下采样(以确保最后一个块的空间分辨率为72)。这些块逐渐增加它们的特征映射通道:{16、24、48、96、96、192}。最后卷积层的基滤波器宽度为512,然后在分类层之前是2048D密集层
利用新的时间维,我们定义了每个层中的3D内核大小k time× (k空间)2,作为以下选项之一:{1x3x3、1x5x5、1x7x7、5x1x1x1、7x1x1x1、3x3x3、5x3x3}(我们不考虑较大的内核)。这些选择使一个层能够聚焦和聚合不同的维度表示,在最相关的方向上扩展网络的感受野,同时减少其他维度上的失败。一些内核大小可能受益于不同数量的输入过滤器,因此我们搜索一系列瓶颈宽度c expand,定义为相对于c base的{1.5、2.0、2.5、3.0、3.5、4.0}中的乘法器。每一层用两个1x1x1卷积包围三维卷积,以在c基和c扩展之间展开和投影。我们不应用任何时间下采样来实现逐帧预测。
我们没有应用空间压缩和激励(SE)[34],而是使用SE块通过3D平均池聚合时空特征,将其应用于每个瓶颈块,如[33,72]所示。我们允许SE是可搜索的,有选择地禁用它以保存触发器
缩放搜索空间。
我们的基本搜索空间构成了MoViNet-A2的基础。对于其他movinet,我们采用了一种类似于EfficientNet[72]中使用的复合缩放启发式方法。我们方法的主要区别在于,我们缩放搜索空间本身,而不是单个模型(即A0-A5模型的搜索空间)。我们没有找到一个好的体系结构然后进行扩展,而是搜索所有体系结构的所有扩展,从而扩大了可能模型的范围。
我们使用一个小的随机搜索来寻找缩放系数(初始目标为每帧300 MFLOPs),这大约是搜索空间中采样模型的预期大小的两倍或一半。对于系数的选择,我们调整基本分辨率s2,帧步长τ , 块过滤器宽度c底部,块深度L。我们对不同的FLOPs目标进行搜索,以产生一系列型号,从MobileNetV3大小到ResNet3D-152大小不等[30,29]。附录a提供了搜索空间的更多细节、缩放技术和搜索算法的描述。
MoViNet搜索空间产生了一系列多功能网络,在流行的基准数据集上,这些网络的性能优于最先进的高效视频识别cnn。然而,它们的内存占用与输入帧的数量成比例增长,使得它们难以在移动设备上处理长视频。下一小节将引入流缓冲区,以将网络的内存消耗从线性减少到视频长度不变。
3.2.具有因果操作的流缓冲区
假设我们有一个输入视频x和T帧,这可能会导致模型超出设置的内存预算。减少记忆的一个常见解决方案是多片段评估[65,78],其中模型平均n个重叠子片段的预测,每个子片段的T片段<T帧,如图2(左)所示。它将内存消耗减少到O(T clip)。然而,它有两个主要的缺点:1)它限制了每个子唇的时间感受野,忽略了长程依赖性,潜在地损害了准确性。2) 它重新计算重叠的帧激活,降低了效率。
流缓冲区。
为了克服上述限制,我们提出流缓冲作为一种机制来缓存子唇边界上的特征激活,允许我们跨子唇扩展时间感受野,并且不需要重新计算,如图2(右)所示。形式上,让x clip i成为步骤i<n的当前子剪辑(原始输入或激活),我们将视频分割成n个相邻的长度为T clip的非重叠子剪辑。我们从一个初始化为零的张量开始,表示缓冲区B,其长度沿时间维度为B,其他维度与x clip i匹配。我们计算了连接的缓冲区的特征映射Fi(⊕) 沿时间维度的子爬升为:
其中f表示时空操作(例如,3D卷积)。在处理下一个剪辑时,我们将缓冲区的内容更新为:
我们指的是[−b:]作为级联输入的最后b帧的选择。因此,我们的内存消耗依赖于O(b+T片段),这是随着总视频帧T或子片段n的数目的增加而恒定的。
与TSM的关系。
时间移位模块(TSM)[48]可视为流缓冲器的特殊情况,其中b=1和f是移位缓冲器Bt=xt中的一部分信道的操作−在第t帧处计算空间卷积之前,将1与输入xt进行比较。
3.2.1因果操作
将3D CNNs的操作拟合到流缓冲区的一个合理方法是强制因果关系,即任何特征都不能从将来的帧中计算出来。这有许多优点,包括能够在不影响激活或预测的情况下将子剪辑x剪辑i减少到单个帧,并且使得3D cnn能够处理用于在线推断的流视频。虽然可以使用非因果操作,例如,在两个时间方向上进行缓冲,但我们将失去在线建模功能,这是移动设备的理想特性。
因果卷积(CausalConv)。
通过利用卷积的平移等变特性,我们将所有时间卷积替换为CausalConvs[55],有效地使它们沿时间维度单向。具体地说,我们首先计算填充以平衡所有轴上的卷积,然后在最后一帧之后移动任何填充,并将其与第一帧之前的任何填充合并。有关感受野与标准卷积的区别以及因果填充算法的说明,请参见附录C
当使用带有CausalConv的流缓冲区时,我们可以用缓冲区本身替换causalcudding,将前一个子clip的最后几帧向前推进,并将它们复制到下一个子clip的padding中。如果我们的时态内核大小为k(并且我们不使用任何跨步采样),那么我们的填充和缓冲区宽度就会变成b=k− 1.通常,k=3意味着b=2,导致内存占用很小。流缓冲区仅在跨多个帧聚合特征的层之前需要,因此空间和逐点卷积(例如1x3x3、1x1x1)可以保持原样,进一步节省内存
累积全球平均池(CGAP)。
我们使用CGAP来近似任何涉及时间维度的全局平均池。对于第t0帧之前的任何激活,我们可以将其计算为累积和:
其中x表示激活张量。为了因果地计算CGAP,我们保留了一个帧流缓冲区,将累积和存储到T
位置编码的因果关系。我们将CausalSE表示为CGAP对SE的应用,其中我们将第t帧处的空间特征映射与由CGAP(x,t)计算的SE相乘。从我们的经验结果来看,CausalSE很容易不稳定,这可能是由于SE投影层很难确定CGAP估计的质量,而CGAP估计在视频的早期具有很高的方差。为了解决这个问题,我们采用了一种基于正弦的固定位置编码(POSENC)方案,其灵感来自于变压器[77,50]。在应用SE投影之前,我们直接使用帧索引作为位置,并将向量与CGAP输出求和。
3.2.2使用流缓冲区进行训练和推理
培训。
为了减少训练过程中的内存需求,我们使用了一种循环训练策略,将给定的一批示例分成n个子片段,应用一个前向传递,为每个子片段输出一个预测,使用流缓冲区缓存激活。但是,我们不会将梯度反向传播到缓冲区之外,这样就可以释放先前子唇的内存。相反,我们计算损失并在子唇之间累积计算的梯度,类似于批量梯度累积。这允许网络考虑所有T=nTclip帧,在应用梯度之前执行n次向前传递。这种训练策略允许网络学习长期依赖关系,因此比用较短视频长度训练的模型具有更好的准确性(见附录C)。我们可以将T clip设置为任何值而不影响精度。然而,ML加速器(例如gpu)受益于大张量的乘法,因此对于训练,我们通常设置一个值T clip∈ {8, 16, 32}. 这可以加速训练,同时允许仔细控制内存开销。
在线推理。
使用像CausalConv和CausalSE这样的因果操作的一个主要好处是允许3D视频CNN在线工作。与训练类似,我们使用流缓冲区来缓存子唇之间的激活。但是,我们可以将子剪辑长度设置为单个帧(T clip=1),以最大限度地节省内存。这也减少了帧之间的延迟,使模型能够在流视频上逐帧输出预测,像递归网络(RNN)一样增量地积累新信息[32]。但与传统卷积RNN不同的是,我们可以在每一步输入可变数量的帧来产生相同的输出。对于具有CausalConv的流式体系结构,我们通过使用CGAP汇集逐帧输出特征来预测视频的标签。
3.3.时间集合
流缓冲区可以将MoViNets的内存占用减少一个数量级,代价是在dynamics600上降低大约1%的精度。我们可以使用一个简单的合并策略来恢复这种精度。我们使用相同的体系结构独立地训练两个movinet,但是将帧速率减半,使时间持续时间保持不变(导致一半的输入帧)。我们将一个视频输入到两个网络中,其中一个网络的帧偏移量为一帧,并在应用softmax之前对未加权logits应用算术平均值。这种方法在帧速率减半之前产生一个与单个模型具有相同触发器的双模型集合,提供了丰富的预测表示。在我们的观察中,尽管集合中的两个模型可能比单个模型的精度低,但是当集合时,它们可以比单个模型具有更高的精度。
4.视频分类实验
在这一节中,我们评估了MoViNets在五个有代表性的动作识别数据集的推理过程中的准确性、效率和内存消耗。
数据集。
我们报告了所有动力学数据集的结果,包括动力学400[12,39]、动力学600[9]和动力学700[10],其中包含10秒、250帧、每秒25帧的视频序列,分别标记有400、600和700个动作类。我们使用了写作时可用的示例,分别占培训示例的87.5%、92.8%和96.2%(见附录C)。此外,我们还对时间矩[54]进行了实验,其中包含339个动作类中每秒25帧的3秒75帧序列,以及具有157个动作类的可变长度视频的Charades[64],其中一个视频可以包含多个类注释。我们在附录C中包括SomethingSomething V2[28]和Epic Kitchens 100[19]结果。
实施细节。
对于每个数据集,所有模型都是用RGB框架从头开始训练的,也就是说,我们不应用任何预训练。对于所有的数据集,我们以不同的帧速率训练64帧(除非推理帧较少),并以相同的帧速率运行推理。
我们使用Kinetics 600运行tuna,并保留7个movinet,每个movinet都有一个FLOPs目标,在[24]中使用。当我们的模型变大时,我们的缩放系数增加了网络的输入分辨率、帧数、深度和特征宽度。我们还对图像分类中使用的自增强[16]增强进行了实验,即我们对每个视频采样一个随机图像增强,并对每个帧应用相同的增强。7个模型的体系结构和训练超参数见附录B。
单剪辑与多剪辑评估。
我们评估我们所有的模型与一个单一的剪辑从一个固定的时间步长的输入视频采样,涵盖了整个视频持续时间。当单剪辑和多剪辑评估使用相同的总帧数,使触发器是等效的,我们发现单剪辑评估产生更高的准确性(见附录C)。这在一定程度上是由于3D-cnn能够模拟更大范围的依赖关系,即使是在比训练更多的帧上进行评估时也是如此。由于现有模型通常使用多剪辑评估,为了公平比较,我们报告每个视频的总失败次数,而不是每个剪辑。
然而,单片段评估可以极大地提高网络的峰值内存使用率(如图1所示),这可能是多片段评估在以前的工作中普遍使用的原因。流缓冲区消除了这个问题,允许movinet像嵌入完整视频一样进行预测,并且比多剪辑评估产生的峰值内存更少。
我们还复制了X3D[24],可以说是与我们最相关的工作,以测试它在单剪辑和10剪辑评估下的性能,从而提供更多的见解。我们将30个片段作为评价策略,每个视频10个片段乘以3个空间裁剪,而10个片段只使用一个空间裁剪。为了提高推理效率,我们避免了MoViNets中的任何空间增强或时间采样。
4.1.动力学对比结果600
没有流缓冲区的MoViNets。
表2显示了在应用流缓冲区之前,Kinetics 600上七个Movinet的主要结果,主要与最近为高效视频识别而开发的各种X3D模型进行了比较[24]。表中的列对应于前1个分类精度;模型产生的每个视频的GFLOPs;输入视频帧的分辨率(我们将2242缩短为224);每个视频输入帧,其中30× 4表示每次运行中输入4帧的30剪辑评估;每秒帧数(FPS),由时间步长确定τ 在MoViNets的搜索空间中;以及网络的参数数量。
MoViNet-A0的GFLOPs更少,比基于帧的MobileNetV3-S精确10%[33](我们使用我们的训练设置训练MobileNetV3,平均帧间的登录)。MoViNet-A0在精确度和GFLOPs方面也优于X3D-S。MoViNet-A1与X3D-S的GFLOPs匹配,但其精确度比X3D-S高2%。
将目标gflop增加到X3D到30个片段X3D-XS之间,我们就得到了MoViNet-A2。通过使用几乎一半的gflop,我们可以获得比30个剪辑X3D-XS或X3D-M更高的精度。此外,我们还包括逐帧MobileNetV3-L,并验证了它可以从TSM[48]获益约3%。
更大的movinet(A3–A6)与X3D系列中的同类产品之间有更大的利润空间。这并不奇怪,因为在设计空间较大的情况下,NAS应该比手工制作X3D更具优势。MoViNet-A5和MoViNet-A6的性能优于几种最先进的视频网络,包括最新的变压器型号,如ViViT[2]和timeformer[5](见表2的最后6行)。
带有AutoAugment的MoViNet-A6实现了84.8%的准确率(无需预训练),同时仍然比可比模型更有效(通常是一个数量级)。即使与时间转换器HR[5]等全变压器[77]模型相比,MoViNetA6的性能也比它高出1%的精度和40%的触发器。
具有流缓冲区的MoViNets。
在没有修改的情况下,我们的基本MoViNet架构可能会消耗大量内存,特别是随着模型大小和输入帧的增长。使用带有因果操作的流缓冲区,我们可以对大型网络(MoViNets A3-A6)实现一个数量级的峰值内存减少,如表3的最后一列所示。
此外,图3显示了流体系结构对内存的影响。从顶部的左面板中,我们可以看到,与采用多剪辑评估的X3D相比,我们的movinet在所有型号上都更精确,内存效率更高。我们还展示了恒定的记忆,因为我们规模的总帧数在输入接受领域在顶部的右面板。底部面板指示流式视频在每个输入视频的GFLOPs方面保持高效。
我们还将流缓冲区应用于ResNet3D-50(见表3中的最后两行)。然而,我们并没有看到太多的内存减少,这可能是由于使用全3D卷积时的开销比movinet中的深度卷积要大。
具有流缓冲区和加密的movinet。
从表3中我们可以看到,在应用流缓冲区之后,所有模型的精度只下降了1%。我们可以在不增加任何额外推理代价的情况下,使用时间置乱来恢复精度。表3报告了以原始模型一半帧速率训练的两个模型的合并效果(以便gflop保持不变)。我们可以看到所有流式体系结构的精确度都得到了提高,这表明,集成可以弥合流式体系结构和非流式体系结构之间的差距,特别是随着模型大小的增长。值得注意的是,与以前的工作不同,ensembling平衡了精确度和效率(GFLOPs),其精神与[40]相同,不仅仅是为了提高精确度
4.2.其他数据集的比较结果
图4总结了MoViNets在所有五个数据集上的主要结果,以及在各个数据集上报告结果的最新模型。我们将MoViNets与X3D[24]、MSNet[41]、TSM[48]、ResNet3D[30]、SlowFast[25]、EfficientNetL2[83]、TVN[57]、SRTG[68]和AssembleNet[63、62]进行了比较。附录C列出了更多细节的结果。
尽管只在Kinetics 600上搜索有效的体系结构,但NAS生成的模型也比以前在其他数据集上的工作有了很大的改进。在时间矩方面,我们的模型在低GFLOPs下比微型视频网络(TVN)[57]的精度高5-8%,MoViNet-A5的精度达到39.9%,优于AssembleNet[63](34.3%),后者使用光流作为附加输入(而我们的模型没有)。在Charades上,MoViNet-A5的准确率达到63.2%,优于AssembleNet++[62](59.8%),后者使用光流和对象分割作为附加输入。字谜游戏的结果提供了证据,证明我们的模型也具有复杂的时间理解能力,因为这些视频可以有比在动力学和时间瞬间中看到的更长的持续时间片段
4.3.附加分析
MoViNet操作。
我们在表4中提供了一些关于一些关键MoViNet操作的烧蚀研究。对于没有流缓冲区的基本网络,SE对于实现高精度至关重要;如果去掉SE,MoViNet-A1的精确度会下降2.9%。我们发现,不使用SE的CausalConv比使用全局SE的CausalConv的精度下降要大得多,这表明全局SE可以扮演标准Conv的角色,从未来的帧中提取信息。然而,当我们切换到带有CausalConv和CausalSE的全流式体系结构时,来自未来帧的这些信息将不再可用,并且我们看到精度大幅下降,但仍然比没有SE的CausalConv有显著改进。利用PosEnc,我们可以在因果模型中获得一些精度。
MoViNet架构。
我们在表5-附录BHA中提供了MoViNet-A2的体系结构描述,以及其他MoViNet的详细体系结构。最值得注意的是,网络更喜欢在[2.5,3.5]范围内的大瓶颈宽度乘数,通常在每一层之后扩大或缩小它们。相比之下,具有类似计算需求的X3D-M具有更宽的基本特征宽度,具有更小的恒定瓶颈乘数2.25。搜索到的网络更喜欢平衡的3x3x3内核,除了在后面的块中的第一个下采样层有5x3x3内核。最后阶段几乎只使用大小为1x5x5的空间核,这表明用于分类的高级特征主要受益于空间特征。这与S3D形成了对比[85],S3D报告了在较低层使用2D卷积和在较高层使用3D卷积时提高的效率。
4.3.1硬件基准
MoViNets A0、A1和A2代表了在移动设备上最实际使用的最快型号。在3.70GHz的x86 Intel Xeon W-2135 CPU上,我们将它们与图5中的MobileNetV3在触发器和实时延迟方面进行了比较。这些模型在每帧计算成本上具有可比性,因为我们对所有模型的50帧进行了评估。从这些结果中我们可以得出结论,流式movinet可以在CPU上运行得更快,同时更精确,即使有TSM这样的临时修改。虽然FLOPs和延迟之间存在差异,但在NAS中显式搜索延迟目标可以减少这种影响。然而,我们仍然看到FLOPs是CPU延迟的一个合理的代理度量,这对于移动设备来说是很好的转换。
我们还在表6中展示了运行在nvidiav100gpu上的MoViNets的基准测试。与mobilecpu类似,我们的流模型延迟与单剪辑X3D模型相当。然而,我们注意到MobileNetV3可以比我们在GPU上的网络运行得更快,这表明NAS的FLOPs指标有其局限性。movinet可以通过瞄准真实的硬件而不是触发器来提高效率,我们将这些放在未来的工作中。
5.结论
MoViNets提供了一组高效的模型,可以很好地在不同的视频识别数据集之间传输。加上流缓冲区,MoViNets大大减少了训练和推理内存成本,同时还支持流视频的在线推理。我们希望我们设计movinet的方法能够改进未来和现有的模型,减少过程中的内存和计算成本。