复杂背景下的手势识别方法
2016-11-09易靖国程江华库锡树
易靖国 程江华 库锡树
摘要:针对基于视觉的手势识别技术对环境背景要求高的问题,提出了一种利用深度信息进行手势提取和识别的方法。该方法首先采用Kinect深度摄像头提供的深度信息和HSV肤色信息分割出手掌区域,并通过映射获得二维手掌区域的二值图像;然后在二维手掌区域中采用形态学操作,对手势图像进行处理;接着利用Hu矩对手势特征进行提取。最后采用BP(Back Propagation)神经网络实现对数字手势1到10的识别。实验结果证明该方法可适应复杂背景,且鲁棒性和稳定性都比一般的手势识别方法好。
关键词:Kinect 手势识别 Hu矩 BP神经网络
中图分类号:TP391.9 文献标识码:A 文章编号:1007-9416(2016)09-0050-04
Abstract:In light of the problem of the high requirements of environment background in the gesture recognition based on vision, It presents a method of depth information in gesture extraction and recognition. Firstly, this method use the deep information provided by Kinects deep camera and HSV color information to segmented the palm region, and obtain a two-dimensional binary image of the palm region through mapping; Then, we can use morphological operations in the region of two-dimensional palm to processing with gesture images; And then using Hu moments to extract the features of the gesture. Finally, using BP(Back Propagation)neural network for the gesture recognition of digital 1-10. Experimental results demonstrate that the proposed method can be adapted to the complex background, and the robustness and stability are better than the common method of gesture recognition.
Key Words:Kinect;hand gesture recognition;Hu moment;BP neural network
1 引言
手势具有直观性、自然性等特点,是实现人机自然交互的重要手段之一[1]。传统基于数据手套的识别方法通过采集手部关节数据进行手势提取,构成复杂且成本高昂。随着计算机视觉技术的发展,基于视觉图像手势识别成为一种主流研究方向之一,但该类方法算法复杂,且易受光照、背景、摄像头特性等多因素影响,识别率不高[2]。
近年来,基于深度图像的手势识别正成为人机交互领域中的一个研究和应用热点。该类方法能够方便地实现前景与背景的有效分离,在目标识别与追踪方面有独特的优势[3]。李思岑[4]等利用Kinect的深度摄像头,通过中值滤波进行手势分割,并用Canny算子提取手势轮廓,再以之间位置完成之间检测,从而实现数字手势1-5的识别。该方法能够很好的解决手指的移动容易识别错误的问题,但随着手势数量的增加,造成深度方向可分辨性降低,影响最终的识别效果;罗元[5]等通过在Hu矩的基础上加入3个表达式,使不变矩包含更多细节特征,从而应用手势对轮椅进行控制,该方法有效地避免了复杂背景对操作者手势指令的干扰,使其能方便的控制轮椅,但在识别阶段应用的模板匹配方法有时会出现相似模板的干扰,对操作者造成危险;Li[6]通过对不同阈值期间的像素进行聚类分割手势区域,并根据手指的名称、个数以及夹角建立三层分类器对手势进行分类,结合Kinect对手部轮廓的采集。该算法具有较高的识别准确率,但计算量大,不适合对实时性要求较高的手势识别系统。
综上所述,本文正是依据Kinect高效且廉价的硬件平台,获取的深度信息不受光照、背景等因素的影响,实现复杂背景下的手势识别。本文结构安排如下:第二节介绍手势识别方法,第三节对实验结果进行汇总分析。
2 手势识别方法
本文提出的基于深度图像的手势识别系统流程图如图1所示。本文首先利用Kinect采集获取深度图像,同时对采集到的深度数据进行形态学处理并保留手势的边缘,然后对捕捉到的手部深度数据采用HSV肤色模型进行分割,然后对分割出的手部进行跟踪,最后选择具有目标不变性的Hu矩进行特征提取,最后将提取的特征轮廓带入神经网络模型,完成最终的手势识别,该方法能够大大提高手势识别系统的稳定性和鲁棒性。
2.1 手势跟踪
本文基于深度图像信息对手势区域进行提取跟踪,首先根据手心关节点的坐标位置建立一个手部信息的矩阵盒,再将此矩阵盒内的一个手心关节位置开始向邻域逐个遍历像素,检测像素是否属于手部区域,如果符合,即在二值图像中置1,循环遍历所有需要遍历的邻域像素,最后得到手掌区域的二值图像。
2.2 图像处理
Kinect使用过程中,通常所采集的深度图像存在着一些噪声和空洞,这些噪声和空洞大多存在于目标的边缘。所以如果直接对获取的深度图像进行特征提取,其提取特征的特征值变化可能较大,进而影响识别算法的准确性。所以,在对手势进行分割后,需要对分割出的手部图像进行噪声的滤波与形态学处理,以此为后续识别准确性的提高打下基础。
2.2.1 滤波处理
常见的高斯滤波等方法算法简单且方便,但其在减少图像噪声的同时,降噪后目标的边缘产生模糊效应,从而影响后续的工作。本文采用双边滤波算法,在保证了平滑效果的同时,又能做到对边缘信息很好的保存。
2.2.2 图像形态学处理
图形形态学出处理包括开运算、闭运算、膨胀、腐蚀和形态学梯度等操作,他们能够消除噪声、填充空洞。本文针对获取的深度图像含有很多空洞的情况,决定采用膨胀和腐蚀搭配使用以有效地填补凹洞与消除凸包。
2.3 手势分割
由手势识别流程图可以看出,手势的分割是后续处理的基础和关键。本文在肤色检测的基础上利用深度信息实现手势区域的提取,在分割的过程中,首先利用场景深度信息划分出有效子空间,然后在该空间内进行肤色分割。Kinect在获取深度图像的同时,还获得了基于RGB颜色空间的彩色图像。虽然RGB、HSV和YCrCb色彩模型均可用于肤色检测,但在应对光照、场景环境以及肤色色度等干扰因素的变化时,HSV色彩空间进行肤色分割的性能要明显的由于另外两种色彩空间。在HSV颜色空间中,其分量能过很好地反应肤色。为了实现后续对手势轮廓的有效检测,本研究通过把Kinect或得的RGB颜色空间的彩色图像变换到HSV颜色空间,采用基于肤色模型的去噪方法获得准确的手势二值图像。
(2)将分量设置阈值,在中进行阈值判断。若中任一点的分量值在范围内,则将对应的点得二值图像的像素值赋值为1,否则赋值为0,通常取值0.03—0.123。
2.4 特征提取
手势识别的过程是一个实时的过程,对用户的动作要求迅速响应,这决定了复杂的特征提取方法对实时手势识别系统并不适用。在手势信息采集的过程中,用户距离摄像头的位置、不同用户手形的区别、手势的位置、姿态均会有一些变化。本文选择的具有目标不变性的特征提取方式为Hu矩,此方法具有良好的特征,不仅能对不同的手势进行有效区分,而且能适应环境的改变不同用户手形的差异和同种手势的姿态变化,且特征具备旋转、平移、缩放的不变性。
本文利用Hu矩对十种数字手势进行特征提取,十种手势如图2所示:
2.5 BP神经网络的手势识别
手势识别使用的三层BP网络的结果如图3所示,它包含一个输入层、一个隐含层和一个输出层。
实现BP神经网路的第一步就是要选定合适的网络,并设立合理的参数。根据系统模型,本文采用的行为表示特征为Hu矩,表示一个手势需要7个维向量输入层节点数目为7,将最小均方误差设为 0.01。而输出层的神经元节点数对应输出向量的某一维,每一个输出向量代表着一个样本识别结果,本文共有10种手势需要识别,所以选择输出层节点数为10。表1列出了十种待识别手势行为的输出向量。
隐含层神经元节点数目的选取对BP神经网络的性能至关重要。目前隐层节点数目的选择没有有效的准确的确认方法,大多数都是依靠经验尝试的方法来估计隐含层节点数目[9],但在估计的过程也可采用隐含层节点公式(10)进行参考。
其中h为隐含层节点数目,i为输入层节点数目,o表示输出层节点数目,a为一个1-10之间的常数。根据上述公式计算,隐含层节点数目可取范围在5-14之间,加上分析不同隐含层数目是网络训练效果,最终选定隐含层神经元节点数目为9个。
输入手势样本,每个样本含有7个Hu矩特征值为输入层输入值,通过权值和阈值计算调整,系统收敛,使网络趋于稳定。因为BP神经网络是采用梯度修正法来对权值和阈值进行学习,仅考虑预测误差的负梯度方向,未添加先前积累的数值,造成收敛速度缓慢。利用附加动量因子的方法来调节权值,权值的变化量是由当前误差曲面的负梯度的变化量与前面一次迭代修正所采纳的权值变化量的比例求和得到,其公式为:
(11)
3 实验结果与分析
本文的实验环境采用Kinect第二代传感器作为硬件,摄像头的分辨率为彩色1080P,运行环境为Window10,Visual Studio 2013,开发语言为C++,在测试系统时,每个手势采用五幅图像数据进行扩展,由于Hu矩的旋转、缩放、平移不变形,分别将原图像放大1.2倍,缩小0.8倍,旋转270度和90度得到200幅新的样本数据,最终选择200幅图像进行训练,50幅图像用于测试识别。
表2为最终的实验数据结果,由此可得出基于Hu矩特征的描述方法对本文研究的十种手势具有良好的描述效果,利用提取出的特征手势可以由BP神经网络进行争取的识别。
4 结语
本文利用肤色在HSV颜色空间中H分量具有较好的区分肤色的特性,结合背景模型,有效的解决了复杂背景下类肤色的干扰。在特征提取方面运用Hu矩对手势特征进行提取,有效的对不同手势进行区分而能适应环境的改变、不同用户手形的差异和同种手势的姿态变化,结合训练好的BP神经网络手势识别系统,可以运用于智能控制中的实时系统。
参考文献
[1]Attila L, Tamas S. User-adaptive hand gesture recognition system with interactive training[J]. Image and Vision Computing,2005,23(12):1102-1114.
[2]周航.基于计算机视觉的手势识别系统研究[D].北京:北京交通大学,2007.
[3]毛雁明,黄立亮.基于Kinect深度信息的手势分割与识别[J].系统仿真学报,2015,27(4),830-835.
[4]李思岑,王平,张鹏等.基于Kinect深度图像信息的手势跟踪与识别[J].微型机与应用,2015,34(6),53-55.
[5]罗元,谢彧,张毅.基于Kinect传感器的智能轮椅手势控制系统的设计与实现[J].机器人,2012, 34(1):110-114.
[6]Li Yi. Hand gesture recognition using Kinect[C]. Proceedings of 2012 IEEE 3rd International Conference on Software Engineering and Service Science, 2012: 1996-199.
[7]Ionescu D, Suse V, Gadea C, et al. An infrared-based depth camera for gesture-baswd control of virtual environments[C]. IEEE International Conference,2013:13-18.
[8]M Hu. Visual pattern recognition by moment invariants[J].IEEE Transaction on Information Theory,1962.8(2):179-187.
[9]高雅静.人机交互中的手势识别技术研究[D].西安电子科技大学,2013.