论文部分内容阅读
随着电子产业的不断发展,电子设备的形态也在不断地进化,人们与电子设备的交互方式也发生了日新月异的变化。手势作为一种直接自然的交互方式,在VR(Virtual Reality)和MR(Mixed Reality)设备上得到广泛应用,准确、鲁棒的手势识别算法也一直是热门的研究课题。基于视觉的手势识别技术面临着诸多难题,如复杂背景、环境光、遮挡和手势的起始终止难以判断等,而以微软的Kinect为代表的能够捕获深度信息的设备的出现,为解决这些难题提供了很好的基础。本文在研究了近年来大量手势识别相关文献的基础上,提出了一种以Kinect提供的深度信息为基础的手势识别算法,本文的算法包括两个部分,静态手势识别和动态手势识别。在静态手势识别部分,本文首先根据Kinect提供的骨骼点信息,确定手部所在的局部区域,针对这一区域利用椭圆肤色模型和深度信息,在排除脸部干扰的情况下分割出手部区域,得到二值化的手部图像;接着对手部图像进行轮廓提取和凸包检测,并确定手部区域的准确边界,在将手部区域缩放到指定尺寸后,根据凸包检测的结果,得到可能存在的手指点的集合;然后利用Kinect捕获到的手腕点和根据Hu矩计算得到的质心点,确定手掌的方向角,以手掌的方向角为基准,过滤掉超过手指点正常角度的干扰点,再利用手指的形状特征,过滤掉其他干扰点,得到最终的手指点集合;最后,利用检测到的手指点信息以及手部图像的Hu矩,构建手部的特征向量,进行SVM(Support Vector Machine)训练,并利用训练的结果进行静态手势识别。实验结果表明本算法具有较高的准确率和较好的鲁棒性。在动态手势识别部分,首先对视频帧进行分类,构建一个有限状态自动机,利用有限状态自动机各个状态的转化完成对手势序列的捕获;接着将捕获到的手势序列的运动分解到三个坐标平面上,针对每个平面利用DTW(Dynamic Time Wrapping)算法计算手势序列与手势模板之间的距离;最后根据不同平面上的运动强度,计算其权值,从而将三个距离组合成一个综合距离,并以此为基础进行模板匹配;在匹配过程中,为了减少将未知手势识别为已知手势的情况,本文为每个手势模板设置了一个识别阈值,并对阈值进行训练,从而得到一个合适的阈值。实验结果表明,本算法能够较好地区分开不同手势的起始与结束,并具有较高的识别准确率。