论文部分内容阅读
近些年来,随着计算机技术的不断发展,人机交互技术也在日常生活中发挥着越来越重要的作用。由于传统的基于鼠标和键盘的人机交互技术在使用上的局限性,更加生动自然的基于计算机视觉的人机交互受到了很大程度的关注。其中,由于手势本身的灵活性和多样性,使其可以包含非常丰富的信息,而且使用手势的交互更加符合人们的交流习惯,故其在增强现实、手语识别等中都有广泛的运用,所以基于计算机视觉的手势识别是一个很富有挑战性的课题。传统的手势识别技术一般都是基于彩色图像和灰度图像信息,本文设计的手势识别平台利用的是由深度摄像头得到的深度图结合彩色摄像头得到的彩色图来进行手势识别,并且将手势识别平台与虚拟现实平台进行了融合,实现了通过手势命令控制虚拟现实场景。本文主要分为了五个部分:1.手势的分割和跟踪部分,介绍了由Kinect深度摄像头得到深度图的原理,并且借助于OpenNI实现了手势的检测,利用深度图像深度特征,排除了背景信息的干扰,实现了手势的分割。对于手势的跟踪,则是通过粒子滤波算法实现。2.静态手势的识别部分,在特征提取阶段,选取了傅立叶特征描述子作为静态手势的全局特征描述子和BOF_SURF特征描述子作为静态手势的局部特征描述子,并将它们的融合特征作为手势的特征,其兼备了两种特征的优点,具有了一定的旋转不变性、平移不变性。在识别阶段,通过比较支持向量机和神经网络分类器的优劣,最终选取了支持向量机作为静态手势识别的分类器,实现了对于8种普通手型的识别,并且对于手势的旋转,平移等有一定的鲁棒性。3.指尖检测的部分,选取了基于凸包的指尖检测的方法。在由分割出的手势提取其轮廓后,利用道格拉斯-普克算法进行轮廓的近似,在通过近似轮廓的凸包特征实现了指尖的检测。4.动态手势的识别部分,在特征提取阶段,将手心坐标作为手势的位置,并将手心在空间中运动形成的一系列二维坐标点作为手势的轨迹,再把相邻的坐标点间的方向角量化后得到的方向向量作为动态手势的特征向量。其中,对于轨迹开始和结束的判断,则是使用了指尖的个数作为依据:当指尖个数为5时,轨迹开始;当指尖个数为0时,轨迹结束。在识别阶段,则是利用了隐马尔科夫模型作为分类器,实现了对于10种自定义的动态轨迹的训练和识别。5.手势识别的应用部分,通过手势识别平台和虚拟现实平台的融合,实现了通过手势命令实现虚拟现实中小岛地形的浏览和舰艇的航行控制。最后,根据本文提取的相关算法编写了相关的手势识别的软件,该软件是基于MFC对话框开发的,可以实现对于静态手势的识别、指尖的检测、动态手势的识别以及控制虚拟现实场景的功能。