基于骨架运算的动态手势定位及识别算法

2014-12-18 11:39刘耀杰傅志中
电子科技 2014年3期
关键词:圆度手势骨架

刘耀杰,舒 畅,傅志中

(电子科技大学通信与信息工程学院,四川成都 611731)

随着人们对人机交互的需求不断提升,手势识别在当前计算机视觉研究中成为热门课题[1-5]。随着手势识别技术向自然性和智能性的发展,意在降低用户的使用门槛,做到简单、直观。日前较热门的手势识别方法分两种:基于设备的手势识别和基于图像的手势识别。基于设备的手势识别需要用户佩戴或使用特殊的识别设备,通过设备上的跟踪器对手势和轨迹和形态进行判断。其优势在于识别率高、实时性好、数据量小;缺点是设备昂贵,不利于生产推广。基于图像的手势识别利用视觉采集设备采集手势图像序列,通过对图像的处理分析识别手势。该方式成本较低,但数据量相对大,识别率低,考验算法的鲁棒性和稳定性。

本文主要对视频序列中的掌心定位方式进行研究,提出一个基于固定摄像头的单手识别方案,研究了复杂背景下的手势区域分割,分析实验了背景消减法等常用分割方法的优劣,并使用形态学对分割后图像进行特征提取;最终利用提取的特征进行手势识别,从而实现复杂环境下基于视觉手势的人机交互。

1 手势检测和分割

目标分割是手势识别的一个重要步骤。基于图像的检测分割算法主要为3类:光流法[6]、帧间差分法[7]和背景消减法[8-11]。光流法根据图像像素点间灰度相关性和时间变化性来确定所有像素点坐标的动作,但由于其计算复杂、耗时,不满足实时视频检测的要求。帧间差分法是将图像序列中连续两帧或3帧图像的灰度值做差后进行分析判断目标区域,此算法较为简单,运算速度快,但在复杂背景下提取效果差,可能有漏检误检。背景减除算法是目前应用较广泛的目标检测算法,首先对背景建模,然后通过背景模型与帧图像差分进行目标检测,背景更新过程是此算法难点。

本文中利用ViBe背景减去算法进行手势检测分割。ViBe算法[10]为 Olivier Barnich等人在2009年提出,全称为视觉背景提取算法(Visual Background Extractor,VBE),是一种通用的快速提取背景算法。不同于均值滤波、混合高斯(MoG)和SACON等的背景更新机制[8-9],ViBe背景更新是自适应和无记忆的,因此具有较好的鲁棒性和实时性。

1.1 ViBe算法流程

1.1.1 背景模型初始化

定义M(x)为背景模型,M(x)中的每个像素点由N个背景样本值 vi(x),i=1,2,3,…,N 组成,由文献[11]介绍N值取20。ViBe使用视频序列的第一帧对背景进行建模,具体策略是使用第一帧图像中对应x位置的八邻域中随机点 PG(m),m=1,2,…,8来初始化vi(x),边缘部分使用不完整的八邻域即可,初始化一共进行N次八邻域选取。

1.1.2 背景模型分类

建立背景的初始化模型后,从第二帧即可对当前图像Q(x)进行像素分类。定义SR(vi(x))是x点处以vi(x)为中心,R为半径的欧式空间球体。Q(x)中x位置的像素值与M(x)中对应位置每个背景样本值vi(x),i=1,2,3,…,N 有一个色度的欧式距离 Di,记Di<R的个数,当个数小于阈值th_min时,该像素点归为前景点,否则为背景点。公式描述如下

式(1)中,1表示前景点;0表示背景点。

由文献[11]介绍R值与N值相同时运算效率最高,故取20,th_min取2时分类效果最佳。理论上,每个点需计算N次欧式距离,但实际应用中,当个数>2时即可停止计算,做出判断,故设置中断条件可减少计算量。

1.1.3 背景模型更新

ViBe背景更新策略保证背景像素模型的每个样本值在生命周期中呈平滑指数衰减,这种指数更新策略被证明是有效的[11]。

更新过程采用帧选取随机和像素选取随机相结合的方法。在每φ帧中随机选取一帧进行更新,φ被称为二次采样时间因子,实验中,φ取16时效果最佳。更新时,用选定帧中背景点的随机领域值替代M(x)中对应点的第i=1,2,…,N个样本值,八邻域选取与初始化相同。过程如图1所示。

图1 ViBe算法的更新过程

1.2 肤色检测

ViBe算法使用第一帧图像来初始化背景模型,如果第一帧中出现检测目标,则会对随后一段时间内的图像检测产生影响。并且,图像中由于手势动作造成的阴影区域也会被划入前景区域中,对手势判断造成影响。ViBe算法后加入肤色检测可消除上述两种影响。图2(b)中出现初始化模型和阴影区域造成的两种检测影响,加入肤色检测后结果如图2(c)所示。

