全文按照原文的结构来描述(可以当做是翻译),尽可能保持作者原文想表达的意思,里面会穿插自己的想法(会注明),描述有问题的地方也欢迎指出。
Abstract
问题:
视频流的爆炸增长带来了对高准确度和低成本计算的视频理解挑战。常规的2D CNN 在计算上是相对廉价的,但其无法捕获时间维度的关系。而基于3D CNN 的方法可以达到良好的效果性能,但计算量大,因此部署成本很大。
解决方案:
结合以上提到的问题,本文提出了一个通用且高效的时间转换模块(TSM)。具体来说,它可以实现3D CNN的性能,但保持了2D CNN相对较小的计算量。
对TSM的简介:
那么TSM到底是怎么做的呢?TSM在时间维度上移动了部分通道,从而促进相邻帧在信息之间的交流。而这一操作插入到2D CNN中又基本算是实现了在零计算量的情况下对时间轴信息建模。
作者还将TSM扩展到了在线视频的检测,表现实时、低延迟,准确且高效,在文章发表日为止,在Something-Something数据集上表现排名第一。在手机端Galaxy Note8上,它实现了在线视频的13ms和35ms的低延迟识别。开源代码链接:https://github.com/mit-han-lab/temporal-shift-module
我的看法:
在效果一致的前提下,2D对于3D的优越性太大了,一方面计算量(当然这是最重要的),另一方面backbone也可以有更多的选择了(普通的backbone就可以用),作者的工作真的很棒。
Introduction
高效的视频理解是在云端和边缘上进行实际部署的重要一步。例如,每天有超过105个小时的视频上传到YouTube,需要进行推荐和广告排名;有TB级的医院敏感视频需要在边缘设备上进行本地处理,以保护隐私。所有这些行业都需要准确而有效的视频理解。
多年来,深度学习应用于视频处理已经成为一个标准。视频识别和图像识别之间的一个关键区别是对时间建模的需求。例如,打开盒子和关闭盒子的关系,如果颠倒顺序就会得到相反的结果,因此时间建模至关重要。

