在视频行为识别(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卷积网络也应该能够同等得学到光流中所包含的这些时序信息。但目前结合光流的方法总是有更好的效果,在一些数据集上,使用光流的网络甚至能够获得比使用图像更好的效果,即便直观来说图像包含更多物体以及场景相关的信息。