收藏 分享(赏)

手势识别在自然交互中的应用.doc

上传人:dzzj200808 文档编号:2688244 上传时间:2018-09-25 格式:DOC 页数:12 大小:1.43MB
下载 相关 举报
手势识别在自然交互中的应用.doc_第1页
第1页 / 共12页
手势识别在自然交互中的应用.doc_第2页
第2页 / 共12页
手势识别在自然交互中的应用.doc_第3页
第3页 / 共12页
手势识别在自然交互中的应用.doc_第4页
第4页 / 共12页
手势识别在自然交互中的应用.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、智能机器人课程实验报告手势识别在自然交互中的应用学 院 计算机科学与工程学院 专 业 计算机应用技术 组 员 徐庸辉 学 号 201120112011 学生导师 罗荣华 指导教师 肖南峰教授 提交日期 2012 年 7 月 1 日 智能机器人课程实验报告I目录1. 实验要求 .- 1 -2. 设计平台 .- 1 -3. 实验原理 .- 1 -3.1. 手势识别现状及分类 - 1 -3.1.1. 静态手势识别 .- 1 -3.1.2. 动态手势识别 .- 1 -3.2. 场景建模方法 - 2 -3.3. 自然交互与虚拟键盘 - 3 -4. 朴素手势识别分析 - 4 -4.1. 轮廓关键点 - 4

2、 -4.2. 手势区域同心圆定位 - 4 -5. 实验设计 .- 5 -5.1. 背景消除流程设计 - 5 -5.2. 手势识别流程设计 - 6 -5.3. 虚拟键盘设计 - 7 -6. 实验结果 .- 7 -6.1. 手指数目识别结果 - 7 -6.2. 虚拟键盘输入结果 - 9 -7. 实验心得 .- 10 -智能机器人课程实验报告1. 实验要求与自然语言相同,手势语言也能表达复杂信息,这样手势识别就可以进行人机交互,而不存在信息传达的困难,本文的目的是设计一个朴素的,无需分类的手势识别方法,并利用手势识别来实现基于自然交互原则的虚拟键盘。这样可以讲手势语言转换为自然语言。2. 设计平台操

3、作系统为 Windows XP,用 VS2010 + QT + opencv 作为开发平台。3. 实验原理3.1. 手势识别现状及分类手势识别根据不同的识别对象,识别方法可分为静态手势识别和动态手势识别。目前流行算法的大致流程分为手势分割,手势建模,特征匹配。图 3-1 手势识别处理流程图3.1.1. 静态手势识别静态手势识别是针对单帧的手势图片做识别。在手势分割的过程中主要使用肤色模型(色彩聚类特征) ,轮廓边缘(canny 检测)等;在做手势建模时主要使用一些图像属性(轮廓,图像矩,特征,直方图) ;特征匹配时使用模板匹配法,神经网络法等。3.1.2. 动态手势识别相比与静态手势识别,动态

4、手势识别是针对手势图片序列来分析手势的含义。所以动态手势识别的手势分割涉及到运动区域检测,场景建模等。在做手势分割时经常用到的运动跟踪方法有差值图像分割, camshaft, 卡尔曼跟踪预测, 背景剪除法。智能机器人课程实验报告- 2 -在做手势建模时主要使用一些运动序列(计算运动光流, 抽取运动轨迹)来估算。特征匹配时使用类似隐马尔科夫模型法、动态时间规划法等的一些方法。 3.2. 场景建模方法运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来。通常情况下,目标分类、跟踪和行为理解等后处理过程仅仅考虑图像中对应于运动目标的像素区域,因此运动目标的正确检测与分割对于后期

5、处理非常重要然而,由于场景的动态变化,如天气、光照、阴影及杂乱背景干扰等的影响,使得运动目标的检测与分割变得相当困难。图 3-2 帧差分处理效果对比图根据摄像头是否保持静止,运动检测分为静态背景和运运动目标检测是指在序列图像中检测出变化区域并将运动目标从背景图像中提取出来。通常情况下,目标分类、跟踪和行为理解等后处理过程仅仅考虑图像中对应于运动目标的像素区域,因此运动目标的正确检测与分割对于后期处理非常重要然而,由于场景的动态变化,如天气、光照、阴影及杂乱背景干扰等的影响,使得运动目标的检测与分割变得相当困难。根据摄像头是否保持静止,运动检测分为静态背景和运动背景两类。大多数视频监控系统是摄像

