本文针对视频识别提出了 SlowFast 网络。该模型有一个 Slow 分支,以较低的帧率运算,获取空间语义;还有一个Fast分支,以较高的帧率运行,获取精确的时间运动信息。通过降低通道数量,Fast分支可以变得很轻,但也能够学到有用的时域信息。该方法在视频动作分类和检测任务上都取得了很强的表现。作者在主要的视频识别基准(Kinetics, Charades, AVA)都获得了 SOTA 的准确率。代码放在了:https://github.com/facebookresearch/SlowFast.
在图像识别 I ( x , y ) I(x,y) I(x,y)时,人们通常会对称地看待两个空间维度 x , y x,y x,y。通过对自然图像的统计分析,人们证明了其合理性,自然图像在第一次近似时具备各向同性(所有方向具有相同的可能性)和平移不变性 。但是视频信号 I ( x , y , t ) I(x,y,t) I(x,y,t)又是什么样呢?运动 — motion可以看作为方向在时空域的对应,但是所有的时空方向的可能性又不一样。慢动作要比快动作更有可能发生(事实上,我们所看到的的大部分世界在给定的时刻都是静止的),这已经在使用贝叶斯模型描述人类如何感知运动刺激中得到利用 。例如,如果我们看到一个边在单独移动,我们能感知它,是因为它朝着垂直于自己的方向运动,尽管原则上它也可能有一个与自身相切的任意移动组件(光流中的孔径问题)。如果前者倾向于慢动作,这种感知就是合理的。
如果所有的时空方向不是均等可能的,那么我们就没有理由像基于时空卷积的视频方法那样,对称地对待空间和时间。我们可能就要分解开网络结构,分开处理空间结构和时间事件。具体些,我们将这一想法放到识别的语境中。视觉内容的类别空间语义通常变化比较慢。例如,挥手并不会在这个动作进行期间改变”手“的类别,哪怕一个人从走路变为跑步,他/她也一直是”人“这个类别。因此类别语义的识别(以及颜色、材质、光照等)都可以比较慢的速度刷新。另一方面,相较于它们的主体识别,动作可以较快的速度进行,如拍手、挥手、摇摆、走路或跳跃。它就需要用较快的帧率刷新(高时间分辨率),来对潜在的、快速变化的动作进行建模。
基于此,作者提出了一个 two-pathway 的 SlowFast 模型来做视频识别(如图1)。一条 pathway 用于获取语义信息,这些信息可由图片或稀疏的帧来提供,它以较低的帧率运算,刷新速度也比较慢。另一条pathway则用于捕捉迅速变化的动作,刷新速度快,时间分辨率高。尽管它的时间分辨率高,这条 pathway 非常轻量,只占整体计算量的 20 % 20\% 20%。这是因为这条pathway的通道较少,处理空间信息的能力较弱,而空间信息可以交给第一条pathway来处理。根据二者的时间速度,第一条pathway被称作Slow pathway,第二条被称作 Fast pathway。这两条pathways通过侧连接(lateral connections)来融合。
这一想法为视频模型带来了灵活、高效的设计。由于Fast pathway非常轻量,无需进行任何的时间池化,它能以高帧率在所有中间层运行,并保持时间保真度。同时,由于较低的速率,Slow pathway 可以更多关注在空间域和语义上。通过对视频按不同的速率处理,该方法使得两条pathways对视频建模时各有所长。
视频识别领域也有另一个非常有名的网络结构[44],它有 two-stream 结构设计,在概念上与本文视角不同。该方法没有研究不同时间速度的可能,而这是本文的核心所在。该方法在两条 stream 采用了一样的主干结构,而本文的 Fast pathway要更轻量。本文方法也没有计算光流,因此,本文方法是端到端地学习原始视频。通过实验,作者发现,SlowFast网络更加高效。
该方法部分受到灵长类视觉系统中视网膜神经节细胞的生物学研究的启发,尽管这种类比有些粗糙、不成熟。这些研究发现,在这些细胞中约 80 % 80\% 80%都是小细胞(P-cell),约 15 − 20 % 15-20\% 15−20% 是大细胞(M-cell)。M-cells 以高时间频率工作,对快速时间变化作出响应,但是对空间细节和颜色不敏感。P-cells 则提供更精细的空间细节和颜色信息,但是时间分辨率较低,对刺激反应比较慢。本文方法与之有以下相似之处:(i) 它有两个pathways,分别处理低和高的时间分辨率;(ii)Fast pathway 用于捕捉快速变化的动作,较少细节信息,与M-cell类似;(iii)Fast pathway 则轻量,与M-cell类似。研究者希望这些关系能够启发更多用于视频识别的计算机视觉模型。
时空滤波 动作可以用时空目标来表示,通过时空中的定向滤波来获取,HOG3D[31]和cuboids[10]就是这么做的。3D卷积网络[48,49,5] 将 2D 图像模型至时空域,同时处理空间和时间维度。也有一些方法关注在 long-term 滤波和池化上,使用时间步长,以及将卷积分解为独立的2D空间滤波和1D时间滤波。
本文超越了时空滤波,使用两个不同的时间速度,将各分支所擅长的技能更加彻底地分离开来。
视频识别的光流。另一个经典的研究分支则是聚焦在基于光流的人工时空特征上。这些方法在深度学习普及之前,包括光流直方图、运动边界直方图、轨迹等,对于动作识别都有很强的表现。
深度神经网络出现之后,two-stream 方法将光流看作为另一个输入模态,探索利用光流。这个方法已经成为许多论文结果的基础。但是由于光流是人工设计的特征表示,方法论上它就无法令人满意,此外 two-stream 方法无法协同光流,做到端到端地学习。
SlowFast 网络可以描述为一个 stream 网络结构,但以两个不同帧率运行,作者使用了 pathway 的概念来与生物学上的大小细胞类比。该网络结构有一个 Slow pathway 和一个 Fast pathway,通过侧连接融合进一个 SlowFast 网络。图1展示了其概念。
Slow pathway 可以是任意的在视频片段(时空体)上运行的卷积模型[12,49,5,56]。Slow pathway 的核心概念就是在输入帧上的时间步长 τ \tau τ较大。根据作者研究, τ \tau τ的值一般设为16,这个刷新速度差不多是在30FPS的视频中每秒采样2帧。假设Slow pathway 采样的帧数是 T T T,那么原始视频片段的长度就是 T × τ T\times \tau T×τ。
Fast pathway与Slow pathway 平行,它是另一个卷积模型,有以下特性。
高帧率。目的是在时间维度上有更精细的特征表示。Fast pathway 以较小的时间步长 τ / α \tau /\alpha τ/α工作,其中 α > 1 \alpha>1 α>1 是 Fast 和Slow pathway 的帧率比。这俩pathways 在同一个视频上计算,所以 Fast pathway 采样 α T \alpha T αT帧,比Slow pathway 要密集 α \alpha α倍。在本文实验中,一般 α = 8 \alpha=8 α=8。
α \alpha α是 SlowFast 的核心概念(图1,时间轴)。它表示这两条pathways工作的时间速度不同,促使这俩子网络术业有专攻。
高时间分辨率特征。Fast pathway 不仅输入分辨率高,而且在整个网络里面都是要求高分辨率的特征。贯穿 Fast pathway,直到分类前的全局池化层,作者都没有用时间下采样层(没有时间池化或时间-步长卷积)。因此,该特征张量在时间维度上一直有 α T \alpha T αT 帧,尽可能地维持时间保真度。
低通道容量。Fast pathway 与现有的模型还有一点不同,它为了实现高准确率,只用了很低的通道容量。这样就变得很轻量。
总之,该 Fast pathway 是一个卷积网络,与Slow pathway 相似,但是通道数只是Slow pathway 的 β ( β < 1 ) \beta(\beta < 1) β(β<1)。实验中一般 β = 1 / 8 \beta=1/8 β=1/8。注意,某一层的计算量(浮点数运算量,FLOPs)通常是通道缩放比的平方。这就使得Fast pathway 计算起来要比Slow pathway更加高效率。在实验中,Fast pathway 通常只占总计算量的 20 % 20\% 20%。更有趣的是,证据显示灵长类视网膜细胞中的 15 % 20 % 15\%~20\% 15% 20%是M-cell(该细胞对快速运动更敏感,对颜色或空间细节不敏感)。
低通道容量可以理解为较弱的空间语义信息表示。技术上,Fast pathway 的空间建模能力应该弱于 Slow pathway,因为它的通道更少。该模型的结果表明这反而是有利的,它弱化了空间建模能力,却增强了时间建模能力。
受此启发,作者也研究了 Fast pathway 中不同的弱化空间能力的方法,包括降低输入空间分辨率,去除颜色信息等。实验证明了,所有的这些方法都可以给出不错的准确率,较低空间容量、轻量的 Fast pathway 是有益的。
两条pathways的信息会被融合起来,所以每个pathway都不知道另一条pathway学到的特征。作者通过侧连接来实现,它在 two-stream 网络中有用到,将光流信息融合起来。在目标检测任务上,侧连接非常流行,将不同的空间分辨率和语义信息融合起来。
与[12,35]类似,本文在两条pathway 的每个 stage 上都使用一个侧连接(如图1)。对于 ResNets,这些连接就位于 p o o l 1 , r e s 2 , r e s 3 , r e s 4 pool_1,res_2,res_3,res_4 pool1,res2,res3,res4之后。这两条pathways的时间维度不同,所以侧连接就通过变换来将它们匹配在一起。作者使用单向连接将 Fast pathway 的特征融合入 Slow pathway(如图1)。作者也尝试了双向融合,得到了相似的结果。
最终,对每个pathway的输出进行了全局平均池化。池化后的特征向量被拼接在一起,作为全连接分类器的输入。
SlowFast 的思想很通用,它可以用不同的主干网络来实现。这一节,作者介绍网络结构实例化。
SlowFast 的模型实例如表一所示。作者用 T × S 2 T\times S^2 T×S2 来表示时空大小, T T T是时间长度, S S S是一个正方形空间裁剪区域的高度和宽度。细节在下面介绍。
Slow Pathway。表一中的Slow pathway 是一个时间步长的3D ResNet。它有 T = 4 T=4 T=4帧作为网络输入,从64帧视频片段中稀疏采样得到,时间步长为 τ = 16 \tau=16 τ=16。在这个实例化中,作者没有进行时间下采样,因为如果输入步长比较大的话,这样做是有害的。
和一般的 C3D/I3D模型不同,作者只在 r e s 4 res_4 res4和 r e s 5 res_5 res5使用了非退化时间卷积(时间核大小 > 1 >1 >1,表一中的下划线标出);在这条pathway上,所有从 c o n v 1 conv_1 conv1到 r e s 3 res_3 res3的滤波器本质上都是2D卷积核。
这是由作者的实验观察得到的,在早期层使用时间卷积会降低准确率。作者认为这是因为当物体快速移动,且时间步长较大时,它在一个时间感受野内的相关性就很小,除非空间感受野也足够地大。
Fast Pathway。表一显示了 Fast Pathway 的例子,它的 α = 8 , β = 1 / 8 \alpha=8,\beta=1/8 α=8,β=1/8。它的时间分辨率较高(绿色),通道容量较低(橙色)。
Fast pathway 在每个模块中都用了非退化时间卷积。这是因为作者发现,这条pathway的时间卷积有很好的时间分辨率,可以捕捉细节动作。而且,Fast pathway 在设计上没有使用时间下采样层。
侧连接。侧连接是由 Fast pathway 连到 Slow pathway的。在融合之前,它需要匹配特征的大小。Slow pathway 的特征大小是 { T , S 2 , C } \{T,S^2,C\} {T,S2,C},Fast pathway 的特征大小是 { α T , S 2 , β C } \{\alpha T, S^2, \beta C\} {αT,S2,βC}。作者在侧连接上进行了如下的变换实验:
通过求和或拼接的方式,将侧连接的输出融入 Slow pathway。