基于改进MeanShift算法的视线跟踪技术
2010-03-24
(海军航空工程学院 兵器科学与技术系,山东 烟台 264001)
在智能人机交互技术和机器视觉的研究中,人脸跟踪是一项十分重要的技术,是指在视频流中提取人脸位置或角度变化信息。近年来,人脸跟踪已经成为机器视觉与模式识别领域的研究热点之一。
跟踪人脸首先要检测识别出人脸区域,目前,人脸检测的方法可以分为4类:基于知识的方法,特征不变方法,模板匹配方法和基于外貌的方法。在基于特征不变的方法中,由D.G.Lowe[1]提出的SIFT算法是目前效率较高的一种算法,在此基础上,Herbert Bay[2]等人提出了SURF(Speeded-Up Robust Features)算法,该算法改进了SIFT算法,进一步提高了算法性能。
本文提出了基于SURF算法的自动嘴部区域初始化MeanShift算法改进,使用SURF 函数实现嘴部检测,然后使用MeanShift 跟踪算法实现嘴唇跟踪,通过嘴部运动产生新位置坐标来控制鼠标。
1 SURF算法
1.1 构建Hessian 矩阵
SURF 检测算法是由Hessian 矩阵决定的,下面给出矩阵H:
Lxx(X,t)是一幅图像在不同解析度下的表示,可以利用高斯核G (t)与图像函数I(X)在点 X=(x,y)的卷积来实现,核函数G(t) 具体表示如式(3),g(t)为高斯函数,t为高斯方差,Lyy与 Lxy同理。
通过这种方法可以为图像中每个像素计算出其H 行列式的决定值,并用这个值来判别兴趣点。为方便应用,Herbert Bay 提出用方波滤波器和图像的卷积作为近似值Dxx代替 Lxx,为平衡准确值与近似值间的误差引入权值w,权值w 随尺度变化,则H矩阵判别式可表示为:
1.2 构建尺度空间
图像的尺度空间是这幅图像在不同解析度下的表示,由式(2)知,一幅图像I(X)在不同解析度下的表示可以利用高斯核G(t)的卷积来实现,图像的尺度大小一般用高斯标准差来表示[3]。
在计算视觉领域,尺度空间被象征性的表述为一个图像金字塔,SURF算法申请增加图像核的尺寸,使尺度空间金字塔的多层同时被处理,从而使算法性能提高,SURF算法使原始图像保持不变而只改变滤波器大小。图1给出SURF算法与SIFT算法在金字塔结构上的不同点。
图1 图像滤波金字塔
1.3 精确定位特征点
检测过程中使用与该尺度层图像解析度相对应大小的滤波器进行检测,以3×3的滤波器为例,该尺度层图像中9个像素点之一与自身尺度层中其余8个点和在其之上及之下的两个尺度层9个点进行比较,共26个点,图2中标记的‘X’像素点的特征值若大于周围像素(包括其上方或下方及其周围的间隔点)则可确定该点为该区域的兴趣点。
图2 检测特征点
1.4 主方向确定
为保证旋转不变性[4],首先,以特征点为中心,计算半径为6 s(s为特征点所在的尺度值)的邻域内的点在x、y方向的Haar小波(Haar小波边长取4 s)响应,并给这些响应值赋高斯权重系数,使得靠近特征点的响应贡献大,而远离特征点的响应贡献小;其次,将60°范围内的响应相加以形成新的矢量,遍历整个圆形区域,选择最长矢量的方向为该特征点的主方向。这样,通过特征点逐个进行计算,得到每一个特征点的主方向。
2 MeanShift算法
2.1 目标与候选目标的表示
目标模板[5]是通过一个选定区域来确定的,为了消除目标模板尺寸不同的影响,所有的目标模板都要首先做归一化处理。经过归一化后的目标模板长宽分别为hx和hy。设目标模板的点用表示,候选目标区域中的点用表示,其中xi、yj分别是目标模板与候选目标区域的归一化的像素位置,µi、vj是相应的特征矢量。定义一个核函数 k (x),为目标模板区域的像素设置权值,即越远离目标模板中心的像素设置的权值越小,目的是增加算法的鲁棒性[6],提高搜索跟踪能力。
定义h为候选目标的尺度,在跟踪算法中h选择为候选目标的像素数,δ()⋅为Kronecker ∆函数,定义为:
归一化常数 Cx、Cy分别为:
2.2 相似性测度与目标定位
通常情况下,相似性测度函数定义的是目标模板和候选目标之间的距离分别为:
d (q,p(y))是目标模板分布q和候选目标分布 p (y)的Bhattacharyya系数。
为了在被检测帧中定位目标,那么关于目标模板分布q 和候选目标分布 p (y)的距离函数 d (y)应当最小化。定位过程也可以看成是从前一帧的目标模板的位置开始,在其邻域内搜索目标的过程。因为距离函数 d (y)是光滑的,所以通过利用均值矢量(mean shift vector) d (y)的梯度信息完成目标的定位。此过程是不断地从目标当前位置 y0移动到新目标位置 y1,直到候选目标与目标模板足够相似。y1的计算式:
2.3 均值偏移算法步骤
1)利用式(5)计算目标模板在前一帧 y0处的概率密度并指定一个小的正常数ε[7];
2)初始化在当前帧 y0处的候选目标,利用式(6)计算其概率密度和Bhattacharyya系数;
3)利用式(12)计算候选目标的下一个新位置y1;
3 实验
OpenCV[8](Open Source Computer Vision Library)是一种用于数字图像处理和计算机视觉的函数库,由 Intel 微处理器研究实验室(Intel’s Microprocessor Research Lab)的视觉交互组(The Visual Interactivity Group)开发。OpenCV 由一系列C 函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。
系统首先提取嘴部模板图像,利用SURF算法检测出嘴唇区域的特征点,通过摄像头捕捉视频帧,对提取的每一帧图像,利用SURF算法提取特征点,并比较模板图像与候选图像的特征点描述子,提取匹配成功的特征点集的4个角点作为矩形嘴部区域的4个顶点,最终用矩形窗表示嘴部区域,而后调用MeanShift算法跟踪嘴部区域,并将嘴部坐标更新信息作为鼠标移动依据。
对于同一使用者而言,只须提取一次嘴唇区域信息,在此后每次对MeanShift算法初始化过程中,系统会自动识别并跟踪嘴唇区域,而不需要使用者手动选择嘴部区域,从而实现MeanShift算法自动初始化,进而实现视线跟踪功能。图3给出该系统流程图。
验证系统硬件设备使用 Intel Core2 双核2.33GHz CPU,2Gb 内存,ANC 摄像头。系统软件以 Microsoft Visual C++6.0为开发平台,调用OpenCV的cvsurf.cpp 文件中的函数实现SURF 检测算法,再调用cvMeanShift()函数实现嘴部运动跟踪功能,最后使用Mouse_Move()函数实现鼠标运动控制。
图4左半部分为嘴部原始模板图,右半部分为相应的嘴部特征点提取结果。
图3 系统流程图
图4 特征点检测效果
图5为嘴唇特征匹配结果,共提取65个嘴唇特征点描述子,一次匹配的时间分别为223.135 ms。左上角显示的是嘴部模板图,从视频序列中提取当前候选帧,通过SURF算法找到候选帧图像中相匹配的特征点,为方便识别匹配情况,将特征点用线连接并,再将嘴部区域用外接矩形框选。
图5 匹配识别效果
MeanShift算法通过提取SURF算法检测出的嘴唇区域目标模型,将其与候选模型进行比较匹配,从而得到新的嘴唇区域,通过计算嘴唇新坐标位置与原坐标位置之差得到嘴部运动距离,从而控制鼠标运动。由于头部与屏幕距离d 不同,相同幅度头部运动却有不同鼠标分辨率,因此,引入权值k,k与d 成正比。
图6给出演示实验的效果图,A、B、C、D分别为鼠标右移、左移、上移、下移效果。为方便识别,白圈中心为鼠标光标位置。
图6 视觉鼠标效果
4 结束语
本文提出了基于SURF算法的自动嘴部区域初始化MeanShift 改进算法,在VC6.0 中调用OpenCV图像处理库中的SURF 函数实现嘴部检测,将检测区域作为目标模板,然后使用MeanShift 跟踪算法在候选模板中搜索匹配区域,从而实现嘴唇跟踪,通过嘴部运动产生新位置坐标来控制鼠标运动。实验结果表明,新算法很好的实现了预期功能,且SURF算法不会给MeanShift 跟踪算法的实时性带来负担,该方法具有实时性好、高鲁棒性、稳定性好等特点。
[1]DAVID G LOWE.Object recognition from local scale-invariant features[C]//Proceedings of the international conference on computer vision,1999:1150-1161.
[2]HERBERT BAY,ANDREAS ESS,TINNE TUYTELAARS,et al.Speeded-up robust features[J].Computer vision and image understanding,2008,110(3):346-359.
[3]高健,黄心汉,彭刚,等.一种简化的SIFT图像特征点提取算法[J].计算机应用研究,2008,25(7):2213-2215.
[4]张锐娟,张建奇,杨翠.基于SURF的图像配准方法研究[J].红外与激光工程,2009,38(1):160-165.
[5]COMANICIU D,MEER P.Mean Shift:A robust application toward feature space analysis[J].IEEE Trans.on Pattern Analysis and Machine Intelligence,2002,24(5):603-619.
[6]BASTIAN LEIBE,ALES LEONARDIS,BERNT SCHIELE.Robust object detection with interleaved categorization and segmentation[J].International Journal of Computer Vision,2008,77(1):259-289.
[7]COMANICU D,RAMESH V,MEER P.Kernel-based object tracking[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2003,25(5):564-575.
[8]黎松,平西建,丁益洪.开放源代码的计算机视觉类库OpenCv的应用[J].计算机应用与软件,2005,22(8):134-136.