6、头固定的,因此静态背景下运动目标检测算法受到广泛关注,常用的方法有帧差法、光流法、背景减除法,高斯背景模型等。其中高斯背景模型效果比较好,但是由于我们的目的是利用朴素手势识别方法来完成虚拟键盘的设计,为了保证流畅的用户体验,减少图像分割在背景消除中的开销,这里我们选取最简单的帧差法。图 3-3 改进的背景消除方法效果图智能机器人课程实验报告- 3 -帧差法是最为常用的运动目标检测和分割方法之一,基本原理就是在图像序列相邻两帧或三帧间采用基于像素的时间差分通过闭值化来提取出图像中的运动区域。首先,将相邻帧图像对应像素值相减得到差分图像,然后对差分图像二值化,在环境亮度变化不大的情况下,如果对应像

7、素值变化小于事先确定的阂值时,可以认为此处为背景像素:如果图像区域的像素值变化很大,可以认为这是由于图像中运动物体引起的,将这些区域标记为前景像素,利用标记的像素区域可以确定运动目标在图像中的位置。由于相邻两帧间的时间间隔非常短,用前一帧图像作为当前帧的背景模型具有较好的实时性,其背景不积累,且更新速度快、算法简单、计算量小。算法的不足在于对环境噪声较为敏感,闽值的选择相当关键,选择过低不足以抑制图像中的噪声,过高则忽略了图像中有用的变化。对于比较大的、颜色一致的运动目标,有可能在目标内部产生空洞,无法完整地提取运动目标。3.3. 自然交互与虚拟键盘人机交互、人机互动(英文:HumanComp

8、uter Interaction1或 HumanMachine Interaction,简称 HCI 或 HMI) ,是一门研究系统与用户之间的互动关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。人机交互界面的设计要包含用户对系统的理解(即心智模型) ,那是为了系统的可用性或者用户友好性。图 3-4 人机手势交互效果图在过去的 20 多年间,键盘和鼠标一直是人机对话的主要方式。不过科技在进步,也许在不久的将来,陪伴我们多年的键盘和鼠标

9、就会消失在我们的视线中。虚拟激光键盘,是一种大小与小型移动电话相仿的虚拟键盘,让用户能像操作普通键盘一样轻易地打出文章或电子邮件、可方便地进行电子邮件收发、文字处理及电子表格制作,用户可以将笔记本电脑和桌面机留在家里了。虚拟键盘的适用性技术对用户手指运动加以研究,对键盘击打动作进行解码和记录。由于虚拟键盘是光投照所形成的影像,不使用时会完全消失。智能机器人课程实验报告- 4 -图 3-5 虚拟激光键盘本文的目的是利用手势识别设计一个有利于人机自然交互的虚拟数字输入键盘。4. 朴素手势识别分析分割出场景中的手势轮廓后,我们通过一些朴素的方法对手势轮廓进行多边形逼近,然后提取关键点,然后对手势轮廓

10、区域内不同半径圆环上的关键点的数量和位置做统计分析,从而识别出手势。4.1. 轮廓关键点轮廓的关键点是:轮廓上包含曲线信息比较多的点。关键点是轮廓顶点的子集。使用 cvFindDominantPoints 函数来获取轮廓上的关键点,该函数返回的结果一个包含 关键点在轮廓顶点中索引 的序列(具体内容可查阅 opencv 参考手册) 。4.2. 手势区域同心圆定位从手势轮廓的区域中心画出的如干个同心圆会与手指相交,连接圆心与关键点,然后计算每个同心圆与手指的交点,并统计每个同心圆上交点出现的位置和数量,然后分析出手指的数目。如果想统计是那几只手指,或是想还原出具体的手势,可以对这些交点在每个同心圆

11、上出现的位置和数量以及各交点之间的间隔做聚类分析或学习,这样能很好的达到更精确的识别目的。实验中得到的关键点和同心圆如下图:图 4-1 朴素手势识别效果图智能机器人课程实验报告- 5 -从图中可以看出关键点的分布并不是按照期望的那样排列的,有很多杂点,我们通过多级同心圆的过滤分析,可以逐渐消除这些杂点。5. 实验设计为了减少由于手势轮廓提取带来的错误关键点并让用户得到比较好的虚拟键盘体验效果,在实验中我们选择比较简单的背景作为实验对象测试。5.1. 背景消除流程设计背景消除流程图:图5-1 背景消除流程图关键函数:/* pFrame -初始图像帧* pFrImg -前景图像* pBkImg -

12、背景图像* pFrameMat -前景图像的中间矩阵* pBkMat -背景图像的中间矩阵*/CvtColor(pFrame, pFrImg, CV_BGR2GRAY);Convert(pFrImg, pFrameMat);/高斯滤波先,以平滑图像Smooth(pFrameMat, pFrameMat, CV_GAUSSIAN, 3, 0, 0);/当前帧跟背景图相减AbsDiff(pFrameMat, pBkMat, pFrMat);/二值化前景图Threshold(pFrMat, pFrImg, 30, 255.0, CV_THRESH_BINARY);/进行形态学滤波,去掉噪音 Erod

