← 返回论文库
奠基 Groundwork ICCV 2019 · 2018 arXiv:1812.03982 ↗

SlowFast Networks for Video RecognitionSlowFast 网络:双通道视频识别

模仿灵长类视觉的慢-快双通路:慢通路看语义、快通路捕运动,高效建模时空。

作者:Christoph Feichtenhofer, Haoqi Fan, Jitendra Malik, Kaiming He
机构:FAIR
发布:ICCV 2019
时间:2018-12
视频理解架构双通道
原文摘要 · English Abstract

We present SlowFast networks for video recognition. Our model involves (i) a Slow pathway, operating at low frame rate, to capture spatial semantics, and (ii) a Fast pathway, operating at high frame rate, to capture motion at fine temporal resolution. The Fast pathway can be made very lightweight by reducing its channel capacity, yet can learn useful temporal information.

概要

视频与图像最大的不同在于时间维度:类别语义(这是不是一只手、这个人是谁)通常演变缓慢,而具体动作(挥手、拍手、奔跑)却可能在几帧之内迅速变化。此前的双流网络虽然分别处理外观与运动,但两路使用相同帧率、相似规模的骨干,并靠额外计算光流来显式表达运动,代价高且难以端到端训练。SlowFast 提出用两条不同帧率的卷积通道单流建模同一段原始视频:低帧率、大容量的 Slow 通道专注捕捉空间语义,高帧率、极轻量的 Fast 通道专注捕捉精细运动,二者通过侧向连接融合、端到端训练,完全不需要预先计算光流。

在 SlowFast 之前,视频识别主要有两条路线:一是把 2D 卷积直接扩展成 3D 时空卷积(如 C3D、I3D),对空间和时间维度一视同仁地卷积;二是双流网络,用额外一路光流分支显式建模运动,但光流需要预先离线计算、难以与主干联合训练,且往往令总计算量翻倍。这两类方法都没有意识到:视频里类别语义演变得慢、具体动作演变得快,二者理应用不同的时间采样率去建模,而不是被同一套帧率和同一套通道容量捆绑在一起。

关键贡献

  • 提出以不同时间分辨率并行处理同一段视频的双通道 SlowFast 架构,用采样率而非额外输入模态区分语义与运动建模。
  • 证明 Fast 通道无需保留高空间容量:仅用 Slow 通道约 1/8 的通道数就能提取有效运动线索,整体模型只增加约三成计算量。
  • 系统比较了时间到通道(TtoC)、时间步采样、时间步卷积三种侧向连接方式,确定时间步卷积在精度与开销上最优。
  • 在 Kinetics-400、Kinetics-600、Charades 三个分类数据集上从随机初始化训练(不依赖 ImageNet 预训练)即取得当时最优结果。
  • 验证 SlowFast 骨干可直接接入 Faster R-CNN 式检测头用于 AVA 时空动作检测,效果远超依赖光流的双流方法。

方法详解(完整做法)

总体思路

SlowFast 用两条并行的 3D 卷积通道处理同一段原始视频:Slow 通道以较低帧率采样少量帧,专注提取图像层面的空间语义(这是什么类别的物体或场景);Fast 通道以数倍高的帧率采样密集帧,但把通道数削减到 Slow 通道的一小部分,专注捕捉精细的时间动态(如何运动)。两条通道各自是标准 3D ResNet,经由若干次侧向连接把 Fast 通道的运动特征注入 Slow 通道,最后把两路的全局平均池化特征拼接后送入分类器。整个网络是单流架构、端到端训练,不需要预先计算光流。

Slow 通道:捕捉空间语义的骨干网络

Slow 通道可以是任意 3D 卷积网络(论文用 3D ResNet-50/101 实例化),关键设计是采样步长 τ\tau 很大:从长度 T×τT\times\tau 的原始片段里每隔 τ\tau 帧只取 1 帧,得到 TT 帧输入,典型取值 τ=16\tau=16,相当于 30fps 视频每秒仅刷新约 2 帧。为了不进一步丢失时间信息,Slow 通道全程不做时间下采样;同时论文发现只有在感受野已经足够大的后期阶段(res4_4、res5_5)加入非退化的时间卷积才有收益,更早的层加入时间卷积反而会因为大步长下相邻采样帧运动幅度过大、时间相关性弱而损害精度,因此 conv1_1 到 res3_3 里的时间卷积核大小均退化为 1(即等效 2D 卷积)。

Fast 通道:轻而快的运动分支

Fast 通道与 Slow 通道结构相同,但采样步长缩小为 τ/ω\tau/\omega,在同一段原始片段上采出 ω\omega 倍于 Slow 通道的帧数(默认 ω=8\omega=8),且全程(含 conv1_1 到 res5_5 每个 block)都使用非退化的时间卷积、不做任何时间下采样,尽量保留细粒度的运动信息:

TSlow=T,  stride=τ;TFast=ωT,  stride=τ/ω  (ω=8, τ=16)T_{\text{Slow}}=T,\ \ \text{stride}=\tau;\qquad T_{\text{Fast}}=\omega T,\ \ \text{stride}=\tau/\omega\ \ (\omega=8,\ \tau=16)

为了控制算力,Fast 通道把每层通道数压缩为 Slow 通道的比例 ϕ\phi(默认 1/81/8),这是它能以八倍帧率运行却依然轻量的根本原因。

通道容量比 ϕ\phi 与“为什么变瘦反而有效”

论文的核心直觉是:识别动作类别不需要精细的空间纹理,只需要粗糙但高频的运动信号,因此可以牺牲 Fast 通道的空间建模能力去换取更高的时间分辨率。由于常见卷积层的计算量随通道数近似二次增长:

