赵倩楠 胡延平
摘 要:手势识别是人机交互领域的研究热点,由于受环境、角度等因素的影响,采用单一特征无法很好地识别手势,故文中提出了一种基于指尖和HOG特征结合的手势识别方法。通过YCrCb椭圆肤色空间分割出手部区域,采用串行融合方法将手势指尖特征和手部HOG特征相结合,最后将结合的特征送入支持向量机进行手势识别。实验表明,该方法在不同样本集上均具有较高的识别率。
关键词:手势识别;指尖检测;HOG;支持向量机;YCrCb;特征提取
中图分类号:TP183;TP391文献标识码:A文章编号:2095-1302(2020)09-00-04
0 引 言
随着计算机技术和硬件设施的发展,人们对人机交互的要求日益增加。而视觉技术和模式识别的进步为实现这一目标提供了可能。由于手勢的多样灵活,手势识别成为人机交互[1]的新兴热点。基于视觉的手势识别摆脱了数据手套[2]等外部设备的束缚,能够更为灵活、方便地表达手势的含义。
手势识别主要包括手势分割、特征提取、手势识别,其中特征选取直接影响到手势识别的准确性。翁汉良等[3]将指尖个数和方向作为手势特征,结合手部的几何特征进行手势识别;冯志全等[4]根据手势主方向提取特征向量,选取近似样本,再利用类-Hausdorff距离模板匹配思想,从样本库中对比进而识别出最终手势;肖宇[5]采用HOG作为手部特征,并选择随机森林作为分类器进行手势识别;缑新科等[6]提出了一种基于HOG和LBP特征融合方法,并利用支持向量机(Support Vector Machine,SVM)进行分类识别。为了有效提高手势识别的准确率,本文提出了一种指尖和HOG特征相结合的特征矢量,对手部区域进行分割后,提取手部指尖和HOG特征并利用SVM识别,具体流程如图1所示。
1 手型分割
肤色是手势分割中最为常用的一种视觉特征。对检测中定位的区域进行肤色分割,可进一步去除多余背景信息,从而分割出感兴趣的区域。
本文采用一种基于椭圆皮肤模型[7-9]的肤色检测算法,将RGB图像转化到YCrCb色彩空间。YCrCb色彩空间具有与人的视觉感知一致性,对肤色具有较好的聚类性。当图像映射到YCrCb空间会发现肤色在CrCb平面上分布在一个近似于椭圆的区域内。通过判断当前像素点的Cr,Cb值是否落在肤色分布的椭圆区域内,就可以确定当前像素是否属于肤色,从而将肤色与亮度信息进行区分,有效分割出手势。为此,先将RGB图像转换到YCrCb。
图像转换到YCrCb空间后,对其在CrCb平面内进行投影,把采集到的肤色点投影到此平面内并进行相应的非线性变换,进而形成统计椭圆模型。当前像素点在椭圆模型内时,即判定为肤色点,反之则为非肤色像素点。通过肤色分割可以将手部区域从背景中完整分割出来,效果如图2所示。
2 手势特征提取及分类
在手势识别中,手势特征是手势分类的重要依据,特征提取直接影响着手势识别的准确性。手势特征不仅能够表征不同手势的特点,还需适应环境、手型等带来的差异。一般看来,选取的特征越多,手势的识别率愈加准确,但特征数过多会导致识别速度下降,故选取合适的特征描述手势尤为重要。为了充分描述手势特点,并减少光照等因素对手势识别的影响,本文选取指尖作为手势的局部特征,并提取手部图像的HOG特征作为手势的全局特征。
2.1 指尖检测
指尖是手势识别的主要特征之一,通过指尖检测可以精准获得手指个数、手指所在位置以及对应的方向。本文通过重心检测法提取手势的指尖个数特征,以提高手势识别的准确率。
基于重心的指尖检测算法根据手部轮廓像素点和重心位置关系来确定指尖。首先,将手部区域从背景中分割出来;其次,提取手部轮廓并计算手势区域的重心;再次,计算手部每个轮廓像素点和手部重心之间的距离;最后,找到所有距离中可能出现的峰值,设置合适的阈值检测出指尖位置。指尖检测流程如下。
(1)手势的重心位置计算:对手部分割后的二值化图像进行轮廓提取,计算轮廓内部点与轮廓像素点的距离,得到手掌的最大内切圆,通过对内切圆的多次腐蚀提取手部重心。
(2)通过轮廓提取获得手部图像轮廓像素点序列,设轮廓上某个像素点为Q(xi, yi),计算该点与重心的距离D:
(3)通过对轮廓上像素点与重心之间距离D的计算,发现D出现相应的变化并显示出若干个较大的峰值,如图3所示。通过合理设定阈值可以提取出峰值对应的指尖。
通过指尖检测算法提取出的指尖位置示意如图4所示。
2.2 HOG特征
HOG特征[9]是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子,其特征描述子由图像局部区域边缘的直方图统计构成。而HOG特征对物体具有较强的描述能力,且具有良好的光照不变性。故本文选取HOG特征作为手势的全局特征。
HOG特征的实现过程是将图像划分为多个细胞单元,提取各细胞单元中各像素点的梯度或边缘的方向直方图,然后统计所有直方图进而得到最终的梯度直方图。HOG特征提取如图5所示。
HOG特征的提取过程:
(1)图像归一化:将RGB图像转化为灰度化图像,利用Gamma校正法对输入图像进行归一化,降低光照对图像造成的影响,其校正公式如下:
(3)构建单元细胞直方图:将图像划分为若干个细胞单元(cell),本文每个cell为10×10像素,采用9bin直方图来统计10×10个像素的梯度信息,对cell内每个像素用梯度方向在直方图中进行加权投影,得到该cell对应的9维特征向量。
(4)块(block)内归一化梯度直方图并生成HOG特征:把所有cell的特征向量串联起来即可得到该block的特征,对每个block的特征值进行归一化,将梯度强度归一化后的块描述符称为HOG描述符:
为了使特征维数适合分类器学习与识别,本文的blocksize为20×20,cellsize为10×10,采用9bin直方图通道,故每个手势的特征向量维数为36维。
2.3 特征融合
指尖特征可以刻画不同手势的特点,但指尖检测易受环境等因素的影响,而HOG却有较好的抗干扰性,所以本文将提取出的指尖特征和HOG特征进行融合,融合后的特征可以从不同角度描述手势特点,以有效提高手势识别准确率。
目前较为常见的特征融合方式主要有串行融合和并行融合。假设在样本空间Ω上有两组特征A,B,对于任意样本ξ∈Ω,其对应的特征向量分别为α∈A,β∈B,串行融合后的特征为:γ=(α, β);并行融合后的特征为γ=α+iβ,其中i为虚数单位,若两种特征维数不等,则低维特征向量用0补足。
串行融合是将2个不同的特征直接合并,构成1个新的特征向量。串行融合简单易行,且运算量较小,故本文采用串行融合方式。将计算出的HOG特征和提取的指尖参数相结合可得到描述不同手势的特征矢量Fi=[fhi, ffi],其中fhi为第i个手势的HOG特征向量,ffi为第i个手势的指尖个数。手势识别即将手势按照特征矢量划分为不同的类别,每个手势被描述为特征矢量Fi。将上述特征送入多分类的支持向量机中,对定义的不同手势进行分类。
2.4 手势分类
支持向量机是一种二分类模型,其以结构风险最小化为基础,可以有效解决小样本、高维度、非线性的分类问题。对于非线性分类,SVM利用非线性映射,通过核函数将输入样本映射到高维空间[12],使得线性不可分问题在高维空间得以解决,进而得到最优分类超平面。通过核函数的选用即可得到在高维空间中的分类函数,解决非线性分类问题。
3 实验结果及分析
3.1 实验前期准备
本文定义了6种不同的手势(数字0~5),如图6所示。这些图片分别来自10个志愿者,每人针对图6中的每个手势从不同角度、环境采集50张图像存放到对应的样本集中,共计3 000张RGB图像。
将每个手势的40张图像用于分类器训练,剩下的10张用于测试。对不同的手势设置相应的标签L,如手势0设置为L[fist]。将采集的图像样本集和其对应的标签输入SVM分类器中进行训练。SVM分类器采用LIBSVM开源包,提取样本所对应的特征Fi送入分类器,经过训练后,得到SVM分类器保存在XML文件中,用于后续测试及手势识别。
3.2 实验结果及分析
本文实验所采用的计算机为Intel core i7-9750H CPU,2.60 GHz,8 GB内存,采用网络摄像头采集图像。软件环境使用Visual Studio 2015,开源视觉库选用OpenCV 3.4.0。
实验选取不同角度、环境下采集的手势样本,采用基于指尖-HOG融合特征对手势进行识别,同时,为了衡量该方法的性能,分别使用单独采用其中一种特制的手势识别方法对相同样本进行识别,各方法识别率见表1所列。
在训练集和测试集中,本文提出的结合指尖和HOG特征的识别方法均具有较高的识别率,平均识别率可达到95.69%,高于单独采用HOG特征时的手势识别率,也远高于基于指尖检测的平均识别率。单独采用指尖特征由于峰值变化及阈值设定不当,会造成误识别,而本文选取指尖作为手势的局部特征,同时结合HOG描述全局特征,更加全面地描述了手势特点,将两种特征结合进行手势识别可以获得较高的识别率。
4 结 语
本文分析了手势特征提取的现有状况,针对特征单一和多维特征不利于计算的问题,提出了融合指尖特征和HOG特征的手势识别方法。该方法提取手势的指尖和HOG特征作为不同手势的特征矢量,描述了手势局部信息,获得了手部的全局信息。实验结果表明,在不同环境和不同角度的样本集中,本文算法具有良好的鲁棒性,能够高精度识别手势,有效提高手势识别的正确率。但由于手势的多樣性特点,对于遮挡引起的不可识别手势需要进一步研究,进而增强手势识别的多样性。
参考文献
[1] KAO M C,LI H S. Design and implementation of interaction system between humanoid robot and human hand gesture [C]// Proc. of IEEE SICE Annual Coference,2010:1616-1621.
[2]张志纯,杨晓文,况立群,等.基于Virtools和5DT数据手套的手势仿真研究[J].科学技术与工程,2015,15(4):140-144.
[3]翁汉良,战荫伟.基于视觉的多特征手势识别[J].计算机工程与科学,2012,34(2):123-127.
[4]杨学文,冯志全,黄忠柱,等.结合手势主方向和类-Hausdorff距离的手势识别[J].计算机辅助设计与图形学学报,2016,28(1):75-81.
[5]肖宇.基于序列图像的手势检测与识别算法研究[D].成都:电子科技大学,2014.
[6]缑新科,王瑶.基于特征融合的静态手势识别[J].计算机与数字工程,2018,46(7):1336-1340.
[7] MALCHANOV P,GUPTA S, KIM K,et al.Multi-Sensor system for drivers hand-gesture recoginition [C]// 2015 International Conference on Workshops on Automatic Face and Gesture Recognition. IEEE,2015.
[8] Daniel Mohr,Gabriel Zachmann. Hand pose recognition-overview and current research [Z]. Lecture notes in computer science,2015:108-129.
[9] Harihara Santosh Dadi,Gopala Krishna Mohan Pillutla,Madhavi Latha Makkena. Face recognition and human tracking using GMM,HOG and SVM in surveillance videos [J]. Annuals of data science,2018,5(2):157-179.
[10] Baik,Kyung Jin. Hand gesture classification using multiple doppler radar and machine learning [J]. The journal of korean institute of electronmagnetic engineering and science,2017,28(1):33-41.
[11] Vijay John,Ali Boyali,Seiichi Mita,et al. Deep Learning-Based Fast Hand Gesture Recognition Using Representative Frames [C]// 2016 International Conference on Digital Image Computing: Techniques and Applications. IEEE,2016.
[12]蔡军,李晓娟,张毅,等.一种改进的DAGSVM手势识别方法及其应用[J].控制工程,2013,20(5):957-959.