【视频理解论文】——SlowFast Networks for Video Recognition
SlowFast Networks for Video Recognition(ICCV2019)

【摘要Abstract】
-
所提出的SlowFast模型由两部分构成
(1)Slow pathway:以低帧率获取Spatial信息;
(2)Fast pathway: 以高帧率运行,以获取motion,也就是时序信息 -
还强调了Fast pathway通过减少了通道的数量/容量,因此是以非常轻量级的形式实现的,且可以学习到非常有用的时序信息
-
所提出的模型在动作分类以及目标检测上都取得了非常棒的性能
【一、简介Introduction】
1. 提出文章的主要依据就是:
- 传统对于2D图片来讲,都是以各向同性的形式来处理的比如x,y等等,但是在考虑了时间维度的视频上就会出问题;
- 挥手的本体,手一直还是手,本体还在那里,所以可以用慢的,也就是低帧率来处理,相应的动作,进行的比较快,考虑用高帧率捕获;
- 同样的,人本体还是人,相对于动作来说是静止的,不在乎你到底是跑还是走还是跳!所以识别人之一累并不需要太快的刷新率,而相反的,你在跑步还是走路这样的动作就需要相对比较快的刷新率来进行了!
————————————我是华丽的分割线,下面才是干货——————————
2. SlowFast论文的思想:
设计了慢,快两条路分别获取:semantic information以及rapidly changing motion
Slow Pathway:capture semantic information that can be given by images or a few sparse frames;
Fast Pathway: capturing rapidly changing motion, by operating at fast refreshing speed and high temporal resolution.(这里要提一下的是:尽管快路的以高帧率进行刷新,但是其运算成本并不高,而是非常轻量级的,只占总体运算资源的20% )
FastWay轻量级的原因 :其本设计为:is designed to have fewer channels and weaker ability to process spatial information, while
such information can be provided by the first pathway in a less redundant manner.
快慢两个分支可以通过不同的temporal rates,使得各在在其空间时序领域上发挥更好的作用!
和传统的Two-stream方法相比的话,不计算光流- >end-to-end 更加高效!
此外,还来自生物机制的启发,有着一种微妙的联系:
(1)Parvocellular (P-cells):provide fine spatial detail and color, but lower temporal resolution, responding slowly to stimuli
(2)Magnocellular(M-cells):operate at high temporal frequency and are responsive to fast temporal changes, but not sensitive to spatial detail or color
3. 实验
- 分别在:Kinetics-400, Kinetics-600, Charades and AVA datasets四个数据集上进行了效果的验证,并且结果良好!
【二、相关工作Related Work】
介绍了:
(1)Spatiotemporal filtering:主要还时3DCNN
(2)Optical flow for video recognition:经典的获取motion的方法,也就是说获取时序信息的方法,在深度学习方法中,光流被当做输入信息的另外一种模态,并且获得了诸多令人满意的结果,但是!!!(凡事最怕但是),弊端就是需要单独去计算光流!因而导致不能以端到端的模式训练模模型
【三、快慢网络SlowFast Networks】!!!核心~
SlowFast NetWorks可以被理解为就是同一个网络结构,不过是用两种不同帧率来运行罢了
但是之所以强调是两个pathway是因为为了和上面提到的生物机制相互吻合和呼应!
1. Slow pathway
backbone可以使任何的卷积模型!
- 每秒抽2帧
2.Fast pathwat
- 高采样频率:每秒抽16帧,是slow 支流的8倍,但是通道数确实slow 支流的1/8,因此是轻量级的!
- 高时域分辨率的特征:不用temporal pooling或者时间域卷积等操作
- 低通道容量:是Slow支流的1/8,通道数减少了就可以理解为更加关注动作而不是形状和外形信息的获取,低通道容量也可以被解释为表示空间语义的能力较弱。因为fast路径通道较少,因此它的空间建模能力应该低于slow路径。(主要就是降低fast流的空间建模能力)
3. Lateral connections(横向连接)
横向连接(在目标检测的特征金字塔那篇文章提出,本文参考文献的32)是一种融合不同层次空间分辨率和语义的常用技术。
(来自论文:T.-Y. Lin, P. Dollár, R. Girshick, K. He, B. Hariharan, and S. Belongie. Feature pyramid networks for object detection.
In Proc. CVPR, 2017.)
-
在每个“阶段”的两个路径之间附加一个横向连接,如下图:这些连接位于pool1、res2、res3和res4之后(以ResNet为例)
(当然两个支流的时间维度并不一样,因此利用横向连接对其进行转换从而使得维度适配,再进行融合!文章里使用单向连接 将fast路径的特征融合到Slow通路中, 双向的也尝试了,但是效果差不多,所以也没必要咯!)

