版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MemoryHeroLi/article/details/82493879
Note:
DT算法来自论文"Dense Trajectories and Motion Boundary Descriptors for Action Recognition"
iDT算法来自论文"Action Recognition with Improved Trajectories"
- 密集轨迹算法(DT)
算法基本框架
密集采样特征点
特征点轨迹跟踪
基于轨迹的特征提取
特征编码
分类器分类
如图所示即为算法的基本框架,包括密集采样特征点,特征点轨迹跟踪和基于轨迹的特征提取几个部分。后续的特征编码和分类过程则没有在图中画出。
1.1 密集采样特征点
密集采样特征点具体分为如下几个步骤:
将视频的每一帧图片划分为多个尺度,一般8个空间尺度就够了;
在每个尺度的图片上通过网格划分的方式密集采样特征点,网格大小通常取W=5;
去除一些缺乏变化的无法跟踪的特征点,通过计算像素点自相关矩阵的特征值,去除低于某个阈值的特征点;
下一步的目标就是在时间序列上跟踪这些特征点,从而形成轨迹。
故最终得到的轨迹特征为L*2=30维。(15帧图片,每帧分别在x,y方向的位移矢量)。
1.4 特征编码—Bag of Features
对于一段视频,存在着大量的轨迹,每段轨迹都对应着一组特征(trajectory,HOG,HOF,MBH),因此需要对这些特征组进行编码,得到一个定长的编码特征来进行最后的视频分类。
DT算法中使用Bag of Features方法进行特征的编码,在训练码书时,DT算法随机选取了100000组特征进行训练。码书的大小则设置为4000。
在训练完码书后,对每个视频的特征组进行编码,就可以得到视频对应的特征。
1.5 分类-SVM
在得到视频对应的特征后,DT算法采用SVM(RBF−χ2核) (RBF−χ2核)(RBF−χ2核)分类器进行分类,采用one-against-rest策略训练多类分类器。
- 改进的密集轨迹算法(iDT算法)
iDT算法的基本框架和DT算法相同,主要改进在于以下几点:
对光流图像的优化,估计相机运动;
特征正则化方式的改进;
特征编码方式的改进。
2.1 相机运动估计
具体做法见论文原文。
从光流中消除相机运动带来的影响主要有两点好处:
运动描述子(主要指HOF和MBH)能更准确的描述动作,用单一描述子的分类准确率比起DT中有很大的提高
由于轨迹也是利用光流进行运算的,因此,可以通过设置阈值,消除优化后的光流中位移矢量的幅值小于阈值的轨迹。
2.2 特征归一化方式
DT:对于HOF,HOG和MBH特征采取L2范数归一化;
iDT: 对于HOF,HOG和MBH特征采取L1正则化后, 再对特征的每个维度开平方。
2.3 特征编码—Fisher Vector
DT:特征编码采用Bag of Features方法;
iDT: 特征编码采用Fisher Vector编码。实际应用中Fisher Vector同样也是先用大量特征训练码书,再用码书对特征进行编码。
***Note:***在iDT中使用的Fisher Vector的各个参数为:
用于训练的特征长度:trajectory+HOF+HOG+MBH=30+96+108+192=426维;
用于训练的特征个数:从训练集中随机采样了256000个;
PCA降维比例:2,即维度除以2,降维后特征长度D为213。先降维,后编码;
Fisher Vector中高斯聚类的个数K:K=256。
故编码后得到的特征维数为2KD 2KD2KD个,即109056维。在编码后iDT同样也使用了SVM进行分类。在实际的实验中,推荐使用liblinear,速度比较快。
————————————————
版权声明:本文为CSDN博主「MemoryHeroLi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MemoryHeroLi/article/details/82493879