《TSM: Temporal Shift Module for Efficient Video Understanding》笔记
type
status
date
slug
summary
tags
category
icon
password
comment_flag
SLUGS
Source
authors: Ji Lin(MIT), Chuang Gan(MIT-IBM Watson AI Lab), Song Han(MIT)
from:ICCV2019
Abstract
- 2D CNN计算代价低但无法捕获视频中行为帧的时间关系;3D CNN能捕获但是计算密集,部署成本昂贵
- 作者提出的TSM在时间维度对特征进行移位,使得邻近帧交换时间信息。
Introduction
- 2D CNN直接对单帧无法进行时间上的建模,3D CNN可以对时间进行建模,但是计算代价昂贵
- 许多方法试图从时间建模和计算代价之间找到平衡点,如post-hoc fusion和mid-level temporal fusion,但都牺牲了低层次的时间建模信息来提高效率。
- TSM基于一种直观知识:卷积操作是由移位和乘法累加
- 考虑普通的一维卷积运算。假设卷积核大小为3,权值为,输入是无限长的一维向量。卷积算子可写为:
- 将输入的左移位、不移位、右移位记为:
- 那么卷积运算可写为:
移位操作可以通过偏移地址指针执行,通过合理设计,可将乘法累加合并到后面的2D卷积中去,因此和2D CNN相比,几乎无额外成本
- 之前的Navie Shift操作:
- 由于大量数据的移动导致效率更差,数据移动增加推理时间;
- 由于糟糕的空间建模能力导致效能降低,通过将部分通道移动到相邻帧,当前帧不在获得通道信息,损害2DCNN的空间建模能力。
- 相比于TSN,当使用naive shift精度下降2.6%。
在不同空间方向移动其输入张量的每个通道:

把空间位移策略直接应用到时间维度既不能提高性能也不能提高效率。如果我们移位全部或者大部分通道,会导致两个问题:
- 作者文章的贡献:
- 提出的TSM不但拥有更强的spatio-temporal建模能力,并且并不会增加额外的计算代价
- 提出的partial shift和residual shift可以实现高效率的建模
- 针对离线视频的视频理解提出的bi-directional TSM实现了SOTA效果
- 针对在线实时视频识别提出的uni-directional TSM,在边缘设备上有着较强时间建模能力的同时,识别延迟低
Related Work
Deep Video Recognition
从深度网络的角度讨论相关工作:
- 2D CNN是视频识别很直接的方法,但不能对时间顺序和关系进行建模
- Simonyan et al. designed a two-stream CNN
- TSN extracted averaged features from strided sampled frames.
- 3D CNN可以联合学习时空特征,但学习更多参数而带来高代价计算量
- Tran et al. proposed a 3D CNN based on VGG models, named C3D
- Carreira and Zisserman proposed to inflate all the 2D convolution filters in an Inception V1 model into 3D convolutions
- Trade-offs寻找计算代价和时间建模能力的平衡点
- Lee et al. proposed a motion filter to generate spatio-temporal features from 2D CNN.
- Tran et al. and Xie et al. proposed to study mixed 2D and 3D networks, either first using 3D and later 2D (bottom-heavy) or first 2D and later 3D (top-heavy) architecture
- ECO also uses a similar top-heavy architecture to achieve a very efficient framework
- Another way to save computation is to decompose the 3D convolution into a 2D spatial convolution and a 1D temporal convolution
- 2D-3D CNNs会移除掉low-level的时间建模信息或者high-level的时间建模信息
Temporal Modeling
从时间建模讨论:
- 直接的方法是使用上述的3D CNN
- Wang et al. proposed a spatial-temporal non-local module to capture long range dependencies
- Wang et al. proposed to represent videos as space-time region graphs
- An alternative way to model the temporal relationships is to use 2D CNN+ post hoc fusion
- Some works use LSTM to aggregate the 2D CNN features
- Attention mechanism also proves to be effective for temporal modeling
- Zhou et al. proposed TRN to learn and reason about temporal dependencies
作者说3D CNNs方法计算量大,后面的方法无法捕获low-level的时间建模信息,被丢失在特征提取过程。但TRN的毛病呢?
作者说自己的方法有着和3D CNN类似的效果,并且只需要和2D CNN类似的计算量。
Temporal Shift Module(TSM)
前面已经说过,TSM基于直观知识:卷积操作可解耦为移位和乘法累加。
再一次“鞭尸”Navie Shift,不但增加了推理延迟,还损害了空域上的建模能力。
作者为了解决Navie Shift的问题,提出了两个技术方案:
- Reducing Data Movement:
作者以ResNet-50作为Backbone,使用8帧输入,来测试no shift(baseline),局部shift(1/8,1/4,1/2),以及all shift带来的延迟和效果对比(200轮热身后,测试1000轮的平均延迟):

- Keeping Spatial Feature Learning Capacity:
- In-place TSM:移位操作发生在卷积或残差块前,由于改变了输入,当移位很多channel时,损害模型的空域特征学习能力
- Residual TSM:移位操作放在残差块所在的分支上,保留了原始的输入,也就保留了空域上的特征
作者考虑了时域特征学习和空域特征学习的平衡,分析了如下两种TSM模块的设计:

TSM Video Network
Offline Models with Bi-directional TSM

对于离线视频的行为识别,给定视频,采样得到共帧。
TSM在现有的2D CNNs网络基础上改进,将网络中的所有残差块所在分支上接入TSM模块,使网络能同时学习时域和空域特征,并且不带来额外的计算代价。
下图是shift的示例:

Online Models with Uni-directional TSM
与离线视频不同的是,作者只是单方向沿时间维度shift通道信息:

推测作者这样做的原因是,为了提高实时性。具体而言,作者对得到的每一帧都保留其前1/8的特征信息,并缓存到内存里;当时间到达下一未来帧时,作者又保缓存当前帧的前1/8特征信息,并用内存里缓存的前一帧的前1/8特征信息来替换当前的前1/8特征信息,从而实现shift操作,如下图:

作者因此总结出针对online video的识别使用uni-directional TSM的独特优势如下:
- 推理低延迟
- 占用内存低
- Multi-level的时域信息融合(作者说,不像TRN那样只能在特征提取后进行晚期的时域信息融合,也不同于ECO那样只进行mid-level的时域信息融合。
Experiments
在Something-Something-V1数据集上,TSM和其他方法的对比(在测试集上的精度吊打之前的方法,而且其有着可观的算力消耗和参数数量:

在各种数据集上和Baseline TSN的对比:

Something-Something-V2上,TSM实现SOTA:

延迟对比:

算力消耗和精度平衡对比(圆形面积代表参数数量):

参考:
Loading...