视频流的爆炸性增长给在高精度和低计算成本下执行视频理解带来了挑战。传统的二维神经网络计算成本很低,但不能捕获时间关系;基于3DCNN的方法可以获得良好的性能,但计算量密集,部署成本高昂。该文提出了一种通用、高效的时移模块(TSM)。具体来说,它可以达到3DCNN的性能,但又保持了2DCNN的复杂性。TSM沿着时间维度移动部分通道;从而促进了相邻帧之间的信息交换。它可以插入到二维cnn中,以实现零计算和零参数的时间建模。
硬件高效的视频理解是迈向现实世界部署的重要一步,无论是在云上还是在边缘上。例如,每天有超过105小时的视频上传到YouTube来处理推荐和广告排名;医院里的敏感视频需要在边缘设备上进行本地处理,以保护隐私。所有这些行业应用程序都需要准确和高效的视频理解。
多年来,深度学习已经成为视频理解的标准。视频识别和图像识别之间的一个关键区别是需要进行时间建模。例如,为了区分打开和关闭一个盒子,反转顺序会产生相反的结果,因此时间建模是至关重要的。现有的高效视频理解方法直接使用2DCNN。然而,在单个帧上的二维CNN并不能很好地模拟时间信息。3DCNNs可以联合学习时空特征,但计算成本较大,使其在边缘设备上的部署更加困难;它不能应用于实时在线视频识别。
在该文中,提出了一种新的时移模型(TSM),提出了一种有效的时移建模的新视角。具体地说,视频模型中的激活可以表示为\(A∈R^{N×C×T×H×W}\),其中N为批大小,C为通道数,T为时间维度,H和W为空间分辨率。传统的二维CNN在T上独立运行,因此没有时间建模效果(图1a)。相比之下,我们的时间移模块(TSM)沿时间维度移动通道,向前和向后移动。如图1b所示,移动后,来自相邻帧的信息与当前帧混合。
尽管移位操作具有零计算性质,但该文发现,简单地采用图像分类中使用的空间移位策略会引入视频理解的两个主要问题:(1)它不有效:移位操作在概念上是零FLOP,但会导致数据移动。数据移动的额外成本将不可忽略不计,并将导致延迟的增加。这种现象在视频网络中已经加剧了,因为它们通常有很大的内存消耗(5D激活)。(2)它不准确:在网络中移动太多的信道会严重损害空间建模能力,导致性能下降。
为了解决这些问题,该文做出了两个技术贡献。(1)使用时间局部移位策略:我们不是移位所有通道,而是只移位一小部分通道以实现有效的时间融合。这种策略显著地降低了数据移动成本(图2a)。(2)将TSM插入到残差分支的内部而不是外部,以保留当前帧的激活,而不会损害2DCNN主干的空间特征学习能力。
下图是关于TSM插入位置的两张架构:
需要平衡空间特征学习和时间特征学习的模型能力。应用TSM的一种直接方法是将其插入到每个卷积层或剩余块之前,如图3a所示。这种实现为就地转变。它损害了主干模型的空间特征学习能力,特别是当移动大量通道时,因为移位通道中存储的信息在当前帧中丢失了。
为了解决这个问题,该文提出了换班模块的一个变体。该文没有将TSM插入,而是将TSM放在残差分支的残差块中。将这种位移表示为残差位移,如3b所示。剩余的移位可以解决退化的空间特征学习问题,因为原始激活中的所有信息通过身份映射在时间转移后仍然可以获取。
下图为结果:
从在线视频流中理解视频在现实生活中是很重要的。许多实时应用程序都需要低延迟的在线视频识别,如AR/VR和自动驾驶。在本节中,展示了我们可以适应TSM实现在线视频识别,同时实现在线视频识别的多级时间融合。如图1所示,离线TSM将部分通道双向移动,这需要从未来帧中的特性来替换当前帧中的特性。如果我们只将特征从以前的帧转移到当前的帧,我们就可以通过单向TSM实现在线识别。
在线视频识别的单向TSM推理图如图4所示:
Reference:TSM: Temporal Shift Module for Efficient Video Understanding