-
最后,对每个路径的输出执行全局平均池化 。 然后将两个合并的特征向量连接为完全连接的分类器层的输入。
4. 具体的实现示例(Instantiations)
-
首先说明,这个思想是很通用的,可以应用在任何不同的backbones上
-
一些说明:
(1)时空尺寸:T XS^2;
(2)T: temporal length
(3)S:he height and width of a square spatial crop -
具体的来看这张图:

对上图进行说明:
橙色:通道容量
绿色:时域分辨率
下面是简要对比说明:
| 属性 | Slow pathway | Fast pathway |
|---|---|---|
| BackBone | 3D ResNet | 3D ResNet |
| T | 4(是从时间步幅τ= 16的64帧原始剪辑稀疏地采样得到的) | 32(32说明更高的时域分辨率) |
| 特性 | 因为实验观察发现在早期层中使用时间卷积会降低准确性。我们认为这是因为当物体快速移动且时间步幅大时,在时间感受野内几乎没有相关性,除非空间感受野足够大。例如,对于快速运动的运动员,如果采样步幅较长,得到的前后两帧没什么相关性、 | 快速通道在每个区块都有非退化的时间卷积(时间步长大于1)。这是由于观察到这条路径具有很好的时间分辨率,以便时间卷积捕获详细的运动。此外,快速通道的设计没有时间降采样层 |
####################################横向连接——开始 ####################################
此外,对于**横向连接(Lateral connections)**的单独说明:
- 融合方向:从快速通道向慢速通道融合,需要在融合之前匹配特征的大小(维度上的匹配,因为时域分辨率不一致),
具体的实现方法:
慢速通路的特征形状表示为{T,S^2,C},
快速通路的特征形状表示为{αT,S^2,βC}
(1)Time-to-channel :我们重塑并将{αT,S^2,βC} 转换为{T,S^2,αβC},意味着我们将所有α(8)帧打包到一帧的通道中,把快通道打包到慢通道里。
(2)Time-strided sampling:我们只是对每个α(8)帧中的一个进行采样,因此{αT,S^2,βC} 变为{T,S^2,βC}
(3)Time-strided convolution:我们用2βC输出通道和stride =α执行5×1^2内核的3D卷积。
最终结果:横向连接的输出通过求和或连接融合到慢路径中。
####################################横向连接——结束 ####################################
【四、实验Experiments】
这里的实验分为两个部分进行,分别是视频分类 和动作检测
1. 视频分类(action classification)
- 数据集:(1)Kinetics-400, (2)the recent Kinetics-600 (3) Charades
- 关于训练:
| 具体类别 | 参数或者具体设置 |
|---|---|
| 训练形式 | From scratch(随机初始化,不是fine-tuned) |
| 优化方法 | SGD |
| 对于一段视频采样 | sample a clip(of αT X t(tao) frames) from the full-length video |
| 对于Slow Pathway的输入 | T |
| 对于Fast Pathway的输入 | αT |
| 对于空间维度,需要对输入图片操作 | randomly crop 224 X 224 pixels from a video或者shorter siderandomly sampled in [256, 320] pixels |
