复杂背景及复杂运动前景下的指尖检测方法
2012-09-04蔡祖洪
蔡祖洪
(杭州电子科技大学智能与软件研究所,浙江杭州310018)
0 引言
传统的人机交互设备主要是键盘、鼠标、按钮、触摸屏等接触式设备,为了摆脱传统人机交互设备的局限性,人们利用计算机视觉技术,通过手指运动跟踪和人手的形态检测来实现非接触式的人机交互[1]。目前,很多指尖检测方法对硬件装置都有一些约束条件,比如人为地将图像序列采集区域的背景设置成单一简单背景,或是假设系统采集到的图像序列中除了运动人手外无其它运动信息[2],或是假设人手与摄像头的距离范围固定[3],然而实际人机交互中由于背景的复杂性以及运动前景的动态多样性,使得上述方法无法适应实际场景。本文给出的指尖检测方法综合考虑多种因素,能有效准确得从多种运动前景信息中提取出感兴趣运动前景区域,再进行指尖检测,同时该方法也能有效的判断场景中有无指尖存在。
1 系统概述
本文用于指尖检测的硬件装置有一台普通的PC和一个摄像头组成,整个系统的算法流程框图如图1所示。整个系统由4个大部分组成:图像序列的采集、感兴趣运动前景提取、运动人手指尖的检测和检测结果的输出。
2 感兴趣运动前景提取
本文采用基于混合高斯模型(Gaussian Mixture Model,GMM)的背景建模法提取运动前景。GMM算法的主要思想是:对于缓慢变化的背景,其图像中每一个象素可以通过多个高斯分布的加权和来描述,将获取的新图像中每一个象素点与其对应的背景模型进行匹配,从而判断该点属于前景还是背景,同时更新背景模型参数。本文中GMM算法的高斯模型数为3,采用文献4的方法对高斯模型的参数进行更新。
图1 系统算法流程框图
GMM算法提取的前景会包含有所有运动信息,包括人脸的轻微抖动,手臂、衣服等的运动信息,指尖检测中感兴趣的运动前景是运动的人手,由于人手具有肤色特征,因此本文提出GMM结合肤色分割的方法,即将GMM提取的前景二值图像与肤色分割提取的肤色二值图像做逻辑与操作,这样就可以过滤掉所有与肤色无关的运动前景。过滤后的运动前景中会有一些脸部运动区域以及由于光照等造成的噪声区域,在人机交互的实际场景中,指尖的运动在图像中应该最为明显,因此包含有指尖的图像区域在该二值图中的区域面积应该最大。基于这样一个事实,在过滤后的运动前景二值图像中寻找出闭合区域面积最大的的区域就是感兴趣的运动前景区域,即包含有指尖的二值图像区域。
综上所述,感兴趣运动前景区域提取的算法描述如下:
(1)采集图像序列;
(2)混合高斯建模提取所有运动前景,得到二值图像定义为FrImg;
(3)在YCbCr颜色空间中进行肤色分割,得到二值图像定义为SkinSegmentImg;
(4)做图像逻辑与运算过滤掉与肤色无关的运动前景信息;
(5)计算FrSkinImg中面积最大的闭合区域并去除其它区域得到感兴趣运动前景的二值图像,定义为ROIFrImg。
感兴趣运动前景提取算法的结果如图2所示,图2(a)为GMM算法提取的运动前景图像,图2(b)为肤色分割得到的二值图像,图2(c)为与肤色有关的运动前景二值图像,图2(d)为感兴趣运动前景二值图像。
图2 感兴趣运动前景提取算法的结果
3 指尖检测
本文指尖检测方法只考虑图像中只存在单指尖情况,充分利用指尖轮廓的几何特征来检测指尖,如轮廓曲率、轮廓点质心距、手指轮廓的整体几何形状等。指尖检测算法描述如下。
(1)提取感兴趣运动前景图像的轮廓,由于前述操作的不理想,会造成轮廓锯齿、突变等,因此以10个点为间隔对提取的轮廓等间隔采样,使得采样后轮廓点变得比较光滑,同时可减少后续计算的计算量。设采样后的轮廓点序列为:P={P0,P1,…,Pn-1}。
(2)K曲率等价测度值计算。曲率可以反应轮廓上一个点的弯曲程度,可以通过计算两个向量的点积得到两向量夹角的余弦值来间接的衡量曲率的大小[1]。
为了突出指尖点与其他轮廓点的曲率的不同,本文定义了另外一种衡量曲率的测度值,将该值定义为(Pi)。
(3)轮廓点质心距计算。首先计算轮廓点序列P的质心位置Pcentroid,再计算每个轮廓点到质心点的欧式距离,定义为 D={D0,D1,…,Dn-1}。
(4)指尖检测阈值的计算。实际图像中提取的人手轮廓可能同时包含几个弯曲度较大的点,因此仅用曲率检测指尖可能会造成误检测,为了克服曲率检测的这种不足,本文利用曲率测度值结合轮廓点质心距来检测指尖,设检测指尖的阈值序列为T={T0,T1,…,Tn-1}。
(5)提取指尖检测阈值序列的极大值所对应的轮廓点,定义为PTMAX。
(6)判断PTMAX是否为指尖。手指轮廓形状可看作由两条近似平行的直线和一条有弧度的曲线构成,基于这一几何特征来判断检测阈值极大值点是否为指尖。首先以该点开始分别在逆时针和顺时针方向选择3个采样过的轮廓点构成3对测试点,然后分别计算这3对测试点的距离方差。经过大量实验后将该距离方差的阈值定为20,若该点检测阈值满足式(5),则判定该点位指尖点,如果不满足则说明该图像中无指尖。
指尖检测算法的结果如图3所示,其中图3(a)为感兴趣运动前景图像,图3(b)为人手轮廓图像,图3(c)为采样后的轮廓点图像,图3(d)为指尖检测结果。
图3 指尖检测算法的结果
4 实验结果
本文算法的实现使用的计算机硬件配置为CPU酷睿双核2.8GHz,2GB内存,显卡是ATI Radeon HD3450,摄像头为普通网络摄像头,分辨率为640×480,15fps。整个指尖检测方法的结果如图4所示。经过大量的实验表明本文提出的算法能适应各种实际背景以及动态前景,极少误检测或误判。
图4 指尖检测算法的结果
5 结束语
本文提出了一种能适应复杂背景以及复杂运动前景的指尖检测方法,能提取出感兴趣运动前景区域,使得基于视觉的人机交互应用中不再需要人为设定背景与前景约束,同时该方法也能较为准确的检测指尖位置以及判断有无指尖。本文的方法主要应用在二维空间、单指尖的交互场景中,而更自然的人机交互要求实现三维空间、多指尖的运动轨迹检测,这些需进一步研究。
[1]赵永峰,王毅刚.采用手指的三维人机交互方法[J].微电子学与计算机,2009,26(6):21-24.
[2]郭康德,张明敏,孙超,等.基于视觉技术的三维指尖跟踪方法[J].计算机研究与发展,2010,47(6):1 013-1 019.
[3]梅萍华.基于手势的人机交互和指尖检测算法的研究[D].合肥:中国科学技术大学,2010:20-21.
[4]KaewTrakulPong P,Bowden R.An Improved Adaptive Background Mixture Model for Realtime Tracking with Shadow Detection[C].Kingston upon Thames:The 2nd European Workshop on Advanced Video-based Surveillance Systems,2001:1-5.
[5]Oka K,Sato Y,Koike H.Real-time Tracking of Multiple Fingertips and Gesture Recognition for Augumented Desk Interface System[C].Washington D C:Proceeding of the 5th IEEE Intl Conf on Automatic Face and Gesture Recognition,2002:411-416.