图2 肤色检测后的结果对比图

2 特征提取

手势识别中面临诸多难点,如手的旋转、移动等。如果能获得掌心坐标,就能利用以掌心坐标为原点的极坐标系进行手势识别,从而大幅简化识别难度。因此,掌心是手势中一个重要的特征点。本文通过形态学骨架运算,找出手势图像掌心坐标,继而利用掌心坐标移动状态进行手势定位,并构建以掌心为原点的极坐标进行手势识别。

不同于如文献[1]中多特征识别算法需要训练样本,或如文献[2]中基于深度图像的识别算法需要外置设备进行辅助,文中算法可直接对图像进行特征提取做出判断,在应用性和实时性上都有较大优势。

2.1 骨架运算

2.1.1 最大圆盘形态学骨架提取算法

设D为图像S中的一个内切圆盘,即至少有两个点与图像S的边界相切,如果D不是图像S内部任一其他圆盘的子集,则称D为最大圆盘。此时,骨架可定义为图像内部所有最大圆盘圆心的集合[12]。文献[13]中介绍的骨架的形态学表达式为

2.1.2 分辨率调整

二值化图像进行骨架运算前,需要对图像的分辨率进行处理。由于形态学骨架提取是最大内切圆的圆心集合,因此过高分辨率的图像处理时间较长,并且骨架轮廓会较复杂,不利于判断;而过低分辨率的图像骨架的特征信息有较大损失。图3即为对同一幅图像不同分辨率下的骨架情况。

实际操作中,当分辨率在240×320(75 kbit)之下时,有较好的实时性并且纹理特征也比较明显,因此对高分辨率图片进行降分辨率处理时,分辨率低于此量级即可。

图3 不同分辨率下的骨架对比图

2.2 掌心特征提取

在正常的人机交互过程中,手掌活动范围通常是处在手肘以上,即手掌沿肘关节0°~180°旋转。通过形态学知识得到,手掌面积大,形态复杂,因此骨架是一个发散分支,其汇聚点在掌心处;掌心到手肘是有少量分支的主干。有手掌高于手肘的先验条件以后,骨架在x轴向上手肘附近有最大值;在y轴上的投影在掌心处有最小值。再y的最小值上对x进行平均即可得到掌心坐标。

不过考虑到一些复杂的情况,比如背景噪声,手势者的衣着,主干分支的长度等,具体的手势特征的提取步骤如下:

(1)使用数学形态学中的Open运算操作对二值化图像进行去噪。在分辨率为240×320量级下,本实验中去噪所使用的结构元素为半径为2的圆盘。

(2)使用上文提到的最大圆盘骨架提取算法,对B(x,y)提取骨架得到 Skel(x,y)。

(3)对骨架图形Skel(x,y)进行去毛刺Spur运算,去除较长分支对掌心判断的影响。在分辨率为240×320量级下,实验中Spur运算迭代次数为10次。

(4)由手势者佩戴首饰引起二值化图像分块,或者是复杂背景引入的大块噪声,会造成骨架处理后出现多个骨架区域。根据手掌面积大,骨架纹理复杂的特点,选取Skel(x,y)中具有最大连通域的部分,得到的部分为 obSkel(x,y)。

(5)选取obSkel(x,y)中进行投影的有效区域。设obSkel(x,y)是M×N的矩阵,取图像x轴向上y有最大值Q的x坐标P,点(P,Q)可认为是手肘处,P以内的区域为投影有效区域。同时,有效区域在y轴的投影从分割区域的长度15%处开始,排除指尖造成的误判。则有效区域的公式为

如式(3)选取有效区域后,该算法即能有效处理用户不同衣着造成的二值化区域不确定的问题。

(6)有效区域eSkel(x,y)在y轴投影的最小值点认定为掌心y坐标,此y坐标上x的平均值点认定为掌心x坐标

3 手势识别

在用户进行手势识别时,通常希望可以有识别区域的反馈。在本实验中,使用似圆度对手掌区域进行划分,并给与用户反馈。

3.1 似圆度计算

似圆度是一个刻画物体与圆形相似程度的参数,似圆度公式如下

式(5)中C为图形周长,S为图形面积。由计算公式可知,似圆度越接近于1,目标图形越接近圆。以掌心为圆心的同心圆内,当其半径小于掌心到手腕的距离时,似圆度为1,而大于这一距离以后,由于有手臂和手指进入计算范围,似圆度降低。由此可对手腕边界进行判断,文中使用0.75作为边界判读阈值。如图4为似圆度与掌心半径的关系。

图4 似圆度与掌心半径关系图

3.2 手势定位与识别

通过似圆度将手掌分割以后,如图5所示,就可以在以掌心为原点的极坐标内进行判断。使用极坐标系的好处可以排除收的转动问题,使用较为方便。本实验中对剪刀、石头、布3种手势进行了位置判断和手势识别。但掌心坐标可为其他手势的识别提供基础。文献[3]中提到的极坐标判决法是一个可以适用的方法。

