检测并归类图像中的物体是最广为人知的一个计算机视觉任务,随着 ImageNet 数据集挑战而更加流行。不过还有一个令人恼火的问题有待解决:视频理解。视频理解指的是对视频片段进行分析并进行解读。虽然有一些最新的进展,现代算法还远远达不到人类的理解层次。
Facebook 的 AI 研究团队新发表的一篇论文,SlowFast,提出了一种新颖的方法来分析视频片段的内容,可以在两个应用最广的视频理解基准测试中获得了当前最好的结果:Kinetics-400 和 AVA。该方法的核心是对同一个视频片段应用两个平行的卷积神经网络(CNN)—— 一个慢(Slow)通道,一个快(Fast)通道。
作者观察到视频场景中的帧通常包含两个不同的部分——不怎么变化或者缓慢变化的静态区域和正在发生变化的动态区域,这通常意味着有些重要的事情发生了。例如,飞机起飞的视频会包含相对静态的机场和一个在场景中快速移动的动态物体(飞机)。在日常生活中,当两个人见面时,握手通常会比较快而场景中的其他部分则相对静态。
根据这一洞察,SlowFast 使用了一个慢速高分辨率 CNN(Fast 通道)来分析视频中的静态内容,同时使用一个快速低分辨率 CNN(Slow 通道)来分析视频中的动态内容。这一技术部分源于灵长类动物的视网膜神经节的启发,在视网膜神经节中,大约 80% 的细胞(P-cells)以低频运作,可以识别细节,而大约 20% 的细胞(M-cells)则以高频运作,负责响应快速变化。类似的,在 SlowFast 中,Slow 通道的计算成本要比 Fast 通道高 4 倍。
SlowFast 工作原理
Slow 通道和 Fast 通道都使用 3D RestNet 模型,捕捉若干帧之后立即运行 3D 卷积操作。
Slow 通道使用一个较大的时序跨度(即每秒跳过的帧数),通常设置为 16,这意味着大约 1 秒可以采集 2 帧。Fast 通道使用一个非常小的时序跨度 τ /α,其中 α 通常设置为 8,以便 1 秒可以采集 15 帧。Fast 通道通过使用小得多的卷积宽度(使用的滤波器数量)来保持轻量化,通常设置为慢通道卷积宽度的⅛,这个值被标记为 β。使用小一些的卷积宽度的原因是 Fast 通道需要的计算量要比 Slow 通道小 4 倍,虽然它的时序频率更高。
上图是一个 SlowFast 网络的实例。卷积核的尺寸记作 {T×S², C},其中 T、S 和 C 分别表示时序 temporal, 空间 spatial 和频道 Channel 的尺寸。跨度记作 {temporal stride, spatial stride ^ 2}。速度比率 (跳帧率) 为 α = 8,频道比率为 1 /β = 1/8。τ 设置为 16。绿色表示高一些的时序分辨率,Fast 通道中的橙色表示较少的频道。
侧向连接
如图中所示,来自 Fast 通道的数据通过侧向连接被送入 Slow 通道,这使得 Slow 通道可以了解 Fast 通道的处理结果。单一数据样本的形状在两个通道间是不同的(Fast 通道是 {αT, S², βC} 而 Slow 通道是 {T, S², αβC}),这要求 SlowFast 对 Fast 通道的结果进行数据变换,然后融入 Slow 通道。
论文给出了三种进行数据变换的技术思路,其中第三个思路在实践中最有效。
Time-to-channel:将 {αT, S², βC} 变形转置为 {T , S², αβC},就是说把 α 帧压入一帧
Time-strided 采样:简单地每隔 α 帧进行采样,{αT , S², βC} 就变换为 {T , S², βC}
Time-strided 卷积: 用一个 5×12 的核进行 3d 卷积,2βC 输出频道,跨度 = α.
有趣的是,研究人员发现双向侧链接,即将 Slow 通道结果也送入 Fast 通道,对性能没有改善。
在每个通道的末端,SlowFast 执行全局平均池化,一个用来降维的标准操作,然后组合两个通道的结果并送入一个全连接分类层,该层使用 softmax 来识别图像中发生的动作。
数据集
SlowFast 在两个主要的数据集 —— DeepMind 的 Kinetics-400 和 Google 的 AVA 上进行了测试。虽然两个数据集都包含了场景的标注,它们之间还是有些差异:
Kinetics-400 包含成千上万个 Youtube 视频的 10 秒片段,将人的动作归为 400 类(例如:握手、跑、跳舞等),其中每一类至少包含 400 个视频。
AVA 包含 430 个 15 分钟的标注过的 Youtube 视频,有 80 个原子化可视动作。每个动作的标注即包含描述文本,也包含在画面中的定位框。
结果
SlowFast 在两个数据集上都达到了迄今为止最好的结果,在 Kinetics-400 上它超过最好 top- 1 得分 5.1% (79.0% vs 73.9%),超过最好的 top- 5 得分 2.7% (93.6% vs 90.9%)。在 Kinetics-600 数据集上它也达到了最好的结果。Kinetics-600 数据集与 Kinetics-400 类似,不过它将动作分为 600 类,每一类包含 600 个视频。
在 AVA 测试中,SlowFast 研究人员首先使用的版本,是一个较快速 R -CNN 目标识别算法和现成的行人检测器的整合,利用这个行人检测器获取感兴趣区域。研究人员随后对 SlowFast 网络进行了预训练,最后在 ROI 上运行网络。结果是 28.3 mAP (median average precision),比之前的最好结果 21.9 mAP 有大幅改进。值得指出的是在 Kinetics-400 和 Kinetics-600 上的预训练没有获得显著的性能提升。
有趣的是,论文比较了只使用 Slow 通道、只使用 Fast 通道、同时使用 Slow 和 Fast 通道的结果,在 Kinetics-400 上,只使用 Slow 通道的网络其 top- 1 结果为 72.6%,top- 5 为 90.3%。只使用 Fast 通道的网络,top- 1 和 top- 5 分别为 51.7% 和 78.5%。
汇智网翻译整理,转载请标明出处。SlowFast Explained: Dual-mode CNN for Video Understanding