CVPR2017之ActionVLAD(对特征整合方式的改进)

来源:互联网 发布:阿里云服务器代购 编辑:程序博客网 时间:2024/06/05 04:48

背景

关于视频中的行为识别,通常会出现这种识别错误的情况:即一段视频中包含若干动作,譬如打篮球的视频中包含跑、跳、扔东西等多种行为,如何能正确地识别为投篮?

当前行为识别主要有两种CNN结构:(1)第一种:3D spatio-temporal 卷积,这种方法识别准确率有待提升,优势是速度较快。(2)第二种,也就是目前常用的方法:two-stream architectures,将视频分解成图像流和动作流。

目前对长时间结构建模的方法不只是有VLAD,还有LSTM方法,但是不是端到端的训练,需要后处理,ActionVLAD可以实现对视频的端到端的训练。

上述两种方法均有一种缺陷:这些方法主要集中于片断地信息,不能宏观的把握整个video。所以我们需要一种可以表示global feature的方法。因此ActionVLAD应运而生。而该方法起源于NetVLAD,NetVLAD起源于VLAD。这个方法可以聚集aggregate feature,相当于一种新的Pooling策略。

讲述ActionVLAD之前,需要先讲解NetVLAD。


NetVLAD:

VLAD是一种新的池化方法,在事件层面的检索和图像分类方面有着重要的作用。其中,与VLAD可以相提并论的另一种方法BOF法。BOF法具体内容可以看


http://blog.csdn.net/chlele0105/article/details/9633397.


NetVLAD的本质是对特征计算残差,对不同的时刻和帧进行aggregation,得到特征V。

N个D维局部图像描述器。K个聚类中心(视觉词汇)输出是VLAD图像的表示:V,V是KxD维,这个矩阵随后将被转换成向量并被归一化。因此NetVLAD公式可以描述为:



是描述和第k个视觉词汇关系的系数。也就是说:如果临近的聚类中心是那么大,否则小。

其中,是k-means聚类得到。K-means聚类得到多个聚类中心:是K-Means中的均值向量u,具体的K-Means参考周志华的机器学习P202。

变形则可以得到

,因此反向传播的时候,可以看到它调整的权重应该是中心ck.



VLAD公式为

,与NetVLAD的区别在于有无,由于NetVLAD需要反向传播,故需要该系数。

VLAD和NetVLAD的效果的不同之处在于

即聚类中心点是否可变。VLAD不可变,在中心,而NetVLAD是可变的,聚类中心随着训练的进行不断的调整,因此可以不在中心。

Action VLAD

与NetVLAD极其相似,唯一的区别是加入了时间信息,即公式如下所示:


该方法与普通的Pooling有下图的区别:

可以看到,其将行为进行无监督聚类(KMeans),得到若干行为子类,进而对每个子类进行提取特征并生成特征向量。


网络结构

该论文使用的网络结构是two-stream型的网络,其用VGG进行特征的提取,最终得到如下图所示的结构。



对RGB进行特征的提取之后,在Conv5_3加入AvtionVLAD进行特征的聚合,FlowStream同RGB一样进行提取特征。

最终再进行将两种特征结合起来进行分类判断。

                          


总结

该论文主要涉及到一种新的网络结构,名为ActionVLAD,其借鉴了NetVLAD的策略,将其拓展到三维的空间下,即加入了时域,该网络结构的作用在于可以对不同时间、图片不同位置的特征进行融合,得到一种对视频空间维度和时间维度的获取。进而可以对特征的提取更全面,对复杂行为的分析更全面,而且也是end-to-end的方式。


注:local descriptor表示的是图片的一个局部区域,VLAD及其衍生的网络都是对图片的局部进行特征提取,再求和,从而判断出该图片距离聚类中心ck的大小, 

原创粉丝点击