Vo1.42 No.11 2168 计算机与数字工程 Computer&Digital Engineering 总第301期 2014年第l1期 基于特征算子的RGB—D图像手分割算法 蒋美云郭雷 南京210046) (南京工业职业技术学院计算机与软件学院摘要将人手势识别过程中使用的信息设计为不同算子,利用手部/非手部区域的相邻像素点的深度或颜色特征的 连续性的原理,从手心作为起始点进行搜索并检测特征算子,保证了结果像素形成一个联通区域。算法解决了手部颜色和 深度数据不均匀的问题,没有手必须离传感器最近的,可以实现复杂场景下的手分割。 关键词Kinect;RGB-D;手分割;手势 TP317.4 DOI:10.3969/j.issn1672 9722.2014.1 1.041 中图分类号Feature Operator-basedhand Segmentation Algorithm of RGB-D Image JIANG Meiyun GU0 Lei (School of Computer and Software,Nanjing Institute of Industry Technology,Nanjing 210046) Abstract Designing different operator for the feature that human’S gesture recognition,based on the principle that the color and depth of adjacent pixels of hand have continuity,we present an algorithm which search and detect the feature opera tor from the palm as the starting point center,it ensure the results is connectedarea of pixe1.Algorithm solvesthe problems of uneven color or depth of hand and avoids the limitation that hand must benearest to the sensor and can achieve hand seg— mentation of complex scenes. Key Words Kinect,RGDD,hand segmentation,gesture Class Number TP3]7.4 1 引言 传统的人机交互方式,是一个人类适应计算机 的过程lJj。作为一种理想的自然用户界面(Natu— 度和实时性能直接影响到后期的识别效果以及整 个交互系统的性能。 传统的基于视觉的手势识别系统利用摄像头 作为传感器。单目或双目视觉系统手势图像数据, 通过图像处理进行手部分割,算法复杂且需要巨大 的计算量。KinectE4 是微软在2009年推出的一款 传感输入设备,不仅可以获取场景的彩色纹理信 息,也可以获取场景的深度信息。利用这些信息可 以更加快速有效地进行手势分割。 ral user interface,NUI)l2],手势是一种不需要中间 媒介的、非常人性化的人机交互方式,它使人们可 以用一种更自然,更自由的方式与计算机进行交 流口]。因在机器控制、娱乐、虚拟现实、医疗、教育 等领域有着广阔的使用前景,手势识别已经成为人 机交互的重要内容和研究热点。手势识别利用传 本文在分析人进行手势识别过程中可能的信息 数据来源的基础上,设计了一种基于Kinect的手分 感器获取人手数据并进行分析处理。基于视觉的 手势识别系统通常包含手势分割、手势建模、手势 形状特征提取、手势识别几个过程。其中,手势分 割算法。它利用手部/非手部区域的相邻像素点的 深度信息和颜色信息具有一定连续性的原理,有效 地处理了手部颜色和深度数据不均匀的问题。将不 同的特征处理为不同算子,使得算法具有良好的扩 展性,从手心作为起始点进行搜索,保证了所有像素 割就是将感兴趣的有意义区域,即手势从传感器获 取数据中划分出来。这是基于视觉的手势识别过 程中的第一个步骤,也是关键的一步。分割的准确 *收稿日期:2014年5月3日,修回日期:2014年6月25日 作者简介:蒋美云,女,讲师,研究方向:人工智能。郭雷,男,讲师,研究方向:人工智能、软件测试。 2014年第11期 计算机与数字工程 形成一个联通的有效区域,避免了传统简单基于深 度算法中存在的手必须在最前方或多物体匹配 区分的问题。其可以实现复杂场景下的手势分割, 个模型:深度模型(深度加上形态学)、皮肤模型(肤 色)、背景模型(Codebook算法),利用二三层神经网 络,输入是三个模型的两两重叠率,其反映了两个 模型分割结果的一致性。文献[13]直接在深度图 中寻找管状或指问形状的物体,作为手掌和手指的 候选对象,通过空间位置检测确认,因为手掌和手 其正检率达到90 ,误检率小于11.5 ,处理性能 达到13ms/帧,可以满足进一步进行手势识别的要 求。 2 相关研究 传统的基于视觉的手势分割方法主要有基于 指是一起的;文献[14]利用Kinect产生的骨骼数 据,确定手的位置,查找表存放了标准人类手在不 同深度层的大小,给定手的3D位置,算法从查找表 肤色的手势分割方法_5]、基于运动的手势分割方 法l6]、基于轮廓的手势分割方法E7]等。肤色是手势 最为明显的特征之一,然而,在实际应用中由于手 势和背景环境的复杂多变,光源亮度和位置的变 化、有色光源产生的色彩偏移等,都会引起肤色的 变化、手部弯曲和反转等形变,也会使得光源角度 和阴影发生变化。这使得整个手部区域的肤色可 能并不一致,甚至有较大的差异。颜色校正和新的 颜色空间虽然取得了一些改进,但仍存在较大局 限。基于轮廓的手势分割存在两个棘手问题:一是 由于手部旋转或弯曲等因素使得初始轮廓的获取 较难;二是由于手势的形状本身存在深度凹陷区 域,而轮廓对此类区域往往无法收敛到。改进模型 所增加的迭代次数和计算量的代价使得实时性能 下降。基于运动的分割方法主要分为是帧差法和 背景差分法。帧差法利用相邻图像帧之间的差分 来判断前景中是否有运动对象产生;而背景差分法 首先对背景图像建模,通过比较背景图像和含有手 势的图像分割出前景。众多实验发现,在运动中产 生的光影变化,以及背景的动态变化都会对分割结 果产生影响。 基于Kinect传感器手势分割方法中,文献F8] 将手分割看成一个深度聚类问题,像素分组于不同 的深度水平。通过分析人姿势维度确定一个阈值, 该深度水平对应的是手。文献[9]利用k—means聚 类算法和预定义阈值进行手检测,并对手型进行凸 包分析定位手指。这两种方法都是假设手部距离 传感器最近,此外算法的效果受到kinect深度数据 的准确性影响非常大;文献ElO]使用聚类算法加形 态学约束处理深度图像分割手型,用以估计手掌和 其中心。文献E11]利用kinect SDK提供的关于手 的位置信息,在深度图像的三个轴方向上设定阈 值,小于该阈值的被看成是可能的手的区域。然后 利用OPEN VC中的相关函数cvErode(腐蚀)、cv~ MorphologyEx、cvFindContours(找到边界)对手数 据进行处理,计算边界和手中心。文献E12]建立三 中找到对应手的大小,从而粗略定位手的区域。文 献[15~l6]集成彩色信息进行手检测。将手检测 问题看成是一个手像素或非手像素标记问题。 RGB图像的皮肤检测算子和深度图像的聚类算子 作为两个条件确认手像素。手区域是二者的交集。 3 问题分析 手分割问题,可以看作是一个在Kinect传感 器获得的RGB图像和深度图像中的手像素或非手 像素标记问题。这里,将RGB图像和对应的深度 图像数据定义为 Data={data(i, )一{color,depthli.j I 一1,…,”, ===1,…, ,depth∈尺,color ̄ColorSpac、e} 其中,CO'Or为位置(i,J)对应的颜色信息,按照某种 颜色空间定义,depth为该位置的深度信息,其取 值范围由Kinect的参数确定(400mm ̄3500mm)。 当假设只有一个人时,手分割的目标是找到一种方 法,判断Data中的每一个元素data(i, )属于集合 {左手,右手,非手部}的哪一类。彩色视频的速率 是30帧/秒,而手部分割只是手势识别的第一步处 理,因此,手分割的速度应当小于15毫秒/帧,越低 越好。此外,手分割的准确性可以通过正检率和误 检率来进行衡量,不同的应用场景对于手分割的准 确性要求不一样。 Data中包含了彩色和深度数据,这是一个原 始数据,在进行手分割时,必须对之加以处理提炼, 作为手分割的依据特征。通过调查以往的研究文 献和分析人类手分割的过程,总结出以下特征: 1)人体的拓扑结构:人类的经验告诉我们,和 人体某一局部图像相比,人们更容易从人体的整体 图像中确定手的位置。这是因为人类所具有的人 体的整体拓扑结构知识。这个知识只提供给手部 区域的大致方位。即手心的位置。但不涉及更具体 的手区域信息; 2)距手心距离:通过手的形态学知识,人类可 以推断当距离手心距离小于某个值,肯定属于手部 217O 蒋美云等:基于特征算子的RGDD图像手分割算法 不小于某个阈值,则 第42卷 区域,如果大于某个值,肯定不属于手部区域;这里 的距手心距离包含z 平面和深度两个方面; (8)计算深度算子^,得到P…(1『 ),如果P… (/ ) 不小于某个阈值,则 (9)计算手型算子_, ,得到P… ( ) 3)肤色和深度:虽然肤色易受到人种,光照等 的影响,手部区域在深度图像或者彩色图像上虽然 其整体上有可能并不均匀一致,但是其在较小的局 部范围内应当保持一定的连续性,而非手部区域的 边界像素与相邻背景区域像素具有较大的变化; 4)手拓扑结构:当确定手的大致方位后,依据 手拓扑结构知识,能估计手的轮廓特征,以确定具 (1O)ffg P , ]一∑: P…(/ ) (11)如果P[ , ]大于某个阈值,则将其四(或八)领 域位置,入候选像素队列Q;转到(5) (12)从手心距离外,即非手部区域,向手心,开始判 断,如果颜色或者深度变化非常小,则将该像素看为非手心 体手区域。 在进行手区域判断的时候,人类往往不是仅基 于某种单一特征,而是多种特征的融合的决策。每 个特征在决策过程中起到不同的作用,对一个手的 不同位置起到的效用有可能也不一样。我们定义: ・手分割的特征集合为FEATHER一{ ,i 一1,2,3,…, },f是FEATHER的一个子集。 ・P ( )为特征集合F对于(i, )像素是否 属于手部区域的可能性,所做出的判断。P (F) ∈[一1,1],正数说明其为手部的可能性,负数说其 不为手部的可能性。一1和1分别代表肯定不是 手部和肯定是手部,0代表未知。 ・P 是( , )像素为是否属于手部区域的可 能性。假设FL ()是一种映射关系, P 一FUN(P (F ),P (F ),…,P (Fk)) (1) 4算法设计 在微软提供的Kinect SDK中,提供了骨骼数 据,其中包含左右手心的坐标数据。利用这个算法 代替人类使用人体拓扑结构知识的过程。在此基 础上,考虑到手部区域在深度图像或者彩色图像上 虽然其整体上有可能并不均匀一致,但是其在较小 的局部范围内应当保持一定的连续性。利用这一 思想,以一只手为例,算法设计如下: 算法中的特征算子设计如下: (1)设二维数组P,P[ ,力保存对应像素是否属于手 部区域的可能性,初始化为0; (2)利用Kinect SDK提供的骨骼模型数据,先得到 右手部位置( ); (3)将P9, ]设为1,将( , )四(或/k)领域位置,人 候选像素队列Q; (4)如果Q为空,则转到(12); (5)Q出队列,得到(m, ),真对该位置计算 (6)距手心距离算子 ,得到Pm,一 ),如果 (厂 )不小于某个阈值,则 (7)计算肤色算子l厂 ,得到 , ( ),如果 (^) 区域。 (13)扫描图像,将P[ ”, ]小于某个阈值的点改为黑 色;剩余区域则为手部区域; 1)手心距离算子 基于人类经验,当像素到手心距离小于某个阈 值D1,肯定属于手部区域,如果大于某个阈值D2, 肯定不属于手部区域。在二者之问随距离变化。 这里,将其简化为一个分段函数(2),如图1所示。 f1, (t<D1 P一 &d*d+易 ,D1<:d 三D2 (2) l~l,d>D2 其中,d为像素到手心的距离,n ,b ,D1,D2为系 数,通过实验确定。 1 00 0 言 l OO 像素到手心距离 图1手心距离算子 2)手深度距离算子 在深度图像中,手部的深度范围应当不大于某 个阈值,即手的长度。 3)肤色算子 色彩空间主要有三类:按照j三种基色的比例合 成颜色的混合(mixture)型色彩空间,如RGB、 CMY;采用一个分量表示亮度感知,另外两个分量 表示色彩的线性亮度/色度(1uma/chroma)型色彩 空间,如YCbCr、YUV;消除了亮度的影响,颜色的 表达更为直观的强度/饱和度/色调(intensity/sat— uration/hue)型色彩空问,如HIS、HSV。 从人类皮肤颜色的物理角度,肤色在自然色彩 中呈现出一种聚类属性,从而有别于其它色彩。在 彩色图像上,手部区域整体上亮度虽然有可能并不 均匀一致,但是其颜色在较小的局部范围内应当保 持一定的连续性。将Kinect提供的RGB数据转 换到HsV数据,并考察像素( , )八邻域局部范 围内已知手部的平均H(色渊,代表颜色波长)变 化,忽略S(饱和度,代表颜色的深浅)和 (亮度, 2172 蒋美云等:基于特征算子的RGB-D图像手分割算法 第42卷 表1实验结果 由以上两个不同环境下的实验表明,采用本文 提出的算法在光线条件差、存在类肤色区域干扰的 情况下,仍然能够相对准确地分割出较为完整的手 势图像。 算法中采用Kinect SDK提供的骨骼数据作为 手心,在实际测试中发现,如果获得的手心位置即使 与真实手心位置有一定偏差,只要位于手部以内,该 算法依然能够得到较好的处理效果,如第二种场景 所示。但如果数据有时误差较大,手心位于手部以 外,算法不能得出正确结论。在这种情况下,可以考 虑,如果执行效率允许,可以先采用手心距离范围算 子确定一个手部存在的范围,在该范围内建立HSV 颜色空间中的H(Hue)分量直方图和概率分布图, 定位出当前图像中手势的中心位置和大小。 6 结语 手分割是手势识别的第一步。本文分析了人 类在进行手势分割时利用的特征,将不同的特征处 理为算子,针对不同的应用要求,可以采用不同的 算子组合。利用手部/非手部区域的相邻像素点的 深度信息和颜色信息具有一定连续性的原理,从手 心作为起始点进行搜索,保证了所有像素形成一个 联通的有效区域,有效地处理了手部颜色和深度数 据不均匀的问题,避免了传统简单基于深度算法中 存在的手必须在最前方或多物体匹配区分的 问题。其可以实现复杂场景下的手势分割。 参考文献 [1]Pavovic V.I.,Sharma R.,Huang T.S.Visual Inter pretation of hand gestures forHuman-Computer Inter action:a review[J].IEEE Transactions on Pattern A— nalysis andMachine Intelligence,1997,19(7):677—695. r2]Petersen,Nils,Didier Stricker.Continuous natura1 us— er interface:Reducing the gap between real and digital worldFC]//ISMAR,2009:23—26. [3]Shotton,Jamie,et a1.Real-time human pose recogni— tion in parts from single depth images[J].Communica tions of the ACM,2013,56(1):ll6-124. [4]Jungong Han,Ling Shao,Dong Xu,et a1.Enhanced Computer Vision With Microsoft Kinect Sensor:A Re— view[J].IEEE Transactions on Cybernetics,2013,43 (5):l3l8一l334. [5]Kakumanu,Praveen,Sokratis Makrogiannis,et a1.A survey of skin-color modeling and detection methods [J].Pattern recognition,2007,40(3):1106—1122. [62 Julien I ,Francois B.Visual Tracking of Bare Fingers for Interactive Surface[c]//Proceedings of the 17th Annua1 ACM Symposium on UIST。Santa Fe,NM, USA:ACM,2004:119—122. [72 Tofighi,Ghassem,S.Amirhassan Monadjemi,Nasser Ghasem Aghaee.Rapid hand posture recognition using Adaptive Histogram Template of Skin and hand edge contour[C]//Machine Vision and Image Processing (MVIP),2010:1—5. E8]R.Tara,P.Santosa,T.Adji.Hand segmentation from depth image using anthropometric approach in natural interface development ̄J].International Journal of Scientific&Engineering Research,2012,3(5):1-4. [9]U.Lee,J.Tanaka.Hand controller:Image manipula tion interface using fingertips and palm tracking with Kinect depth data[-C]//Proc.Asia Pacific Conf.Com put.Human Interact,2012:705 706. [10]H.Liang,J.Yuan,D.Thalmann.3-D fingertip and palm tracking in depth image sequences[C]//Proc. ACM Int.Conf.Multimedia,2012:785 788. [11]Maisto,Marco,Massimo Panella,I.uca Liparulo,et a1.An Accurate Algorithm for the Identification of Fingertips Using an RG D Camera[J].Emerging and Selected Topics in Circuits and Systems,IEEE Journal on.,2013,3(2):272~283. [12]Zhang,Xin,Zhichao Ye,Lianwen Jin,et a1.A New Writing Experience:Finger Writing in the Air Using a Kinect Sensor[J].MultiMedia,IEEE,2013,20(4): 85—93. E13]G.Hackenberg,R.McCall,W.Broil.I ightweight palm and finger tracking for real-time 3-D gesture con trollC]//Proc.IEEE Conf.Virtual Reality,20 1 1:1 9 26. [14]IvI.Caputo,K.Denker,B.Dums,et al,3-D hand gesture recognition based on sensor fusion of commod— ity hardware[C]//Proc.Conf.Mensch Comput., 2012:293—302. [15]Oikonomidis,N.Kyriazis,A.Argyros.Efficient model~based 3-D tracking of hand articulations using Kinect[C]//Proc.Brit.Mach.Vision Conf.,2011: 101.1-101.1l_ [1 6]Oikonomidis,N.Kyriazis,A.Argyros.Tracking the articulated motion of two strongly interacting hands [-C]//Proc.IEEE Conf.Comput.Vision Pattern Recognit.,2012:1862—1869.