Advertisement

《SlowFast Networks for Video Recognition》阅读笔记

阅读量:

在这里插入图片描述
这是恺明大佬实验室的今年的新作。接下来我就大体按照原文对内容的安排来聊一聊这篇文章吧。

Abstract

他们的模型分为两个部分:
、低帧速率的Slow pathway ,用来捕获空间的语义信息;
、高帧速率的Fast pathway ,以良好的时间分辨率来捕获动作信息;关于Fast pathway ,作者通过减少通道来使其变得特别轻巧(图像的细节特征不依赖这个提取),其主要学习时间维度上的动作信息来进行视频识别。

最后说了一下模型在Kinetics、Charades 、 AVA表现很SOTA,将会开源基于Pytorch的代码(截至2019.10.17还没有开源,不知道官方什么时候开源,不过目前github上有其他大佬的复现代码,有兴趣可以试试)

Introduction

这段的概括简述我大体是贴上知乎一篇文章内容( 下附链接),只是略微改动,我觉得对原文想表达的意思概括的很好,简洁又令人深思。

我们对于一张图片,我们可以简单的将其分为两个维度来看待,I(x,y) 。似乎很合理,xy 方向的重要性似乎是相等的。然而对于一个视频,引入了时间维度tI(x,y,t) 。但这个tx,y 可以同等看待吗,显然不是的啊,现实这个世界中,大多数的物体都是静止的。而我们传统的卷积如 3D 卷积却是同等对待的,按照作者的理解,这是不合理的。既然不合理,就需要将时间t 与空间(x,y)单独的处理。具体到现实生活中,人的语义信息总是缓慢的变化的,如“人”,不论他是在跑步还是在散步,始终是“人”,因此可以相对缓慢地刷新对类别语义(以及它们的颜色、纹理、照明等)的识别。相反,另一个方面的一些动作是很快的,瞬时的,如“跳”,因此这需要使用更快的帧率刷新来捕获这些信息。基于此,本文的核心网络就出来了。

有意思的是,作者还提到这个网络是受生物学的启发:灵长类动物视觉系统中视网膜神经节细胞的分布[24、34、6、11、48],这些研究发现,在这些细胞中,约80%是P细胞,约15-20%是M细胞。其中P细胞可以提供精细的空间细节和颜色等信息,对时间上的分辨率较低,对于外部刺激响应缓慢;而M细胞则对空间细节和颜色等信息不敏感,对时间变化更加敏感,能快速响应外部变化。这个网络的计算分布和这个也保持一致,效果SOTA,是不是很有意思?

关于核心网络SlowFast:

在这里插入图片描述
图一是该网络的一个示意图,C代表Channel,T代表采样的帧数,至于图像的高宽H,W示意图中忽略表示(从而把重点的C、T凸显出来)。

对于Slow分支,为了捕获更多的细粒度信息,其在Channel上的维度是充足的,而由于空间中的语义和其他细粒度特征变化缓慢,所以帧率不需要很高,所以T不会太高,对应图一的上方;
对于Fast分支,其Channel的维度就少很多(不需要捕获太细粒度的特征),其值为\beta C。而帧数T就相对很大了,因为Fast分支需要捕获运动信息,其需要更密集的帧图像,其值为\alpha T。对应图一下方。
实验中作者设置的\alpha=8, \quad \beta=\frac{1}{8}
两条支路在每一个Block后都会有Fast到Slow的融合,最后输出给分类器。

SlowFast Networks细节

Slow pathway
Slow分支的T,C是Fast的一个基准。本文的输入还是RGB的输入(不是传统加光流的双流法,这很棒),其采样率为\frac{1}{\tau},该视频总共\tau \times T帧,Slow分支采了T帧。这里我们一般取\tau = 16,该支路压缩了输入中的时序信息,这样的做法是的Slow Pathway网络更加专注于提取空间的语义信息。

Fast pathway
Fast Pathway是一个轻量级的时序信息提取模型。为减少运算量以及让模型专注于时序信息提取,作者设计时主要有以下几点:

1)更高的输入时序分辨率
SlowPath网络的帧采样率为\tau,我们设系数\alpha(\alpha > 1),则SlowPath网络的输入帧采样率设为\tau/\alpha,即FastPath输入的帧数是SlowPath的\alpha倍。

