基于自适应手指分割与判别的静态手势识别

2016-11-08 08:35崔家礼王一丁贾瑞明
计算机应用与软件 2016年10期
关键词:手掌手势识别率

崔家礼 解 威 王一丁 贾瑞明

(北方工业大学电子信息工程学院 北京 100144)



基于自适应手指分割与判别的静态手势识别

崔家礼解威王一丁贾瑞明

(北方工业大学电子信息工程学院北京 100144)

由于动态手势可以看作是多帧静态手势的融合,研究静态手势成为解决手势识别问题的重点。针对静态手势,提出一种自适应手指分割与判别的手势识别算法。首先,运用YCbCr颜色空间的肤色聚类特性对手势图像进行分割,并采用质心点漂移的理念确定手指方向并作旋转归一化处理;其次,针对手势轮廓点的梯度方向和跨度确定手指的候选区域,并结合形态学的方法重建出单一手指的二值化形态;最后,选取恰当的形状特征,运用SVM分类器对其形状特征进行分类。实验表明该方法具有较好的识别率。

手势识别手指重建手指判别手指分割形状特征

0 引 言

在智能化的今天,高效的人机交互使人类的生活变得更为便捷,交流变得更为简单。随着科技的迅猛发展,人机交互成为智能化世界的重要组成部分,一个简单的操作、一句简短的指令,往往就能使计算机完成较为复杂的工作。最常见的人机交互是使用简单的机械设备对计算机发出操作指令,如使用鼠标、键盘等,这些设备尽管在生活中随处可见,但其速度和自然性依然限制了人与计算机之间的互交[1-4]。传统鼠标、键盘的简单输入已经不能满足人们对更复杂行为的需求,人机交互的目标正向着一种更为自然、便捷的非接触式交互方式迈进。

在虚拟现实领域中,手势的检测和识别逐渐成为该领域中研究的重点。人与人的交流时,除自然和书面的语言以外手语的交流也是一种重要的沟通方式。其较为自然、简单、高实时性的特点不仅不受地域文化等限制,而且使其在某些程度上成为比自然语言更为方便的交流方式。其目的就是为了使计算机更为有效、准确地理解人类所表达的语义[5]。迄今为止,手势识别算法在机器视觉方向有着广泛的应用,例如机器人视觉、体感游戏和聋哑人的交流等[2,3]。

传统意义上的手势识别分为静态手势识别和动态手势识别两种[6],而动态手势可以看作是多帧静态手势的融合,故研究静态手势是解决手势识别问题的重点[1,15]。上海理工大学的王先军等人[7]运用手势分割图像中的7个不变Hu矩描述子来表征手势的轮廓特征,并利用BP神经网络优秀的学习特性进行手势识别,但由于BP神经网络的收敛速率受学习速率的影响,故其实时性能并不理想。另外,随着Kinect相机的普及,为了解决复杂背景下的手势识别问题,许多研究者选择使用手势的深度信息对其进行分析[8],如江南大学的李吉等人[9]利用手势的深度信息对手指和手部进行跟踪,解决了因不同光照和复杂背景造成的影响。但由于深度信息的精度问题,使手指垂直指向摄像头时的检测率并不理想,而提高图像质量必然会带来计算量的增大,降低识别效率。为了解决手势的多样性问题,Deval G.Patel等人[10]利用SFIT特征点匹配算法对美国手语(ASL)的26静态手势字母A-Z和10个数字0-9进行匹配识别。而对于动态手势方面华南理工大学的许杏等人[11]运用隐马尔科夫模型(HMM)对手势的空间特性和时间特性及其相关关系建立模型,实现对动态手势的识别,并对系统跟踪算法的性能和识别率的高低进行综合评估。而燕山大学的荆雷等人[12]利用动态时间规整算法(DTW),计算测试模板与参考模版之间的相似度,准确率方面较HMM算法有所提高。

对比以上手势算法研究,现阶段手势识别的难点主要集中在:①复杂背景下的手势分割问题;②手掌和手腕处冗余信息的去除问题;③手势的旋转性、不固定性等差异问题;④手势的识别的复杂度等几个方面[1,13]。针对以上问题,本文提出了一种新的基于手势形态特征的识别方法。利用梯度方向性结合边缘跨度的方法对手指候选区域与手掌手臂部分进行区分,有效地减少了冗余信息,并利用形态学原理重建出单一手指候选区域,选择合理的手指形状特征,运用SVM良好的高维分类特性对手指特征进行分类识别,达到了良好的识别率。为了验证识别精度,本文选用文献[10] SIFT特征点匹配的方法对相同数据库的手势进行识别,对比了两种方法的优缺点。

