TSM: Temporal Shift Module for Efficient Video Understanding


https://arxiv.org/abs/1811.08383
备注: 如有侵权,立即删除
code: https://github.com/mit-han-lab/temporal-shift-module
source: ICCV2019

Abstract

视频流的爆炸性增长给高准确率和低计算成本的视频理解的带来了很大的挑战。传统的2D CNNs计算量很小但是无法捕获时序关系;以3D CNN构造的模型可以取得很好的效果但是计算量很大,使得部署成本很高。在本文中,我们提出了一个通用并且有效的时序转移模块(TSM),可以在高效的同时获得很好的表现。
它可以得到3D CNN的效果,但是只有2D CNN的复杂度。TSM沿着时间维度移动部分通道,因此促进了相邻帧之间的信息交换。它可以插入到2DCNNs中获取时序模型并不增加任何计算量和参数。我们还将TSM扩展到在线设置,使实时低延迟在线视频识别和视频对象检测。TSM是准确和高效的:它在发布时在“Something-Something”排行榜上排名第一;在JetsonNano和GalaxyNote8上,它实现了13ms和35ms的低延迟在线视频识别。

1 Introduction

硬件高效的视频理解是迈向现实世界部署的重要一步,无论是在云上还是在边缘。 例如,每天有超过10^5个小时的视频上传到YouTube,以进行推荐和广告排名;T字节的医院敏感视频的需要在边缘设备上进行本地处理,以保护隐私。 所有这些行业应用都需要准确和高效的视频理解。

多年来[45,48,4,49,61,53,58],深度学习已成为视频理解的标准。 视频识别和图像识别的一个关键区别是需要时间建模。 例如,要区分打开和关闭一个盒子,颠倒顺序会给出相反的结果,因此时间建模是至关重要的。现有的有效视频理解方法直接使用2D CNN[24,39,48,58]。 然而,单个帧上的2D CNN不能很好地模拟时间信息。 3Dcnns[45,4]可以联合学习空间和时间特征,但计算成本较大,使得边缘设备上的部署困难;不能应用于实时在线视频识别。 在时间建模和计算之间有一些折衷的工作,如后时间融合[13,9,58,7]和中级时间融合[61,53,46]。 这种方法牺牲了低层次的时间建模的效率,但在时间融合发生之前,在特征提取过程中丢失了许多有用的信息。
在这里插入图片描述

在本文中,我们提出了一个新的时间移位模块(TSM),为视频理解中有效的时间建模提供了一个新的视角)。 具体地,视频模型中的激活可以表示为A∈RN×C×T,H×W,其中N是批处理大小,C是信道数,T是时间维数,H和W是空间分辨率。传统的2D CNN在维度T上独立工作;因此没有时间建模产生效果(图1a)。 相反,我们的时间移位模块(TSM)沿着时间维度移动通道,包括向前和向后。 如图1b所示,来自相邻帧的信息在移动后与当前帧混合。我们认为:卷积操作包括移位和多重累积。 我们在时间维度上移动±1,并将乘积从时间维度折叠到通道维度。 对于实时在线视频理解,未来的帧不能转移到现在,所以我们使用单向TSM(图1c)来执行在线视频理解。

尽管移位操作具有零计算性质,但我们经验性地发现,简单地采用图像分类中使用的空间移位策略[51]为视频理解引入了两个主要问题:(1)它不有效:移位操作在概念上是零FLOP,但会引起数据移动。 数据移动的额外成本是不可忽视的,并将导致延迟增加。 这种现象在视频网络中加剧,因为它们通常具有较大的内存消耗(5D激活)。(2)不准确:在网络中移动过多的通道会严重损害空间建模能力并导致性能下降。 为了解决这两个问题我们做出两项技术贡献。 (1)我们使用时间部分移位策略:我们不移动所有通道,而只移动一小部分通道,以便有效地进行时间融合。 这种策略大大降低了数据移动成本(图2a)。 (2)我们将TSM插入剩余分支而不是外部,以保持当前帧的激活,这不会损害2D CNN骨干的空间特征学习能力。

我们的论文的贡献总结如下:

  • 我们提供了一个新的视角,以有效的视频模型设计时间移位,这是计算自由,但具有很强的时空建模能力。
  • 我们观察到,朴素移位不能达到高的效率或高性能。 然后提出了两种技术改进的部分移位和剩余移位,以实现高效率的模型设计。
  • 我们提出了双向TSM的离线视频理解,以达到最先进的性能。 它在Something-Something数据集排名第一。
  • 我们提出了一种用于在线实时视频识别的单向TSM,在边缘设备上具有较强的时间建模能力。

3 Proposed Method

我们首先解释TSM背后的想法:数据移动和计算可以在卷积中分离。 然而,我们观察到,这种朴素的移位操作既没有达到高效率,也没有达到高性能。 为了解决这一问题,我们提出了两种最小化数据移动和增加模型容量的技术,从而实现了高效的TSM模块。

3.1 Intuition

让我们首先考虑一个正常的卷积运算。 为了简洁起见,我们以核大小为3的一维卷积为例。 假设卷积的权重为W=(w1,w2,w3),输入X是一个长度无限的一维向量。 卷积算子Y=Conv(W,X)可以写成:Yi=w1·Xi-1+w2·Xi+w3·Xi+1。 我们可以将卷积的运算解耦为两个步骤:移位和乘积:我们将输入X分别移动-1,0,1和乘w1,w2,w3,它们相加为Y。 形式上,交接班操作为:
在这里插入图片描述
乘积运算是:
在这里插入图片描述
第一步移位可以在没有任何乘法的情况下进行。 虽然第二步在计算上更昂贵,但我们的时间移位模块将乘法累积合并到下面的2D卷积中,因此与基于2D CNN的模型相比,它没有额外的成本。

提议的时间移位模块如图1所示。 在图1a中,我们描述了一个具有C通道和T帧的张量。 在不同的时间邮票的特征被表示为不同的颜色在每一行。 沿着时间维度,我们将通道的一部分移动Y1,另一部分移动1,剩下的不移位(图1b)。 对于在线视频识别设置,我们还提供了TSM的在线版本(图1c)。在在线设置中,我们无法访问未来的帧,我们只以单向的方式从过去的帧转移到未来的帧。

3.2 Naive Shift Does Not Work

尽管所提出的模块背后有着简单的哲学,但我们发现直接将空间移位策略[51]于时间维度不能提供高的性能和效率。 具体来说,如果我们转移所有或大部分渠道,它会带来两种灾难:(1)由于大数据移动而更糟糕的效率。 移位操作不受计算,但涉及数据移动。 数据移动增加了硬件上的内存占用和推理延迟。更糟糕的是,由于大的激活大小(5D张量),这种影响在视频理解网络中更加严重)。 当使用天真的移位策略移动每个映射时,我们观察到CPU延迟增加13.7%,GPU延迟增加12.4%,总体推理缓慢。 (2)由于空间建模能力差,性能下降。 通过将部分信道转移到相邻帧,信道中包含的信息对当前帧不再可访问,这可能会损害二维CNN骨干的空间建模能力。 我们观察到,与二维CNN基线(TSN)相比,使用朴素移位实现时,准确率下降了2.6)
在这里插入图片描述

3.2 Module Design

为了从朴素移位实施中解决这两个问题,我们讨论了两个技术贡献。
Reducinng Data Movement. 为了研究数据移动的影响,我们首先测量了TSM模型和2D基线在不同硬件设备上的推理延迟。 我们移动了不同比例的通道,并测量了延迟。 我们用ResNet-50骨干和8帧输入测量模型,使用无移位(2D基线)、部分移位(1/8、1/4、1/2)和所有移位(移位所有通道)。 在服务器GPU(NVIDIA特斯拉P100)、移动GPU(NVIDIA JetsonTX2)和CPU(IntelXeonE5-2690)上测量了定时)。我们报告了1000次运行后的平均延迟在200次激活运行之后。我们将移位操作的开销表示为2a中原始2D CNN推理时间的百分比。 我们观察到不同设备的相同开销趋势。 如果我们移动所有信道,延迟开销将占用CPU上13.7%的推理时间,这在推理过程中是忽略的。 另一方面,如果我们只移动一小部分信道,例如1/8,我们可以将延迟开销限制在只有3%。 因此,我们在TSM实现中使用部分移位策略来显著降低内存移动成本。
在这里插入图片描述

Keeping Spatial Feature Learning Capacity. 我们需要平衡空间特征学习和时间特征学习的模型容量。 应用TSM的一种直接方法是在每个卷积层或剩余块之前插入它,如图3a所示。 我们称之为就地转换。 它损害了骨干模型的空间特征学习能力,特别是当我们移动大量信道时,因为存储在移位信道中的信息对当前帧丢失。