2)更高的输出时序分辨率
FastPath网络整个过程中没有采用时序上的下采样,保证输入时序维度仍然为\alpha T

3)较低的通道容量
作者这里发现,FastPath网络降低通道数量,不仅降低了模型的复杂度,还能保证输出的精度,这里设置了一个系数\beta,一般\beta = 1/8,使得FastPath的通道数量始终是Slowpath的\beta倍。
这样的设定保证了FastPath网络的计算量大概占总网络计算量的20%,和我们在人类视觉细胞中发现M细胞的比例大约为20%吻合。
有人可能会说,这为什么还是占这么低的计算量呢,其实可以类比神经网络你是增加宽度还是深度呢?增加宽度会要更多的计算量。这也是为什么大多数网络喜欢增加深度的原因。

4)较低的输入空间信息
为了进一步削弱FastPath网络的空间建模能力,作者这里还提出降低输入图像空间分辨率、去除颜色信息等方式,使得网络能更加注重时序信息的变化。

关于横向连接部分

对于两个支路的信息交流、融合,大家可能会想为什么是单向连接,作者的实验表示两种做法的结果是类似的。
但是这个连接后要注意到一个实实在在的问题,Slow 与 Fast分支的输出特征大小都不一样大,怎么融合。因此作者提出了三种方式;
在这里插入图片描述
最后快分支的表示怎么结合到慢分支呢?,就是简单的求和或者拼接把。

网络结构

在这里插入图片描述
这里,作者以ResNet-50举例,其设计的SlowFast网络参数如上表所示,其中黄色是通道数量,绿色是时序帧分辨率。

实验结果

作者针对不同超参数设置以及融合方式,作者做了很多实验。

关于融合方法

融合方式中,Slow Pathway的特征尺寸为\{T,S^2,C\},而Fast Pathway的特征尺寸为\{\alpha T,S^2,\beta C\},作者分别尝试time-to-channel(TtoC)、time-strided sampling(T-Sample)、time-strided convolution(T-conv)四种方法,结果如下,利用T-conv效果最好。
在这里插入图片描述
关于通道参数 \beta的设置
在Fast Pathway中降低通道的数量,一方面可以使模型轻量化,另一方面,作者发现降低Fast Pathway模型的空间信息提取能力,可以增强其时序信息提取能力,故对不同的通道压缩比例\beta设置做了实验,其结果如下。
在这里插入图片描述
其中设置成1/6和1/8时,Top-1、Top-5最高。
由此,作者思考,是否能进一步削减其空间信息能力来增强时序上的性能,为此,作者将输入的RGB图像分别改成灰度、光流等进行实验,最终发现,利用灰度图作为输入,模型的复杂度得以降低,且精度几乎没有变化(略微小提升)。这验证了作者的想法。
在这里插入图片描述
对比实验
Fast+Slow的双模型结构是否真的有效,还是仅是模型复杂度增加带来的性能提升,对此,作者将Fast网络替换成其他以及单独的Slow网络进行训练,将结果进行了对比。
在这里插入图片描述
从结果可以看出,快慢网络有效的降低了模型的复杂度,且在分类结果中效果非常好

针对精度和速度不同的侧重,我们可以非常自由的选择Slow网络的输入帧数,其结果如下。
在这里插入图片描述
可以发现,当Slow网络输入帧数为2时,GFLOPS最低,且Top-1只损失了3.6%,且相比于Slow-only网络,不仅精度高,复杂度更低,充分说明了其模型的有效性。

Result on Kinetics and AVA dataset
何凯明团队提出的这篇文章,在Kinetics数据集上,与没有ImageNet预训练其他模型相比,目前是第一。在AVA action detection任务上取得了第一,其结果如下所示。

Kinetics-400 result
在这里插入图片描述
AVA action detection result:
在这里插入图片描述

总结

在这篇文章中,作者提出Slow+Fast网络,通过大量研究实验,证明了其有效性,总结整篇文章,其主要有以下结论:
1.空间信息与时序信息应分别对待,不能对称地同等对待
2.快慢网络可以不需要在ImageNet进行预训练
3.Non-Local网络其实没多大的提升效果
4.快慢网络对动作幅度、速度更快的动作类别提升大

参考文献
(1)论文连接
(2)知乎文章
(3)简书文章

全部评论 (0)

还没有任何评论哟~