1 基于形状的静态手势数字识别

本文主要针对0-5的静态手势识别,手势0-5可以表示数字0-5,也可以映射为不同的指令,从而实现人机交互。首先对训练图像进行预处理,分割出手势的二值图像,然后对图像进行特征提取,设计出合理的分类器。识别时,将待测数据集进行预处理、重建、特征提取后送入设计好的分类器中,从而识别手势,整个程序主要流程如图1所示。

图1 手势识别基本流程图

1.1图像预处理、肤色分割及归一化

图2 手势图像预处理步骤

在手势图像采集过程中,下列因素可能影响手势图片的质量,从而使识别造成误差:(1)手势的姿态不统一,存在平移、扭动、旋转等变化;(2)每个人手的大小不一致,手指大小、长宽比等形状特征也不尽相同,与此同时,不同手势离摄像头的距离也不能始终保持一致,故归一化手的大小显得至关重要;(3)由于不同时间采集时外界环境的改变会造成肤色空间的不同,导致手势分割结果的偏差,从而直接影响识别结果;(4)采集时由于摄像头焦距的改变和采集卡对摄像头静态图像扫描时,会受到硬件电路电流不稳定而产生的暗电流噪声影响,对分割结果造成影响。针对以上问题,本文设计如下步骤对图像进行预处理,如图2所示。

本文对不同手势进行分类采集,由于采集时间和不同摄像头焦距的差异,光照强度可能会有所不同,在不同的时间段,手背图像的灰度级分布在不同的范围。为减少差异,对采集的手势图片进行光照补偿。同时噪声的存在会使手势分割和特征提取及分类准确度下降,为了减少采集图片含有的噪声,本文选用传统的中值滤波器来降低噪音。尽管进行过光照补偿处理,但光强仍然会对分割造成影响,由于YCbCr颜色空间亮度和色度可以分离的性质可以克服一定程度的光照干扰,故本文运用YCbCr色彩空间对肤色进行分割,提取手势区域。由于背景因素影响,分割后结果会含有不同程度的噪声,为减少噪声,对分割后的二值图像采用去除小连通域和洞孔填充处理。灰度图像预处理结果如图3所示。

图3 灰度图像预处理示意图

考虑到采集手势时的实时性和连续性,对图像进行旋转矫正。设手势二值分割图像的质心为C(x0,y0):

(1)

其中x,y为图像坐标,I(x,y)为在图像在该坐标下像素的灰度值。

图4 手指方向判断

对分割后的手势图像进行形态学腐蚀处理,根据每个手指的宽度远小于手掌宽度,并且手指均在同一垂直方向这一特点,本文利用形态学质心偏移的方法来确定手指的大概方向。如图4所示,(X1,Y1)为原手势质心,(X2,Y2)为腐蚀质心偏移后的新质心。

以原质心点和腐蚀后的质心点为基准点,以y轴作为旋转的最终方向,来估计到垂直旋转的角度θ,如式(2)所示:

(2)

对手势图像做角度为θ的旋转变换,得到旋转后的配准图像,并对其旋转后的图像运用Sobel算子求出边界图像,如图5所示。

(a) 手势旋转结果B(x,y)  (b) Sobel算子提取边缘结果图5 手势图像旋转后结果

根据式(3)对旋转后的手势图像B(x,y)中对其边界图像上的每个像素点的梯度分量gx和gy。

(3)

并运用式(4)计算其梯度的方向θ′。梯度方向如图6所示。

(4)

图6 手势轮廓梯度方向

沿着每个点的梯度方向,根据式(5)求出每个边缘点梯度方向内最小的跨度dmin。

(5)

前景最小跨度dmin(x,y)的取值结果如图7所示。横轴为梯度方向内前景跨度的取值,纵轴为此跨度大小时内像素点的个数。

图7 梯度方向前景宽度

图8 梯度方向前景宽度分割效果

将图7看作一张图片的直方图,假设手指为图像前景,手掌和手臂为图像背景,根据Otsu阈值分割方法,可计算出阈值T1将部分前景和背景分隔开,将T1之前的所有数据近似拟合成一条高斯曲线,如图7所示。可计算出该高斯曲线的均值μ和方差。根据式(6)计算出分割手指候选区域的阈值T2。分割结果如图8所示,可得到手掌图像V,即图8中虚线圈出部分。手指和手臂下部图像F。

