基于手指轮廓和决策树的静态手势识别方法

文档序号:6547295阅读:598来源:国知局
基于手指轮廓和决策树的静态手势识别方法
【专利摘要】本发明公开了一种基于手指轮廓和决策树的静态手势识别方法。该方法首先使用Kinect的深度图像作为数据源,通过Kinect骨骼追踪功能定位手掌的大致坐标,以该坐标为中心截取出包含手掌的一块正方形区域;然后使用自适应邻近值法对该区域进行前景检测,对前景图像进行适当的图像形态学处理后,检测手掌轮廓;接着使用圆周序列曲线对手掌轮廓进行建模,利用极值点对法准确地区分出各个手指轮廓和手腕轮廓并建立手势特征集;最后使用多个决策树针对不同手指个数的手势特征集分别进行训练以及识别。
【专利说明】基于手指轮廓和决策树的静态手势识别方法
【技术领域】
[0001]本发明涉及计算机视觉的图像处理方法,特别是一种从深度图像中采用基于手指轮廓和决策树的静态手势识别方法。
【背景技术】
[0002]静态手势识别的研究重点对象是手的姿态和单个手形,通常是基于视觉的2D手势识别,通过颜色、深度或运动将手部区域分割出来,再对之进行各种特征提取,然后训练分类器,最后进行测试。最简单的静态手势识别系统,即通过寻找有几个指头来区分数字手势,无需设计分类器,但对复杂手形识别无效。目前常用的可对复杂手形进行识别的算法包括基于模板匹配的方法、基于神经网络的方法等。
[0003]模板匹配是一种最原始、最基本的模式识别方法,也是常用的静态手势识别方法。当识别对象以图像的形式表现时,根据该对象与预先建立的一组手势模板库中的模板逐一比较,得到与之相似度最大的模板,得出被测手势即属于该模板所属类别的方法,叫做模板匹配。这种方法的缺点是当模板库较大值,该方法的识别速度会较慢。基于神经网络的方法具有分类特性及抗干扰性,具有自组织和自学习能力,具有分布性特点,能有效抗噪声和处理不完整的模式以及具有模式推广能力。该方法的特点是需要进行大量的实例学习。

【发明内容】

[0004]发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于手指轮廓和决策树的静态手势识别方法,从而针从Kinect的深度图像快速准确地识别出静态手势。
[0005]为了解决上述问题,本发明公开了一种基于手指轮廓和决策树的静态手势识别方法,包括以下步骤:
[0006]步骤1:获取Kinect的深度图像及使用Kinect for Windows SDK中的骨骼追踪技术获取手掌心坐标Stl,同时以掌心坐标Stl为中心截出一块包含手掌图像的正方形区域;
[0007]步骤2:采取自适应邻近值法对深度图像进行分割,以取得精确的手掌轮廓和手腕的大概方位,然后对手掌轮廓进行图像形态学处理以降低手掌轮廓的细节;
[0008]步骤3:对手掌轮廓进行椭圆拟合,以椭圆圆心为轮廓的几何中心S1,建立圆周序列曲线,求出圆周序列曲线上的所有极大值和极小值,并使用一个极大值和左右各一个极小值构成极值点对;
[0009]步骤4:求极值点对内的所有轮廓点,通过计算每个轮廓点的梯度排除掉不合适的轮廓点,剩下的部分便是手指轮廓或是手腕轮廓;
[0010]如果步骤2获取了手腕的大概方向,那么所在方向的轮廓便是手腕轮廓,如果步骤2未曾获取手腕轮廓,那么比较各轮廓的宽度,取其中宽度最大的且比任何其他的轮廓宽度均大两倍以上的为手腕轮廓;
[0011]从手掌轮廓内减去所有的手指轮廓和手腕轮廓,对剩下的手掌轮廓进行椭圆拟合,取椭圆圆心为手掌中心S2 ;
[0012]步骤5:求出各手指的宽度、长度、面积、夹角、指尖之间的欧几里德距离、指根之间的欧几里德距离、指中心之间的欧几里德距离以及指尖到手掌中心S2的欧几里德距离作为特征向量建立特征集;
[0013]步骤6:针对相同手指个数的手势使用决策树对特征向量进行训练,这样便会产生多个决策树,在识别的时候先比较手指个数,然后再使用相应的决策树进行分类。
[0014]本发明步骤2中,邻近值法指利用掌心坐标及其深度信息,使用一个先进先出队列Q进行前景检测,从而把前景手掌提取出来。具体执行过程如下:先将所有像素点置为白色,掌心坐标Stl因为已被发现,所以设为源像素,置为灰色同时入队。只要队列不为空,就循环执行出队操作,对于每一个出队的像素点Pij如果Pij与掌心坐标Stl的深度值之差不超过Threshold,则将该像素置为黑色,否则置为白色。如果为黑色则计算该像素Pij的深度值及与其曼哈顿距离为I的所有白色像素Pwhile的深度值之差,其中差不超过I的就将Pwhile设为灰色Pgray同时入队列。当队列为空时,算法终止,标为黑色的像素便是前景像素。
[0015]自适应邻近值法指不强行规定Threshold应该取何值,每次进行前景检测时Threshold的值先从3开始取,然后依次递增分别使用邻近值法获取前景图像,当连续两次进行前景检测所得前景图像差别已经不大时,表明已经趋向于稳定,算法终止,Threshold的值不用再递增。取已经稳定的前景图像与上一次并未稳定的前景图像之差,这个差值图像里最大的一块区域便是手腕的位置。
[0016]在取出手掌前景图像后,对前景图像进行形状学处理。具体是指:先对图像作腐蚀操作,然后再做膨胀。这个处理是为了减少图像轮廓的细节。
[0017]本发明步骤3中,对手掌轮廓进行椭圆拟合,以椭圆圆心为轮廓的几何中心S1,然后使用圆周序曲线来表示手掌轮廓。圆周序列曲线是手指轮廓的另一种表示形式,它在X轴上的360个刻度,Y轴表示手掌轮廓上各角度X的点距手掌几何中心S1的最大欧几里德距离(同一角度下可能存在几个轮廓点的情况,取其中距离最大的一个)。圆周序列曲线的意义是将整个手掌轮廓以几何中心S1进行360度展开。
[0018]使用极值点对法对圆周序列曲线上的点进行运算,求出所有的极大值点和极小值点作为候选极大值点和候选极小值点。对于这些候选极值点,通过以下条件进行逐个筛选:
[0019](I)对于相连的几个极大值点,取出其中最大的一个;
[0020](2)两个极大值点之间有且只有两个极小值点,如果大于两个,则将中间的候选极小值点删掉,留下两边的,如果只有一个,则复制一个跟它一样的极小值点;
[0021](3)将一个极大值点和紧帖在它两边的两个极小值点组成一组极值点对,每组极值点对为一根候选手指或候选手腕,计算各组点对中极大值与极小值的平均差,对于平均差较小的点对,属于干扰点对,从候选手指中删除。
[0022]本发明步骤4中,取出极值点对中所包含的所有轮廓点,以极大值点为中点分为左右两部分,对左边部分上的每一个轮廓点求它的梯度方向上的直线是否能与右边部分相交,如果不相交,则该轮廓点作为孤立点从手指轮廓或手腕轮廓中剔除;取对右边部分上每一个轮廓点求它的梯度方向上的直线能否与左边部分相交,如果不相交,则该轮廓点作为孤立点从手指轮廓或手腕轮廓中剔除;在删除两头部分孤立点之后,取剩下的轮廓为手指轮廓或手腕轮廓。之所以进行梯度运算是因为极值点对所求出的结果会带有一些多余的部分,这多出的部分会影响手指的形状,以至于影响最终的结果。
[0023]本发明步骤5中,选取以下特征用于训练器的学习与分类:
[0024](I)各手指的宽度值。手指的宽度(FingerWidth)为使用椭圆对手指轮廓进行拟合所得到的短轴长。拟合后的椭圆使用类MCvBox2D表示,因此有:
[0025]Fingerffidth = MCvBox2D.Size.Width
[0026]其中类McvBox2D来自于EmguCV, EmguCV是一个开源的计算机视觉库,如果该类所表示的是一个椭圆,那么McvBox2D.Size.Width指椭圆的短轴长。
[0027](2)各手指的长度值。手指的长度(FingerLength)为指尖到两个指根中间的距离。设Max表示指尖,Min表示指根,于是有FingerLength的值为:
[0028]
【权利要求】
1.一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,包括以下步骤: 步骤1:使用Kinect for Windows SDK获取包含手掌深度图像的正方形区域以及掌心坐标S。; 步骤2:采取自适应邻近值法对深度图像进行分割,然后对手掌轮廓进行图像形态学处理; 步骤3:对手掌轮廓进行椭圆拟合,以椭圆的圆心为轮廓的几何中心S1,建立圆周序列曲线,求出圆周序列曲线上的所有极大值点和极小值点,并使用一个极大值点和左右各一个极小值点构成极值点对来表示手指轮廓和手腕轮廓; 步骤4:求极值点对内的所有轮廓点,通过计算每个轮廓点的梯度确定手指轮廓和手腕轮廓,然后根据轮廓的宽度差异识别出手腕轮廓,再减去手指轮廓和手腕轮廓后,使用剩余轮廓重新估算手掌中心S2 ; 步骤5:求出各手指的宽度、长度、面积、夹角、指尖之间的欧几里德距离、指根之间的欧几里德距离、指中心之间的欧几里德距离以及指尖到手掌中心S2的欧几里德距离作为特征向量建立特征集; 步骤6:针对相同手指个数的手势使用决策树对特征集进行训练,在识别的时候先比较手指个数,然后再使用相应的决策树进行分类。
2.根据权利要求 1所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤 I 中,在 Kinect 上加载 Kinect for Windows SDK 的 API。
3.根据权利要求2所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤3中,使用圆周序列曲线对手掌轮廓进行建模的方法是: 创建一个360X240的图像,其中X轴表示以手掌几何中心S1为中心的360个角度,Y轴表示各个角度下的手掌轮廓点到S1的欧几里德距离,如果同一角度下存在两个以上轮廓点,则Y值取欧几里德距离最大的一个。
4.根据权利要求2所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤3中,使用极值点对法对圆周序列曲线求极值点对的方法是: 求出圆周序列曲线上的所有极大值和极小值,其中极大值表示手指指尖,极小值表示手指指根,通过一个极大值和左右各一个极小值来表示手指的轮廓,去掉其它极值; 去掉其它极值包括以下步骤: 对于相连的几个极大值点,取出其中最大的一个; 两个极大值点之间有且只有两个极小值点,如果大于两个,则将中间的候选极小值点删掉,留下两边的,如果只有一个,则复制一个跟它一样的极小值点; 将一个极大值点和紧贴在它两边的两个极小值点组成一组极值点对,每组极值点对为一根候选手指或候选手腕,计算各组点对中极大值与极小值的平均差,对于平均差较小的点对,判定为干扰点对,从候选手指中删除。
5.根据权利要求4所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤5中,对手指轮廓进行梯度运算的方法是: 取出极值点对中所包含的所有轮廓点,以极大值点为中点分为左右两部分,对左边部分上的每一个轮廓点求它的梯度方向上的直线是否能与右边部分相交,如果不相交,则该轮廓点作为孤立点从手指轮廓或手腕轮廓中剔除;对右边部分上每一个轮廓点求它的梯度方向上的直线能否与左边部分相交,如果不相交,则该轮廓点作为孤立点从手指轮廓或手腕轮廓中剔除;在删除两头部分孤立点之后,取剩下的轮廓为手指轮廓或手腕轮廓。
6.根据权利要求4所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤5中,建立特征集中包括的特征向量的计算方式如下: 各手指的宽度值,手指的宽度为使用椭圆对手指轮廓进行拟合所得到的短轴长; 各手指的长度值,手指的长度为指尖到两个指根中间的欧几里德距离; 各手指轮廓区域的面积,将各手指轮廓的极小值轮廓点相连得到的闭合区域面积作为手指的面积; 相连手指的夹角以及与手腕相连手指到手腕的夹角,该夹角指相连两根手指轮廓所拟合椭圆的长轴的夹角; 两两手指间的间距,所述间距指两两手指指尖之间、指根之间及指中心之间的欧几里德距离; 各手指距掌心距离,指各个手指的指尖距手掌心S2的欧几里德距离。
7.根据权利要求5所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,在步骤3中对圆周序列曲线求极值点对作为第一次分类,步骤6中,使用决策树进行训练及识别的方法是: 针对手指个数相同的手势,采用了决策树进行第二次分类;分别对单指、双指、三指、四指、五指的训练单指决策树、双指决策树、三指决策树、四指决策树和五指决策树,然后按手指的个数使用相应的决策树进行识别。
8.根据权利要求5所述的一种基于手指轮廓和决策树的静态手势识别方法,其特征在于,步骤2中,邻近值法指利用掌心坐标及其深度信息,使用一个先进先出队列Q进行前景检测,从而把前景手掌提取出来;具体处理过程如下: 先将所有像素点置为白色,设掌心坐标Stl为源像素并置为灰色同时入队列Q,只要队列不为空,就循环执行出队操作;对于每一个出队的像素点Pu如果Pu与掌心坐标Stl的深度值之差不超过阈值Threshold,则将该像素置为黑色,否则置为白色;如果为黑色,则计算该像素Pij的深度值及与其曼哈顿距离为I的所有白色像素Pwhile的深度值之差,其中差不超过I的就将Pwhile设为灰色像素Pgray同时入队列;当队列为空时,终止,标为黑色的像素便是前景像素; 每次进行前景检测时阈值Threshold的值先从3开始取,然后依次递增分别使用邻近值法获取前景图像,当连续两次进行前景检测所得到的前景图像的像素个数之差小于10时,终止,阈值Threshold的值不用再递增;取已经稳定的前景图像与上一次的并未稳定的前景图像之差,这个差值图像里最大的一块区域便是手腕的位置。
【文档编号】G06K9/00GK103971102SQ201410217546
【公开日】2014年8月6日 申请日期:2014年5月21日 优先权日:2014年5月21日
【发明者】路通, 胡炜 申请人:南京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1