雷锋网 AI 科技评论按:本文为上海交通大学林天威为雷锋网 AI 科技评论撰写的独家稿件,未经许可不得转载。
在视频行为识别(action recognition)方向,目前最常见的网络框架有两类,一类是直接将视频作为输入的3D卷积网络,另一类即是将图像以及光流(optical flow)分别作为输入的two-stream网络。目前two-stream类的方法在效果上还是明显要优于3D卷积类的方法,本文主要讨论two-stream类方法中光流的应用。
虽然光流在two-stream类的方法里被广泛应用并且具有很好的效果,但这里存在一个问题,就是光流在行为识别模型中到底起到了什么作用,它本身的语义信息到底是什么?通常我们认为光流代表了视频的motion信息,然后直接就将其当作一个黑盒子作为了网络的输入。近期,arXiv上放出的 “On the Integration of Optical Flow and Action Recognition” 一文对光流在行为识别中的作用进行了深入的研究,探讨了为什么光流在行为识别中是有效的,在行为识别中怎么样的光流才是好的以及我们应该如何改进光流。这篇文章的结论可以说是有点反直觉的,此处先放出这篇文章的几个结论,再分别进行介绍(以第一部分为主)。
-
光流在行为识别模型中很有效,并不是因为它能够捕捉运动信息,而主要是因为光流对图像外观(appearance)的不变性。
-
光流算法通常使用终点误差(end-point-error, EPE)来衡量,但EPE的大小与行为识别效果的好坏并没有很强的相关性
-
光流算法在边缘以及小位移部分的准确度对动作识别的效果的相关性比较大。
-
用行为识别分类误差来训练(fine tune)光流比起用EPE误差来能获得更好的行为识别效果。
-
使用行为识别分类误差来训练得到的光流,与普通的光流的差异主要集中在人体的内部与边缘区域。
为何要将光流作为行为识别模型的输入?
通常认为光流代表着视频的运动或时序信息。在行为识别的数据集(如UCF101) 中,虽然有很多动作尽使用单帧图像就可以判别,还是有一些动作是依赖于时序信息的。理论上视频图像帧直接包含这些时序信息,那么3D卷积网络也应该能够同等得学到光流中所包含的这些时序信息。但目前结合光流的方法总是有更好的效果,在一些数据集上,使用光流的网络甚至能够获得比使用图像更好的效果,即便直观来说图像包含更多物体以及场景相关的信息。
那么问题就是,为何光流在行为识别中这么有用呢?本文作者在UCF101上,使用two-stream中比较常用的TSN网络进行了实验探索。结果如下表:
借助这些实验结果,本文对一些通常观念中直观的看法进行了讨论
(1)光流中包含的运动轨迹信息是其对行为识别有效的原因?
通常都是使用5帧或10帧光流作为网络输入,这些连续的光流帧实际代表了图像中密集的轨迹信息,作者此处将输入的光流场打乱顺序- Flow(shuffled flow fields),发现效果只下降了8%左右。这表明轨迹信息并不是关键因素。
(2)光流中包含的帧间motion信息是其对行为识别有效的原因?
上一步中光流还是逐帧算的,进一步去除时序信息,在计算光流前先打乱图像顺序- Flow (shuffled image),这样得到的光流与物理上的motion已经不符合了,但仍然会包含物体的形状。虽然效果有所下降,但依旧有不错的准确率。这表明motion信息也并非是关键因素。
基于以上的实验结果,作者提出了他们的观点:光流在行为识别模型中效果好的原因在于其对于图像表观的不变性,这使得行为识别模型在低variance的情况下可以更容易得学习。这个观点可以通过实验以及一些相关工作来佐证:
(1)通过变动图像表观信息,分别观察以flow以及RGB图像作为输入的行为模型的性能
这个实验中训练照常,但测试时修改图像的颜色,如下图所示意:
其中,左边为原图,中间为altered colormap即更改了图像的颜色空间(如修改为HSV或BRG的形式),右侧为对RGB各个通道的数值进行缩放。通过上面表格的信息可以看出,在变动颜色后,基于RGB的方法效果降低非常明显,而基于Flow的方法效果变化不大。这说明了光流对于颜色这种表观信息具有很好的不变性。
(2)2stream模型在大型视频数据集中的表现
参考今年Deepmind 在[2]中的讨论,当视频数据集的大小非常大时,仅使用图像的网络会比仅使用光流的网络获得更好的效果。这里作者的观点是认为,当数据集够大时,其本身能够涵盖复杂的光照、纹理、背景等信息,使得模型能够获得更好的泛化能力,也使得光流的表观不变性没有那么重要了。
这一部分我认为是这篇文章最重要的一部分,得出了与通常想法相悖的结论,即光流在行为识别模型中发挥作用的主要原因是其对于表观的不变性,而非其包含的motion或轨迹信息。
光流的准确性与行为识别的准确性相关吗?
接下来作者讨论了光流的测评指标对于行为识别模型的有效性。目前有大量的光流算法,包括传统的方法以及这几年基于CNN的方法。通常光流使用终点误差(end-point-error, EPE)来衡量准确性。那么此处的问题就是,一个准确性高的光流算法,是否能够带来高的行为识别准确性。实验的结果如下图所示。
可以看出,两者并没有很强的关联性。并非EPE误差低的光流方法就能获得更好的行为识别精度。进一步,作者探索了光流中的局部区域EPE与动作识别准确率之间的关系,结果如下图所示。
图片含义就不详细介绍了,具体可见原文。通过对此图的分析,可以得到两个结论:
-
光流算法在边缘部分的准确度对动作识别的效果的相关性比较大。
-
光流算法在小位移的准确度对动作识别的效果的相关性比较大,不过由于光流算法本身对于小位移表现较好而对大位移表现较差,所以这个结果也可能是由于光流本身的特性造成的。
所以,这一部分作者的结论为,光流整体的准确率与动作识别的准确率联系不大,而物体边缘附近的光流以及小位移光流的准确性对动作识别准确率的影响比较大。
对于行为识别任务而言,存在比光流更好的运动表示吗?
在经过上述的分析后,作者认为需要寻求一个比普通光流更好的运动表示。此处,作者选择使用行为分类的损失函数来fine tune光流网络,从而获得提升。并没有探索光流之外的表示方式。
其实验结果如以下两表所示。
以上的实验主要可以得到以下两个结论
-
使用action loss来fine tune光流,最终能获得更好的行为识别精度
-
使用action loss来fine tune光流,光流本身的精度基本不会下降
作者进一步对action loss 来fine tune的光流进行了可视化。
左右分别为不同的flow算法,左右的第四列为普通flow和action loss 来fine tune 过的flow的差值。可以看出,差异主要集中在人体的内部与边缘区域。
个人讨论
这篇工作对光流在行为识别中的作用进行了细致的讨论,我觉得是有很大的意义,对后续的工作也很有启发:
-
作者在文中主要是想用action loss来改进光流,但既然光流发挥作用的主要原因在于其表观不变性,那么更换另外一种专门针对表观不变性设计的表示作为行为识别模型的输入会不会更好?比如使用分割的结果替代光流。
-
若舍弃光流,同时针对表观的色彩/纹理/光照做数据增强,那么只用RGB图像可能也能获得不错的效果。
-
可以通过提高网络本身对表观变化的学习能力,来替代光流表观不变性的作用。
-
若不采用光流,是否还能构建另外一种针对运动/轨迹信息的low-level特征,来更好地提供视频中的时序信息。
虽然在UCF101等比较早期的数据集中,用双流网络已经能够获得很好的效果,但今年几个新的视频数据集给行为识别带来了更多的挑战。比如在Moments-in-Time数据集中,其行为类别与场景以及物体的关联性就比较弱了,也有很多依赖于时序的动作(如 开 与 关 是时序上对称的动作),这使得对于时序信息的建模愈发重要。
总的来说,作者得出了光流的核心作用是表观不变性的结论,并认为应该改进光流。但我觉得这篇文章可能会启发更多人设计不使用光流的行为识别算法(毕竟光流的效率还是很被人诟病的..)。今年越來越多的人开始研究视频相关的领域,在17年末也期待明年能看到更多有趣的工作吧~
参考文献
[1] Laura Sevilla-Lara et al. On the Integration of Optical Flow and Action Recognition. abs/1712.08416, 2017.
[2] J. Carreira and A. Zisserman. Quo vadis, action recog- nition? A new model and the kinetics dataset. CoRR, abs/1705.07750, 2017.
,