T2=σ+3μ

(6)

对手掌部分向竖直方向进行纵向积分,根据积分曲线最高点可得到手掌的大概宽度Wpalm,如图9所示。

图9 手掌部分纵向积分图

根据解剖学资料,手掌宽度与手掌长度存在如式(7)所示比例关系[14]。可估算出手掌的估计长度和面积Lpalm和Spalm。

(7)

由于无论手指个数多少,手掌大小均不会发生改变,故本文将手掌面积大小Spalm作为手势归一化的衡量标准,根据式(8),确定手势的缩放因子,通过映射采样,将手势大小按比例系数Rnorm归一化为统一尺度。

Rnorm=Spalm/Snorm

(8)

根据式(7),为了减少手臂产生的误差,本文从手掌起始位置向下计算Lpalm个像素长度,定为手掌根部与前臂连接处如图10所示。

图10 手臂位置判断

为减少计算量,对大小归一化后的手势图像利用最大外接矩形提取ROI (Region of interest)感兴区域,提取结果如图11所示。

图11 手势归一化结果

1.2特征提取

根据图8分割出来的手指部分和多余手臂部分F,为了统计弯曲手指的长度,对F进行细化处理得到细化结果T,处理结果如图12所示。

图12 手势细化结果

对细化后的整幅图像进行检索,跟踪出每条骨骼细化结果,对每条独立的骨骼运用特定的结构元素S,进行T2/2次形态学膨胀处理,并用原图像与膨胀后结果的乘积作为后置候选结果Fingern,如式(9)所示,其中N为细化骨骼个数。恢复结果如图13所示。

Fingern=F×[Tn⊕S(T2/2)]n=1,2,…,N

(9)

图13 手指候选区域恢复结果

根据恢复出的手指候选区域结果,假设目标区域Fingern(x,y)的大小为M×N,对于二值图像,用逻辑1表示目标部分,逻辑0表示背景部分。则每个候选区域的面积的计算公式如下,其中N为手指候选区域个数。

(10)

为了解决不同人手指粗细和手指面积的差异问题,本文在提取单一候选区域面积的同时,计算每个候选区域占整个手掌区域面积Spalm的比例RArean作为分类器的一项重要参数,公式如下:

(11)

(12)

其中,Ce和C分别代表链码中方向值为偶数和奇数的数目。

为了克服周长的不鲁棒性,本文使用每个候选区域中周长的平方和面积的比例作为分类器的第二个参数,公式如下:

(13)

根据解剖学研究表明,手指的长度与宽度存在一定的比例关系,并且手指长度一般大于手指宽度。本文将每个候选区域细化的骨骼长度Ln作为手指的长度,并将每个手指假设成一个长方向区域,故手指长度Ln与宽度Wn的比例RLWn可近似于如下公式:

(14)

本文将每个手指的长宽比RLWn作为分类器的第三个参数。

1.3分类器设计

支持向量机SVM是根据统计学理论提出的一种新的通用学习方法,它是建立在统计学理论和结构风险最小原理基础上的,能较好地解决小样本、非线性、高维数和局部极小点等实际问题。支持矢量为训练集中一组特征子集,使得对特征子集的线性划分等价于对整个数据集的分割。目前,SVM算法在模式识别、回归估计、概率密度函数估计等方面都有应用,并且该算法在精度上表现在某些领域已经超过传统的学习算法,具有更好的学习性能[16]。故本文采用SVM分类器对三维空间下的手势特征进行分类。

(15)

(16)

根据合理的核函数K(x,y)进行训练可得到最优的判别公式:

(17)

其中sgn()为符号函数,而b*是分类的赋值,可通过两对支持向量求得。经过反复试验,根据式(18)本文选用径向基核函数对训练样本进行分类,分类结果如图14所示。

K(x,y)=exp(-γ‖x-y‖2)

(18)

(a) 正负样本3维图

(b) SVM分类器曲面图14 SVM分类结果

图14(a)中“。”数据集为负样本,“+”数据集为正样本。由图14(b)可以看出SVM分类器训练出的分类面将正样本完全包裹,将正负样本基本分开。

2 实验结果分析

2.1实验数据介绍

