Rank Pooling & Dynamic Image

基于Rank SVM的视频动作编码

Posted by Oscar Zhang on August 10, 2018

动作和轮廓

不同于单张图像,视频中的信息更加复杂,动作识别是视频中最经典的问题。这个问题并不新,轮廓、剪影是以往常用的方法,Dynamic Image最近的重要工作,值得一看。
其将一个视频序列,编码为一张具有动作剪影的图,对动作识别有重要作用。具体效果见图:

可以看到编码之后的图片,比较好的包括了视频序列的动作。只通过观看一张图像,就可以对视频包含的动作进行分类。

Dynamic Image

对一个视频求其Dynamic Image:

是视频的第帧,系数
总是就是视频的每一帧按照特定的权值加权求和。结果并不复杂,但其来历有深深的数学功底。下面就是一些列推导过程。

SVM & Rank SVM

故事要从SVM说起。标准的SVM大家都很熟悉,是分类经常用到的工具。

而Rand SVM是为了解决样本的排序产生:

其认为作为的得分函数,是对两个样本排序,用和0的大小关系说明的先后关系。
最终得到的参数(消掉了),就是对样本排序的模型。

Rank Pooling

可以看到,样本和参数是同维度的,如果将每一帧直接拉成一个特征作为样本,那么最后得到的也可以还原成同长宽、通道的图像显示。这样的过程可以看作是视频中的所有帧,通过一些列操作变成一张图片,每个点可以视为做了一个复杂的pooling。

但是仅仅如此还不够。因为一个图片,拉成特征之后的维度是相当高的(224见方的图的拉成特征后维度是150528),可行性很差。

所以通过近似求解,得到了最终的Dynamic Image算法,只要对序列中的帧进行简单加和即可:
Bilen H, Fernando B, Gavves E, et al. Dynamic image networks for action recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2016: 3034-3042.