一种基于肤色特征提取的手势检测识别方法

范文兵+朱连杰



摘 要: 针对手势识别的准确率和识别速度等问题,提出一种基于肤色特征提取的手势检测识别方法。采用OpenCV自有的Haar分类器自动提取面部区域并建立肤色模型,再以肤色模型检测肤色点集合,去除与面部区域重合点集获得手部轮廓,通过综合计算掌心位置,手掌轮廓凸包和凸性缺陷实现手势识别。经验证,该方法能够稳定地定位手掌区域,识别准确度高并能够在保证识别率的基础上实现对手势的快速识别。
关键词: Haar特征; 肤色模型; OpenCV; 凸性缺陷; 手势识别
中图分类号: TN911.23?34; TP391.4 文献标识码: A 文章编号: 1004?373X(2017)18?0085?04
Research on hand gesture detection and recognition method based on
skin color feature extraction
FAN Wenbing, ZHU Lianjie
(School of Information Engineering, Zhengzhou University, Zhengzhou 450001, China)
Abstract: Aiming at the low recognition accuracy and slow recognition speed for hand gesture, a hand gesture detection and recognition method based on skin color feature extraction is proposed. The Haar classifier owned by OpenCV itself is used to extract face regions automatically and establish skin color model; and the skin color model is adopted to detect the point sets of skin color, in which the point set overlapped with face area is removed to acquire the hand contour; then the location of palm center is calculated comprehensively to detect the convex hull and convexity defect of palm contour to recognize the hand gesture. The verification results show that the method can locate the palm area accurately and realize fast recognition for hand gesture while ensuring the recognition rate, and its recognition accuracy is high.
Keywords: Haar?like feature; skin color model; OpenCV; convexity defect; hand gesture recognition
0 引 言
基于生物特征的身份认证方法和系统的研究一向都是图像识别技术和模式识别领域的研究热点[1?2],手势图像识别在人机交互中的应用越来越广泛,出现了各种各样的识别方法。手势作为人机交互(Human Computer Interaction,HCI)接口的一种,具有以人为中心,简单、高效、人性化的特点,是目前智能识别领域人机交互的重要手段之一。常见识别方法有很多,Zhu等人利用肤色、运动数据结合手势边框实现了对多种定义手形的识别。Fang等人通过肤色和运动数据对手势进行分割,再利用手部区域空间尺度及宽高比来识别手势。Rautaray等人检测手势部分采用LK光流法,K最近邻算法实现手势识别。Brethes等人使用分水岭算法,手势的分割采用肤色信息,再将颜色块信息与形状信息相结合来进行手势识别。Li等人提出的WEGM算法识别率高达97.08%。Hsieh,Song等人选取不同手部特征进行训练,训练出的分类器用来对不同手势进行识别,准确率分别达到94%,75%。此外,手势检测识别的研究方法还有利用深度图信息、GMM建模等来对手势区域进行分割,再通过骨架数据、熵数据、3D建模等方式来实现手势的识别[3?5]。
上述方法都有各自独特的优势,例如,识别准确率高、可识别手势种类多等,但在人机交互场景中的应用不够完善。用于人机交互的手势识别系统,不仅需要较高的识别准确率,还对实时性与系统的鲁棒性有严格要求。手形的提取主要是为了将手掌从庞大背景中提取出来,由于背景复杂,采用灰度图像二值化的方法无法取得好的效果。虽然采用颜色手套的解决方案能取得较好效果,但测试设备复杂、过程繁琐。因此,本文提出了一种Haar模型结合肤色特征来提取手掌轮廓的方式。实验测试表明,该方法在通常情况下可取得理想效果,具有较高的实用性和准确性。
1 手势识别系统框架
实验提出一种基于肤色特征提取的手势检测识别系统,如图1所示。系统获取到视频流输入后,首先基于Haar?like特征识别面部区域,遍历面部区域的所有像素提取肤色信息并据此建立肤色模型,再依据肤色模型检测手部区域。去除面部区域和背景噪声的干扰后,即可进行静态手势的识别。其中,多边形凸包集主要绘制手势凸点;多边形凸性缺陷集主要绘制凹陷点;待凸点与凹陷点绘制完成后,进入手势形态识别,最后输出结果。
实验重点在于通过面部识别提取人体肤色信息,不需要手动选取手部区域搜索框、对大量手部和非手部样本提取Haar?like特征或是人为设定肤色信息区间。只有在系统检测不到面部区域时,才调用预置的肤色信息进行识别,保障系统在多种情况下的可用性[6?7]。
2 手部区域自动检测与定位
2.1 基于Haar?like特征定位面部区域
基于人面部的Haar?like特征进行人脸检测,定位出现在摄像头中的面部区域。人臉检测器是由Paul Viola和Miachael Jones等人通过Adaboost算法构造,检测效果良好。在此基础上Rainer Lienhart和JochenMaydt又用Haar?like特征加以扩展,其原理为将分类能力弱的分类器叠加(Boost),形成Adaboost强分裂器,若给定训练样本([a1],[b1]),([a2],[b2]),…,([an],[bn]),其中第i个样本表示为[ai],样本判定为人脸时,则[bi]=1,样本不是人脸,则[bi]=0。Haar?like特征中的边界,线条,中心的特征表示为:
[featurej=i∈(1,2,…,N)?i?RectSum(ri)] (1)
式中:[?i]为矩形权,[RectSum(ri)]为矩形[ri]灰度积分;N为组成[featurej]的矩形个数。通过计算每个特征的弱分类器权重误差,将误差最小的分类器叠加入强分类器最终得到级联强分类器,如图2所示。
在级联强分类器各个节点设定阈值,使得大部分人脸样本通过,不通过的基本为非人脸。排列越靠后节点越复杂,弱分离器越多,可以保证面部区域的高识别率。
2.2 基于肤色模型定位手部区域
利用肤色来检测手部是手部检测最直接的方法。皮肤颜色稳定,不易受缩放、平移和旋转的影响,且对图像的尺寸、拍摄方向和角度的依赖性较小,因此实验采用的手形检测方法为肤色检测[8]。
颜色空间有多种表示方法,较常用的有RGB颜色空间和HSV颜色空间,以色调空间来区分肤色信息比亮度空间更具优势,而RGB颜色空间包含亮度信息居多。根据Enamin D. Zarit等人对肤色在彩色空间分布的研究及在检测中性能的分析,本文选用HSV颜色空间进行手部区域检测。为了简化检测流程,本文在HSV颜色空间的3个颜色通道均设定肤色阈值范围,如果检测点在H,S,V通道上的取值都在阈值范围内,证明检测点是肤色点。阈值[φ]设定条件如下:
[0<h<500.20<s<0.680.35<v<1.0]
式中,检测点在色彩空间的取值分别由H,S和V表示。取值满足上述阈值的检测点判断为肤色,反之则不是肤色。
[imagedate(m,n)=肤色, data(m,n)∈φ非肤色, data(m,n)?φ] (3)
式中:imagedata(m,n)代表图像检测点;data(m,n)代表检测点在HSV空间里的颜色取值。
在灰度二值化图像中,由于面部区域和手部区域均判定为肤色,所以同时存在。由Haar?like特征获取了人脸区像素点集,由肤色检测同时获取了人脸区像素点集和手部区像素点集,去除面部区域后可获得手部区域。
3 手势特征提取与识别
常见的静态手势特征有质心、周长、手指分布等,手的轮廓可以用不间断的点来表示,在手掌轮廓不易提取时,或者为了提高计算效率,也可以通过计算手掌轮廓特征作为手势特征。实验首次提出了综合计算掌心,手掌轮廓凸性缺陷和凸性包络来识别手势。
3.1 计算并提取掌心位置
确定掌心位置时,根据人手的生理构造,掌心基本为重心位置,然而直接由手掌几何中心获取掌心无法排除手指对几何中心的影响。为了避免手指对手掌质心计算带来的误差,实验采用自重权数计算手掌质心,见图3。
由图3知,手掌五指张开水平设定分割线后,分割线左右检测点肤色值变化次数不同,手掌处变化2次,到达手指指尖处分别变化4,6,8,10次。设定6,8,10次变化区为零像素区,由OpenCV自带函数cvFindContour重新获取手形区域。设4次变化区自重权数为[13,]2次变化区自重权数为[23,]再通过手掌几何中心来计算手掌质心,公式如下:
[ax=w1?i=1n1x1in1+w2?i=1n2x2in2ay=w1?i=1n1y1in1+w2?i=1n2y2in2] (4)
式中:ax为手掌质心横向坐标;ay为手掌质心纵向坐标;自重权数[w1]为[13;]4次变化区横向坐标用[x1i]表示;4次变化区纵向坐标用[y1i]表示;自重权数[w2]为[23,]2次变化区横向坐标用[x2i]表示;2次变化区纵向坐标用[y2i]表示;(ax,ay)代表手掌质心横、纵坐标。手掌质心获取过程如图4所示。
图4(a)为手掌图示,图4(b)为肤色值变化多于四指区域,图4(c)为根据OpenCV函数求得手掌质心处。
3.2 手形轮廓凸包与凸性缺陷检测
为了确定手部区域形状,需要找到手部区域的轮廓,获取手形轮廓凸包点集合与凸性凹陷点集合,利用凸包点集与凸性凹陷点集和掌心点之间的几何关系就可以实现手势数字的识别。在OpenCV库函数中有凸包与凸性凹陷集合的求解方法,但方法粗糙,抗干扰能力差。本文引入Graham Scan算法来实现手形轮廓的凸包与凸性缺陷检测。算法基本理论为:平面选取A点,引出射线AM,设定一个单位长度和单位角度,以逆时针方向为正方向。平面任意点C都可被特定序数[ρ,θ][0≤θ≤2]确定,[ρ]代表AC长度,[θ]代表角CAM。由此定义一个坐标系,点A为坐标极点,线AM为坐标极轴。[ρ]代表C点的坐标极径,[θ]代表C点的坐标极角,A点极坐标就是特定序数[ρ,θ]。极坐标系中,定点A即原点O,射线AM即横坐标正半轴,以此逆时针旋转90°为纵坐标正半轴。极坐标系中任一点[ρ,θ]转化为直角坐标(x,y)方式如下: </h<500.20<s<0.680.35<v
[x=ρcosθy=ρsinθ] (5)
运用Graham Scan算法对手形区域进行凸包检测可以获取手形轮廓图的凸包,凸包曲线与手掌之间形成的空隙区域即为凸性缺陷区如图5所示(图示紫色虚线代表手形轮廓的凸包)。手形轮廓凸包检测完成后,为了进一步识别更精确的手势形态,还需要进行凸性缺陷检测。
检测凸性缺陷从点[p1]开始到点[p2]结束,[p3]代表凸包区b的缺陷最深点(手掌边缘上距凸包轮廓最远点),a~f六条线段定义6个凸性缺陷深度,d线最长,因此点[p4]代表手形凸性缺陷最深处。
4 实验结果与分析
实验在VS2013集成开发环境下,基于OpenCV视觉库用C++语言进行开发,测试图像来源为普通数字视频摄像头采集,使用计算机为普通桌面PC机,采用Intel[?]Core i5?4590 3.30 GHz处理器,32位Windows 10操作系统,摄像头采用普通数字视频摄像头,为了验证本框架的稳定性和高效性[9?10],验证了0~5六种数字手势。选取8名测试人员,在实验室环境下,打开摄像头进行实时测试。实验对象面对摄像头,变换手势,验证系统的识别精度。图6展示了测试过程中,系统的部分手势识别结果。
部分手势测试结果如表1 所示。由表1可知,本框架与基于TLD和DTW的动态手势跟踪识别算法相比识别精度相近,都达到了95.8%以上,具有较高的识别率。结果与Zhou等人实验相比,识别速度分别是其所使用的两种方法的5倍和45倍,在系统的实时测试中,经计算,每帧图像处理时间约为82.71 ms,速率范围为11~14 f/s,显示系统具有良好的实时性、穩定性和很高的识别精度。
5 结 论
本文提出一种基于肤色特征提取的手势检测识别方法。通过人脸检测和定位获取面部区域,提取面部区域的人体肤色特征并建立肤色模型,再以肤色模型检测肤色点集合,去除与面部区域重合点后获得手部区域。即通过摄像头实时提取目标人体的肤色信息建立肤色模型,保证了识别准确率和系统实时性。后续将对动态手势跟踪进行研究,在此基础上实现多种动态手势的识别。
参考文献
[1] 万剑锋,黎洪松.基于图像识别的生产线零件分拣系统[J].现代电子技术,2016,39(12):62?65.
[2] 罗伟,冯亮,史桐林,等.基于形态学处理与模式识别的手部图像分割[J].现代电子技术,2015,38(12):80?82.
[3] 季宇.基于特征提取的图像相似度研究[J].信息系统工程,2016(1):110.
[4] 杜堃,谭台哲.复杂环境下通用的手势识别方法[J].计算机应用,2016(7):1965?1970.
[5] 黄孝平.基于体绘制思维的人脸识别算法优化研究[J].现代电子技术,2015,38(24):19?22.
[6] 余超,关胜晓.基于TLD和DTW的动态手势跟踪识别[J].计算机系统应用,2015(10):148?154.
[7] 张佳佳,王贺,刘宇,等.SVD与SVM叠加算法在玻璃温度表图像识别中的应用[J].电子测量技术,2015(1):47?50.
[8] 刘祥楼,杨龙,张明,等.基于肤色的眼睛轮廓自动提取新方法[J].现代电子技术,2014,37(14):125?127.
[9] 张家田,许凯,严正国.基于空中运动/手势控制接口的空中鼠标设计[J].现代电子技术,2016,39(6):143?146.
[10] 刘鑫辰,傅慧源,马华东.基于RGB?D摄像头的实时手指跟踪与手势识别[J].计算机科学,2014(10):50?52.