本文定义0-5六种手势,分别代表六种运动状态,由于网络上并没有完全公开的手势识别数据库,故本文使用1920×1080P高清摄像头对不同性别的358人的左右手进行分类采集,每个手势左右手分别采集10张。其中,从258人中的每个手势的左右手图像中各拿出一张作为训练集,训练集大小为{6×2×1×258},将剩下的图片作为测试集,测试集大小为{6×2×9×258+6×2×10×100}。为增加识别难度,采集的数据包括左/右手,手心/手掌和对统一手势下的不同手指的采集,有弯曲手指存在的手势,采集数据库如图15所示。

手势0 手势1 手势2 手势3 手势4 手势5图15 手势数据样本示例

2.2算法性能分析与比较

SIFT(Scale Invariant Feature Transform)算法是David G.Lowe提出的一种具有尺度不变特性的优秀算法。通过提取特征点,并对特征点进行描述,最终把每张图片变成特征向量的集合,该算法拥有对尺度,旋转的不变性,并且对光照变化和几何变化也有一定抗性。如图16所示,其中(a)为训练数据库中手势五通过SIFT算法检测出的结果,“+”表示所检测出的SIFT特征点,(b)为测试数据库中手势五通过SIFT算法检测出的结果,(a)共检测出了107个特征点,(b)检测出115个特征点,连线表示两幅图像共有10个特征点匹配成功。

(a) 训练数据库图像 (b) 测试数据库图像图16 SIFT算法识别匹配结果

实验数据在4G RAM、3.20GHz Intel CPU台式机上进行,采用Matlab2012编程,对数字0-5六种手势进行识别。分别采用本文提出的方法与SIFT特征点匹配方法[10]对2.1中的相同数据进行识别比较,识别率和识别速度结果如图17、图18所示。

图17 手势识别率比对结果

图18 手势识别时间比对结果

由图17可以看出,本文提出的算法识别率远远高于SIFT特征点匹配法识别率。其中本算法平均识别率达到97.52%。而SIFT特征点匹配算法平均识别率只有83.87%。而在识别效率方面,图18分别对比了两种算法对不同手势的识别速度,曲线展示了识别的平均时间、最大时间和最小时间。由图18可以看到本文提出的算法在识别速度上要快于SFIT算法平均2 s左右。

实验对每个手势的误识率FAR (False Acceptance Rate)和误拒率FRR (False Rejection Rate) 进行统计,实验结果如表1所示。由于SIFT算法匹配时需要对匹配点个数的阈值进行设定,故会出现与模板库中0-5任何一个手势数据均无法匹配的结果。

表1 手势识别算法FAR与FRR比较

实验统计结果表明,由于SIFT算法对手势图像进行特征点提取,并分析其周围的纹理信息,通过控制阈值,实现对关键点的匹配,故其对较为复杂的手势特征具有一定优势。但当特征点的拓扑分布或特征点周围纹理改变时(如手指间隙改变或拍摄角度改变时) 识别率会大幅下降。并且由于提取特征时需要对数据库中所有手势提取的SIFT特征进行一一对比,故识别速度较慢。如图19 (a)所示,由于手势零的纹理特征并不明显,故导致其与数据库中的手势零只有6个特征点匹配成功,而图19(b)中手势0与数据中的手势4却有8个特征点匹配成功。故识别结果发生错误。

图19 SIFT算法识别错误图片

本文的算法在这种情况下则不会受到影响。但是本文算法对肤色分割的稳定性要求较高,并且对两手指之间有粘连的静态手势识别效果并不理想。如图20识别错误示例所示,识别错误原因是由于光照强度过大,即使经过光照补偿处理,其仍然受到肤色分割的影响,故识别错误。而SIFT算法是根据灰度图像提取的特征点,并没有进行肤色分割,故对于这种光照过强的图像仍能进行识别。而图21所示图片,由于采集时食指和中指相距太近,分割出的手势图像两手指粘连在一起,本文提出的算法会造成识别错误。

图20 本文算法识别错误图片1

图21 本文算法识别错误图片2

3 结 语

本文提出了一种新颖的基于形状特征的静态手势识别算法,运用质心点漂移的方法确定手指方向,针对手势分割图像轮廓点的梯度方向和跨度确定手指的候选区域,结合形态学重建出手指形态,并选取恰当的形状特征,运用SVM分类器对其形状特征进行分类。并且对比SIFT算法表明本算法识别率和时间均有显著提高。本文的创新点在于:

(1) 采用形态学质心漂移的方法判断手指的方向,并结合边界轮廓梯度方向和边界最小跨度判断出手指的候选区域,减少了手臂和手掌部分的干扰。