图1.时移模块(TSM)通过沿时间维度移动特征图来执行有效的时间建模。 它在2D卷积的基础上是没有多余的计算量的,但实现了强大的时间建模能力。 TSM有效地支持离线和在线视频识别。 双向TSM将过去和将来的帧与当前帧混合在一起,适用于高吞吐量离线视频识别。 单向TSM仅将过去帧与当前帧混合在一起,这适用于低延迟在线视频识别。
现有的有效视频理解方法直接使用2D CNN也有。 但是,单个帧上的2D CNN无法很好地对时间信息进行建模。 3D CNN 可以共同学习空间和时间特征,但是计算量很大,这使得在边缘设备上的部署变得困难。 它不能应用于实时在线视频识别。 有一些工作需要在时间建模和计算之间进行权衡,例如最后融合和中间时间融合。 此类方法牺牲了低级时间建模以提高效率,但是在时间融合之前,在特征提取期间会丢失许多有用的信息。
在本文中,本文通过提出一种新颖的时间移位模块(TSM),为视频理解中的有效时间建模提出了一个新的视角。具体而言,视频模型中的激活可以表示为A∈R(N×C×T×H×W),其中N是批处理大小,C是通道数,T是时间维,H和W是空间分辨率。传统的2D CNN只能在尺寸T上单独运行;因此,没有时间建模会产生影响(图1a)。相反,我们的时间移位模块(TSM)沿时间维度向前和向后移动通道。如图1b所示,来自相邻帧的信息在移位后与当前帧混合在一起。作者的直觉是:卷积运算由移位和乘法累加组成。我们将时间维度偏移±1,并将乘积从时间维度折叠到通道维度。为了实时了解在线视频,无法将未来的信息转移到现在,因此我们使用单向TSM(图1c)进行在线视频理解。
尽管移位运算具有零运算的性质,但根据经验,我们发现仅采用图像分类中使用的空间移位策略会引起视频理解两个主要问题:
(1)效率不高:移位运算在概念上是FLOP为零,但会导致数据移动。数据移动的额外成本不可忽略,并且会导致延迟增加。由于视频网络通常会占用大量内存(5D激活),因此这种现象在视频网络中更加严重。
(2)准确性低:在网络中移动太多通道会严重损害空间建模能力,并导致性能下降。为了解决问题,我们做出了两项技术贡献。
1.我们使用时间局部移位策略:为了有效地进行时间融合,我们只移位了一小部分信道,而不是移位所有信道。这种策略大大降低了数据移动成本(图2a)。
2.我们将TSM插入残差分支而不是外部,以便保留当前帧的激活,这不会损害2D CNN骨干的空间特征学习能力。
本文的贡献总结如下:
•我们为通过时间平移进行有效的视频模型设计提供了新的视角,该方法在计算上是免费的,但具有强大的时空建模能力。
•我们观察到,单纯的转变无法实现高效率或高性能。 然后,我们提出了两种技术改进:部分偏移和残余偏移,以实现高效的模型设计。
•我们建议在离线状态下使用双向TSM,以实现最先进的性能。 出版时,它在Something-Something排行榜上排名第一。
•我们建议在边缘设备上以低延迟在强大的时间建模能力下实现在线实时视频识别的单向TSM。
Related Work
这一段可以不看,就是说了一下前人的相关工作和存在的问题,突出一下自己模型的优点。
Deep Video Recognition
2D CNN。 使用2D CNN是进行视频识别的直接方法[24、39、48、11、8、9、2]。 例如,Simonyan等。 [39]设计了一种分别用于RGB输入(空间流)和光流[55]输入(时间流)的两流CNN。 时间分段网络(TSN)[48]从跨采样帧中提取平均特征。 与3D对应方法相比,此类方法效率更高,但无法推断时间顺序或更复杂的时间关系。
3D CNN。 3D卷积神经网络可以共同学习时空特征。 Tran等。 [45]提出了一种基于VGG模型的3D CNN,称为C3D,以从帧序列中学习时空特征。 Carreira和Zisserman [4]提出将Inception V1模型[43]中的所有2D卷积滤波器膨胀为3D卷积。 但是,3D CNN的计算量很大,因此部署困难。 与2D对应参数相比,它们还具有更多参数,因此更容易过度拟合。 另一方面,我们的TSM具有与3D CNN相同的时空建模能力,同时享有与2D CNN相同的计算和参数(内心BB: 什么叫NB,这TM就叫NB!)
Trade-offs。 已经尝试权衡表达和计算成本。 Lee等。 [27]提出了一种运动滤波器来从2D CNN生成时空特征。 Tran等。 [46]和谢等。 [53]提出研究混合的2D和3D网络,要么首先使用3D,然后使用2D(底部重),要么首先使用2D,然后再使用3D(顶部重)架构。 ECO [61]还使用类似的顶级架构来实现非常有效的框架。 另一种节省计算的方法是将3D卷积分解为2D空间卷积和1D时间卷积[46,33,42]。 对于混合的2D-3D CNN,他们仍然需要删除低层时间建模或高层临时模型。 与分解卷积相比,我们的方法完全消除了时间建模的计算成本,具有更高的硬件效率。
Temporal Modeling
用于时间建模的直接方法是使用如上所述的基于3D CNN的方法。 Wang等。 [49]提出了一个时空非局部模块来捕获远距离依赖性。 Wang等。 [50]提出将视频表示为时空区域图。 建模时间关系的另一种方法是使用2D CNN +事后融合[13,9,58,7]。 一些作品使用LSTM [19]来聚合2D CNN功能[54、7、41、10、12]。 注意机制也被证明对时间建模有效[37,28,32]。 周等。 [58]提出了时间关系网,以学习和推理有关时间依赖性。 前一类的计算量很大,而后者无法捕获在特征提取期间丢失的有用的低级信息。 我们的方法以2D CNN为代价提供了一种有效的解决方案,同时实现了低级和高级时间建模,就像基于3D-CNN的方法一样。
Efficient Neural Networks
二维CNN的效率已得到广泛研究。 一些工作着重于设计有效的模型[21,20,36,56]。 最近,已经引入了神经网络结构搜索[62、63、31],以自动找到有效的体系结构[44、3]。 另一种方法是修剪,量化和压缩现有模型以进行有效部署[16、15、29、59、18、47]。 地址移位是一种硬件友好的原语,也已经用于图像识别任务的紧凑2D CNN设计[51,57]。 尽管如此,我们注意到由于视频数据的复杂性,直接在视频识别任务中采用移位运算既不能保持效率也不能保持准确性。
Temporal Shift Module (TSM)
我们首先解释一下TSM背后的直觉:数据移动和计算可以卷积分离。 但是,我们观察到这种简单的换档操作既不能达到高效率,也不能达到高性能。 为了解决该问题,我们提出了两种技术来最小化数据移动并增加模型容量&#