图5 似圆度分割结果

4 实验结果与分析

本文实验环境如下,Intel i5 2.30 GHz,4 GB内存,Window7操作系统,Matlab 7.11.0(R2010b)。实验中使用了两组实验数据:第一组实验图像序列01,02,03是在不同的背景下拍摄得到,图像分辨率分别为320×240,1 280×720,640×480这3种,采样图像均为全彩色;为进一步证实本算法的有效性,使用了Sebastien Marcel的在线手势数据库[14],动态图像序列分辨率为62×58,全彩色。

320×240的图像序列01中,实验者处于单色背景下做出剪刀石头布3种手势,每种手势中手往4个方向先后移动。1 280×720的图像序列02中,实验者在单色背景下做相同动作,但背景因为手的动作出现变化的阴影区域,且第一帧非纯背景帧,出现目标区域。640×480的图像序列03中,实验背景环境复杂,图像质量较差,部分帧手势存在移动模糊。Sebastien Marcel的在线手势数据库有4 种手势(Clic,StopGraspOk,Rotate,No),分别涉及到手势识别中的手势变化,手势移动,手势旋转和背景变化等问题。

测试得到结果如下,其中图6为识别结果,表1所示为3个序列的手势识别率,表2为在线数据库的识别结果。

图6 实验结果

表1 实际拍摄手势识别结果

表2 Sebastien Marcel数据库手势识别结果

由于数据库手势分辨率低,骨架的特征信息损失多,识别误差较大,但总体而言,识别率可以接受。对于手势的移动性较低的序列需要背景帧才能正常分割。同时,一些参数需要做出适当调整,如更新时间因子需要降低。

5 结束语

本文所提出的手势识别算法具有较好的稳定性,可对处在不同背景、穿戴不同的用户进行手势识别任务。通过Sebastien Marcel在线数据库的测试,发现该算法在低清图像序列的识别上有一定局限性,达到实际应用还需要进一步完善。

[1]李文生.解梅.邓春健.基于机器视觉的动态多点手势识别方法[J].计算机工程与设计,2012,33(5):1988 -1992.

[2]曹雏清,李瑞峰,赵立军.基于深度图像的手势识别方法[J].计算机工程,2012,38(8):16 -21.

[3]翁汉良,战荫伟.基于视觉的多特征手势识别[J].计算机工程与工程,2012,34(2):123 -127.

[4]杨扬,程楠楠,张萌萌.基于平均领域最大化的手势识别方法研究[J].计算机工程,2012,38(9):19 -35.

[5]安涛.彭进业.吴静.基于Haar小波分解的实时手势识别[J].计算机工程,2011,37(24):138 -140.

[6]BARRON J,FLEET D,BEACHEMIN S.Performance of optical flow techniques[J].International Journal of Computer Vision,1994,12(1):42 -47.

[7]MEIER T.NGAN K N.Automatic segmentation of moving object plane generation [J].IEEE Tansaction on Circuit and Systems for Video Technology,1998,8(5):525 -538.

[8]刘露平.基于视频序列动目标检测的远程视频监控系统的实现[D].成都:电子科技大学,2013.

[9]蒋建国,王涛,齐美彬,等.基于ViBe的车流量算法[J].电子测量与仪器学报,2012,26(6):558-563.

[10]BARNICH O V,DROOGENBROECK M.ViBe:a powerful random technique to estimate the background in video sequences[C].Int.Conf.on Acoustics Speech and Signal Processing(ICASSP),2009,4:945 -948.

[11]BARNICH O V,DROOGENBROECK M,EVS B E,et al.ViBe:a universal background subtraction algorithm for video sequences [J].IEEE Transactions on Image Processing,2011,20(6):1709 -1724.

[12]KEGL B,KRZYZAK A.Piecewise linear skeletonization using principal curves[J].IEEE Transaction on Pattern Analysis and Machine Intelligence,2002,24(1):59 -74.

[13]崔屹.图像处理和分析——数学形态学方法及应用[M].北京:科学出版社,2000.

[14]SÉBASTIEN M,OLIVIER B,JEAN - EMMANUEL V,et et.Daniel collobert hand gesture recognition using input/ouput hidden markov models[C].Grenoble:FG'2000 Conference on Automatic Face and Gesture Recognition,2000.

猜你喜欢
圆度手势骨架
浅谈管状骨架喷涂方法
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
改进天牛须搜索算法在圆度误差评定中的研究
挑战!神秘手势
V字手势的由来
磨加工主动测量仪在线圆度评定理论研究
胜利的手势
发动机气缸套内孔圆度测量分析
内支撑骨架封抽技术在突出煤层瓦斯抽采中的应用
基于几何动态模型的圆度误差分离模拟