基于Kinect深度图像信息的手势分割和指尖检测算法
2022-06-15
来源:知库网
第29卷第1期 西南科技大学学报 V01.29 No.1 2014年3月 Joumal of Southwest University of Science and Technolog ̄ Mar.2014 基于Kinect深度图像信息的手势分割和指尖检测算法 徐鹏飞张红英 (西南科技大学信息工程学院四川绵阳621000) 摘要:为克服传统二维彩色图像处理算法易受周围环境、光照变化、背景等因素的影响,提出利用Kinect深度图像信 息,实现一种快速鲁棒的手势分割与指尖检测算法。首先,根据Kinect得到的深度信息对非人体部分图像进行筛 选,得到包含人手的人体图像;然后对当前得到的人体图像进行直方图分析,计算能够区分人手与非人手的阈值,并 通过该阈值对人体图像进行分割得到人手图像;最后,对人手图像进行形态学处理,计算掌心位置,并提取手部轮 廓,结合人手轮廓关键几何特征对指尖进行有效检测。实验表明,该方法能够实时、有效地对指尖进行检测。 关键词:体感相机深度图像手势分割指尖检测类问方差 中图分类号:TP391.41 文献标志码:A 文章编号:1671—8755(2014)01—0049—06 Hand Gesture Segmentation and Fingertip Detection Based on Depth Image of the Kinect XU Peng—fei,ZHANG Hong—ying (School of Information Engineering,Southwest University of Science and Technology, Mianyang 621000,Sichuan,China) Abstract:To overcome the traditional two—dimensional color image processing algorithm which is suscep— tible to the surrounding environment,illumination and background,a fast and robust hand gesture seg- mentation and fingertip detection algorithm based on Kinect depth image information was presented.First, the depth information of Kinect was used to filter the non——human part of the image and keep the human body part which contains hands;second,the histogram of the human body part which contains hands was analyzed to calculate the threshold value which is able to distinguish the torso and hand,then get the hand region by segmenting the image with the threshold value;finally,the image of hand region was processed morphologically to calculate the palm position and extract the contours of the hand.The fingertips was de。 tected effectively by the key geometric features of the contours.Tests verified the speed and accuracy of this method. Key words:Kinect;Depth image;Hand gesture segmentation;Fingertip detection;Inter—class variance 进入计算机时代以来,人机交互技术一直相对 传统交互方式已经不能满足人们各个方面的需求。 单一,传统的鼠标键盘交互方式给人们的生活学习 随着计算机视觉技术的不断发展,越来越多的研究 带来很大局限性,特别是近年来生活水平不断提高, 者们通过手势运动跟踪以及手指状态来实现非接触 收稿日期:2013—08—12 基金项目:国防预研基金项目(B3120110005);国家自然科学基金项目(60802040)。 作者简介:徐鹏飞(1988一),男,硕:I=研究生。通讯作者:张红英(1976一),女,教授,主研方向为图像处理和图像分析、计算机视觉等。 E—mail:zhy0838@163.com 50 西南科技大学学报 第29卷 式的人机交互 。 准确的手势分割和指尖检测是进行手势识别的 前提,在动态手势识别中加入多个指尖的运动轨迹 特征就能够大量增加手势种类。如果能够通过手指 移动完成隔空操作,那肯定会比挥动手臂操作有更 好的用户体验。当前手势交互的研究主要集中在基 于二维彩色图像的研究上,如:根据各种颜色空间、 人手的纹理结构分析、灰度特征或者运动特征等来 对目标进行检测与跟踪。Rafael Bastos_3 等人利用 HSV空问进行肤色分割,曹建秋 等人利用YCbCr 空间进行肤色分割。利用不同的颜色空间进行肤色 分割有不同的效果,一般而言,在光照变化较大的情 况下,利用YCbCr空间进行肤色分割的效果较好, 而在正常的光照条件下,利用RGB空间进行肤色分 割的效果较好。由于人种肤色差异较大,这一点也 限制了利用肤色进行图像分割的应用范围。于 洋 等人通过结合灰度级直方图和设置动态阈值 的方法进行手势识别和分割,达到了较好的效果。 Schwarz L A 等人采用健壮性检测解剖标志以及 约束化逆运动学,结合光流法来检测运动姿势。但 由于二维图像无法获取物体在三维空间中的距离信 息,相关的算法容易受到周围环境、光照变化、背景 等因素的影响,在目标检测与跟踪上鲁棒性较差,难 以实现复杂场景下的任意目标检测和实时跟踪,应 用受到很大的限制。 本文通过引入Kinect摄像机来得到场景中的 深度信息,有效分离目标与背景;使用最大类问方差 法与固定阈值相结合的方法,分割出手势区域;利用 手部轮廓几何特征、曲率特征标记指尖位置,实现实 时的手势分割与指尖检测。 1 手势分割 基于深度图像的手势分割和指尖检测系统包含 四大部分:深度图像采集、手势分割、指尖检测以及 检测结果输出。整个系统的流程图如图1所示。 1.1深度图像获取 Kinect是由微软开发的体感摄像机,最主要功 能之一就是能够产生三维深度数据。深度数据流所 提供的图像帧的每一个像素点代表的是在深度感应 器的视野中,在( ,Y)坐标处离摄像头平面最近的 物体到该平面的距离(以毫米为单位)。其传感器 传回的数据每像素占2字节(16位),其中低3位存 储用户编号,用于用户的识别。高13位存储深度 值。获取的图像中深度值最大为4 096 mm,0值通 常表示深度值不能确定,一般应该将0值过滤掉。 微软建议在开发中使用1 220~3 810 mm范围内的 值。在进行其他深度图像处理之前,应该使用阈值 方法过滤深度数据至1 220~3 810 mm这一范 围内 在实际场景中,各个物体的深度分布是离散的, 故本文采用先从当前场景中分割出人体,再从人体 图像中分割出人手图像的方法。 深度图像序列 l 手势分割(具体算法如下) l 匦 墅例——网 图1系统总流程图 Fig.1 The total system flowchart 1.2深度图像预处理 由于Kinect获取的深度图像是不稳定的,其中存 在一些空洞和噪声,以及物体边缘的深度值不稳定,直 接处理会对算法的效果造成影响,所以需要进行一些 滤波和形态学操作等,以提高分割和检测的准确性。 1.2.1图像滤波 传统滤波算法有均值滤波、中值滤波、低通滤波 等。均值滤波算法比较简单、易于实现,但是会使目 标边缘模糊,且对零值噪声敏感,影响后续处理。由 于深度图像中噪声多为0值点,即摄像机无法获取 深度值的点,中值滤波可以有效去除噪声点,也降低 了目标边缘的模糊程度。所以本文采用中值滤波算 法进行去噪。中值滤波法是一种非线性平滑技术, 它的基本原理是通过使用滑动窗口扫描整幅图像, 将窗口内所有点的像素值按大小顺序排列,找到其 52 西南科技大学学报 第29卷 为0的点是背景点,直接将其排除计算,图像中人体 部分总的像素点数为N=N + +…+ 一 。灰度 值为i的点的概率为:p :N。/Ⅳ。设阈值t,将图像 分为躯干A=(1,2,3,…,t)和人手B=(t+1,t+2, t+3,…,L一1)两个部分。则两类出现的概率为: PA=> P (3) PB=> P。=1一PA (4) 躯干和人手的灰度均值为 A= ip。/pA (5) => /p (6) 灰度图像的总均值为 o=P^(cJ^+PB B:> (7) 由此,可以得到人手区域和躯干区域的类间方差 =pA( A一 o) +pB((【J日一 o)。 (8) 类间方差越大,两类灰度差别就越大。则使得类间 方差 最大的t即为所求的最佳阈值 。 £= Ma x Ep ( 一 。) +p ( 一 。) ](9) 一由于后续工作只需对人手图像进行操作,而此 时得到的图像有可能含有部分手臂图像,因此,再设 置阈值 ,结合自适应阈值得到的t,可以较好的得 到手部图像。 依据该阈值分割出手部图像 dst c ,y ={ 若src‘ 姜)世 c 。 如图4所示,该方法能够得到比较好的分割效果。 一一 图4手势分割效果 Fig.4 The effect of hand gesture segmentation 2 指尖检测 指尖检测算法中,建立三维手指模型的计算量较 大,因此在实时系统中应用很少。基于二维手指模型 的检测分为指尖的空间位置检测和二维平面位置检 测。指尖的空间位置检测一般需要复杂的计算。因此 在许多实时系统中,主要是检测指尖在二维平面上的 位置。检测指尖二维平面位置的方法可以分为3类: 轮廓分析 、模板匹配 和直观启发式方法E ]。 鉴于深度图像的特征:人离摄像头较远,分辨率 较低,手部图像模糊,不适用传统的模板匹配等方 法。本文采取的方案是:首先,计算获得图形质心; 其次,提取手部轮廓信息;最后,计算轮廓上各个点 到质心的距离,判定指尖。由于指尖为突出部分,所 以轮廓各点到掌心距离会有一个急剧的先变大再变 小过程,而手腕、手掌边缘不具有这些特征,通过合 适的阈值设置即可快速的检测出指尖。 指尖检测步骤如下: (1)首先计算图像的矩并得到质心 r∞ r∞ m明=J J x'y ,( ,Y)dxdy (11) 为(P+q)阶矩,J『( ,Y)是被描述的区域。其0阶 矩为: m∞=> > ,( ,Y) (12) y 1阶矩为: m。0=∑ZxI( ,Y), m。 =∑∑yl( ,Y) (13) 因此,图像形状的质心为: =——.: . =—— 一Y: (14 l l斗J moo moo (2)设P( ,Y )为轮廓上的点,根据得到的人手图 像进行轮廓提取并计算轮廓上点P( ,Y )距离质心 的距离D: D=( 一x) +(Y 一夕) (15) 顺时针或者逆时针遍历轮廓上所有的点,就会 出现5个较大峰值,分别对应5个手指。手腕处的 距离变化速度明显小于指尖处。如果只伸出一两个 手指,那么就只有一两个峰值了。 (3)判定指尖:将t个手部轮廓连续像素分为一组 P={P。,P ..P },在各组中寻找距离极大值的 点P…。然后以此点开始按顺时针、逆时针方向各 抽样一个点(P…一 ,P…+ ),如果满足IP 一P…一 l > 且I P…一P…+ I> r则认定P…为指尖,如果 不满足则说明此段序列中无指尖。在认定为指尖的 P…中,计算任意两点的距离,距离太近的删除其中 一个,以排除分段点正好位于指尖位置时出现两个 都可认定为指尖的点。 54 西南科技大学学报 第29卷 测正确定义为:伸出几个手指就检测到几个指尖,多 正确率较高,在环境变化的情况下仍能保持较好的 鲁棒性。 检、漏检均为错误。指尖数目平均检测正确率为 97.9%。从结果可以看出不同手指数目的总体检测 表1检测正确率 TaMe 1 Detection accuracy rate 表2对比了本文方法与曲率法检测指尖的精度 (指尖实际位置为指尖正中间)及消耗时间。可以 看出指尖检测精度差别不大,但是本文算法耗时较 短。指尖位置产生误差的原因为:某些手势下,指尖 点并非是距离掌心的最远点,可能是其旁边的像素, 因而造成数个像素的误差。 表2实验误差与耗时比较 Tab.2 Experimental error and time consumption 通过以上实验可见,基于深度信息的手势分割 能够在各种情形下有效分割出手部图像,稳定快速 地进行指尖检测。但是深度图像也有其局限性。如 图8所示,左图为人手在距离摄像头1.7 m时,右图 为人手在距离摄像头1.2 m时,结果表明由于设备 精度问题,在1.7 m时能检测出伸出手指的个数,但 是对于指尖的真实位置的准确定位有误差。 图8_一 人手距离摄像头1.7 m与1.2 m时的效果 Fig.8 Detection performances in the distance of1.7 m and 1.2 m 4 结束语 本文提出了一种基于深度图像的手势分割和指尖 检测方法,在不使用MS Kinect SDK的骨骼数据情况 下,能够陕速鲁棒地达到预期效果。相对于传统彩色 摄像机,基于深度图像的方法很好地克服了光照、背 景、其他人物的干扰,并能在较远距离(1.2—1.7 m)内 保证检测效果有效,使手势识别应用环境大大延伸。 另外,本方法可以为基于Kinect的人体肢体动作识别、 手势识别系统提供指尖的定位和运动轨迹数据,以便 进行静态手势识别和手指动作动态识别。 参考文献 [1]翁汉良,战荫伟.基于视觉的多特征手势识别[J].计 算机工程与科学,2012,(2):123—127. [2] 于美娟,马希荣.基于HMM方法的动态手势识别技 术的改进[J].计算机科学,2011,(1):251—252. [3]RAFAEL B, ̄HGUEL S D.Skin Color Profile Capture for Scale and Rotation Invarinat Hand Gesture Recognition『J]. Lectures Notes in Computer Science,2O09,5085:81—92. [4] 曹建秋,王华清,蓝章礼.基于改进YCrCb颜色空间的 肤色分割[J].重庆交通大学学报:自然科学版,2010, (3):488—492. [5]于洋.基于手形特征的静态手势识别[D].河北工业 大学,2007. [6] SCHWARZ L A,MKHITARYAN A.Estimating Human 3D Pose from Time一0f—Hight Images Based on Geodesic Dis— tances nad Optical Flow[C].Proceeding on Automatic Face &Gesture Recognition and Workshops(FG 2011),2011 IEEE International Conference,201 1.700—706. [7] 瞿中.基于改进的最大类间方差算法的图像分割研究 [J].计算机科学,2009,(5):276—278,290. [8] 张登康,郭太良,姚剑敏,等.改进肤色识别参量和轮 廓特征相结合的指尖检测[J].光电子技术,2012, (3):185—189. [9] OKA K,SATO Y,KOIKE H.Real—time fingertip tracking and gesture recognition[J].Computer Graphics and Applications,2002,22(6):64—71. 110 l TOMITA A JR,ISHII R.Hand Shape Extraction from a Sequence of Digitized Gray—Scale Images[C].Proceed・ ings of the 20th International Conference on Industrial E— lectronics,Control and Instrumentation.Bologna:IEEE Computer Society Press,1994.1925—1930. [11]’曹雏清,李瑞峰,赵立军.基于深度图像技术的手势识 别方法[J].计算机工程,2012,(8):16—18,21.