韩欣欣,叶奇玲
(南京邮电大学 通信工程学院,江苏 南京 210003)
在处理视频数据时,行为识别已经成为分析视频的一个关键技术,在机器学习领域和公共安全领域具有一定的研究意义。其中,在公安侦查方面,人体行为识别也应用广泛,如危险行为监控、人机交互、手势识别、智能监控和视频内容检索等[1-3]。近年来,一些科研工作者在行为识别方面提出了运算速度较快的特征提取方法并加以改进[4-6],如LBP局部二值模式[7]、HOG方向梯度直方图[8]以及3D-SIFT三维的尺度不变特征变换[9-10]等方法。鉴于通过单一特征描述一种动作行为存在的局限性,提出利用多种特征融合来进行行为识别。
在图像特征提取时,处理效率可能会受到一些外界影响,像摄像机移动、物体遮挡、视角和光照明暗等,可能会导致行为识别出现误差,因此提出了一种融合基于SIFT特征与HOG特征,然后通过SVM完成分类识别的算法[11]。
该算法的步骤为:目标检测、单特征提取、多特征融合、SVM分类识别。采取的人体行为数据库为小段视频,首先是预处理视频中的视频帧,从而获取图像中的有效信息,之后将所得到的结果作为输入来分别提取SIFT和HOG的特征,然后再进一步进行多特征融合,最终通过SVM进行行为分类识别。算法流程如图1所示。
图1 算法流程
在真实场景下拍摄的行为视频,一些外界因素可能会对视频中的行为识别产生影响,如不可避免的拍摄人手抖、建筑物体遮挡、背景物体变化、镜头伸缩以及光照等外在因素。SIFT算法是可以描述图像中局部特征的算法,可以帮助识别辨认物体,此外该算法还能在空间尺度中寻找极值点数据并提取位置、关键点方向等信息。该特征描述子不会受到拍摄视角、尺度变化、亮度明暗、目标遮挡或噪声等因素的影响,因此使用SIFT特征可以在一定程度上解决上述问题[12-14]。SIFT算法在提取动作特征中主要采用以下步骤:
(1)检测尺度空间极值点。
先建立图像金字塔,金字塔分为O组,每组有S层,其中第O(O≥2)组的图像是由第O-1组的图像经过1/2降采样得到的,每组内的图像是由下到上进行高斯滤波得到的,在获取得到图像金字塔后,通过建立高斯差分尺度来检测稳定的特征点:
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(1)
其中,G(x,y,kσ)为高斯滤波器;I(x,y)为图像中点(x,y)的灰度值。
通过每一个采样点与其所有的邻近点(8邻域点和上下相邻尺度对应的18个点)进行对比来寻找尺度空间图像的极值点,当采样点的数据大于或者小于所有相邻点数据时,则该点为极值点数据。
(2)精确定位极值点位置。
对于上述步骤中得到的极值点,它可能会受到一些噪音的影响,以及可能会有较强的边缘响应,关键点的尺度和位置可以使用拟合三维二次函数方法,并通过Hessian矩阵方法来消除边缘响应,是否为所需要的特征点由式2表示:
(2)
其中,H表示点(x,y)处的Hessian矩阵。
(3)
实验中提取了样本图像的SIFT特征。首先对图像进行归一化处理得到64*128的图像,在高斯函数算法中,可利用其构造尺度空间,然后检测尺度空间中的关键点。文中选用的检测窗口为16*16,在每个窗口能检测到16(4*4)个关键点,然后在确定关键点的位置、尺度和方向后,通过高斯窗口进行加权计算得到具有方向的8个关键点。一个窗口有128维特征描述子,一幅64*128大小的图像就会有4 096维SIFT特征。
HOG特征是可以用来检测物体的特征描述子,常用于计算机视觉及图像处理方面,在行人检测中也应用广泛。测试样本图像中的HOG特征,首先将图像分成小的单元格(cell),然后将每个像素梯度和方向的直方图边缘的单元格组合在一起,形成测试样本图像的HOG特征。
图像中像素点(x,y)的水平方向梯度、垂直方向梯度分别为:
Dx(x,y)=H(x+1,y)-H(x-1,y)
(4)
Dy(x,y)=H(x,y+1)-H(x,y-1)
(5)
其中,H(x,y)为输入图像中像素点(x,y)处的像素值。
像素点(x,y)处的梯度幅值和梯度方向分别为:
(6)
α(x,y)=tan-1(Gy(x,y)/Gx(x,y))
(7)
实验中对样本图像进行HOG特征提取,与SIFT特征提取相同,第一步先对图像进行归一化处理,然后将图像分割为16*16像素的单元格。在梯度方向上被平均划分成9个区间,然后统计分析单元格中每个区间像素的梯度方向直方图,从而得到一个9维特征向量。通过每2*2个单元格组成一个块扫描样本图像,扫描步长为一个单元,最后,将所有块特性连接起来,形成完整的HOG特性。
SVM[15]是一种有监督的学习模型,在模式识别、分类和回归的研究中有重要作用。SVM的关键在于核函数,如线性核函数、多项式核函数和高斯核函数等都比较常用。SVM方法是使用非线性映射算法,使非线性可分问题变成线性可分问题,其本质就是将输入变量全部映射到一个高维空间,构造出最优分类超平面来进行分类识别[16]。其中分类函数表示为:
f(x)=ωTx+b
(8)
其中,ω与空间维数有关,其样本点(xi,yi)到分类超平面的间距为yi(ωTxi+b),对ω和b进行归一化,用ω/‖ω‖和b/‖b‖分别替换ω和b,即几何间隔为f(x)/‖ω‖,则最大几何间隔为:
(9)
式9为线性分类情况,如果是非线性分类,则按照式9进行分类则可能会降低准确率,因而加入松弛变量和惩罚因子,如下所示:
(10)
其中,ξi称为松弛变量(slack variable),c为一个参数,用于控制目标函数中两项之间的权重。
文中算法的步骤主要分为:
(1)选取一段视频并对其提取视频帧图像,将图像转化为灰度图像,然后作归一化处理;
(2)基于第一步分别对图像进行SIFT和HOG特征提取,从而得到两个特征集合,然后通过串行组合的方式来构造SIFT和HOG融合特征集;
(3)通过SVM分类器对融合特征向量进行分类识别。
实验是通过Matlab仿真完成的。选用KTH和Weizmann人体行为库来验证该算法的有效性。在KTH数据库中,选出6个动作类:慢跑、鼓掌、画圈、拳击、散步和跑步;在Weizmann数据库中,也选出6个动作类:跳起鼓掌、跳跃、跑步、单腿跳、散步和快速双腿跳。随机在数据库的每类动作中选出60张图像数据,选出其中50张作为训练集,剩下的10张图像作为测试集。
将文中算法与单个特征的算法进行比较,结果如表1所示。
表1 各特征在KTH、Weizmann数据集的识别率 %
从表1中可以看出,在动作的正确识别率方面,文中的融合特征算法要明显高于单特征算法,有效提高了分类器的识别率。这在基于KTH和Weizmann数据库的实验中也得到了证明,其识别率可达到91.7%。
对行为识别中常用到的两种特征提取算法进行分析,利用SIFT和HOG以不同的侧重描述样本,其中SIFT主要用于检测尺度空间的极值点,帮助辨识物体,获取极值点位置方向等信息;HOG主要是通过计算图像的梯度方向直方图来获取特征信息。从特征描述上来分析,SIFT相较HOG复杂,因此SIFT的特征分类效果较好。
实验结果表明,融合特征比起两种单特征的识别效果都要好。