论文: Dense trajectories and motion boundary descriptors for action recognition
主要贡献
1.提出了对采样特征点进行密集轨迹跟踪的方式
2.提出基于运动界限直方图的描述子(MBH)
3.介绍了9个数据集(虽然这些数据集不是这篇论文贡献出来的,但比较详细地介绍了这些数据集,不用自己去到处找有哪些数据集了,这一点是对个人的贡献,不是对这个领域的贡献)
Dense Trajectories
第一步,采样。
以1/√2为比例因子,获取最多八层(不一定要取八层)的金字塔图像,对每层在一个W(一般取5)的像素块中对特征点采样。由于同域部分的图像基本没什么特征点,因此设置一个阈值T,计算图像的自相关矩阵,若自相关矩阵最大的特征值都小于阈值T,那这部分区域就不进行采样。
第二步,计算跟踪轨迹点的位置。
计算光流估计,Wt = (Ut, Vt),Ut,Vt分别表示垂直和水平方向的光流。给定It帧中的某个点
这里M是中值滤波核,尺寸为3x3。之所以采用中值滤波是因为它对离群值(就是某个数据很离谱)比双线性插值更有鲁棒性。这部分是用opencv库实现的。
为了确保某一帧有跟踪点,如果在WxW区域内没有跟踪点(这里指的是跟丢了),就在这个区域再采样一批新的点继续跟踪。跟踪的长度L是15帧。
在光流估计计算完后,密集轨迹跟踪是没什么额外的计算量的,此外密集轨迹跟踪的另一个优点是它在比较快速地跟踪和非规则运动图像中有较好的鲁棒性。
第三步,计算轨迹描述子(其实就是一个向量)。
对于第二步得到的某个点在连续L=15帧的范围内的坐标P1 ... P15。每两个相邻的坐标相见得到Delta P = Pt+1 - Pt;轨迹描述子的计算如下:
Motion and struct descriptors
MBH其实就是光流的梯度。这个MBH就是用来降低相机运动对最终行为识别的影响的。(后续的改进的论文iDT主要讲的是提出一个更好的方法去除相机运动带来的影响)
对于某个跟踪的特征点附近取NxNxL的3D块,N取32,L还是15帧。在这个3D块上取nσ × nσ × nτ的grid cell, nσ =2, nτ = 3, 对每个grid cell 计算描述子(如HOG, HOF, MBH)
HOG特征: HOG特征计算的是灰度图像梯度的直方图。直方图的bin数目取为8。故HOG特征的长度为96(2*2*3*8).
HOF特征: HOF计算的是光流(包括方向和幅度信息)的直方图。直方图的bin数目取为8+1,前8个bin于HOG相同,另外的一个bin用于统计光流幅度小于某个阈值的像素。故HOF的特征长度为108(2*2*3*9)
MBH特征: MBH计算的是光流图像梯度的直方图,也可以理解为在光流图像上计算的HOG特征。由于光流图像包括x方向和y方向,故分别计算MBHx和MBHy。MBH总的特征长度为192(2*96)
bag of features
在介绍bag of features前,重新介绍一下数据集,对于各种各样的数据集,不管是视频,还是图片,还是语音,都可以把它们当成分布在高维空间的数据,这些数据有各种各样的特征,如图片有空间上的特征,视频有空间和时间上的特征,传统的方法都是通过提取各种各样的特征(如HOG,HOF等),来进行分类识别。
关于特征,直观的一些特征有:轮廓边缘,角点,人脸总是有两个眼睛一个嘴巴一个鼻子等。抽象一点的有:图像中像素值之间的联系,颜色分布等(HOG,HOF就是提取这些特征)。
再补充一点,众所周知,神经网络的作用可以理解为提取特征,在浅层,提取的是图像的轮廓,边缘,角点这些浅层的特征,至于为什么是提取轮廓,边缘这些特征,学过数字图像处理的朋友应该能理解,把一个3x3的卷积核当成是计算某个点的梯度的sobel算子或者Laplacian算子就明白了,没学过的建议去学学数字图像处理。在深层网络,提取的是一些像素之间联系的特征,例如空洞卷积,提高了卷积的感受野,意思就是把更大范围的像素之间的联系考虑进来了。(这么一说,可能就解释了为什么卷积后得到的二维数组称为feature map)
回到本文,这篇论文的bag of features,Trajectories, HOG, HOF, MBHx, MBHy组成。作者通过聚类从10000个随机挑选的特征样本中为每个特征描述子选择了4000个特征样本,最后经过使用RBF核函数的SVM分类器,采用one-against-rest策略训练多类分类器。
结论
1.HOG注重静态图像的细节,HOF注重局部运动的信息,MBH可降低相机运动带来的影响。
2.MBHy在垂直方向上的运动有较好的检测效果,同理MBHx在水平方向上的运动有较好的检测效果
3.SIFT特征在背景比较干净的场景下效果比较差。
4.the large displacement optical flow (LDOF) 计算量很大。
5.MBH由于是计算光流的梯度得来的,因此它受限于光流的效果(在此之间还没写光流的文章,先简单介绍一下,光流是空间运动物体在观察成像平面上的像素运动的瞬时速度,是没办法每个像素都直接计算的,那样计算量太大了,现在有很多光流的估计计算方法,不同估计方法计算出来的效果有差别,因此这里MBH受限于光流的计算效果)
6.论文里提到的方法只能在CPU上推理
补充说明:该论文还有后续改进论文iDT,这篇论文和改进的iDT提出的模型在传统方法中是比较经典的模型,后续出的很多论文都做了与这个模型的精度和速度比较。
dataset
1.KTH , 包含的行为类别有:walking, jogging, running,boxing,waving and clapping。
2.YouTube, 包含11个行为:basketball shooting,biking/cycling, diving, golf swinging, horse back riding, soccer juggling, swinging, tennis swinging, trampoline jumping, volleyball spiking, and walking with a dog.(考虑到相机运动,目标外观和姿态,目标大小,视角,乱七八糟的背景,以及关照条件,这个数据集有些挑战性)
3.Hollywood2,包括12个行为:answering the phone,driving car, eating, fighting, getting out of car, hand shaking, hugging, kissing, running, sitting down, sitting up, and standing up
4.UCF sports,包括10个行为:swinging( on the pommel horse and on the floor ), diving, kicking( a ball ), weight-lifting, horse-riding, running, skateboarding
5.IXMAS,记录了五个不同的视角,有11种行为:check watch, cross arms, scratch head, sit down, get up, turn around, walk, wave, punch, kick and pick up
6.Olympic Sports,有16种行为:high-jump, long-jump, triple-jump, pole-vault, basketball lay-up, bowling, tennis-serve, platform, discus, hammer, javelin, shot-put, springboard, snatch, clean-jerk and vault
7.UIUC, 在实验室拍的,背景比较干净。有14种行为:walking, running, jumping, waving, jumping jacks, clapping, jump from situp, raise one hand, stretching out, turning, sitting to standing, crawling, pushing up and standing to sitting
8.UCF50,有50种行为,主要是各种各样的运动。
9.HMDB51,这个主要是从各种电影里收集来的。包括了一些简单的脸部表情,一般的身体运动,和人们之间的交互。
如有错误,欢迎留言指出。
本文来源于微信公众号“ CV技术指南 ”的模型总结部分 。更多内容与最新技术动态尽在公众号发布。