Facebook何恺明团队提出SlowFast网络,视频识别无需预训练

2018 年 12 月 23 日

Facebook何恺明团队提出SlowFast网络,视频识别无需预训练

Facebook FAIR 何恺明团队提出了用于视频识别的 SlowFast 网络。该网络通过两条路径以不同的时间率(快和慢)进行视频识别。在没有预训练的情况下,在 Kinetics 数据集上的准确率达到了 79.0%,在 AVA 动作检测数据集上实现了 28.3mAP,实现了当前最佳水平。本文是 AI 前线第 62 篇论文导读,我们对这篇论文的方法关键和实验结果进行了全面解读,以供大家参考。


阅读更多优质论文请关注微信公众号“AI 前线”(ID:ai-front)


摘要


本文提出了用于视频识别的 SlowFast 网络。该模型包含:1)Slow 路径,以低帧率运行,用于捕捉空间语义信息;2)Fast 路径,以高帧率运行,以较好的时间分辨率捕捉运动。可以通过减少 Fast 路径的通道容量,使其变得非常轻,同时学习有用的时间信息用于视频识别。该模型在视频动作分类和检测方面性能强大,而且 SlowFast 概念带来的重大改进是本文的重要贡献。在没有任何预训练的情况下,我们在 Kinetics 数据集上的准确率达到了 79.0%,远远超过之前的最佳水平。在 AVA 动作检测数据集上,我们也达到了 28.3 Map,是当前最佳水平。论文使用的代码后续将会开源。


介绍


在图像识别领域,对称地处理图像 I(x,y)中的两个空间维度 x 和 y 是常见的做法。这是由于自然图像具有第一近似各向同性(所有方向具有相同的可能性)和平移不变性。但是对于视频信号 I(x,y,t)来说,并非所有的时空方向都有相同的可能性。所以我们就不应该像时空卷积那样对称地处理时间和空间。相反,我们应该“分解”该架构,分别处理空间结构和时间事件。


视觉内容的类别空间语义变化通常十分缓慢,例如,挥手不会在这个动作进行期间改变“手”的识别结果,并且人也总是在“人”类别下,即使他/她从走路变成跑步。因此,类别语义(及其颜色、纹理、光照等)的识别可以相对缓慢地刷新。另一方面,正在执行的动作比其主体识别变化速度快得多,例如拍手、挥手、摇晃、走路或跳跃。应该用快速刷新帧(高时间分辨率)来有效建模可能快速变化的动作。


基于这种想法,本文提出了一种用于视频识别的双路径 Slow-Fast 模型(如图 1)。其中一个路径旨在捕获由图像或稀疏帧提供的语义信息,它以低帧率运行,刷新速度慢。而另一个路径用于捕获快速变化的动作,它的刷新速度快、时间分辨率高。尽管如此,该路径的却是轻量级的,只占总计算开销的 20%左右。这是因为第二个路径通道较少,处理空间信息的能力较差,但这些信息可以由第一个路径用较为简洁的方式来提供。根据二者不同的时间速度,作者将其分别命名为 Slow 路径和 Fast 路径。二者通过横向连接(lateral connection)进行融合。



图 1 SlowFast 网络包括低帧率、低时间分辨率的 Slow 路径和高帧率、高时间分辨率(Slow 路径时间分辨率的 α 倍)的 Fast 路径。Fast 路径使用通道数的一部分(β,如 β = 1/8)来轻量化。Slow 路径和 Fast 路径通过横向连接融合。


这一想法为视频模型带来了灵活、高效的设计。由于自身较轻,Fast 路径不需要执行任何时间池化——它能以高帧率在所有中间层运行,并保持时间保真度。同时,由于时间速率较低,Slow 路径可以更加关注空间域和语义。通过以不同的时间速率处理原始视频,两种路径可以通过其特有的方式对视频建模。


