DT算法论文:"Dense Trajectories and Motion Boundary Descriptors for Action Recognition"
iDT算法论文:"Action Recognition with Improved Trajectories"
前言:
IDT算法是DT算法的改进版,出自ICCV2013,它是在深度学习方法出来之前,视频行为识别领域最好的传统方法。下面先讲述DT方法,然后讲IDT在哪些方面进行了改进。
一.Dense Trajectories(DT)算法介绍
DT(Dense Trajectories)方法步骤:
Step1.在多个空间尺度上密集采样特征点;
Step2.利用光流场获取视频序列中的轨迹;
Step3.再沿着轨迹提取下列四种特征—>轨迹形状特征(Trajectory Shape Descriptor)和HOF, HOG,MBH特征;
Step4.然后利用BoF(Bag of Features)方法对特征进行编码;
Step5.最后基于编码结果训练SVM分类器。
1、Dense Sampling (密集采样):
1)在每帧图像的多个空间尺度采样特征点:在多个空间尺度上通过网格划分的方式密集采样特征点。在多个空间尺度上采样是为了保证采样的特征点能够覆盖所有空间位置和尺度。
2)去除一些无用的特征点:采样特征点的目的是在时间序列中跟踪这些特征点,但某些背景单一的区域在时序中可能没有变化,这类特征点不需要去跟踪。因此,在跟踪前需要先去除一些特征点,文中通过计算每个像素点自相关矩阵的特征值,然后设置阈值去除低于阈值的特征点。
3)多尺度参数和采样间隔:文中多个空间尺度取值为8,采样特征点时的采样间隔W=5。
2.0、特征点轨迹跟踪
1)特征点轨迹跟踪是在每个尺度上单独进行的。具体流程为:
Step1.对于每一帧It,根据下一帧It+1计算它的密集光流场,其中
分别为光流的水平和垂直分量,则第It帧中的特征点P(xt,yt),在第It+1中的位置为:
其中M为3*3的中值滤波器,即通过计算特征点邻域内的中值来计算特征点的运动方向。
Step2.通过step1中的方式,该特征点在L帧的序列图像中的位置即形成一段轨迹(Pt,Pt+1,...,Pt+L).
Step3.由于轨迹在跟踪过程中会存在漂移现象,因此每隔L帧需要重新进行密集特征点采样,然后重新进行跟踪,文中L=15。
2.1、Trajectory Shape Descriptor(轨迹形状特征描述子)
对于一个长度为L的轨迹,其形状可以用(ΔPt,...,ΔPt+L−1)来描述,
其中位移矢量:
则轨迹特征描述子为:
因此,最终得到的轨迹特征为L*2=30维。(15帧图片,每帧分别在x,y方向的位移矢量)。
2.2 、Motion and Structure Descriptors(运动和结构特征)
2.2.1:时间-空间体
1)时间-空间体:沿着某个特征点的长度为L的轨迹,在每帧图像上取特征点周围的大小为N×N的区域为时间-空间体,该空间结构体的尺寸为N×N×L,其中L为帧数。
2)划分小的Cell:将结构体按照nσ×nσ×nτ大小的网格划分,空间上每个方向均分nσ份,时间方向上均分nτ份。
3)计算特征描述子:然后在每个cell内计算HOG,HOF,MBH描述子,将这些描述子进行concat构成最终的描述子。论文中参数设定:N=32,nσ=2,nτ=3。
2.2.2:特征描述子介绍
1)HOG特征:计算灰度图像的梯度直方图,直方图的bin数目为8。因此,HOG特征长度为2*2*3*8=96。
2)HOF特征:计算光流的直方图,直方图的bin数目取8+1,前8个bin与HOG相同,最后一个用于统计光流幅度小于某个阈值的像素。因此,HOF特征的长度为2*2*3*9=108。
3)MBH特征:计算光流图像的梯度直方图,可以理解为在光流图像上计算的HOG特征。由于光流图像包含X方向和Y方向,因此需要分别计算MBHX和MBHY。MBH总的特征长度为2*96=192。
4)最后,对提取到的特征进行归一化,在DT算法中,使用L2范数对上面三种特征进行归一化。
3、Bag of Features特征编码
1)对于每一段轨迹,都有一组特征描述子(trajectory,HOG,HOF,MBH),我们需要对所有的特征描述子进行编码,得到最终一定长度大小的编码特征来进行最后的视频分类。
2)Bag of Feature算法大概分为四步:
(1)提取图像特征;
(2)对特征进行聚类(k-means),得到一部字典;
(3)根据字典将图片表示成向量(直方图);
(4)训练分类器。
在训练过程中,DT算法将所有训练特征聚类到100000类,每个类别下有4000个词袋(visualwords)。训练完成后,对每个视频的特征进行编码,就可以得到视频对应的特征。在得到视频对应的编码特征后,DT算法采用SVM分类器进行分类。
二、improved dense trajectories(IDT)
iDT算法的基本框架和DT算法相同,主要改进点为:
1)优化光流图像,估计相机运动;
2)改进特征正则化方式(L2改为L1);
3)改进特征编码方式。
这几处改进使得算法的效果有了巨大的提升,在UCF50数据集上的准确率从84.5%提高到了91.2%,在HMDB51数据集上的准确率从46.6%提高到了57.2%。
主要思想:
1)SURF关键点匹配减轻相机抖动的影响:提升的密集轨迹算法主要考虑到相机运动,在帧与帧之间使用SURF关键点描述子和密集光流进行特征点匹配,从而消除或者减轻相机运动带来的影响。在求得匹配点对之后,就可以利用RANSAC算法估计投影变换矩阵。
2)human detector:人在视频帧中占主导地位,由于人的运动和相机运动不同,人身上的匹配点对使得投影矩阵的估计不准确,因此iDT算法采用human detector检测人的位置框,进一步消除内部的匹配点对,从而使得人的运动不影响投影矩阵的估计。
1、相机运动估计
首先是最重要的一处改进,通过估计相机运动估计来消除背景上的光流以及轨迹。
由于相机在运动,所以背景上也有很多轨迹,人的轨迹也受到相机运动的很大影响。而这些信息与要识别的动作关系是不大的,属于干扰信息。因此就希望能够识别并消除这些轨迹。而实际上轨迹的运动也是通过计算光流信息进行计算的,因此需要通过估计相机运动,来消除背景区域的光流。
由于相邻两帧图像之间变化比较小,iDT算法假设相邻的两帧图像之间的关系可以用一个投影变换矩阵来描述,即后一帧图像是前一帧图像通过投影变换得到的。因此,估计相机运动的问题就变成了利用前后帧图像计算投影变换矩阵的问题。
2、Trajectory features
HOG:灰度图像直方图捕捉了图像的静态表观信息。
HOF和MBH捕捉了图像的运动信息,均是基于光流的,能够更加准确地描述动作。
3、特征归一化:
DT:对于HOF,HOG和MBH特征采取L2范数归一化;
iDT:对于HOF,HOG和MBH特征采取L1正则化后, 再对特征的每个维度开平方。
4、Feature encoding
DT算法:采用的BoF(BagofFeatures)编码方式;
iDT算法:采用FV(Fisher vector)编码,各参数设置如下:
1)用于训练的特征长度:Trajectory+HOG+HOF+MBH=30+108+96+192=426维;
2)用于训练的特征个数:从训练集中随机采样256000个特征;
3)PCA降维比例:2,即维度除以2,降维后特征长度为213;
4)GMM高斯聚类的个数K=256;
编码后得到的特征维度为2DK,即109056维,在编码后iDT同样使用了SVM进行分类。
好了,到此结束。骚年,开始Deeplearning的征程去吧!