【论文笔记】光流在视频行为识别中的作用

版权声明:本文为博主原创文章,转载请注明。 https://blog.csdn.net/elaine_bao/article/details/80891173

Paper:On the Integration of Optical Flow and Action Recognition
Author:Facebook,Zhejiang University,MPI for Intelligent Systems,NVIDIA

0. 引言

在做视频行为识别时,特别是基于two-stream框架时,常常会引入光流图作为双流网络其中一支的输入。这是很常用,且在各数据集上已被证明有效的做法。但是,关于光流在行为识别中到底起到了什么作用其实并没有明确的研究。通常我们认为光流代表了视频的motion信息,可以和帧图像的appearance信息形成互补,从而提高双流模型的效果。
那么是否真的是这样呢?本文探讨了光流对于行为识别有用的原因。首先给出本文的结论,有些结论可能有点反直觉:
(1)光流对于action recognition有用是因为它的表观特征不变性(而不是动态信息)
(2)光流方法优化时通常采用end-point-error(EPE),但是EPE的好坏和action recognition的性能没有强相关性
(3)从测试的光流算法看,光流在边界处和小位移处的精度对于提升action recognition的性能有强相关
(4)以最小化分类误差为目标去训练光流比最小化EPE更能提升action recognition的性能
(5)以action recognition为目标学习到的光流和传统的光流不相同,特别是在人体内部的光流以及在人体边界处的光流

1. 为什么使用光流作为视频行为识别的输入?

之所以用光流,是基于一种直觉上的想法(没有经过具体验证的),那就是两帧之间的光流对于视频分类来说是一个好的特征,因为直觉上来说在一个视频相关的任务中引入motion是很合理的。

但是其实目前数据集上的视频类别常常可以从单帧图像中得到。很多action都是定义为人与物体的交互,这些是可以从单帧图像上识别出来的。但是有论文[33]显示,仅使用光流作为输入得到的分类acc,竟然可以比仅适用图像作为输入得到的分类acc高。这个结果让人惊讶,因为现有的视频数据集在场景/物体和类别之间有很强的关联性(比如水和类别划船,吉他和类别弹吉他等)。而光流看起来并不能够提供这些物体的信息,那么我们就要问了,光流为什么会成为视频分类的一个这么有用的特征呢?

(1) 光流里面包含了运动轨迹,所以有用?
为了验证这一点,我们通过对光流进行temporal shuffling来实验。具体地,temporal shuffling是在test的时候进行的,以TSN为框架进行实验。TSN的输入是5帧光流,对5帧光流进行random排序,然后再输入到TSN中做推理。
实验结果如表1所示。我们发现当运动的轨迹被破坏了,总的acc还是很高(shuffled flow fields, 78.64%)。这说明连贯的时序轨迹并不是光流最重要的特征——至少在当前的设置下以及当前的网络结构下是这样。

这里写图片描述

(2)单帧光流也包含了帧间的motion信息,所以有用?
那即使是上面提到的shuffled flow fields,也还是包含了temporal的信息,因为单帧的光流本身也是通过两张相邻的帧计算出来的。为此,我们将用于提光流的RGB图片也做了shuffle,这样的话得到的光流就和物理上的运动没有关系了,但是它仍然包含运动物体的形状。如表1所示,这时候的acc下降到了59.5%(shuffled images),虽然这已经是一个比较大的变化了,但是它还是比随机猜(~1%)的概率要高很多,这说明光流的大部分的acc可能不是从motion得到的。

根据上述实验,说明光流对视频行为识别的作用可能并不是在于其对于motion的刻画,那么光流到底是因为什么所以有用呢?作者提出了他们的观点:光流中真正包含的最重要的信息是表观不变性。

为了验证上述想法,通过将UCF101的colormap进行变化进行实验。具体地,首先将RGB图片转成灰度图,然后再随机sample某种colormap如jet,brg,hsv等,将其再转成彩色,如图2的例子。观察acc的变化,如表1所示,我们发现对于RGB来说,虽然人眼来看altered colormap并没有什么画面上的变化,但是模型的结果看acc下降了50%,而对于flow来说,altered colormap没什么大的影响。
这里写图片描述
另外,我们再验证一下人眼可见的变化,当表观变化比较小的时候,我们对输入的帧每个channel scale一个[0.3,1]范围内的因子,结果显示RGB的acc降了20%,而光流则没有下降。
这些结果说明光流成功的原因并不是其时序结构在起作用,而是表观不变性。

3. 光流的精度和视频行为识别的精度有正相关关系吗?

是否更精确的光流算法就能够带来更精确的动作分类的结果?即,光流的精度和动作分类的精度正相关?

为了验证这一假设,我们把几种不同的光流算法作为输入,输入到一个行为识别的baseline系统中,记录它们的分类精度。同时,我们也在标准的光流数据集上计算了它们的精度(用end-point-error (EPE)表示),然后比较两个精度之间的相关性。图3显示小的EPE并没有带来更高的行为识别的精度。这可能是因为EPE是根据全图计算得到的,但不是全图的光流向量都对行为识别有同等程度的帮助。比如边界包含形状的信息,这是对识别有帮助的,但是背景的相机运动就没什么用。
这里写图片描述

我们进一步观察到光流场的某一些特性和分类精度有关联。特别地,在运动边界和小位移处的光流和分类精度有一定关系。
这里写图片描述

4. 对于行为识别任务来说,存在比光流更好的运动表示吗?

上述分析告诉我们光流之所以有用是因为它的表观不变性,而不是因为它包含了motion的信息。既然motion信息并不是光流成功的根本原因,那么建立有效的运动表示就还是一个开放的问题了,因为光流并没有能够解决这个问题。

作者认为需要寻求一个比普通光流更好的运动表示。但是在此处,作者选择使用行为分类的损失函数来fine tune光流网络,从而获得提升(因为EPE衡量的光流精度和行为识别精度没有什么关系,所以作者认为直接用行为识别的loss来做finetune能够提升光流在行为识别中的精度)。作者并没有探索光流之外的表示方式。

同样使用TSN作为识别的网络,前面光流提取的网络用SpyNet和FlowNet,我们从原有的光流网络开始,然后用行为识别的loss来fine tune光流网络。TSN是用之前光流模型固定时finetune的TSN,在此处对其fix参数。我们按照TSN的架构,采用3段式,6帧图像(即5帧光流)。lr=1e-7,和原始FlowNet一致。结果如表2所示,发现让光流学着去识别动作能够提升运动特征,能够进一步提升动作识别的acc。
这里写图片描述

另外我们将新得到的光流网络也重新测了EPE,结果如表3,和之前的结论一样,识别精度的提升和EPE的精度并没有什么关联。
这里写图片描述

那么用行为识别的loss训练的光流到底学到了什么使得识别精度有提升呢?我们比较了EPE训练的光流和行为识别训练的光流,结果如图5,发现大部分的区别在运动的边界及人所在的位置。
这里写图片描述

为了量化这种变化,我们使用Mask-RCNN来对图片进行pixel-wise的标注,然后我们比较了在人体内部和外部pixel的平均变化,以及在运动边界以及不在运动边界的pixel的变化,结果如表4,说明了在运动边界以及交互物体(这里指人)的光流对于识别最为重要。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/elaine_bao/article/details/80891173