13、e(pFrImg, pFrImg, 0, 1);Dilate(pFrImg, pFrImg, 0, 1);输入图像高斯滤波帧差分二值化前景图形态学滤波更新背景输出前景智能机器人课程实验报告- 6 -/更新背景RunningAvg(pFrameMat, pBkMat, 0.0001, 0);/将背景转化为图像格式,用以显示Convert(pBkMat, pBkImg);5.2. 手势识别流程设计手势识别流程图:图5-2 手势识别流程图关键函数:/* srcImg -原始图像* storage -临时存储* contour -图像轮廓* storageApp -临时存储* storageDom -

14、临时存储* mode -轮廓查找计算方法* CV_CHAIN_APPROX_SIMPLE -轮廓选择模式,压缩水平,垂直或斜的部分* CV_POLY_APPROX_DP -多边形逼近参数* CV_DOMINANT_IPAN -关键点查找参数* dmin -最短距离(参考4.1部分)*dmax -最长距离(参考4.1部分)*dn -相邻距离(参考4.1部分)*maxAngle -最大角度(参考4.1部分)*/查找轮廓FindContours( srcImg, storage, /多边形逼近ApproxPoly(contour,sizeof(CvContour),storageApp,CV_POL

15、Y_APPROX_DP,20,0);手势轮廓提取轮廓多边形逼近查找多边形关键点统计关键点数量 统计关键点位置综合分析识别智能机器人课程实验报告- 7 -/查找关键点FindDominantPoints(contour,storageDom,CV_DOMINANT_IPAN,dmin,dmax,dn,maxAngle)5.3. 虚拟键盘设计虚拟键盘处理流程图:图5-3 虚拟键盘处理流程图6. 实验结果6.1. 手指数目识别结果实验步骤:步骤一:链接摄像头(分辨率大于640*480)到电脑上步骤二:打开可执行文件,调整摄像头步骤三:点击开始,查看界面gesture img extract窗口步骤四

16、:等待gesture img extract 窗口基本没有噪声点,此时背景消除模型已基本建立,可以开始识别界面窗口:Virtual keyboard:虚拟数字键盘输入窗口Original image:原始视频图像显示窗口gesture img extract:手势识别处理结果显示图InPut Num:虚拟数字键盘输入结果显示窗口Fingures Num:手指数目识别结果显示窗口状态位初始化输入关键点检索最优关键点撤销焦点 获得焦点输出修改状态位检查当前状态选中焦点内容智能机器人课程实验报告- 8 -图 6-1 手指数目识别效果图 1图6-2 手指数目识别效果图2实验效果:从6-1,6-2中可以

17、看到,在手势基本稳定后,Fingers Num 标签处能正确显示手指的数目。有时可能由于手势变化过快,或由于长时间手势停留,会导致背景智能机器人课程实验报告- 9 -建模错误,出现错误识别的现象(如图 6-3),但是,总体的识别效果还是比较理想的。6.2. 虚拟键盘输入结果图 6-3 虚拟键盘数字键获得焦点图图6-4 虚拟键盘数字键被选中图智能机器人课程实验报告- 10 -实验效果:从6-3,6-4中可以看到,在手指位置变化的过程中,虚拟键盘窗口区域能够准确的反应手势的输入情况。图6-3 展示的是手势在数字键”5” 上悬停的结果,此时数字键”5” 获得焦点。图6-4 展示的是手势选中数字键”5

18、” 的结果,此时Input Num 窗口区域中的数字从 ”*110*258#” 变为 “*110*258#5”,表示选中数字键 ”5”。更多的实验效果可以查看实验录像。7. 实验心得通过对手势识别的研究与虚拟数字键盘的设计开发,理解了一般手势识别的处理过程,深入理解并掌握手势识别的原理及实际应用,同时对人机自然交互也有了新的认识。从实验的效果来看,在不分类训练的情况下,朴素手势识别方法可以准确的识别手指的数目,能及时捕获关键点在虚拟键盘上的位置,并且可以实时的处理手势在虚拟键盘上的输入。从实验中可以看出手势识别对于人机自然交互有很好的帮助作用,能够改善传统的输入方式,给人们带来新的体验。但是,可以从中知道手势识别在该应用中,仍存在某些缺陷:例如手势语义分类理解问题,虚拟键盘的多点触控问题等。目前的算法还只能识别出手指数目并对虚拟键盘单点做检查并做输入识别,但是很多情况下要求程序理解手势的语义而不仅仅是手指数目;同时为了增强人机交互的体验效果,单点的触控效果显然是不够的,用户需要更多的手势触控点。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报