经典视频识别算法小述
Posted 智能感知研究中心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典视频识别算法小述相关的知识,希望对你有一定的参考价值。
小沫儿又和大家见面啦!偷偷告诉你们:现如今人体行为识别是计算机视觉研究领域的一个热点,人体行为识别的任务是通过一定的训练使计算机自主地分析一个未知的视频或者图像序列中人体正在进行的行为。
简单的行为识别即动作分类,给定一段视频,只需将其正确分类到已知的几个动作类别即可;复杂点的识别是视频中不仅仅只包含一个动作类别,而是有多个,系统需自动地识别出动作的类别以及动作的起始时刻。行为识别的最终目标是分析视频中所谓的“W4系统”:
哪些人 who
什么时刻 when
什么地方 where
什么事情 what
人体行为识别应用背景很广泛,主要集中在智能视频监控、病人监护系统、人机交互、虚拟现实、智能家居、智能安防、运动员辅助训练等。另外,基于内容的视频检索和智能图像压缩等有着广阔的应用前景和潜在的经济价值和社会价值,其中也用到了不少行为识别的方法。
下面先和小沫儿一起补充几种基本的视频特征提取算法的相关知识吧!
1.方向梯度直方图HOG(Histogram of Oriented Gradient)
首先计算图像平面像素水平垂直误差;
再求和计算梯度幅值和梯度方向;
最后划分梯度方向,按梯度大小加权统计。
注意是求取前先灰度化然后Gamma校正提取轮廓信息,缺点就是计算量大,无法处理遮挡,主要用于行人这样的刚性物体检测。对于HOG特征,其统计的是灰度图像梯度的直方图。
即方向梯度直方图,分块后根据像素的梯度方向统计像素的梯度幅值。
2. 光流直方图HOF(Histogram of Flow)
需要时间梯度图来计算像素水平和垂直速度;
再求合成速度幅值和方向。
其统计的是光流(包括方向和幅值信息)的直方图,这里还可以使用其他的目标检测方法去除背景光流,只保留人体区域的光流,提高精度。
即光流直方图,光流通过当前帧梯度矩阵和相邻帧时间上的灰度变换矩阵计算得到, 之后再对光流方向进行加权统计。
3. 光流梯度直方图 MBH(Motion Boundary Histograms)
在光流图上计算水平和垂直光流梯度;
计算合成光流梯度幅值和方向;
提取这些灰度图像的梯度直方图。
即运动边界直方图,实质为光流梯度直方图。
4. 轨迹特征 (Trajectories)
匹配点按照光流速度得到坐标;
获取相邻帧匹配点的坐标差值;
按一条轨迹串联起来;
正则化之后就是一个轨迹特征。
轨迹特征,特征点在各个帧上位置点的差值,构成轨迹变化特征
5. 人体骨骼特征
通过RGB图像进行关节点估计(Pose Estimation)获得;
或是通过深度摄像机直接获得(例如Kinect)。
6.ORB(Oriented FAST and Rotated BRIEF)
一般用于实时性特征检测;
基于FAST角点的特征点检测与描述技术;
具有尺度与旋转不变性;
对噪声及透视仿射也具有不变性。
7. 局部二值模式LBP(Local Binary Pattern)
局部二值模式是一种描述图像局部纹理的特征算子,该算子具有旋转不变性与灰度不变性(不怕光照变化)等显著优点。
经典LBP:经典LBP的算子窗口为3×3的正方形窗口,以窗口中心像素为阈值,将其相邻领域的8个像素灰度值与中心像素灰度值比较,若中心像素值小于周围像素值,则该中心像素位置被标记为1,否则为0。
圆形LBP:提出了将3×3的正方形窗口领域扩展到任意圆形领域。
8. 尺度不变特征变换SIFT(Scale-invariant Feature Transform)
在不同的尺度空间上查找特征点,并计算出特征点的方向。适用于物体在角点、边缘点、暗区的亮点及亮区的暗点等复杂环境下的特征提取。
SURF(Speeded Up Robust Features):利用Hessian矩阵迹的判断,如果两个特征点的矩阵迹正负号相同,代表这两个特征具有相同方向上的对比度变化。
彩色尺度特征不变变换CSIFT:可以解决基于彩色图像的SIFT问题,CSIFT计算量小,运算速度快,提取的特征点几乎与SIFT相同。
密集轨迹算法——DT(Dense Trajectory)算法
在视频序列中对每一帧的兴趣点进行跟踪就形成轨迹,若是对每一帧密集采样兴趣点进行跟踪就形成密集轨迹。密集轨迹与一般轨迹对比如下图所示:
可见,密集轨迹对于视频特征抓取更为密集,特征抽象更为丰富全面。
DT算法的基本思路就是为利用光流场来获得视频序列中的一些轨迹,再沿着轨迹提取小沫儿上面提到的HOF,HOG,MBH,Trajectory4种特征,最后使用BOF(Bag of Features)方法对特征进行编码,再基于编码结果训练SVM分类器。
算法框架如下图所示:
DT算法通过网格划分的方式在图片的多个空间尺度上分别密集采样特征点,这样能保证采样的特征点覆盖了所有空间位置和尺度。通常8个空间尺度已经非常足够了,若图像很大,可以适当增加。后续的特征提取也是在各个尺度上分别进行的。特征点采样的间隔(即网格的大小)W通常取W=5。
下一步的目标即在时间序列上跟踪这些特征点,但在缺乏变化的区域(比如一块白色墙壁中间的点)中跟踪特征点是无法实现的。因此在进行跟踪前要先去除这些难以跟踪的特征点。此处的方法是计算每个像素点自相关矩阵的特征值,并设置阈值去除低于阈值的特征点。阈值由下式决定:
式中(λ1,λ2)是图像中像素点i的特征值。0.001是通过调试经验和实验所确定的阈值。下图即为密集采样的一个示例效果图片:
算法详细步骤为:
对整个视频序列进行光流场计算(光流场,是指图像中所有像素点构成的一种二维瞬时速度场,其中的二维速度矢量是景物中可见点的三维速度矢量在成像表面的投影);
对初始帧进行像素点密集采样,每隔W个像素点采样一个;
对采样点进行跟踪:由光流判断跟踪点在下一帧的位置。
DT算法实现效果如下:
改进的密集轨迹算法
——iDT(improved Dense Trajectory)算法
随着视频识别研究的发展,人们发现在制作数据集时,相机的相对运动会对视频识别精度带来一定的干扰,主要体现在提取的光流图像存在很大扰动,已有的DT算法、BOF解决此问题效果不佳,iDT算法随即面世。
首先来看一下在没消除背景干扰时应用DT算法得到的轨迹分布:
可以看出,由于相机在运动,所以背景上也有很多轨迹,人的轨迹也受到相机运动的很大影响。而这些信息与要识别的动作关系是不大的,属于干扰信息。我们希望能够识别并消除这些轨迹,而实际上轨迹的运动信息也是通过光流信息进行计算得到的。因此需要通过估计相机运动,来消除背景区域的光流。
iDT算法的基本框架和DT算法相同,主要区别在于对光流图像的优化,特征正则化方式以及特征编码方式的改进。这几处改进使得算法的准确率有了巨大的提升,在UCF50数据集上的准确率从84.5%提高到了91.2%,在HMDB51数据集上的准确率从46.6%提高到了57.2%。iDT的改进具体体现在:
warp optical flow:最主要的一点是它利用前后两帧视频之间的光流以及SURF关键点进行匹配,从而消除/减弱相机运动带来的影响,改进后的光流图像被称为warp optical flow;
L1正则化:在iDT算法中,对于HOF,HOG和MBH特征采取了与DT算法(L2范数归一化)不同的方式——L1正则化后再对特征的每个维度开平方。这样做能够给最后的分类准确率带来大概0.5%的提升;
特征编码FV:特征编码阶段iDT算法不再使用BOF/BOVM方法,而是使用效果更好的Fisher Vector编码。FV原理详见《图像特征提取三剑客》。
算法步骤:
使用SURF特征算法匹配前后两帧的匹配点对,这里会使用人体检测来剔除人体区域的匹配点,因为通常人体目标的运动量大,其产生的影响也较大;
利用光流算法计算匹配点对,剔除人体区域的匹配点对;
合并SURF匹配点对和光流匹配点对,利用RANSAC随机采样序列一致性算法估计前后两帧的投影变换矩阵H;
利用矩阵H的逆矩阵,计算得到当前帧除去相机运动的状态I’= H.inv * I ;
计算去除相机运动后的帧I' 的光流。
不使用warp optical flow的效果如下图所示:
综合以上的改进算法,使用warp optical flow时的效果如下:
可以看出加入warp optical flow对效果的提升是非常明显的。
无论是DT还是iDT算法效果图中最下面一行都是比较失败的情况,其原因主要包括两点,也是未来亟需解决的问题:
1)运动模糊;
2)人物占图像比例高时相机运动估计不准。
iDT算法作为经典视频识别中最好的行为识别算法,有着优良的效果和很好的鲁棒性。其中有很多非常值得借鉴的思路,比如相机运动引起的背景光流的消除,比如沿着轨迹提取特征的思路等。CVPR2015中的“Action Recognition with Trajectory-Pooled Deep-Convolutional Descriptors”的思路就是沿着轨迹利用CNN提取特征,取得了进一步的效果提升。
深度学习的大浪潮已经涌入了视频识别领域,包括分类、检测、跟踪等方面。小沫儿和小伙伴们接下来也会陆续给大家推送基于深度学习的各种巧妙的不要不要的网络结构自动提取特征的方法,以及最新的顶会文章哦
撰稿:彭彭彭小沫儿
校对:苏小淘 小香香
智能感知研究中心 出品 | 原创精品 | 转载请注明出处
合作事宜 | 请联系工作人员
以上是关于经典视频识别算法小述的主要内容,如果未能解决你的问题,请参考以下文章
C#,基于视频的目标识别算法(Moving Object Detection)的原理挑战及其应用
TSINGSEE青犀视频利用GO集成百度AI人脸识别算法的开发实践