基于机器视觉和RGB摄像头的双手势多点动作控制系统设计与实现文献综述
2020-04-14 17:29:08
近些年来计算机科技在飞速的发展,其中手势识别是通过数学算法来识别人类手势的一门热门的研究技术,最初的手势识别主要是利用机器设备,直接去检测手和胳膊的关节的角度和空间位置。当时主要是通过有线技术将计算机与用户相互连接,以此让用户的手势信息能够完整地传送至识别系统里,当时使用的典型设备就是数据手套。随后随着技术的发展,光学标记方法取代了数据手套将光学标记戴在人手上,通过红外线能将人手位置和手指的变化传送到系统的屏幕上,而现在则是通过RGB摄像头基于机器视觉的手势识别。该技术在人机交互的领域应用十分广泛,是当今人机交互领域的重点研究方向。
手势识别让用户能够使用简单的手势来控制或与设备交互,让计算机理解人类的行为。手势取代传统的敲击键盘或点击鼠标作为输入来控制自己的计算机,能够使人与机器之间的交互变得更加智能化、自然化,而且可将人们在日常生活中所获得的经验,直接运用到交互活动中,能够充分提高虚拟世界中的可操作性,并且可在虚拟世界中完成更加复杂的任务。因此,基于机器视觉的手势识别的研究引起了国内外学者的广泛关注。
目前,手势识别已被广泛研究,尤其是基于机器视觉的手势识别。韩国Inda大学和Korea Polytecnic大学的JongShill Lee、YoungJoo Lee等人用熵分析法从背景复杂的视频流中分割出手势区域并进行手势识别。使用链码的方法检测手势区域的轮廓,最后计算出从手势区域的质心到轮廓边界的距离。该系统可识别6种手势,平均识别率超过95%;6个人分别做每个手势的识别率平均达到90%-100%。印度研究者Meenakshi Panwar在视觉手势识别的基础上提出了一种基础结构特征的手势识别算法,通过北京去除、方向检测、拇指检测和手指数量检测,来最终识别手势。Chenglong Yu等人采用基于视觉的组合特征进行手势识别,将手的面积、周长、重心、面积比和长宽比等特征结合,使得识别率得以提高。上海大学DING Youdong、PANG Haibo等人运用改进的LBP算法,利用AdaBoost分类器进行手势识别,建立了多种手势数据集,其中包括一些大角度变化的收拾图像。实验表明该方法可较好地对手势特征进行分割和分类。
国内的手势识别研究主要集中在各大高校和研究院等。清华大学计算机科学与技术系祝远新等人提出了一种新的基于表观的手势识别技术。提出一种基于运动分割的帧间图像运动估计方法,并指出了一条如何将运动、形状、颜色和纹理等信息统一起来进行手势识别的途径;且实现了对12种手势进行在线识别的实验系统,识别率超过90%。王凯等人提出了基于AdaBoost算法和光流匹配的实时手势识别方案:只需连接计算机的摄像头读取二维手势视频片段便可对手势作出较为准确的识别。其中,采用AdaBoost算法遍历图像,完成静态手势的识别工作。而在动态手势的识别过程中,运用了光流法结合模板匹配的方法。中国科学技术大学和哈尔滨工业大学的滕达,刘岩等人研究了基于“大小手”的徒手手势实时识别,将双手划分成大手和小手,两手重叠按照一只手处理。应用背景差分法将背景去除,利用文中的大小手特征提取算法检测出手势,最终利用动态时间进行手势识别,该系统对17个常用手势试验识别率可达94.1%。
综上所述,基于机器视觉的手势识别系统的研究是人机交互领域的研究热门。在现实应用中,手势通常处于复杂的环境下,例如: 光线过亮或过暗、有较多手势存在、手势距采集设备距离不同等各种复杂背景因素。这些方面的难题目前仍未得到解决,且将来也难以解决。因此需要研究人员就目前所预想到的难题在特定环境下加以解决,进而通过多种方法的结合来实现适于不同复杂环境下的手势识别,由此对手势识别研究及未来人性化的人机交互做出贡献。
{title}2. 研究的基本内容与方案
{title}
本实验运用OPENCV中比较成熟的机器视觉算法,来使用摄像头捕获视频并显示,接着对获取的手势图像文件进行预处理及处理,如图像分割、形态学处理、平滑处理等,再对其进行特征提取,通过手势识别的相关算法来完成人机交互的系统的实现。围绕以上方面,本文的具体研究内容如下:
1)在eclipse里配置好OPENCV的jar包,用OpenCV相关API读取视频流或者视频文件的每一帧,然后通过Swing JComponent组件实现视频每一帧的更新显示。
2)PC机读取图像后首先进行图像预处理及处理,使用OPENCV中的使相关函数进行图像的色彩处理、图像分割、形态学处理、灰度化处理等操作,经过基于Hausdorff距离的方法匹配手势。
3)手势进行特征提取时,要进行目标区域的检测,来确定所需目标所在图像中的区域;还要做手指指尖位置的检测和手指数量的检测,使用模板匹配法和穿透法来完成相关操作。
4)实现手势识别系统的功能。根据检测的指尖数量以及指尖间的相对位置变化进行手势判断,形成不同类型的手势信息发送给程序,来实现交互。其中包括:用手代替鼠标,实现光标的移动、单击与双击等功能;通过手势控制摄像头,实现图像的采集功能;利用手势,打开或关闭一些软件等。