目录
参考资料
论文:
SlowFast Networks for Video Recognition
博客:
SlowFast Networks for Video Recognition文章及代码解析
【Video Recognition】SlowFast Network 用快慢结合进行视频分类
SlowFast Networks for Video Recognition
第1章 引言
我们所看到的世界大多数是属于静止的,在人类视觉细胞研究中研究者发现,视觉细胞由80%的P-Cell和20%的M-Cell组成,其中P-Cell对颜色、形状等图像信息更加敏感,而M-Cell对时间变化更加敏感。
例如一个跳跃动作,整个过程中图像中的视觉语义信息是变化比较缓慢的,而相反移动、跳跃这些动作在时序上变化较快。
我们是否能利用两个不同的网络对时序变化不同的信息进行捕捉,从而改善网络性能是这篇文章的主要思想,而基于上述研究与分析,作者提出了 SlowFast
网络。
SlowFast
模型包括两部分:Slow pathway
和 Fast pathway
:
(1)Slow pathway
的主要作用是做空间的语义处理,所以它的特点是抽帧少(只关注图像特征),网络规模大(抽象语义特征)。
(2) Fast pathway
的主要作用是做时序的信息处理,所以它的特点是抽帧多(考虑动作连续性),网络规模小(不需要获取复杂的特征)。
Slow pathway
负责掌握空间信息,Fast pathway
负责掌握时间信息,作者并没有使用光流,而是更加关注不同的时序速率对视频分类的影响。
第2章 网络结构
2.1 SlowFast Network
SlowFast
网络可以被描述为以两种不同帧速率运行的单流(都是RGB)体系结构,有一条Slow的道路和Fast通道,通过横向连接至SlowFast网络。如下图 Fig 1 所示。
文中将 H , W H,W H,W 放入到一个维度上,为了把重点的 C , T C,T C,T 凸显出来。 S l o w Slow Slow 分支,为了捕获更多的细粒度信息,其 C h a n n e l Channel Channel 上的维度是充足的,而与之比较的 F a s t Fast Fast 分支,其就显得很窄,是 β C βC βC 。与之对应的是时间维度 T T T ,我们知道 F a s t Fast Fast 分支需要捕获那些运动信息,其需要更多的帧,因此其是 α T αT αT 。
作者在实验中设置的是 , α = 8 α=8 α=8, β = 1 8 β=\frac{1}{8} β=81 。
还要注意的一个细节就是两个分支之间都是一条通路连接,直到最后一层才会连接在一起直至融合,去预测判断分类。
2.2 Slow pathway
Slow 路径可以是任何卷积模型,例如时空残差网络,C3D,I3D,Non-local网络等。
Slow 路径的关键概念是输入帧上的大时间跨度 τ τ τ(这里的"大"是指时间维度的步长较fast路径更长些),即它只处理 τ τ τ 帧中的一个。我们研究的一个典型的 τ τ τ 值是16。Slow 路径采样后的帧数表示为 T T T ,则原始剪辑长度为 T × τ T×τ T×τ 帧(因为每 τ τ τ 帧采样一帧)。
对于30 fps的视频来说,它就是每秒30帧,本文中 Slow 路径的采样频率是每隔16帧,取其中的一帧,30帧的视频大概只能取其中的两帧作为输入,所以每秒大概只能取到2帧。
2.3 Fast pathway
Fast Pathway
是一个轻量级的时序信息提取模型。为减少运算量以及让模型专注于时序信息提取,作者设计时主要有以下几点:
- High frame rate(高帧率)
- High temporal resolution features(高分辨率)
- Low channel capacity(低通道容量)
- Low input spatial resolution(低输入空间信息)
(1)更高的采样帧率
Slow 路径是每 τ τ τ 帧采样一帧(设置 τ τ τ 等于16),Fast路径采样更快,以 τ α \frac{τ}{α} ατ 的步幅采样,其中 α > 1 α>1 α>1 是快速和慢速通道之间的帧速率比,因此 Fast路径采样密度是 Slow 路径的 α α α 倍。
一个典型值是 α = 8 α=8 α=8 ,也就是说Fast路径每2帧采样1帧。
(2)高时间分辨率特征
对于Fast路径而言,它在时间维度上追求高分辨率特征,既不使用时间池化也不使用时间步卷积,直到分类前的全局池化层,尽可能保持时间准确度。
Slow路径采样后的帧数表示为 T T T,Fast路径采样密度是Slow路径的 α α α 倍,故为 α T αT αT 帧。
(3)低通道容量
Fast路径可以通过减少通道容量而变得非常轻量。Fast路径的通道数是Slow路径的 β β β 倍( β < 1 β<1 β<1),通常 β = 1 / 8 β= 1/8 β=1/8 。这使得Fast途径比Slow途径更具计算效率。
低通道容量也可以被解释为表示空间语义的能力较弱。因为Fast路径通道较少,因此它的空间建模能力应该低于Slow路径。模型的结果表明,在增强fast路径的时间建模能力的同时,弱化Fast路径的空间建模能力是一种理想的折衷方法。
(4)较低的输入空间信息
为了进一步削弱FastPath网络的空间建模能力,作者这里还提出降低输入图像空间分辨率、去除颜色信息等方式,使得网络能更加注重时序信息的变化。
2.4 Lateral connections
Slow路径学习空间信息,Fast路径学习时间信息,和Two-Stream网络的两个分支一样需要在预测前进行融合。作者通过横向连接来实现,主要思想就是和 特征金字塔
一样,是一种融合不同层次空间分辨率和语义的常用技术。
那为什么不双向连接呢,作者的实验表示的是结果是类似的。
Slow路径输出的特征图大小为 ( S 2 , T , C ) (S^2,T,C) (S2,T,C) ,Fast路径输出的特征图大小为 ( S 2 , α T , β C ) (S^2,αT,βC) (S2,αT,βC) ,其中 β = 1 / 8 β= 1/8 β=1/8, α = 8 α=8 α=8 。两个特征大小都不一样,作者提出了以下3种融合方式:
-
Time-to-channel:将 { α T , S 2 , β C } \{ αT,S^2,βC \} {αT,S2,βC} reshape为 { T , S 2 , α β C } \{ T,S^2,αβC \} {T,S2,αβC} 再融合。
-
Time-strided sampling:将 { α T , S 2 , β C } \{ αT,S2,βC \} {αT,S2,βC} 进行采样成 { T , S 2 , β C } \{ T,S^2,βC \} {T,S2,βC} 再融合。
-
Time-strided convolution:用3D卷积,其中卷积核为 5 × 1 × 1 5\times1\times1 5×1×1 ,个数为 2 β C 2βC 2βC ,步长 2 2 2。
2.5 网络整体参数列表
这里,作者以ResNet-50举例,其设计的SlowFast网络参数如下表所示,其中黄色是通道数量,绿色是时序帧分辨率。
第3章 总结与展望
在这篇文章中,作者提出Slow+Fast网络,通过大量研究实验,证明了其有效性,总结整篇文章,其主要有以下结论:
- 空间信息与时序信息应分别对待,不能对称地同等对待
- 快慢网络可以不需要在ImageNet进行预训练
- Non-Local网络其实没多大的提升效果
- 快慢网络对动作幅度、速度更快的动作类别提升大
最后也利用SlowFast Network在Kinetics数据集和AVA action detection,达到了state-of-the-art。
第4章 Pytorch实现SlowFast
参考代码: