手势识别中手分割算法
2015-06-19郭雷
郭雷
摘要:首先分析了手势分割存在的技术难点及人进行手势分割过程中可能使用的特征,然后分析比较了现有手势分割算法的基本思想和特点,最后介绍了深度学习技术并总结了手势分割未来的研究方向。
关键词:RGBD;手分割;手势
中图分类号:TP317.4 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.04.019
0.引言
手势是一种不需要中间媒介的,非常人性化的人机交互方式。手势识别已经成为人机交互的重要内容和研究热点。基于视觉的手势识别系统通常包含手势分割、手势建模、手势形状特征提取、手势识别几个过程。其中,手势分割就是将感兴趣的有意义区域,即手势从传感器获取数据中划分出来。这是基于视觉的手势识别过程中的第一个步骤,也是关键的一步。分割的准确度和实时性能直接影响到后期的识别效果以及整个交互系统的性能。
传统的基于视觉的手势识别系统利用摄像头作为传感器。单目或双目视觉系统手势图像数据,通过图像处理进行手部分割,算法复杂且需要巨大的计算量。Kinect是微软推出的一款传感输入设备,不仅可以获取场景的彩色纹理信息,也可以获取场景的深度信息。利用这些信息可以更加快速有效的进行手势分割。
本文首先分析了手势分割存在的技术难点及进行手势分割过程中可能使用的特征,然后分析比较了现有手势分割算法的基本思想和特点,最后介绍了深度学习技术并总结了手势分割未来的研究方向。
1.手势分割的技术难点
由于图像背景和手势本身的复杂性,实际生活中,光照的颜色、亮度都会产生各种变化,而背景物体的移动、摄像头的移动、手势运动产生的高光和阴影、类肤色区域的干扰等,都给手势的稳定和准确分割带来了困难。
人类的视觉系统在任何条件下都能够较为准确的认出感兴趣的区域。人类视觉系统机理的认识仍有待提,还没有统一的理论可以指导传统的图像分割方法进行改进。同时在复杂的手势特征的先验知识获取方面,还没有既满足实时性又满足准确性的方案。
2.手势分割的特征
手分割问题,可以看作是一个在Kinect传感器获得的RGB图像和深度图像中的手像素或非手像素标记问题。这里,我们将RGB图像和对应的深度图像数据定义为:
其中,color为位置(i,j)对应的颜色信息,按照某种颜色空间定义,depth为该位置的深度信息,
进行手分割时,必须对Data加以处理,提炼特征。通过调查以往的研究文献,总结出以下特征:
(1)人体的拓扑结构:和人体某一局部图像相比,人们更容易从人体的整体图像中确定手的位置。这是因为人类所具有的人体的整体拓扑结构知识。这个知识只提供给手部区域的大致方位。
(2)距手心距离:通过手的形态学知识,人类可以推断当距离手心距离小于某个值,肯定属于手部区域,如果大于某个值,肯定不属于手部区域;
(3)肤色和深度:虽然肤色易受到人种,光照等的影响,手部区域在深度图像或者彩色图像上虽然其整体上有可能并不均匀一致,但是其在较小的局部范围内应当保持一定的连续性,而非手部区域的边界像素与相邻背景区域像素具有较大的变化;
在进行手区域判断的时候,人类往往不是仅基于某种单一特征,而是多种特征的融合的决策。每个特征在决策过程中起到不同的作用,对一个手的不同位置起到的效用有可能也不一样。
3.手势分割算法
手势的检测分割包括两部分:一是检测定位,指从图像中确定有没有手势出现,找到手势所在区域;二是手势分割,将手势区域从画面中提取出来,去除背景的干扰。这两部分一般都是同时进行的。传统的基于视觉的手势分割方法主要有基于肤色的手势分割方法、基于运动的手势分割方法、基于轮廓的手势分割方法等。
肤色是手势最为明显的特征之一,然而,在实际应用中由于手势和背景环境的复杂多变,光源亮度和位置的变化、有色光源产生的色彩偏移等,都会引起肤色的变化,手部弯曲和反转等形变,也会使得光源角度和阴影发生变化。这使得整个手部区域的肤色可能并不一致,甚至有较大的差异。针对这些问题当前研究者们在传统肤色分割方法的基础上,采取了很多改进方法,主要有三种:在分割前对图像颜色进行校正;提出新的颜色空间;结合其他运动差分、轮廓、几何特征等其他分割方法。
基于轮廓的手势分割存在两个棘手问题:一是由于手部旋转或弯曲等因素使得初始轮廓的获取较难;二是由于手势的形状本身存在深度凹陷区域,而轮廓对此类区域往往无法收敛到。改进模型所增加的迭代次数和计算量的代价使得实时性能下降。
基于运动的分割方法主要分为是帧差法和背景差分法。帧差法利用相邻图像帧之间的差分来判断前景中是否有运动对象产生;而背景差分法首先对背景图像建模,通过比较背景图像和含有手势的图像分割出前景。众多实验发现,在运动中产生的光影变化,以及背景的动态变化都会对分割结果产生影响。
Kinect传感器不仅可以获取场景的彩色纹理信息,也可以获取场景的深度信息。研究者利用RGB—D数据进行手势分割时,可以只深度图像或者融合RGB和深度信息。前者瞄准快速算法,后者目标是一个精确系统。
文献将手分割看成一个深度聚类问题,像素分组于不同的深度水平。通过分析人姿势维度确定一个阈值,该深度水平对应的是手。文献利用k-means聚类算法和预定义阈值进行手检测,并对手型进行凸包分析定位手指。这两种方法都是假设手部距离传感器最近,此外算法的效果受到kinect深度数据的准确性影响非常大。文献,利用kinect SDK提供的关于手的位置信息,在深度图像的三个轴方向上设定阈值,小于该阈值的被看成是可能的手的区域。然后利用OPEN VC中的相关函数cvErode(腐蚀)、cvMorphologyEx、cvFindContours(找到边界)对手数据进行处理,计算边界和手中心。文献建立三个模型:深度模型(深度加上形态学),皮肤模型(肤色),背景模型(codebook算法),利用三层神经网络,输入是三个模型的两两重叠率,其反映了两个模型分割结果的一致性。文献直接在深度图中寻找管状或指间形状的物体,作为手掌和手指的候选对象,通过空间位置检测确认,因为手掌和手指是一起的。文献利用kinect产生的骨骼数据,确定手的位置,查找表存放了标准人类手在不同深度层的大小,给定手的3D位置,算法从查找表中找到对应手的大小,从而粗略定位手的区域。文献集成彩色信息进行手检测。将手检测问题看成是一个手像素或非手像素标记问题。RGB图像的皮肤检测算子和深度图像的聚类算子作为两个条件确认手像素。手区域是二者的交集。文献将不同的特征处理为不同算子,利用手部/非手部区域的相邻像素点的深度信息和颜色信息具有一定连续性的原理,从手心作为起始点进行搜索,保证了所有像素形成一个联通的有效区域。避免了传统简单基于深度算法中存在的手必须在最前方限制,或多物体匹配区分的问题,有效的处理了手部颜色和深度数据不均匀的问题。
4.深度学习技术
在已有的手势分割方法中,良好的特征表达,对最终算法的准确性起了非常关键的作用。上述方法中,特征的设计靠人工选取完成。手工选取特征需要复杂的手势特征的先验知识,能不能选取好很大程度上靠经验,而且它的调节需要大量的时间。
深度学习是机器学习研究中的一个新的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,模仿人脑的机制来解释数据。深度学习构建具有很多隐层的机器学习模型和海量的训练数据,通过逐层特征变换,将样本在原空间的特征表示变换到一个新特征空间,来学习更有用的特征,从而最终提升分类或预测的准确性。与人工规则构造特征的方法相比,利用大数据来学习特征,更能够刻画数据的丰富内在信息。
5.总结
手势目标的检测是手势识别中重要的一步,它为后面手势识别做好预处理,手势目标检测的好坏直接影响到手势识别的效果。目前还不存在任何一种方法在所有应用系统和背景条件下都能取得良好的分割效果。深度学习技术为手势分割问题提供了一种新的解决思路,其更加接近于人类视觉系统机理。可以将手势识别过程看成是一个从海量的手势数据中深度学习过程,无需手势特征的先验知识,通过学习产生对于手势检测分割具有指导意义的特征,在此基础上进行手势分割将会取得较为理想的结果。