该方法部分受到灵长类视觉系统中视网膜神经节细胞的生物学研究启发。研究发现,在这些细胞中,约 80% 是 P 细胞,约 15-20% 是 M 细胞。M 细胞以较高的时间频率工作,对时间变化更加敏感,但对空间细节和颜色不敏感。P 细胞提供良好的空间细节和颜色,但时间分辨率较低。SlowFast 框架与此类似:i)该模型有两条路径,分别以低时间分辨率和高时间分辨率工作;ii)Fast 路径用来捕捉快速变化的运动,但空间细节较少,类似于 M 细胞;iii)Fast 路径很轻,类似于较小比例的 M 细胞。


SlowFast 网络


Slow 路径


Slow 路径可以是任何对视频片段做时空卷积的模型。Slow 路径的关键想法是输入帧上的大时间步长τ,即它只处理τ帧中的一帧。我们取步长τ的典型值为 16:对于 30fps 的视频,这个刷新速度大约是每秒采样 2 帧。将 Slow 路径采样的帧数表示为 T,原始视频长度则为 T×τ帧。


Fast 路径


高帧率


Fast 路径的目标是在时间维度上得到一个良好的表示。Fast 路径为小时间步长τ/α,其中α>1,是 Fast 路径和 Slow 路径之间的帧率比。我们的两条路径在同一个原始视频片段上操作,因此 Fast 路径采样αT 帧,密度约为 Slow 路径的α倍。在实验中设置α=8。α是 SlowFast 概念的关键。它明确表示了两条路径在不同的时间速度上工作,从而驱动两个子网络以特有的方式通过两条路径分别实例化。


高时间分辨率特征


Fast 路径不仅具有高输入分辨率,而且在整个网络结构上追求高分辨率的特征。在我们的实例中,整个 Fast 路径中均不使用时间下采样层(既不使用时间池化也不使用时间步长的卷积操作),直到分类之前使用全局池化层。这样一来,我们的特征张量在时间维度上总是具有αT 帧,尽可能地保持时间保真度。


低通道容量


Fast 路径与其他模型相比,可以使用显著更低的信道容量来实现 SlowFast 模型的良好精度。这使 Fast 路径很轻。


Fast 路径是与 Slow 路径类似的卷积网络,但是通道数是 Slow 路径的β(β<1)倍。在我们的实验中β=1/8。注意,公共层的计算量(浮点数运算,或 FLOP)通常是信道缩放比率的二次方。这使 Fast 路径比 Slow 路径的计算效率更高。在我们的实例中,Fast 路径一般占用总计算量的 20%。有趣的是,灵长类视觉系统中的 M 细胞(对快速运动敏感,但不对颜色或空间细节敏感)占视网膜细胞的比例也约为 15%-20%。


低通道容量也可以理解为表示空间语义信息的能力较弱。Fast 路径对空间维度没有任何特殊处理,所以其空间建模容量也比 Slow 路径要低。但是结果显示,削弱 Fast 路径的空间建模能力的同时增强其时间建模能力是正向的折衷。我们也研究了其他削弱 Fast 路径空间容量的方法,包括降低输入的空间分辨率和移除颜色信息。结果均显示这些方法都能达到较好的准确率,意味着轻量级的空间容量较低的 Fast 路径是有好处的。


横向连接


两条路径的信息是融合的,所以一条路径是知道另一条路径学习的表示的。我们通过横向连接实现这一点。在图像目标检测中,横向连接是合并不同空间分辨率和不同语义级别的常用方法。我们在每个“阶段”的两个路径之间附加一个横向连接(图 1)。两条路径具有不同的时间维度,因此横向连接需要进行转换以匹配它们。我们使用单向连接,将 Fast 路径的特征融合到 Slow 路径。最后,对每个路径的输出进行全局平均池化。然后将两个合并的特征向量连接,作为全连接分类器层的输入。


网络实现


我们提出的 SlowFast 是一个通用思想,但是网络可以通过不同的主干结构有不同的实现。表 1 给出了一个 SlowFast 模型的实例化示例。



表 1 SlowFast 网络的实例化示例


