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路径为小时间步长τ/α,其中α\u0026gt;1,是Fast路径和Slow路径之间的帧率比。我们的两条路径在同一个原始视频片段上操作,因此Fast路径采样αT帧,密度约为Slow路径的α倍。在实验中设置α=8。α是SlowFast概念的关键。它明确表示了两条路径在不同的时间速度上工作,从而驱动两个子网络以特有的方式通过两条路径分别实例化。
高时间分辨率特征
Fast路径不仅具有高输入分辨率,而且在整个网络结构上追求高分辨率的特征。在我们的实例中,整个Fast路径中均不使用时间下采样层(既不使用时间池化也不使用时间步长的卷积操作),直到分类之前使用全局池化层。这样一来,我们的特征张量在时间维度上总是具有αT帧,尽可能地保持时间保真度。
低通道容量
Fast路径与其他模型相比,可以使用显著更低的信道容量来实现SlowFast模型的良好精度。这使Fast路径很轻。
Fast路径是与Slow路径类似的卷积网络,但是通道数是Slow路径的β(β\u0026lt;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 \u0026gt; 1.0 对比相对增长最高的5个类别。类别按照样本数来排序。该实验中的 SlowFast 实例并非我们的性能最优模型。
表 6 SlowFast 模型在 AVA 数据集上的更多实例。他们的表现与Kinetics动作分类准确率相同,体现了模型的鲁棒性。
表 7 SlowFast与当前最优模型在 AVA 数据集上的对比。++ 表示使用多尺度和水平翻转增强进行测试的SlowFast网络版本。
可视化结果
图 4 SlowFast 网络在 AVA 数据集上表现的可视化结果。SlowFast 网络在 AVA 验证集上的预测结果(绿色,置信度 \u0026gt; 0.5)vs. 真实值标签(红色)。此处仅展示了中间帧的预测/标签。上图展示的是T×τ = 8×8的SlowFast 模型,mAP为26.8。
总的来说,即使我们的预测与实际情况之间存在一些差异,我们的结果在视觉上也是合理的。
总结
时间轴是一个特殊的维度。本文研究了一种沿该轴的处理速度不同的网络架构设计。它达到了目前视频动作分类和检测的最高精度。我们希望这个SlowFast概念将促进视频识别的进一步研究。
查看论文原文: