基于Kinect骨骼信息和改进重心距离法的指尖识别

2014-09-17 14:18:39樊景超周国民
电脑知识与技术 2014年22期

樊景超 周国民

摘要:针对肤色识别易受环境影响问题,提出了一种基于Kinect骨骼信息和改进重心距离法的手指指尖识别方法。首先采用微软Kinect 摄像头获取人体骨骼信息,并将双手坐标点的三维信息转换成彩色图上的二维信息进行手掌区域的提取。然后利用OpenCV基于肤色检测算法将手掌轮廓从背景图像中分割出来。最后针对重心距离法鲁棒性差的特点提出一个改进因子。实验结果证明,该方法可以高效地检测出手指的指尖位置,识别出人体的手指。实验结果表明该方法能有效排除类肤色区域和手指轮廓不足对指尖检测造成的影响, 具有较高的检测精度。

关键词: 骨骼跟踪;指尖识别;Kinect

中图分类号:TP18 文献标识码:A 文章编号:1009-3044(2014)22-5287-04

在与计算机、手机等智能设备进行人机交互过程中,手都起到了非常重要的作用。随着计算机技术的飞速进步,但是鼠标、键盘作为传统的人机交互设备从第一台计算机应用以来仍然占据着主导地位。最近,一些革命性的控制器和传感器被发明,用于实现更自然的人机交互,例如数据手套,触摸显示屏、语音合成器、位置跟踪器等等。用户为了获得较高的精度不得不与设备的不便和束缚想妥协。手部的方位、运动、姿势都包含了重要的人机交互信息[1-6],因此手部识别提供了一种非常诱人的人机交互方法,由于其具有不依赖复杂的硬件设备的有点,拥有广泛的应用前景和研究价值。为了让计算机能理解我们手的行为, 首先必须让计算机能够“看到”它,国内很多学者展开了基于单目机器视觉的手势识别研究[7-14]。

随着微软体感周边外设Kinect的推出, 让我们有机会采用比较低的成本实现三维空间中用户及手的识别, 从而让大众都有可能享受到便捷的人机交互方式。该文利用Kinect 传感器的骨骼跟踪技术,从复杂背景下首先提取出手部图像,然后利用手部肤色一致这一特征提取出手部的外围轮廓,最后通过改进重心距离法来提取出指尖位置。

1 算法描述

本文采用了微软公司的Kinect外设作为用户信息采集手段。程序分为三个模块,分别是手掌提取、轮廓提取和指尖识别。三个功能模块顺序执行来完成指尖的最终识别。

1.1手掌区域提取

指尖识别的第一步是获取用户手掌所在的图像区域,基于机器视觉的获取方法首先要消除背景信息和自身其他肤色如脸部和手臂的干扰。Kinect传感器可以同时获取RGB彩色图像和深度数据,使用微软提供的Kinect SDK程序可以从Kinect骨骼数据流中获取骨骼三维坐标信息。将坐标信息映射到获取的彩色图像上,对于关节点用圆形显示,各个关节之间用直线连接。将用户的骨骼信息绘制到彩色图像上以判断获取的骨骼信息是否正确。

边界提取算法如下:从深度图像中提取出人体的双手的三维坐标信息,以投射到彩色图像平面的坐标点(x,y)为中心,设定一个初始最大正方形边长乘以一个距离系数来获取手部区域。距离系数=1-Duser/Dmax。其中Duser是测试者手部与Kinect探头之间的距离,Dmax是Kinect的最大有效探测距离。根据该公式,获取的用户手部区域会根据用户的远近进行动态变化以有效提取手部。图1是测试者距离Kinect探头的距离在1.3m的骨骼信息和手掌提取测试截图,经过实验验证设定的矩形区域边长为80像素可以完整包围手部。

1.2轮廓提取

手部提取获取的是一个包含手掌轮廓的矩形区域,指尖识别的第二步就是从该区域中提取中手掌的外部轮廓,为指尖识别做准备。考虑到手部特征Kinect彩色摄像头提取到的主要特征有颜色和形状这两种最明显的特征[15]。形状是指手部特有的形状手指从手掌向外延伸,但是手势人体最灵活的部分,它具有高度自由,从而导致手型有多重变化,因此很难找到一个特征提取的规律,而颜色也就是肤色,不但容易识别而且非常均匀,容易识别。肤色提取仅仅需要对检测图像中符合的颜色进行提取。

基于肤色的手部提取是利用人体的肤色特征,该方法不受目标位置、角度和大小的影响,具有较强的稳定性。在手部识别中,由于手部肤色在背景中突出且颜色均匀,肤色作为手部的重要特征可以作为检测手部的识别条件。在肤色判定之前,需要确定使用的颜色空间,并且在颜色空间中建立肤色模型。在得到手部图像后使用OpenCV的canny算子得到手部的外轮廓边缘,并将轮廓的重心作为掌心。图2中所示是将提取的手掌区域经过肤色提取、canny算子和重心提取的过程截图。

1.3指尖识别

指尖识别使用的是如图3所示的重心距离法[16],红色点是手的重心,那么手的边缘的所有点与重心点的距离按顺时针方向或者逆时针方向遍历,将出现峰值的轮廓点作为指尖的候选点。根据手指特点正常情况下,手指的y坐标应该高于掌心坐标,因此遍历完外围轮廓之后,将候选点的坐标与掌心坐标进行比对,低于掌心坐标的候选点将予以剔除。

图4测试者双手的变化手型的和指尖识别的测试截图,测试者一共设计了7个双手手型,双手对称,从测试结果来看测试结果不够理想,产生这种结果的主要原因是重心距离法是一种粗糙的识别方法,手指峰值的识别方法对与Kinect采集的彩色图像并不适用,Kinect的有效距离是0.8m~4m。因此导致手部区域在Kinect彩色图像上所占区域较小,即有效像素较少。而原有手指峰值的认定方法需要在峰值区域找到40个连续下降点,才认定该点为指尖。

为了解决该问题,该文提出一种改进型的重心距离法:首先将指尖峰值的认定参数调低由40个连续下降点减少到20个,但是该方法带来的问题是引入了错误指尖,很容易将手指根部的关节处也认定为手指指尖。因此本文根据手指和关节处到掌心的距离特点,对指尖候选点增加了一个过滤条件:满足公式1才能确认为指尖,否则剔除。公式中Dcur代表当前峰值到掌心距离,Dmax代表最大峰值距离,Dmin代表最小峰值距离(该点一般为关节处)。即当前峰值与关节的落差应该超过最大手指峰值与关节点的1/3。即手指完全伸开的情况,手指之间的落差不会太大。

2 实验结果

本 文 使 用的计算机配置为Intel(R)Xeon Processor 3.4GHz,4.00GB 内存,摄像头是一个Kinect for XBOX 摄像头。系统运行时Kinect 彩色摄像头的分辨率是640*480,视频帧的速率为30fps。利用Microsoft Visual Studio 2010 作为系统开发平台,并结合微软公司发布的MicrosoftKinect SDK 工具包以及Opencv 2.4.7版本完成上述手指指尖识别实验。

2.1手掌提取测试

Kinect 摄像头能提供距离范围在0.8~ 4米的深度图像。针对人到 Kinect 摄像头不同的距离Z,测试其手势分割情况。测试结果如图6所示。

实验结果是在测试者距Kinect设备最近0.8m和最远处3.8m处的实验结果,从图6中可以看出 Microsoft Kinect SDK提供的骨架跟踪技术可以有效的提取手部区域。

2.2 指尖识别测试

为了测试Kinect在不同距离上应用改进后重心距离法进行指尖识别的精度,实验设计了四个不同的距离进行指尖识别的实验,每次试验分别测试手指1指到5指的识别的情况,测试基数为30个,识别结果如表1所示。

由实验可知,随着距离的有近及远,手指的识别率逐步降低,主要原因是随着距离的增加,人手指的像素点会变少、手指之间的像素点会变得模糊。

3 结论

本文设计并实现了基于Kinect 精确捕获被测对象骨骼信息空间坐标数据体骨骼信息并与OpenCV相结合的手指指尖识别方法,能够检测识别手掌轮廓以及伸直和弯曲的手指。相比于传统的基于肤色的指尖识别方法,该文方法增加了人体骨骼信息,能够快速地找到手掌位置并以此为基础追踪手掌轮廓和识别指尖。通过改进重心距离法有效提高了指尖识别的鲁棒性。同时该研究还有一定的不足,由于Kinect本身在环境光线较弱时,对识别对象的检测没有较好的防抖处理,所以在操作时会发生抖动产生的误差干扰。相信本研究必将在更广阔的领域得到更深层次的应用。

参考文献:

[1] 任雅祥.基于手势识别的人机交互发展研究[J].计算机工程与设计,2006,27(7)1201-1204.

[2] 李勇,高文,姚鸿勋.基于颜色手套的中国手指语字母的动静态识别[J].计算机工程与应用,2002,17,55-58.

[3] 李清水,方志刚,沈模卫等.手势识别技术及其在人机交互中的应用[J].人类工效学,2002,8(1)27-31.

[4] 曾维.手势识别系统中手指及指尖检测方法[J]研究与开发,2013,32(4)39-42.

[5] 邹伟,原魁,刘贤华等.一种单手动态手指语的识别方法[J].信息与控制,2003,32(1)28-33.

[6] 于蕴杰,管业鹏,熊会军.指势识别的实时指尖提取[J].计算机工程与应用,2011,47(6)219-223.

[7] 男睿.基于单目视觉的手指识别跟踪系统设计[D].哈尔滨:哈尔滨工业大学,2013.

[8] 马志强.电脑游戏中基于计算机视觉的手势识别技术研究[D].南京:南京师范大学,2012.

[9] 周航.基于计算机视觉的手势识别系统研究[D].北京:北京交通大学,2007.

[10] 邬大鹏.基于视觉的手势识别及人机交互研究[D].南京:南京航空航天大学,2010.

[11] 贾建军.基于视觉的手势识别技术的研究[D].哈尔滨:哈尔滨工业大学,2008.

[12] 郭兴伟.基于视觉的手势识别算法研究[D].上海:上海海运学院,2003.

[13] 王冉冉.基于视觉的手势识别在智能电视上的应用研究[D].青岛:中国海洋大学,2013.

[14] 吴浩.基于视觉的应用于智能控制的手势识别技术的研究[D]成都:电子科技大学,2008.

[15] 张登康,郭太良,姚剑敏等.改进肤色识别参量和轮廓特征相结合的指尖检测[J].光电子技术,2012,9(3):185-189.

[16] OpenCV简单粗糙的指尖检测方法: http://blog.csdn.net/augusdi/article/details/8865589.