内核的维度由 {T×S^2 , C} 表示,T 表示时间分辨率、S 表示空间语义、C 表示通道数。步长由 {时间步长, 空间步长^2} 表示。此处 速度比例是α = 8,通道比例是 β = 1/8。τ = 16。绿色表示 Fast 路径较高的时间分辨率,橙色表示 Fast 路径较少的通道数。下划线为非退化时间滤波器(non-degenerate temporal filter)。方括号内是残差块。骨干网络是 ResNet-50。


实验:Kinetics 动作分类


数据库


我们在 Kinetics-400 数据库上进行 Ablation Study,有大约 240000 个训练视频,20000 个验证视频,包含 400 个人类动作类别。对于每个实验,我们给出了 top-1 和 top-5 的分类准确率 (%),以及空间大小为 224^2 的单视频片段输入的计算复杂度(单位为 GFLOPs)。


消融实验


从零开始基线模型训练



表 2a 从零开始基线模型训练结果


我们使用与论文“Non-local neural networks”相同的网络结构,在没有 ImageNet 预训练的情况下,我们的训练方法达到了相当的结果。“t-reduce”是网络的时间下采样参数。


独立路径



表 2b 单独训练 Fast 路径和 Slow 路径的结果


从表中可以看出独立路径与 3D R-50 相比没有优势,准确率较低。这是由于独立路径相比于 3D R-50 量级较轻:Slow 路径帧数较少,Fast 路径通道数较少。


SlowFast 融合



表 2c 不同融合方式的结果


作为融合基线,我们给出了没有横向连接的模型变体结果。该变体的准确率为 73.5%,略优于 Slow-only 的模型 0.8%。通过横向连接 T-conv 将 Slow 路径和 Fast 路径融合的准确率比仅有 Slow 路径的基线结果提高了 3.0%。



图 2 Slow-only 模型(72.6%)和 SlowFast 模型(75.6%)的训练过程


我们给出了 top-1 训练误差和验证误差曲线图。很明显,在整个训练过程中,SlowFast 模型始终优于 Slow-only 模型。


Fast 路径通道容量比例



表 2d β值(Fast 路径的通道容量比例)不同的结果


弱化 Fast 路径的空间输入



表 2e 不同方法弱化 Fast 路径空间输入的结果,β=1/8


Slow+Slow



表 2f Slow-only 模型变体对比


将 2 个单独训练的 Slow-only 的模型相结合(2-Slow ens),或者用 Slow 路径替代 Fast 路径,形成“SlowSlow”模型。实验结果显示 2-Slow ens 仅提升了 0.5%的准确率,但计算量为之前的 2 倍,而 SlowSlow 模型严重过拟合。


不同 SlowFast 示例化



表 2g 不同示例化 SlowFast 模型结果


不同的 SlowFast 模型表现大致相同,提供了不同的准确率和 FLOPs 的折衷。最小的 SlowFast 模型仅需要 13.9 GFLOPs,但准确率仍达到了 73.4%。


先进骨干网络



表 2h 先进网络作为骨干网络结果


我们研究了使用更深的网络作为骨干网络的结果,例如 ResNet-101 和非局部(NL)版本。使用先进的骨干网络与我们的 SlowFast 概念是正交的,并且相比于我们的 SlowFast 基线模型具有额外的改进。


与其他方法对比



表 3 SlowFast 网络与当前最优模型在 Kinetics-400 数据集上的对比结果



表 4 SlowFast 网络与当前最优模型在 Kinetics-600 数据集上的对比结果


实验:AVA 动作检测


数据集


AVA 数据集关注人类动作的时空定位。数据取自 437 部电影。每帧每秒都提供了时空标签,每个人都有边界框和动作标注。有 211000 个训练视频片段,和 57000 个验证视频片段。我们对 60 类动作进行了评估,实验结果通过平均精度(mAP)和帧级别的 IoU 阈值进行衡量。



表 5 AVA 动作检测基线:Slow-only vs. SlowFast。我们的方法提高了 5.2mAP



图 3 在 AVA 数据集上的类别精度:Slow-only 基线模型 (19.0 mAP) vs. SlowFast 网络 (24.2 mAP)。黑色加粗类别是净增长最高的 5 个类别,橙色类别是和 Slow-only AP > 1.0 对比相对增长最高的 5 个类别。类别按照样本数来排序。该实验中的 SlowFast 实例并非我们的性能最优模型。



