基于手轮廓的深度图像手势识别方法*
2014-09-14许凯,王敏
许 凯,王 敏
(河海大学计算机与信息学院,江苏 南京 211100)
基于手轮廓的深度图像手势识别方法*
许 凯,王 敏
(河海大学计算机与信息学院,江苏 南京 211100)
提出了一种新的手势识别方法,该方法从深度图像中提取手形轮廓,通过计算手形轮廓与轮廓形心点的距离,使用离散傅里叶变换获得手势的表观特征,引入径向基核的支持向量机识别手势。建立了一个常见的10种手势的数据集,测试获得了97.9%的识别率。
深度图像;手势识别;支持向量机;离散傅里叶变换
1 引言
人机交互HCI(Human-Computer Interaction)是一门研究设计、评估和实现人与计算机之间交互的综合学科[1]。手势识别是人机交互的一个重要研究领域,它在虚拟现实、手语识别、电脑游戏等方面有着广泛的应用[2]。
基于视觉的手势识别是通过获取图像信息来得到手势的姿态信息,从而对不同的手势进行分类。相比传统人机交互的方法,基于视觉的手势识别具有更为自然和非接触式的特点,是当前研究热点[3,4]。通常一个基于视觉的手势识别过程包括两个主要步骤:(1)特征提取,从图像中提取手势的特征向量;(2)分类,依据特征向量进行手势识别。特征向量的选取直接关系到识别的准确率。一个好的特征向量提取算法必须足够鲁棒,相同的手势可以提取获得相近的特征向量,从而使随后的识别过程相对简单。另一方面,Cortes C和Vapnik V[5]提出“只有在特征向量选择良好时,分类器才会变得高效、精确”。同样,由于训练集、自由参数等因素影响,分类算法的选择也是一难点。这些分类算法包括神经网络[6]、隐马尔可夫模型[7]、决策树[8]等。总之,特征提取技术和分类方法两者紧密而复杂地联系在一起,构成了识别系统的两大部分。
手势特征提取主要包括手势定位和特征向量的选取。手势定位常采用肤色分割来定位图像中手的位置[9,10],但这类方法易受肤色、光照和场景的影响。Mistry P等人[11]使用了彩色指套标记来辅助定位手,但该方法需要用户佩戴额外的装置,在人机交互的过程中有一定的侵入性。Shotton J等人[8]使用了深度摄像机来辅助分割识别肢体。由于深度摄像机分辨率只有640×480,该方法只能有效识别较大目标,例如肢体。在这个分辨率的深度图像下,手在图像中仅占很小的部分,很难精确定位跟踪。
本文提出了一种基于轮廓的深度图像手势识别方法。在手势定位阶段,区别于传统的有标记的手势定位,使用了深度摄像机来定位手势。这个方法可以有效地减少肤色、光照和复杂场景对检测的干扰。在特征提取阶段,提出了使用手形形心点和手形的轮廓作为特征点,计算形心点至轮廓的欧氏距离,使用离散傅里叶变换DFT(Discrete Fourier Transform)获得特征向量。在识别阶段,使用了带径向基核函数的支持向量机来训练分类器,通过实验计算出支持向量机参数值(γ,C)。最后在所建立的测试样本上获得了97.9%的识别率,较同类方法[12]具有更高的识别率和无需佩戴辅助标识的优点。
2 手势特征提取
深度图像技术在近年来得到飞速发展,Prime Sense公司的深度摄像机可以在640×480的分辨率下达到30 fps的采样率。使用深度摄像机,人体跟踪和人脸跟踪已经获得了巨大的成功。但是,当前深度摄像机获得图像分辨率较低,只能较好地追踪象人体这样的大目标,而人手这样的小目标,很难获得较高的侦测识别率。
基于轮廓的深度图像手势识别方法,可以有效地利用深度摄像机识别手势。
2.1 手势定位
假定手是离摄像机最近的物体,且在摄像机有效距离内。将所获得的深度信息值转换到灰度空间,从而获得的原始深度图像如图1所示。图1中灰度值越小,表明该目标距离摄像机越远。可以看到,手是离摄像机最近的目标,在深度图像中灰度值最大(黑色灰度值为0,白色灰度值为255)。
2.1.1 灰度拉伸
深度摄像机的物理有效距离是0.4至3米[13],如图1所示,可见所采集的原始深度图像灰度值均较小,图像偏暗,不方便观察、计算。对原始深度图像灰度值作2.5倍的拉伸,获得如图2所示的图像。拉伸后深度图像中各点灰度值分布较均匀,手形可以更清晰地分辨出来。
Figure 1 Original depth image图1 原始深度图像
Figure 2 Stretched depth image图2 拉伸后深度图像
2.1.2 高斯滤波
由于深度摄像机固有属性、图像目标自遮挡等原因,灰度拉伸后的深度图像中存在部分噪声。引入3×3模板的高斯平滑滤波来减少和抑制图像噪声,其中sigma取0.85。平滑滤波后,图像中噪声得到有效抑制,且图像细节被较好地保留下来。
2.1.3 二值化与形态学操作
手被假设为距离摄像机最近的目标物体,因此在图像中搜索灰度值最小点,获得手的最近距离为dmin。设手掌的厚度为dh,取阈值为dmin+dh,对图像进行手势区域与背景区域图像二值化操作,这样,手形就从深度图像中分离出来。通过连续的形态学膨胀、腐蚀操作,可以去除手形图像中的孤立点。最后获得手形的图像如图3所示。
Figure 3 Hand segmentation result图3 手形分割效果
使用深度信息进行手势定位受光照、背景的影响较小,且不受肤色影响。
2.2 特征提取
通过提取手势的表观特征,根据手势的形心点至手势轮廓的距离,对不同手势进行分类,从而实现手势的准确识别。相比其他的手势特征提取方法,该方法手势在图像中受旋转和缩放的影响较小,定位快速精确。
2.2.1 轮廓查找
对于分割处理后获得的图像(图 3)查找手形的轮廓。设vi,j为二值化图像中一点,如图4所示,若vi,j为白色点,且vi,j的八邻域vi-1,j-1,vi-1,j,vi-1,j+1,vi,j-1,vi+1,j+1,vi+1,j-1,vi+1,j,vi+1,j+1中有一个或一个以上为黑点,则vi,j为轮廓点。从而可以获得整个手形的轮廓点序列V=array(x,y),其中x、y为轮廓点在图像中的坐标。
Figure 4 Eight neighborhood of the pixel图4 像素点八邻域
如图5所示,曲边ABCDE为分割获得的手形轮廓。
Figure 5 Hand contour segmentation result图5 手形轮廓分割效果
2.2.2 形心点查找
把一个归一化的灰度图像理解为一个二维随机变量的概率密度,则这个随机变量的属性可以用统计特征矩来描述。因此,计算轮廓序列的空间矩mji为:
图5中点O为轮廓序列点A、B、C、D、E的形心点。
2.2.3 距离变换
对于轮廓序列array(x,y)上的点(xi,yi),i=1,2,…,n,计算形心点至轮廓的欧氏距离{dn}:
由图 5手形轮廓计算获得的距离序列如图6所示,图6中横坐标表示轮廓序列点的序列号,纵坐标为轮廓形心点至轮廓的欧氏距离。
Figure 6 Hand contour distance sequence图6 手形轮廓距离序列
2.2.4 距离规格化
使用最大最小数据规格化法,对距离序列{dn}数据进行线性转换,获得序列{an}。设minsrc和maxsrc为{dn}的最小和最大值,将{dn}的一个值di映射为ai:
其中ai∈[mindst,maxdst]。如果取ai∈[0,1],则:
图7为图6作规格化后所得的结果。从图 7中可以看到,规格化后的距离序列{an}的波形是对原有距离序列波形的振幅缩小,保留了原有频率的全部信息。这样不同大小的手形轮廓就可以缩放到相同大小的数值范围进行计算了。
Figure 7 Normalized hand contour distance sequence图7 归一化手形轮廓距离序列
2.2.5 离散傅里叶变换
傅里叶变换可以看作是时间域上的函数在频率域上的表示。傅里叶变换在频率域中包含的信息和原时间域函数所包含的信息是等价的,不同的是信息的表达方式。将傅里叶变换离散化得到离散傅里叶变换(DFT)。对N点序列{xn},0≤n≤N,它的离散傅里叶变换(DFT)为:
其中,e是自然对数底数,i是虚数单位。用符号F表示这一变换,即:
离散傅里叶变换的逆变换(IDFT)为:
可以记为:
对计算所得的距离序列A={an}做离散傅里叶变换B=F·A。对于序列B,取前N′项值,获得子序列B′,当N′→N时,C=F-1B′→A。
如图 8所示,图8a~图8d分别为当N′=1,3,4,8时,离散傅里叶逆变换所恢复获得的序列。图8d中当N′=8时,序列C已经与原序列A(图7)比较接近,且有效地滤除了原序列A中部分噪声。
Figure 8 Inverse Fourier transform result图8 傅里叶逆变换结果
3 手势识别
支持向量机SVM(SupportVectorMachine)[5]是在统计学习理论的基础上发展起来的新一代机器学习方法,通常用来识别二分类问题。它在文本分类、手写识别、图像分类等领域获得了较好的应用。
采用适当的内积核函数可以实现从低维向高维空间的映射,从而实现某一非线性分类变换后的线性分类,而计算复杂度却没有增加。常用的核函数包括线性核函数、多项式核函数、径向基核函数RBF(RadialBasisFunction)和Sigmoid核函数。
作为一种对应于非线性映射的核函数,径向基核函数能够处理非线性可分的情况;通过适当地选择参数,径向基核函数总可以得到与带有错误代价参数C的线性核函数相同的结果;某些情况下,Sigmoid的行为类似于径向基核函数,但Sigmoid核函数参数不易确定;多项式核函数需要计算内积,这有可能产生计算溢出的问题。故引入带径向基核函数的支持向量机作为分类器,来对手势进行识别。
4 实验
4.1 实验数据
使用PrimeSense公司深度摄像机,采样图片分辨率设置为640×480,分别采集了10组,每组300个样本,总共3 000个常见手势。根据上文提出的手势定位方法,进行手势定位分割后的图像如图9所示。
Figure 9 Ten kinds of common gestures图9 10种常见手势
4.2 参数选择
在选择了RBF核函数的情况下,总共有两个参数需要确定,即RBF核自身的参数γ以及错误代价系数C。这是一个变量γ和C的优化问题,目标函数值是SVM对于测试集的识别率。
使用基于交叉验证和网格搜索的方法[15]来选择参数(γ,C)。将数据集合中3 000个样本取2 000个为训练集(Training),1 000个为测试集(Testing)。图 10显示对于训练集使用不同的特征向量长度,所获得的训练集上交叉验证的识别率与测试集上的识别率。
Figure 10 Gesture recognition rate with different spatial frequency cycles图10 不同特征向量长度的手势识别率
图 10中当空间频率周期取12时,训练集上交叉验证的识别率最高,达到98.6%,此时参数γ=8,C=8。由离散傅里叶变换(DFT):
可知,空间频率周期取12,即N=12,共有23个参数,即手的轮廓序列使用长度为23的特征向量。当N>12时,随着N的增长,识别率趋于稳定值。
4.3 实验结果与分析
选取长度为23的特征向量,参数γ=8,C=8,在Intel®CoreTMi5-2410MCPU@ 2.30GHz,8GBRAM,Windows7 64bit的系统上,识别1 000张手势图像,平均每张所需时间为0.15毫秒,测试集识别率为97.9%,识别结果的混淆矩阵如图11所示。
Figure 11 Confusion matrix of recognition results图11 识别结果混淆矩阵
由图11可见,手势3受深度图像分辨率影响,食指与中指处部分图像易产生粘连,影响识别率。手势9特征提取后的距离波形与手势2接近,少数手势9错分为手势2。
由图12可见,基于手形轮廓与轮廓形心点距离的特征提取方法(Contour-Distance),较RenZ等人[12]提出的基于Thresholding分解的FEMD方法(平均90.6%识别率)和基于near-convex分解的FEMD方法(平均93.9%识别率)具有更好的识别效果。RenZ等人[12]的两种方法都使用了深度摄像机,在特征提取阶段均需依赖于“blackbelt”的辅助标识,基于手形轮廓与轮廓形心点距离的特征提取方法具有更为自然的优点。
Figure 12 Recognition results contrast图12 识别结果对比
5 结束语
本文针对复杂背景条件下的手势识别问题,引入了深度摄像机来捕捉图像,提取深度图像中手形的轮廓与轮廓形心点的距离作为特征点,利用离散傅里叶变换获得特征向量,使用支持向量机训练分类器、识别手势,获得了较高的识别率,有效克服了肤色和场景对手势识别的影响,且该方法无需依赖其他辅助标识,较现有的方法具有更为自然的优点。
由于在分割手形时引入阈值,对图像进行了二值化操作,手势的部分三维信息被丢失。若保留手在空间中的三维信息,建立手的三维模型,将可以使手势识别获得更多的特征信息,进一步提高识别率。
[1]ACMSIGCHICurriculaforHuman-ComputerInteraction[EB/OL]. [2012-08-14].http://old.sigchi.org/cdg/cdg2.html#2_1.
[2]WachsJP,KölschM,SternH,etal.Vision-basedhand-gestureapplications[J].CommunicationsoftheACM, 2011,54(2):60-71.
[3]MurthyG,JadonRS.Areviewofvisionbasedhandgesturesrecognition[J].InternationalJournalofInformationTechnologyandKnowledgeManagement, 2009,2(2):405-410.
[4]CaoChu-qing,LiRui-feng,ZhaoLi-jun.Handposturerecognitionmethodbasedondepthimagetechnoloyy[J].ComputerEngineering, 2012,38(8):16-18. (inChinese)
[5]CortesC,VapnikV.Support-vectornetworks[J].MachineLearning, 1995,20(3):273-297.
[6]BourdevL,MalikJ.Poselets:Bodypartdetectorstrainedusing3dhumanposeannotations[C]∥Procofthe12thIEEEInternationalConferenceonComputerVision, 2009:1365-1372.
[7]RajkoS,QianC.AhybridHMM/DPAadaptivegesturerecognitionmethod[C]∥ProcofISVC’05, 2005:227-234.
[8]ShottonJ,FitzgibbonA,CookM,etal.Real-timehumanposerecognitioninpartsfromsingledepthimages[C]∥ProcofIEEEComputerSocietyConferenceonComputerVisionandPatternRecognition, 2011:3.
[9]MoZ,LewisJP,NeumannU.SmartCanvas:Agesture-drivenintelligentdrawingdesksystem[C]∥Procofthe10thACM
InternationalConferenceonIntelligentUserInterfaces, 2005:239-243.
[10]vandenBerghM,Koller-MeierE,BoscheF,etal.Haarlet-basedhandgesturerecognitionfor3Dinteraction[C]∥ProcofIEEEComputerSocietyonWACV, 2009:1-8.
[11]MistryP,MaesP,ChangL.WUW-wearUrworld:Awearablegesturalinterface[C]∥ProcofCHIEA’09, 2009:4111-4116.
[12]RenZ,YuanJ,ZhangZ.Robusthandgesturerecognitionbasedonfinger-earthmover′sdistancewithacommoditydepthcamera[C]∥Procofthe19thACMInternationalConferenceonMultimedia, 2011:1093-1096.
[13]PrimeSenseNaturalInteraction[EB/OL]. [2012-08-14].http://www.primesense.com/.
[14]HsuCW,ChangCC,LinCJ.Apracticalguidetosupportvectorclassification[Z]. 2003.
[15]ChangCC,LinCJ.LIBSVM:Alibraryforsupportvectormachines[J].ACMTransactionsonIntelligentSystemsandTechnology(TIST), 2011,2(3):27.
附中文参考文献
[4] 曹雏清, 李瑞峰, 赵立军. 基于深度图像技术的手势识别方法[J]. 计算机工程, 2012,38(8):16-18.
XUKai,born in 1983,MS candidate,his research interests include computer vision,machine learning,and data mining.
王敏(1978-),女,江苏镇江人,博士,副教授,研究方向为计算机视觉、机器学习、图像处理与分析。E-mail:mwang@hhu.edu.cn
WANGMin,born in 1978,PhD,associate professor,her research interests include computer vision,machine learning,image processing and analysis.
Handgesturerecognitioninadepthimagebasedonhandcontour
XU Kai,WANG Min
(College of Computer and Information,Hohai University,Nanjing 211100,China)
A new hand gesture recognition method is proposed,which extracts hand contour from a depth image.The distance between hand contour and the center of contour is calculated, the representation feature of the hand gesture is obtained by using Discrete Fourier Transform (DFT),and the hand gesture is identified by using Support Vector Machine (SVM) with Radial Basis Function (RBF).A dataset with 10 common hand gestures are established in order to demonstrate the effectiveness of the proposed method and achieve about 97.9% recognition rate.
depth image;hand gesture recognition;support vector machine;discrete Fourier transform (DFT)
1007-130X(2014)05-0941-06
2012-11-30;
:2013-01-21
教育部新世纪优秀人才支持计划(NCET-10-0327);中央高校基本科研业务费项目(2009B21014);国家自然科学基金资助项目(30700183);教育部博士点基金项目(20070294001)
TP391.41
:A
10.3969/j.issn.1007-130X.2014.05.026
许凯(1983-),男,江苏苏州人,硕士生,研究方向为计算机视觉、机器学习和数据挖掘。E-mail:Cauchy_xu@163.com
通信地址:211100 江苏省南京市河海大学计算机与信息学院
Address:College of Computer and Information,Hohai University,Nanjing 211100,Jiangsu,P.R.China