基于圆形梯度的手势分割算法的设计与实现
2013-11-06张国家左敦稳黎向锋史晨红
张国家,左敦稳,黎向锋,史晨红
(南京航空航天大学机电学院,江苏 南京 210016)
手势分割技术作为手势识别技术的重要过程,其分割效果直接影响手势特征提取和识别的精度。目前,手势分割技术主要有基于肤色模型、运动信息和背景模型的分割等。A.A.Randive[1]等利用肤色模型提取静态复杂背景下的手势区域。刘俊梅[2]结合RGB色彩空间和YUV色彩空间进行手势分割。由于肤色模型技术受光照影响大,所以单纯采用肤色模型技术,在没有特殊约束的环境中不能获得很好的分割效果。为此,许多学者将多种分割技术相结合进行手势提取。曹昕燕[3]、范保玲[4]等将色彩模型和运动信息相结合取得了较好的分割效果,但对运动信息的依赖性约束了其应用场合。刘昌盛[5]等结合YUV色彩模型与背景统计模型进行分割。马凯[6]等在肤色模型的基础上通过分析手掌的结构进行手势分割,但该方法约束了可识别手势的种类。除了上述常见的手势分割方法,还有一些独特的手势分割思路。Tsung-Han[7]等利用三相模型跟踪技术进行分割。Daehwan Kim[8]等运用向前测点定位技术提取手势。史久根[9]等利用运动历史图像和运动轮廓椭圆拟合的方法进行手势提取。目前,手势分割的难点主要集中在背景和光照变化等方面,众多的研究也正是为了解决此问题,以增强手势识别技术的环境适应能力。针对该技术难点,本文设计并实现了基于圆形梯度的手势分割算法。
1 算法流程
本文设计的手势分割算法主要分为以下几步:(1)建立复杂动态背景模型,提取包含人手的前景目标。(2)进行肤色检测,去除非手势区域。(3)种子点检测,获得圆形梯度边缘探测的中心。(4)利用圆形梯度进行手势边界探测,填补内部空洞和边缘残缺。
2 算法理论分析
2.1 建立复杂动态背景模型
复杂动态背景下的手势分割技术受环境影响大,不管是基于运动的分割还是基于肤色模型的分割均会因为不可控的背景状态的影响而产生大量的错分割。在没有去除背景的情况下直接在整幅图像中寻找手势区域,算法的计算负担比较重,算法的实时性难以提高。本文对手势区域的分割首先利用背景模型进行背景减除,在前景区域中寻找手势目标,既能降低背景的干扰,又能提高算法的实时性,这样便对背景模型提出了比较高的要求。合适的背景模型在保证前景提取效果的基础上,还应具有较好的实时性和较低的空间复杂度。高斯背景模型检测的效果较好,但其会将静止的前景目标融入背景;核密度估计背景模型因为实时性较低且内存消耗较多,两者均不能满足本文算法的要求。因此本文采用笔者设计的基于色彩相似度聚类分析的动态背景建模技术。本文设计的背景建模技术首先在YCrCb色彩空间,建立融合亮度和色差信息的色彩相似度,相似度的计算式为:
式中:sim为色彩相似度;Y为亮度;cosθ为色差信息;ω和λ均为平衡因子,用于平衡色彩和亮度对相似度的影响。然后利用式(1)对动态背景进行聚类分析,建立背景模型。
分别在室内和室外环境下对本文设计的背景模型进行了前景检测测试。测试中采用2G内存,2.3GHz主频的PC机,测试结果如图1所示。图1(a)为自己采集的室内环境测试视频,单帧大小为640×480;图1(b)为IBM人类视觉研究中心提供的视频PetsD1TeC1,单帧大小为388×286。由图1可见,本文设计的背景模型能够获得比较完整的前景检测效果。另经性能测试可知,利用本文设计的背景模型进行前景检测时,室内环境下平均单帧处理时间为72.7ms,内存消耗为76.25MB;室外环境下平均单帧处理时间为 90.3ms,内存消耗为85.14MB。由此可见,本文设计的背景模型在实时性和空间复杂度方面均有较优表现。
图1 背景模型前景检测结果
2.2 肤色检测
肤色检测就是利用肤色在色彩空间的聚类特性将肤色区域与其他区域加以区分,聚类效果越好的色彩空间越利于肤色检测。经研究[10],在RGB、YCrCb、HSV等色彩空间中HSV色彩空间最利于肤色检测。图2为各色彩空间中肤色检测结果比对,图中白色即为检测出的肤色区域。由图2可知上述结论的正确性。HSV色彩空间将表示色彩信息的色调(H)与饱和度(S)、明度(V)分离,减小了光照变化对肤色检测的影响。正常光照下将RGB色彩空间转换到HSV色彩空间后,如果将色调值的范围限定在[0,180]范围内,肤色的色调值出现在[7,29]范围内。
图2 各色彩空间肤色检测结果
由图2可见,虽然HSV色彩空间较其他色彩空间在肤色检测方面有优势,但还会存在肤色区域的大面积缺失,这是因为用户在摆出各种手势时,在室内环境下,因为用户本身等的遮挡很容易产生阴影,而在晴朗的室外环境下容易产生高光,即镜面反射。一定范围内的遮挡和高光对色彩的色调、饱和度,尤其是亮度均有影响。相应区域的RGB值会产生变化,超出正常光照下的肤色RGB值范围而产生误检测。HSV色彩空间将色调H分离出来,对光照变化具有一定的抑制作用,并可以通过适当地调整H的阈值来适应光照变化,但其他非肤色区域,特别是与肤色相近的区域,会因为色调阈值的放宽而被误检测为肤色区域。另外,在单目视觉检测中,因为手势与摄像头不平行的原因,在手势的边缘区域会有明显的光照变化,从而使检测到的边缘不完全,出现明显的边缘残缺现象。所以,单纯依靠肤色检测并不能获得完整的手势区域。为了解决手势内部空洞和边缘残缺问题,本文设计了基于圆形梯度的手势边缘探测算法。
2.3 圆形梯度手势边缘探测
2.3.1 边缘假设
图2中的空洞多是由阴影或高光引起的,有学者通过对亮度归一化来抑制阴影的影响,但这样并不能解决大面积手势区域的缺失问题。经过对HSV色彩空间各通道值的研究,提出如下假设:
假设1。阴影和高光引起的一定范围内的色彩变化区域并未与其邻域形成边界,只是由于光照的影响而使其色调超出正常光照的肤色值范围。
为了验证该假设的正确性,下面就对图2中的手势原图进行Canny边缘检测,检测结果如图3所示。
图3 Canny边缘检测结果
由图3可以看出,在HSV色彩空间中未通过肤色模型检测出的肤色区域并没有与其邻域形成边界,如图3中的椭圆区域所示,Canny算子仍然将未检出的肤色区域与其邻近的肤色区域归为一类。这既证明了本文提出的假设的正确性,也说明Canny算子对光照具有较强的抑制作用。基于此,以Canny算子为基础,考虑到计算的复杂度,设计了种子点圆形梯度边缘探测算法,以填补手势空洞和边缘残缺。
2.3.2 Canny 算子边缘检测原理
Canny算子进行图像边缘检测主要分为4个步骤:(1)用高斯滤波器平滑图像;(2)用一阶偏导有限差分计算梯度幅值和方向;(3)对梯度幅值进行非极大值抑制;(4)用双阈值算法检测和连接边缘。
将图像f(x,y)与Gn作卷积,同时改变n的方向,Gn*f(x,y)获得最大值时的n就是正交于检测边缘的方向。高斯滤波后用一阶偏导的有限差分来计算梯度的幅值和方向,实际中使用2×2一阶有限差分近似式来近似计算x和y方向的偏导数。计算像素点(x,y)的一阶有限差分时,所用的近似式为:
近似式中各像素点的位置关系如图4所示。利用近似式获得的梯度幅值为:方 位 角 为 θ[x,y] =arctan(Gx(x,y)/Gy(x,y))。M[x,y]反映了图像的边缘强度;θ[x,y]反映了边缘的方向,使得 M[x,y]获得最大值的方向角θ[x,y]即为边缘方向。
图4 一阶有限差分像素点位置关系
2.3.3 圆形梯度边缘探测算法
受Canny算子的启发,本文设计了圆形梯度边缘探测算法,该算法也是利用像素点的梯度幅度值来判断该点是否位于边界。圆形梯度边缘探测算法主要分为3个步骤:(1)种子点选取;(2)以种子点为中心,向外搜索边缘;(3)填补肤色区域缺失。
种子点是边缘探测的中心,因为只有缺失的手势区域和边缘才需要利用边缘探测来优化补全,所以为了减小算法的计算量,提高算法实时性,种子点选取应该满足以下条件:(1)种子点应为肤色点;(2)种子点应位于肤色检测所获得区域的内部空洞的边缘上或者手势边缘上。设(i,j)为像素点位置,如果(i,j)的8邻域范围内被判为肤色点的像素数目NUM满足TH1≤NUM≤TH2,则认为(i,j)点为种子点。其中TH1和TH2为信心阈值,一般取TH1=4,TH2=7。针对图1(a)的测试环境,进行种子点检测,检测结果如图5所示。图5(a)为肤色检测结果,图5(b)为肤色检测后进行种子点检测的结果,图中圆圈标出的即为检测出的种子点。由图5可以看出,检测出的种子点主要分布在手势内部空洞的边缘上和手势边缘上。
图5 种子点检测结果
种子点提取后,以种子点为中心向外逐像素进行边缘探测,探测过程如图6所示,图中箭头表示边缘探测方向,圆圈表示提取的种子点,种子点8邻域内的(i-1,j-1)、(i-1,j+1)、(i+1,j-1)、(i+1,j+1)4个像素点(如图6中三角形所示)构成以种子点为圆心的圆形。因为只需要判断像素点是否在肤色边缘,不需要判断边缘方向,所以这里只定义梯度的幅值,并将其作为判断边缘的标准,不定义梯度角。
图6 种子点圆形梯度像素分布
定义1:HSV色彩空间中种子点的圆形梯度幅值表示为:
因为边缘存在一定宽度,特别是缓变边缘,如果选用1,2,3,4像素点构成的圆来定义边缘梯度,由于像素点位置紧邻的原因,计算的梯度幅值较小,容易产生错分。如果用来定义梯度的像素点距离种子点太远,又容易造成漏检,所以使用图6中三角形位置的像素点定义梯度较为合理。设定梯度幅值阈值为TH,如果F(i,j)>TH即认为(i,j)点为边缘点。试验表明,一般TH在[5,10]范围比较合适。按图6中的4个方向进行边缘搜索,到达边缘时即停止该方向的搜索。在搜索过程中,如果(i,j)点被判断不在边缘上,则将1,2,3,4像素点位置标记为肤色点。因为(i,j)点不在边缘时,即使1,2,3,4像素点中有被判为边缘的点,它也仍然包含在肤色区域内,所以如此判断是合理的。最后还要对边缘探测后的图像进行适当的形态学操作,以去除孤立点。
3 试验结果与分析
为了验证本文算法的性能,选取了日光灯下的室内、正常光照下的室内以及晴朗的室外等多个场景进行试验研究。试验采用的PC机与背景模型测试所用的PC机相同。图像的大小均为640×480,试验检测结果如图7所示,图中第一列为原图,第二列为前景提取图,第三列为肤色检测结果,第四列为种子点检测结果,第五列为采用圆形梯度边缘探测和形态学操作后的结果图像。图7(a)为室内日光灯条件下的检测结果,图7(b)为室内正常光照下的检测结果,图7(c)为晴朗的室外条件下的检测结果。比较室内日光灯和室内正常光照下的检测结果可见,前景提取时,正常光照下的检测效果比日光灯下好很多;肤色检测的效果也因受前景检测的影响,正常光照比日光灯下好很多。因为日光灯下肤色检测会出现肤色区域大面积缺失,所以在手势区域的边缘和内部均有大量的种子点,而正常光照下,手势内部区域缺失少,种子点主要分布在手势边缘。经圆形梯度边缘探测后,因为光照的变化,日光灯下分割的手势边缘没有正常光照下的光滑,但两种条件下的手势分割均比较完整,边缘的少许凸出不影响手势的特征提取和识别。
由图7(c)可以看出,室外环境的检测结果与室内日光灯下的检测结果相似。室外与室内相比虽然室外环境复杂,干扰比较多,会影响检测效果,但室外光照均匀,有利于手势的检测。虽然室外环境下肤色检测时出现了较大面积的缺失,但以众多种子点为中心进行圆形梯度探测后获得了相对完整的手势轮廓,说明本文算法对室外环境也具有较强的适应能力。
试验中对室内日光灯、室内正常光照和室外场景进行了实时性和空间复杂度测试,测试结果见表1(环境复杂程度升序排列)。由表1可以看出,单帧处理时间和内存消耗均随环境复杂程度的升高而增加,这是因为本文算法中的背景模型中的状态数、种子点数以及圆形梯度边缘探测的次数均会因环境复杂程度的升高而增加,从而增加算法的时间,增多内存消耗。但由表1可以发现,随环境复杂度的升高,内存消耗和单帧处理时间并没有产生大幅阶跃,其变化幅度比较小,说明本文算法在实时性和空间复杂度方面也有不错的表现。
表1 不同环境下算法性能测试
4 结束语
本文设计了一种结合背景模型、肤色检测和圆形梯度边缘探测的手势分割算法。该算法以背景模型为基础进行手势分割,可以极大地抑制背景的影响,加快算法速度。在本文算法中提出并证实了边缘假设,设计了圆形梯度算法,为手势分割中的大面积缺失和边缘残缺问题提供了一种新的解决思路。本文还证实了HSV色彩空间在进行肤色检测时的优势。多场景试验表明,本文算法环境适应能力强,分割准确,实时性较好。
[1] Randive A A,Mali H B,Lokhand S D.Hand gesture segmentation[J].International Journal of Computer Technology and Electronics Engineering,2012,2(3):125-129.
[2] 刘俊梅,阮秋琦.一种复杂背景下的手势分割新方法[J].北京电子科技学院学报,2006,14(2):23-27.
[3] 曹昕燕,赵继印,李敏.基于肤色和运动检测技术的单目视觉手势分割[J].湖南大学学报:自然科学版,2011,38(1):78-83.
[4] 范保玲,王民,董颖娣.基于肤色检测技术的手势分割[J].计算机技术与发展,2008,18(3):105-108.
[5] 刘昌盛,厉树忠,赵姝颖,等.一种复杂背景下的手部图像分割方法[J].河北科技师范学院学报,2007,21(3):46-49.
[6] 马凯,张崎.基于结构分析的手势识别算法研究[J].信息技术,2012(4):81-83.
[7] Tsung-Han Tsai,Chung-Yuan Lin.Visual hand gesture segmentation using three-phase model tracking technique for real-time gesture interpretation system[J].Journal of Information Hiding and Multimedia Signal Processing,2012,3(2):122-134.
[8] Daehwan Kim,Jinyoung Song,Daijin Kim.Simultaneous gesture segmentation and recognition based on forward spotting accumulative HMMs[J].Pattern Recognition,2007,40(11):3012-3026.
[9] 史久根,陈志辉.基于运动历史图像和椭圆拟合的手势分割[J/OL].(2013-03-15)[2013-05-10].http://www.cnki.net/kcms/detail/11.2127.TP.20130313.0955.025.html.
[10] 董静远.复杂背景下的手势分割方法研究[D].广州:华南理工大学,2011.