(2) 选择合理的形状特征,不仅能完整地描述手指的形状,而且减少了特征提取的复杂度。并运用SVM分类器对高维特征优秀的训练特性对静态手势进行识别。

[1] 关然,徐向民,罗雅愉,等.基于计算机视觉的手势检测识别技术 [J].计算机应用与软件,2013,30(1):155-159,164.

[2] 武霞,张崎,徐艳旭,等.手势识别研究发展现状综述[J].电子科技,2013,26(6):171-174.

[3] Barkoky A,Charkari N M.Static hand gesture recognition of Persian sign numbers using thinning method[C]//2011 International Conference on Multimedia Technology,2011,6548-6551.

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

[5] Song Y,Demirdjian D,Davis R.Continuous body and hand gesture recognition for natural human-computer interaction [J].ACM Transactions on Interactive Intelligent Systems,2012,2(1):5.

[6] 杨波,宋晓娜,冯志全,等.复杂背景下基于空间分布特征的手势识别算法[J] .计算机辅助设计与图形学学报,2010,22(10):1841-1848.

[7] 王先军,白国振,杨勇明,等.复杂背景下BP神经网络的手势识别方法[J].计算机应用与软件,2013,30(3):247-249,267.

[8] 陈皓,路海明.基于深度图像的手势识别综述[J].内蒙古大学学报,2014,45(1):105-111.

[9] 李吉,顾德,刘飞,等.基于Kinect深度信息的手指及手部跟踪研究[J].计算机应用与软件,2015,32(3):79-83.

[10] Deval G Patel.Point Pattern Matching Algorithm for Recognition of 36 ASL Gestures [J].International Journal of Science and Modern Engineering,2013,7(1):24-28.

[11] 许杏.基于隐马尔科夫模型手势识别研究[D].广东:华南理工大学,2011.

[12] 荆雷,马文君,常丹华,等.基于动态时间规整的手势加速信号识别[J].传感技术学报,2012,25(1):72-76.

[13] 林水强,吴亚东,陈永辉,等.基于几何特征的手势识别方法[J].计算机工程与设计,2014,35(2):636-640.

[14] Padam Priyal S,Prabin Kumar Bora.A robust static hand gesture recognition system using geometry based normalizations and Krawtchouk moments [J].Pattern Recognition,2013,46(8):2202-2219.

[15] 王凯,于鸿洋,张萍.基于Adaboost算法和光流匹配的实时手势识别[J].微电子学与计算机,2012,29(4):138-141.

[16] 张秋余,王道东,张墨逸.基于特征包支持向量机的手势识别[J].计算机应用,2012,32(12):3392-3396.

STATIC GESTURE RECOGNITION BASED ON ADAPTIVE SEGMENTATION AND DISCRIMINATION OF FINGERS

Cui JialiXie WeiWang YidingJia Ruiming

(CollegeofInformationEngineering,NorthChinaUniversityofTechnology,Beijing100144,China)

Since dynamic hand gestures can be regarded as the fusion of multi-frame static gestures,thus static gesture study becomes the key of solving gesture recognition problem.Aiming at static hand gestures,this paper puts forward a gesture recognition method which is based on adaptive segmentation and discrimination of fingers.First,the method segments hand gesture image using skin colour clustering feature of YCbCr colour space,and adopts the idea of centroid drift for finger direction determination and makes rotation normalisation processing.Secondly,it determines candidate area of fingers aimed at the gradient direction and span of gestures contour points,and restores in combination with morphological method the binary form of a single finger.Finally,it selects appropriate shape features and uses support vector machine (SVM) classifier to classify its shape features.Experimental results show that the method has promising recognition rate.

Gesture recognitionFinger restorationFinger discriminationFinger segmentationShape feature

2015-04-08。北京市教委面上项目(KM201510009005)。崔家礼,讲师,主研领域:图像处理与智能识别。解威,硕士。王一丁,教授。贾瑞明,讲师。

TP391.41

A

10.3969/j.issn.1000-386x.2016.10.040

猜你喜欢
手掌手势识别率
基于类图像处理与向量化的大数据脚本攻击智能检测
挑战!神秘手势
基于真耳分析的助听器配戴者言语可懂度指数与言语识别率的关系
摊开手掌
V字手势的由来
手掌上的童话
提升高速公路MTC二次抓拍车牌识别率方案研究
胜利的手势
把手掌放在画纸上描一描,画出一只考拉吧
高速公路机电日常维护中车牌识别率分析系统的应用