FLOPs(C) ∝ C2 ⟹ FLOPs(Fast) ≈ ϕ2⋅FLOPs(Slow)\mathrm{FLOPs}(C)\ \propto\ C^{2}\ \Longrightarrow\ \mathrm{FLOPs}(\text{Fast})\ \approx\ \phi^{2}\cdot\mathrm{FLOPs}(\text{Slow})

把通道压到 ϕ=1/8\phi=1/8 就能让 Fast 通道的算力和参数量几乎可以忽略——消融实验里 Fast-only 仅 6.4 GFLOPs、0.53M 参数,对比 Slow-only 的 27.3 GFLOPs、32.4M 参数——却仍能带来实打实的精度提升,这正是“变瘦而不变笨”的关键,也是论文相对双流网络最大的效率优势所在。

侧向连接:让两条通道互相看见

两条通道并非独立运行,而是通过每个 stage 后的一次侧向连接把 Fast 通道的特征汇入 Slow 通道(单向,从 Fast 到 Slow),位置分别在 pool1_1、res2_2、res3_3、res4_4 之后。由于两路的时间维度不同(Slow 为 TT,Fast 为 ωT\omega T),融合前需要做形状匹配,论文比较了三种做法:把时间维打包进通道维(Time-to-Channel)、直接按步长采样对齐(Time-strided sampling)、以及用 3D 卷积做步长下采样(Time-strided convolution)。以 Time-to-Channel 为例:

{ωT, S2, ϕC} ⟶ {T, S2, ωϕC}\{\omega T,\ S^2,\ \phi C\}\ \longrightarrow\ \{T,\ S^2,\ \omega\phi C\}

消融显示三种做法都优于无侧向连接的朴素拼接基线,其中时间步卷积(T-conv)精度最高(top-1 75.6% vs 无侧向连接 73.5%),也是论文的默认设置。

从分类骨干到时空检测头

分类骨干可以直接迁移到时空检测:AVA 上的检测头仿照 Faster R-CNN,把 res5_5 的空间步长从 2 改为 1、卷积核 dilation 设为 2 以提高分辨率,再用现成的行人检测器给出候选框;每个 2D 候选框沿时间轴复制扩展为 3D 候选框,经 RoIAlign 做空间池化、全局平均池化做时间池化后,接一个逐类别独立的 sigmoid 分类器完成多标签预测(一个人可以同时“站立”和“说话”):

pc=σ(zc)=11+e−zcp_c=\sigma(z_c)=\frac{1}{1+e^{-z_c}}

这说明 SlowFast 学到的双通道时空特征并非分类任务专用,同一套骨干换一个检测头即可直接迁移到定位型任务,只需用 Kinetics 预训练权重初始化后在 AVA 上微调。

小结

一句话:SlowFast = 低帧率大容量的 Slow 通道管语义 + 高帧率低容量的 Fast 通道管运动 + 侧向连接让两者互通,用采样率的差异替代了光流,换来精度和效率的双重提升。

完整流程。 训练:从随机初始化开始,短边随机缩放到 [256,320] 像素后随机裁剪 224×224,在同一段原始片段上分别为 Slow/Fast 通道按各自步长采样对齐好的帧,用同步 SGD 端到端训练交叉熵分类损失;推理:沿时间轴均匀取 10 个片段、每个片段做 3 个空间裁剪(共 30 个视角),各视角 softmax 取平均得到最终预测。AVA 检测则在 Kinetics 预训练权重基础上接检测头微调,训练用真值框,推理用行人检测器给出的候选框。

实验与关键数据

实验覆盖 Kinetics-400/600、Charades 与 AVA,模型均从随机初始化训练、不用 ImageNet 预训练,推理取多视角(10 个时间片段 × 3 个空间裁剪)softmax 均值。SlowFast 在四个数据集上均取得当时最优精度,推理算力显著低于同期依赖光流或密集采样的方法。

关键数据

Kinetics-400 Top-1(SlowFast 16×8,R101+NL)
79.8%
vs Nonlocal R101(ImageNet预训练)77.7%(+2.1)
Kinetics-400 消融:SlowFast vs Slow-only Top-1
75.6%(36.1 GFLOPs)
vs Slow-only 72.6%(27.3 GFLOPs,+3.0)
AVA v2.1 检测 mAP(Kinetics-400预训练,单模型)
26.3
vs ATR 单模型 21.7(+5.6)
Charades 多标签分类 mAP
42.1%
vs STRG(此前最优,R101+NL)39.7%(+2.4)
Charades mAP:Kinetics-600 预训练(+NL)
45.2%
vs 同结构 Kinetics-400 预训练 42.5%(+2.7)

影响与局限

SlowFast 把双流网络里“用光流显式表示运动”的做法替换成“用采样率隐式表示运动”,去掉了光流计算这一独立、昂贵且难以端到端训练的环节,为后续视频骨干网络确立了“多帧率通路 + 侧向融合”的设计范式。其双通道思想影响了后续 X3D 等对时间分辨率与算力做联合搜索的工作,也是视频 Transformer 中多尺度时间采样设计的先声。

局限与不足

论文的验证主要集中在裁剪良好、长度有限的动作片段上;AVA 检测依赖一个独立训练、并非与主干联合优化的人体检测器提供候选框,人体检测的误差会直接传导到最终的动作识别结果里。Fast 通道“低通道容量等于弱空间建模、但足以捕捉运动”的假设是通过大量消融间接验证的经验结论,论文没有给出理论刻画它在什么场景下会失效(例如需要精细外观线索才能区分的细粒度动作,如“喝水”和“喝饮料”)。此外,两条通道的帧率比 ω\omega、通道比 ϕ\phi、采样步长 τ\tau 等超参数需要针对数据集手动搜索,训练仍依赖较大 batch 与较长的多机同步 SGD,论文没有给出更省算力的训练方案。