为了解决这一问题,我们提出了移位模块的变体。 我们将TSM放入剩余分支中,而不是将其插入到剩余块中。 我们将移位的版本表示为残差移位,如3b所示。 剩余移位可以解决退化的空间特征学习问题,因为原始激活中的所有信息在时间移位后仍然可以通过身份映射访问。

为了验证我们的假设,我们比较了Kinetics数据集上的就地移位和剩余移位[25]性能。 我们研究了不同移位比例设置下的实验。 结果如2b所示。 我们可以看到,对于所有移位比例,剩余移位实现了比就地移位更好的性能。 即使我们将所有通道转移到相邻帧,由于快捷连接,剩余移位仍然比2D基线获得更好的性能。 另一个发现是,性能与移位通道的比例有关:如果比例太小,时间推理能力可能不足以处理复杂的时间关系;如果太大,空间特征学习能力可能受到伤害。 对于剩余位移,我们发现当通道的1/4(每个方向的1/8)被移动时,性能达到峰值。 因此,我们在论文的其余部分使用这个设置。

4 TSM Video Network

4.1 Offline Models with Bi-directional TSM

我们插入双向TSM来建立离线视频识别模型。 给定一个视频V,我们首先从视频中采样T帧FI,F1,…,FT。 帧采样后,2D CNN基线分别处理每个帧,并对输出日志进行平均,以给出最终的预测。 我们提出的TSM模型与二维模型具有完全相同的参数和计算成本。 在卷积层的推理过程中,帧仍然像2D CNN一样独立运行。 不同的是,TSM是为每个剩余块插入的,这使得时间信息融合没有额外计算。对于每个插入的时间移位模块,时间接收场将被放大2,就像沿着时间维度运行核大小为3的卷积一样。 因此,我们的TSM模型具有很大的时间接受场,可以进行高度复杂的时间建模。 在本文中,我们使用ResNet-50[17]作为骨干,除非另有规定。

TSM的一个独特的优点是它可以很容易地将任何现成的2D CNN模型转换为伪-3D模型,既可以处理空间信息,也可以处理时间信息,而不需要增加额外的计算。 因此,我们的框架的部署是硬件友好的:我们只需要支持2D CNN中的操作,这些操作已经在框架级(CuDNN[6]、MKL-DNN、TVM[5])和硬件级(CPU/GPU/TPU/FPGA)进行了很好的优化)。

4.2 Online Models with Uni-directional TSM

在线视频流的视频理解在现实生活中是很重要的。 许多实时应用需要低延迟的在线视频识别,如AR/VR和自动驾驶。 在这一部分中,我们表明,我们可以适应TSM实现在线视频识别,同时具有多层次的时间融合。
在这里插入图片描述

如图1所示,离线TSM双向移动部分通道,这需要从未来帧中的特征来替换当前帧中的特征。 如果我们只将特征从以前的帧转移到当前帧,我们就可以用单向TSM实现在线识别。

在线视频识别的单向TSM推理图如图4所示。 在推理过程中,对于每个帧,我们保存每个剩余块的前1/8特征映射并将其缓存到内存中。 对于下一帧,我们将当前特征映射的前1/8替换为缓存的特征映射。 我们使用7/8当前特征映射和1/8旧特征映射的组合来生成下一层,并重复。 使用单向TSM进行在线视频识别有几个独特的优点:

  • Low latency inference. 对于每个帧,我们只需要替换和缓存1/8的特性,而不会引起任何额外的计算。 因此,给予Perframe预测的延迟几乎与2D CNN基线相同。 现有的方法,如[61]使用多个帧来给出一个预测,这可能导致较大的延迟。

  • Low memory consumption. 由于我们只缓存内存中的一小部分特性,所以内存消耗很低。 对于ResNet-50,我们只需要0.9MB内存缓存来存储中间特性。

  • Multi-level temporal fusion. 大多数在线方法只允许在特征提取后进行后期时间融合,如[58]或中水平的时间融合[61],而我们的TSM则允许所有级别的时间融合。 通过实验(表2),我们发现多层次的时间融合对于复杂的时间建模非常重要

Experiments

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Conclusion

我们提出了一种用于硬件高效视频识别的时间移位模块。 它可以插入到2D CNN骨干网络中,以使联合时空建模不需要额外的成本。 该模块沿时间维度移动部分信道,与相邻帧交换信息。 我们的框架既高效又准确,使边缘设备上的低延迟视频识别成为可能。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值