表 6 SlowFast 模型在 AVA 数据集上的更多实例。他们的表现与 Kinetics 动作分类准确率相同,体现了模型的鲁棒性。



表 7 SlowFast 与当前最优模型在 AVA 数据集上的对比。++ 表示使用多尺度和水平翻转增强进行测试的 SlowFast 网络版本。


可视化结果





图 4 SlowFast 网络在 AVA 数据集上表现的可视化结果。SlowFast 网络在 AVA 验证集上的预测结果(绿色,置信度 > 0.5)vs. 真实值标签(红色)。此处仅展示了中间帧的预测/标签。上图展示的是 T×τ = 8×8 的 SlowFast 模型,mAP 为 26.8。


总的来说,即使我们的预测与实际情况之间存在一些差异,我们的结果在视觉上也是合理的。


总结


时间轴是一个特殊的维度。本文研究了一种沿该轴的处理速度不同的网络架构设计。它达到了目前视频动作分类和检测的最高精度。我们希望这个 SlowFast 概念将促进视频识别的进一步研究。


查看论文原文:


https://arxiv.org/abs/1812.03982v1


2018 年 12 月 23 日 13:33 1516
用户头像

发布了 51 篇内容, 共 21.9 次阅读, 收获喜欢 60 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

可读代码编写炸鸡二(下篇) - 命名的歧义

多选参数

代码 代码优化 代码组织 代码规范

手写单例模式

yupi

面向对象设计模式课程小结

行下一首歌

极客大学架构师训练营

HelloWorld.go

吐核hú

go 学习笔记 TraceLog

架构师训练营-作业3

进击的炮灰

组合模式应用

yupi

一个汉字占几个字节你真的记住了吗?

Java旅途

架构师训练营第三周作业和小记

tuuezzy

架构师 极客大学架构师训练营

[架构师训练营] Week01 -学习总结

谭方敏

架构师训练营 第三周 命题作业

RZC

蟒周刊/426: DjangoCon US 2020 取消了

ZoomQuiet大妈

Python 大妈 蟒营® Weekly 蟒周刊

小师妹学JVM之:java的字节码byte code简介

程序那些事

Java JVM Java 25 周年 bytecode 字节码

极客大学架构师训练营 框架开发 第三次作业

John(易筋)

极客时间 设计模式 极客大学 极客大学架构师训练营 框架开发

架构师训练营 0 期第三周

Blink

架构师训练营 - Task Week 3

brave heart

极客大学架构师训练营

架构师训练营 第三周 学习总结

RZC

架构师训练营-总结3

进击的炮灰

windows使用docker运行mysql等工具(一)windows安装docker

Java旅途

MySQL Docker

windows使用docker运行mysql等工具(二)安装运行mysql

Java旅途

MySQL Docker

第三周作业

晨光

第三周总结

晨光

良心推荐 | LeetCode(力扣),算法、数据结构的学习良伴

YoungZY

算法

rodert单排学习redis进阶【白银一】

JavaPub

Java nosql redis

可读代码编写炸鸡二(上篇) - 命名的长度

多选参数

代码 代码组织 代码规范

数字货币监管当体现“中国之治”

CECBC区块链专委会

数字货币 CECBC 区块链技术 技术标准 准入和监管

产品失败了,产品经理要不要承担责任?

涛哥

产品经理

2020互联网公司端午节礼盒合集!你最中意哪一款?

Java小咖秀

互联网人 端午节

让你眼前一亮的 10 大 TS 项目

阿宝哥

JavaScript typescript Web 前端开发 开源项目

区块链改变数字营销与广告市场

CECBC区块链专委会

区块链技术 广告业 精准投放 去中介 公开透明

新手村:最适合新手的 Redis 基础

多选参数

数据库 redis redis6.0.0

面向对象的设计模式

WW

Facebook何恺明团队提出SlowFast网络,视频识别无需预训练-InfoQ