融合改进指尖点和Hu矩的手势识别
2017-11-28赵修龙王进花
曹 洁 ,赵修龙 ,王进花
1.兰州理工大学 计算机与通信学院,兰州 730050 2.兰州理工大学 电气工程与信息工程学院,兰州 730050
融合改进指尖点和Hu矩的手势识别
曹 洁1,2,赵修龙1,王进花2
1.兰州理工大学 计算机与通信学院,兰州 730050 2.兰州理工大学 电气工程与信息工程学院,兰州 730050
基于轮廓的识别算法能够很好地处理手势的外观变化,但现有的识别算法在目标旋转和缩放时其识别率和鲁棒性较低,针对这一问题提出了一种基于指尖点和Hu不变矩的手势识别方法。该方法对基于曲率的指尖检测方法进行改进,增强指尖点特征提取的鲁棒性;融合Hu不变矩和指尖点特征,提高手势模型的全局描述性;利用能够自动添加新手势的识别算法,提高算法的实用性。实验表明,该方法在满足实时性的基础上有效地提高了手势识别的准确性和鲁棒性。
手势识别;指尖检测;曲率计算;Hu不变矩
1 引言
随着计算机科学的发展,人机交互技术成为一个热门的研究领域,而通过基于视觉的手势识别方法进行人机交互也受到了人们的广泛关注[1-2]。基于视觉的手势识别方法可以分为基于单目视觉的手势识别和基于多目视觉的手势识别,其中,基于多目视觉的方法表达的意义较为丰富、准确,但建模难度高,计算量大;基于单目视觉的方法虽然丰富度有限,但建模难度较低,计算量较小[3]。在基于视觉的手势识别中如无特别指出,基本上都是指基于单目视觉的手势识别。
目前常见的手势识别方法有很多种。如文献[4]中提出了一种Hu不变矩与BoF-SURF(快速鲁棒特征的特征包,Bag of Features-Speeded up Robust Feature)特征的手势识别方法,但是数据的训练比较复杂,并且无法自动添加新的手势;文献[5]中提出了一种基于RGB-D图像的手势识别方法,该方法利用3D手型轮廓特征降低手势匹配的复杂度,能够识别较为复杂的手势动作,且识别的准确率较高,但是其识别方法比较复杂并且需要使用深度摄像头作为输入设备;此外还有基于傅里叶描述子[6],基于MB-LBP(多级区域局部二值模式,Multi-Block Local Binary Pattern)纹理信息,利用Hausdorff距离[7-8],基于小波矩[9],基于混合高斯模型[10]等的手势识别方法。在这些方法所使用的手势特征中以轮廓特征中的指尖特征为最常见,指尖特征的提取方法有很多种,如文献[11-12]提出了基于轮廓曲率特征的指尖检测方法,该方法在简单背景下的检测效率比较高,但是无法分别检测出并列指尖点和单个指尖点。此外还有利用手势的凸包特征检测指尖点[13],将手势二值图像进行网格分割,进而检测指尖点[14],根据图像的梯度图特征检测指尖点[15],利用圆截法检测指尖点[16]。手势的模型也多种多样,如文献[17]中结合手指个数、手部几何特征以及肤色特征,提出一种手势的Tortoise模型,该模型虽然能简洁地描述手势,但由于它的对称性,使其难以区分两相互对称的手势;文献[18]提出了一种多模型融合的手势跟踪方法,该方法跟踪精度较高,但手势模型和跟踪方法都比较复杂,算法实时性较差。
由上文分析知,现有的手势识别方法在准确性、实时性和鲁棒性方面都存在一些缺陷。为了在保证识别算法实时性的基础上,提高识别的准确性和鲁棒性,本文提出了一种基于单目视觉,融合指尖点和Hu不变矩的手势识别方法。首先为了提高手指检测的准确性和鲁棒性,并使之能够分开检测出单指尖点和并列指尖点,在原有基于曲率的指尖检测基础上,本文重新定义曲率计算所需辅助点的选取标准,提出分别检测单指尖点和并列指尖点的方法;然后融合手势的Hu不变矩和指尖点特征,提出一种改进型的手势模型,这一模型不仅包含手部局部特征而且还包含手部全局特征,能够更加全面地描述手势的总体特征;最后利用一种实时性和准确性较好,并且能自动添加新手势的识别算法完成手势识别。
2 手势特征提取
2.1 肤色检测与轮廓提取
尽管人的肤色都有不同,但是排除光照强度等的影响后,皮肤的色调基本一致。Hsu等经过了大量的统计肤色点提出了一种在YCb’Cr’空间中利用Cb’Cr’区域内采用椭圆模型来描述肤色分布,去除了光照强度Y对肤色检测的影响,并应用于人脸检测,取得了较好的效果,具体步骤参考文献[19-20]。本文将该方法应用于手势分割中,使其在不同光照下都有较好的分割效果,提高了整体算法的鲁棒性和准确性。
Canny边缘检测算法是由Canny于1986年首次提出,经过多年的发展,它已基本满足信噪比,定位精度,单边缘响应三大最优准则[21-22]。它能够很好地抑制噪声同时又能很好地保证边缘检测的效果。本文利用Canny边缘检测算法提取出手势的轮廓信息,为后续的轮廓特征提供数据基础。
2.2 基于曲率的类指尖点检测
指尖点特征能够直观、准确地描述手势,是人们最常用的手势特征。由于曲率计算比较简单方便,利于算法实现,因此大多数研究中都是通过曲率计算得到指尖点特征的。
经过曲率阈值检测到的指尖点称为“类指尖点”,之所以称为“类指尖点”而不是直接称为“指尖点”是由于该点还不能确定为指尖点。曲率是表示曲线在某一点的弯曲程度的量,曲率越大,表明曲线的弯曲程度越大。
各点的曲率计算:选取距点 p的距离为L的前后两个轮廓点 p1、p2,如图1所示。利用式(1)计算各点的cosT值表示曲率;然后设定阈值ΔT,对所有大于ΔT的点聚类,各聚类中心点即为类指尖点。此时得到的类指尖点中包括很多的凹点,本文利用向量p1p×pp2的符号将其剔除。
图1 指尖判定原理图
在进行手势识别时,手势的尺度由于采集位置和设备而发生变化,而L的取值对类指尖点检测影响较大,因此L值的选取变的尤为关键。图2为手势轮廓曲率与L取值的对应关系图,其中L的单位为像素个数,方框的位置从左至右依次对应指尖点F1到F5,三角形对应指间凹槽点B的位置,圆形对应A1、A2的轮廓位置,图的横坐标表示轮廓点的序列值,纵坐标为曲率值,取值范围为[1,-1]。
由图2可看出当L=20时,轮廓的曲率变化不平滑,指尖点与非指尖点的曲率差别较小,难以找出较好的分割阈值;当L=240时,虽然手掌轮廓的曲率变化比较平滑,并能够找出单个手指的分割阈值,但对于并列手指(如图中的小拇指,对应最右边的绿色点表示),较短手指的指尖点和周围各点的曲率差别不明显,难以找到有效的分割阈值;当L=40或L=80时,虽然轮廓的曲率变化有所差别,但是总能找出较有效的分割阈值,使得分割出的各指尖点聚类性较好。因此在手势尺度发生变化时,若寻找出较好的分割阈值,L的取值不宜过大或过小,且应随手掌大小的变化而变化。
图2 曲率与L对应关系
本文取L=kW(其中W为手掌宽度,以手掌的内接圆的直径表示手掌的宽度,k为比例系数),这样就使得针对不同大小的手型图像,有与之相匹配的L取值,从而提高整体算法对图像缩放的鲁棒性。
2.3 改进的指尖点检测方法
传统的基于曲率的指尖点检测方法,一般只能检测出手势尺度适中的单个指尖点,难以满足识别算法的要求。针对这一问题,在上文曲率计算的基础上,本文利用手指的形状特征,提出了一种针对单指尖点和并列指尖点分别检测判定的方法。该方法不但能够较好地检测数单指尖点,而且能够检测出并列指尖点,提高指尖点检测的准确性和指尖特征的丰富度。
2.3.1 单指尖点判定
单个手指的形状类似一个长方形的一端加上一个半圆,其特点是手指的中间部位的宽度基本不变,由这一特点本文采用如下检测方法:
步骤1计算距类指尖点为Wf、1.25Wf、1.5Wf、1.75Wf、2Wf、2.25Wf的六处轮廓宽度,如图1中 d1、d2、d3、d4、d5、d6所示,其中Wf为拟定平均手指宽度Wf,取Wf=kW ,k为比例系数,本文取9/40。
步骤2计算步骤1中的六个宽度的均方差S,两两间的最大差值dm以及均值dE。
步骤3若步骤2中各值满足式(2)则判定为单指尖点,其中Δm为最大差值比阈值,ΔS为方差阈值,ΔE为均值偏差阈值。
2.3.2 并列指尖点判定
并列手指的形状可视为几个单个手指不对齐叠放,其特点为相邻两指尖点间的轮廓距离较小;从最长的指尖到指根,并指的宽度呈梯度变化,且变化梯度约为一个手指宽度。其判定步骤如下:
步骤1设定合适的轮廓距离阈值Δth,对小于Δth的类指尖点聚类,记各聚类中点的数目为n,剔除n=1的点。
步骤2计算类内各点与手心间距离,并根据距离的大小进行类内排序。
步骤3对于距离手心最近的类指尖点,计算手心方向,距离该点Wf/2处的轮廓宽度,如图1中的d7。
步骤4 根据式(3)得 n′0,判断其是否满足 n′0=n ,若满足则执行步骤8,否则执行步骤5。
步骤5计算排序后的相邻类指尖点切线间并指的宽度,如图1中切线b1,b2间的宽度d8,根据式(3)依次得出 n′1,…,n′n-1。
步骤6 若 n′i≥ n′i-1(i=2,…,n-1)或 n′i=0 ;则剔除n′i和与其对应的类指尖点,改变n的值。
步骤7 判断由步骤6得到的n′1,…,n′n-1是否满足式(4),其中Δn为设定的阈值,若是则执行步骤8,否则跳到步骤9。
步骤8判断该类各点为并指尖点,个数为n。
步骤9判断是否完成对所有类的计算,若是完成整个手势的并指检测,否则指向下一类并跳转到步骤2。
2.3.3 修正指尖点
由于提取的手势轮廓不平滑,在强噪音下甚至会发生形变,所以得到的指尖点可能不准确,为了提高指尖点检测的准确率,对指尖点做以下修正:
(1)单指尖点间的轮廓距离应大于Δth,否则剔除距离手心近的指尖点。
(2)各指尖点到手心的距离应大于阈值Δdt,否则剔除该指尖点。
(3)当类指尖点即被判定为单指尖点又被判定为并列指尖点时,该点最终判定为并列指尖点。
2.4 Hu不变矩
Hu不变矩是由Hu.M.K于1962年构造的七个矩的不变量,它们对图像的旋转、尺度和平移变化都具有良好的鲁棒性。与局部几何特征不同,Hu矩是对图像全局特征的描述,这一特点恰到好处地弥补了指尖特征缺乏全局性这一缺点。Hu不变矩均由二阶和三阶中心矩的线性组合构成,具体表达式如式(5)。其中,归一化的几何矩为
3 基于指尖点和Hu不变矩的手势识别
3.1 手部模型
在进行基本的手势训练和手型匹配时,通常将手部分解为手掌和手指两个部分,这样不仅形象、准确、而且便于识别。基于这一特点,在考虑了手部的局部特征和全局特征后,本文提出了一种便于表达手部特征的手部模型,如式(6)所示:
满足的约束条件如式(7)所示:
其中n1为单指尖点个数,n2为并列指尖点个数,γ为指尖距掌心的距离与手掌宽度的比值,θ为相邻指尖点间的夹角,h1,h2,…,h7为手势图像的七个Hu不变矩。
本文的手势模型具有以下优势:
(1)采用的各特征对手势的旋转,平移以及缩放都有很好的鲁棒性。这就很好地保证了采集的特征在手势旋转和尺度变化时变化很小,从而为后期的识别提高较好的信息来源。
(2)该模型能够较为全面地表述手部特征信息。本文模型中既有手指个数、长度比例、手指间的夹角等描述局部特征的信息,又有Hu不变矩表述全局特征的信息。
3.2 手势库训练
本文为了得到较好的手势模板,提高手势识别算法的准确率,根据本文的手部模型特点设计了特定训练方法。对于本文的手势模型而言,手指的单、并指个数n1,n2是很明显的一个量,不必再进行训练;主要训练的是长度比值γ,角度θ以及Hu不变距h1,h2,…,h7。训练方法如下:
步骤1输入手势图像,提取其特征值作为模板向量F 的初值,如式(8)所示,其中n=n1+n2。
步骤2输入手势新图像,提取特征值 f。根据 f调整 F ,并计算式(9)、(10)。
步骤3判断ΔH,Δm是否满足阈值或训练次数达到上限,若其中之一满足则完成训练,否则转到步骤2。
3.3 手势识别
本文依据手部模型的特点,采用先分类后匹配的识别方法,并引入模糊理论中的隶属度这一概念,完成手势识别。对于手势的各特征比较发现,Hu不变矩特征的数量等级与其他特征的数量等级相差比较大,所以在识别之前需要对其进行归一化处理,如式(11)所示。进行手势识别时,首先利用n1和n2的值将手势模板分为待匹配模板和剔除模板两类,然后对待匹配模板类中的手势模板利用式(13)计算其隶属度,进行手势识别。式(13)中 ω1,ω2,…,ω5为权值,为实验所得,权值满足取值范围为[0,1],总和为1。在识别过程中,将待匹配模板类中手势模板数为零或隶属度过低的手势判断为新手势,并跳转到手势模板的训练和模板库的更新中。
识别步骤如下:
步骤1输入手势图像,提取特征值 f,判断其是否满足约束条件。若是则执行步骤2,否则执行步骤8。
步骤2针对特征值 f和各手势模板F中的Hu矩特征,利用公式(11)做归一化处理。
步骤3利用公式(12),将手势模板分成待匹配模板和剔除模板两类,满足式(12)为待匹配模板类,否则为剔除模板类。若待匹配模板类中模板个数为0,执行步骤6,否则执行步骤4。
步骤4利用式(13)计算待识别手势与待匹配模板类中各模板的隶属度σi。对剔除模板类中各手势模板直接剔除。
步骤5找出步骤4所得隶属度的最大值σmax,判断其是否满足σmax≥Δσm,其中Δσm为最小隶属度阈值,若是则执行步骤7,否则执行步骤6。
步骤6输出未识别此手势,提示再次输入手势图像,若连续3次输入的手势图像均不满足σmax≥Δσm,提示为新手势,跳入训练算法,生产新手势模板并更新模板库。
步骤7输出最大隶属度σmax对应的手势作为识别结果,完成本次手势识别。
步骤8输出未识别此手势,进入下次识别。
4 实验结果对比与分析
本文所有算法的实验环境是Win7 32位+VS2010+opencv2.4.9,电脑CPU为Intel®Core™ i3 2.53 GHz,内存4 GB(2.3 GB可用),硬盘为128 GB固态硬盘。本文中的百分比一律取小数点后1位有效数字,多出部分按四舍五入规则处理。
4.1 改进的指尖点检测方法实验结果与分析
针对改进指尖点检测方法在缩放和旋转条件下,指尖点的检测情况,本文由11个人,分别在正常手型、缩放手型和旋转手型三种情况下,每人做10组单指手势,10组并指手势,共660幅手势图像作为实验样本。实验结果如表1所示。
表1 指尖检测情况表
由表1可以看出,从指尖类别上来看本文的手指检测算法对单指的检测效果要比并指的效果好,本文的指尖检测算法在缩放和旋转变换情况下检测的正确率变换较小,这说明本文改进的指尖检测算法对缩放和旋转变换的鲁棒性较好。
将本文算法与传统曲率检测和凸包检测指尖点的方法在相同情况下做对比实验,结果如表2所示。由表可看出,本文算法对手指指尖的检测方法与另外两种相比准确率较高。这是因为首先本文算法具有特定的针对并指的检测算法;再者与基于曲率的直接检测方法相比,本文在曲率计算上能够根据手势图像的大小调整计算曲率所选取的辅助点的位置,使得其曲率的计算更加准确,从而提高检测效率。
表2 指尖检测正确率对比表
4.2 手势识别实验结果与分析
本文设定10种手势,如图3所示。在手势识别的实验中,本文由11个人,在距离摄像不同距离并保持不同方位的5种情况下各做4次,一共进行2 200次实验。实验结果如表3所示。以下各表中的平均运行时间为从手势特征提取到手势匹配识别所消耗的总时间的平均值。
图3 交互手势效果图
表3 各手势识别率
由表3看出对于不同手势,本文算法的识别率是不同的。手势2的识别率较低的原因是由于指尖特征只有拇指特征,而本文的指尖检测算法相对拇指的检测率较低。手势6、7较低的原因是手势的指尖特征为混合型,这也是本文指尖检测的一个缺点。手势8、9的手势检测率相对较低,分析识别的数据发现这两种手势的错误大多出现在被误识别为对方手势,这是由于这两种手势除Hu矩特征外其他特征信息较为相似。手势10出错率较高,对其特征检测分析发现,此手势没有指尖点,检测的各特征易受脸部等外界信息干扰。虽然各手势识别的识别率和识别所需时间不同,但是从总体来看,各手势识别的正确率都较高,算法平均运行所需时间均在400 ms以内,因此基本满足人机交互的要求。
为了测试本文算法在不同光照强度情况下的识别情况,将10种手势,由11个人分别在暗、一般和强光照情况下进行5次实验,实验结果如表4所示。由实验数据可知,本文识别方法在不同光照强度下,都具有较好的识别效果。
表4 不同光照强度下识别率与识别时间
针对本文方法和几种现在常见手势识别方法在相同环境下作对比试验,结果如表5所示。由数据可知本文的整体方案在综合考虑识别率和识别时间两方面,为相对最优的手势识别方案。
表5 各方法识别率与识别时间对比
第二种方案为单独利用指尖点特征完成手势识别。由于缺乏全局特征Hu不变矩,致使其识别率相对较低;第三种方案为利用SVM算法结合Hu不变矩特征完成手势识别,由于Hu矩只能表述手势的全局特征,缺乏局部特征,因此识别率比较低;第四种方案为利用Hu特征和BoF-SURF特征,通过SVM完成识别。虽然识别率和本文方法基本持平,但是其识别时间较长。与本文识别方法相比,另外两种方法难以实现新手势的自动添加。
5 结束语
本文提出了一种适用于实时应用的手势识别方法,该方法从手势的特征提取和手势模型两方面改进识别算法的性能,并从识别算法上增强手势识别的交互性能。针对不同手势本文方法在识别率和识别所用时间上略有不同,这是下一步改进研究的重点;从总体来看,本文方法准确率较高,识别时间较短,并且综合考虑了系统对实时性、准确性、鲁棒性以及实用性等因素,基本满足人机交互中对手势识别算法的要求。
[1]Lee H C,Shih C Y,Lin T M.Computer-vision based hand gesture recognition and its application in iphone[J].Smart Innovation Systemsamp;Technology,2013,21:487-497.
[2]Rautaray S S,Agrawal A.Adaptive hand gesture recognition system for multiple applications[J].Communications in Computeramp;Information Science,2013,276:53-65.
[3]Premaratne P.Future trends in hand gesture recognition[M]//Human Computer Interaction Using Hand Gestures.Sigapore:Springer,2014:171-174.
[4]隋云衡,郭元术.融合Hu矩与BoF-SURF支持向量机的手势识别[J].计算机应用研究,2014,31(3):953-956.
[5]姚远,张林剑,乔文豹.RGB-D图像中手部样本标记与手势识别[J].计算机辅助设计与图形学学报,2013,25(12):1810-1816.
[6]Tan W,Bian Z,Yang J,et al.Hand gesture shape descriptor based on energy-ratio and normalized fourier transform coefficients[C]//Lecture Notes in Computer Science,2014,8795:34-41.
[7]杨学文,冯志全,黄忠柱,等.结合手势主方向和类-Hausdorff距离的手势识别[J].计算机辅助设计与图形学学报,2016,28(1):75-81.
[8]孟春宁,吕建平,陈萱华.基于普通红外摄像机的手势识别[J].计算机工程与应用,2015,51(16):17-22.
[9]陈昆伟,郭星,吴建国.基于手势识别的文字输入系统[J].计算机工程与应用,2015,51(3):66-68.
[10]王原,汤勇明,王保平.基于混合高斯模型的非固定握持姿势手势识别[J].东南大学学报,2014,44(2):239-243.
[11]李博男,林凡.基于曲率的指尖检测方法[J].南京航空航天大学学报,2012,44(4):587-591.
[12]王松林,徐文胜.基于Kinect深度信息与骨骼信息的手指尖识别方法[J].计算机工程与应用,2016,52(3):169-173.
[13]翁汉良,战荫伟.基于视觉的多特征手势识别[J].计算机工程与科学,2012,34(2):123-127.
[14]杨端端,金连文,尹俊勋.手指书写汉字识别系统中的指尖检测方法[J].华南理工大学学报:自然科学版,2007,35(1):58-63.
[15]范玮琦,方婷,魏明月.自然摆放的手图像指根点提取方法[J].光电子·激光,2013,24(6):1191-1197.
[16]张毅,刘钰然,罗元.基于视觉的手势识别方法及其在数字信号处理器上的实现[J].计算机应用,2014,34(3):833-836.
[17]王修辉,鲍虎军.基于自适应遗传算法的手势识别[J].计算机辅助设计与图形学学报,2007,19(8):1056-1062.
[18]林燕,冯志全,朱德良,等.以多模型融合为特征的三维手势跟踪算法[J].计算机辅助设计与图形学学报,2013,25(4):450-459.
[19]Hsu R L,Jain A K.Face detection in color images[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2002,24(5):696-706.
[20]覃文军,杨金柱,王力,等.基于Kalman滤波器与肤色模型的手势跟踪方法[J].东北大学学报:自然科学版,2013,34(4):474-477.
[21]Canny J.A computational approach to edge detection[J].IEEE Transactionson Pattern Analysisand Machine Intelligence,1986,8(6):679-698.
[22]丁文,李勃,陈启美.Canny色彩边缘检测及分类新方法[J].北京邮电大学学报,2012,35(1):115-119.
CAO Jie1,2,ZHAO Xiulong1,WANG Jinhua2
1.College of Computer and Communication,Lanzhou University of Technology,Lanzhou 730050,China 2.College of Electrical and Information Engineering,Lanzhou University of Technology,Lanzhou 730050,China
Gesture recognition method based on improved finger tip and Hu moments.Computer Engineering and Applications,2017,53(21):138-143.
hand gesture recognition;fingertip detection;curvature calculation;Hu invariant moment
Abastrct:The recognition algorithm based on outline feature can deal with the appearance changes of hand gestures very well,but the accuracy and robustness of the existing gesture recognition is low when the target is rotated and scaled.A new gesture recognition method based on finger tip and Hu invariant moments is proposed for the problem above.This method improves the fingertip detection based on fingertip curvature,which enhances robustness of feature extraction from the finger tips.It also improves the global description of gesture model by f-using hand fingertips and Hu invariant moments.Besides,it uses recognition algorithm in which new gestures can be added automatically to improve feasibility of the algorithm.Experiments show that the proposed method can effectively improve the accuracy and robustness of gesture recognition without reducing efficiency.
A
TP391
10.3778/j.issn.1002-8331.1611-0507
国家自然科学基金(No.61263031);甘肃省自然科学基金(No.1506RJZA105)。
曹洁(1966—),女,博士生导师,教授,主要研究领域为信息融合、智能信息处理、模式识别;赵修龙(1986—),男,硕士研究生,主要研究领域为智能信息处理,E-mail:784673319@qq.com;王进花(1978—),女,副教授,主要研究领域为故障诊断、智能信息处理。
2016-11-30
2017-03-01
1002-8331(2017)21-0138-06