CVPR2018精选#2: 视频分析的非局部(non-local) 神经网络模块,CMU与Facebook AI研究室视频分类识别新贡献

拥有什么,决定了你只能迷恋什么 — David 9

很大程度上,目前的芯片工艺和技术,决定了人类只能迷恋神经网络这样的方案(高于传统机器学习一个计算级别)。就像进入铁器时代,人们才能方便地砍伐森林、挖掘矿山、开垦土地(如果在青铜时代就别想了)。

在铁器时代,对铁器的改进很受欢迎;正如今年CVPR上大神Kaiming HeXiaolong Wang 的文章试图改进神经网络工具去“开垦”视频分析 这片土地。

我们知道视频图片的区别无非是多了时间的维度(time,视频的帧)。最直觉的做法是先用cnn,再用擅长时间序列的rnn;或者,直接用3D卷积去做。而实际情况是直接用3D卷积效果不是最好,于是有人用两个cnn去做(一个cnn分析时间,一个cnn分析空间),或者另外用一个分析轨迹(trajectories)的模块去加强时空感

非局部(non-local) 模块把非局部感受野的信息提取操作做成一个神经网络模块,方便了端到端的视频分析:

一个可以插入神经网络的non-local模块

这个模块输入x可以理解为32帧的视频(32张图片帧数 T=32,长宽为H×W),输出z也是H×W大小的特征图。有没有注意到最左端的箭头是一个跳层连接?没错,non-local模块就是把视频额外的时空信息提取作为一个残差操作,这样整个模块可以任意插入到一个残差网络resnet中:

事实上,残差信息就是要学习一些额外的信息,下面画出红线的就是学习残差信息的部分:

来自:https://arxiv.org/pdf/1711.07971.pdf

上述non-local模块是依据下面公式给出的:

之所以叫做non-local模块,是对比卷积操作的局部感受野而言的,其中xi,xj 可以理解为不同帧i和j 的两张图片:

来自:https://arxiv.org/pdf/1711.07971.pdf

我们要知道这段视频是一个“踢球”的Action,我们对每一帧分析时要知道两个点:

关键点1. 与这一帧的关联性比较高的其他帧是哪些?上式中关联度的标量计算由f 函数给出:

f 函数度量两和位置之间的相关度,用高斯函数或点乘等操作都可以达到计算的效果,文章也指出,用各种方式计算,其实差别并不大:

关键点2. 这些关联性比较高的帧,可能在做什么是什么Action?这就需要上式的g 函数计算得到在xj 处的图像特征。其实仔细一开始的模块图,就可以发现其实这里的函数 g,超参数θ和Φ 都是用1×1的卷积去计算的

注意到公式中j 是对每个位置的xj 都一一对比,所以该模块被称之为非局部(non-local)模块。

文章中的实验是基于ResNet-50 的卷积2D网络(C2D),数据集采用谷歌deepmind的Kinetics人体行为视频数据集。网络架构如下:

来自:https://arxiv.org/pdf/1711.07971.pdf

输入视频为32×224×224(32帧,长宽为224×224)。其中大的方括号中是一个残差块(Residual blocks),“×3”代表3个残差块组成的res2阶段的组。文章中称一组残差块为一个阶段(stage),如上图res2阶段有3个残差块,到了res3有4个残差块,而到了较后层的res4阶段,有6个残差块(不要以为阶段stage是训练的不同阶段。它其实是在网络的不同深度而已)。文章也指出把non-local模块放在不同阶段的位置,网络性能也有差异,最好不要放在最后res5那一层之后,因为到了res5之后的特征图空间已经比较小,学习不到太多空间关系了:

来自:https://arxiv.org/pdf/1711.07971.pdf

另外之前有人在知乎上说较长的视频可能效果就不好,但是文章的实验结果似乎在128帧的视频上预测效果还是比较好的:

来自:https://arxiv.org/pdf/1711.07971.pdf

最后看一下总体实验结果和在res3阶段后加non-local模块计算的效果:

来自:https://arxiv.org/pdf/1711.07971.pdf
来自:https://arxiv.org/pdf/1711.07971.pdf

 

参考文献:

  1. Non-local Neural Networks
  2. https://github.com/facebookresearch/video-nonlocal-net
  3. https://github.com/titu1994/keras-non-local-nets
  4. https://www.zhihu.com/question/68473183
  5. https://arxiv.org/pdf/1705.06950.pdf
  6. https://deepmind.com/research/open-source/open-source-datasets/kinetics/
  7. some accepted papers in cvpr 2018
  8. https://medium.com/mlreview/a-guide-to-receptive-field-arithmetic-for-convolutional-neural-networks-e0f514068807
  9. https://zhuanlan.zhihu.com/p/33345791

本文采用署名 – 非商业性使用 – 禁止演绎 3.0 中国大陆许可协议进行许可。著作权属于“David 9的博客”原创,如需转载,请联系微信: david9ml,或邮箱:yanchao727@gmail.com

或直接扫二维码:

发布者

David 9

邮箱:yanchao727@gmail.com 微信: david9ml

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注