1、I基于 Kinect 的人机交互系统设计摘 要随着技术的不断进步,人机交互的方式也越来越先进,通过肢体动作来操作计算机和游戏机已经成为现实。自从微软推出 Kinect 体感外设以来,自然的人机交互成为当前的研究热点,通过 Kinect 外设,可以解除人们受键盘、鼠标等传统交互方式的束缚,具有重要的意义。本论文介绍的就是基于 Kinect 的人机交互的程序设计。本设计通过 Kinect 的骨骼跟踪接口,自定义动作,如手臂平伸,手臂前伸,手臂上举等,触发事件后映射为键盘事件,达到操作应用程序的目的。使用者可以选择被控制的对象程序。为了防止他人干扰操作,本程序默认只追踪离Kinect 传感器最近的人
2、。本设计的程序可以让使用者通过手臂动作操作俄罗斯方块、播放 PPT、控制音乐播放器、控制视频播放器。未来还可以扩展其他基于键盘控制的程序的操作。关键词:Kinect 人机交互 骨骼跟踪IIThe Design of Man-machine Interaction System Based on KinectABSTRACTAs technology continues to progress, human-machine interaction is more and more advanced, and body movements to operate computers and game
3、 consoles has become a reality.This paper will introduce a program of Kinect-based human- machine interaction design. Since Microsoft launched Kinect somatosensory peripheral,natural human-computer interaction has become a research hotspot. People can lift their shackles of traditional interact such
4、 as keyboard, mouse, and others through the Kinect peripheral, and this will be a important significance.This design achieve the purpose of operating applications through Kinects skeleton tracking interface, such as stretch your arms, reach your arms,and uplift your arms.custom actions and an trigge
5、red event which is mapped to keyboard event. The user can select the object of control program.In order to prevent the interference of other people, this design procedures only tracks the people who is nearest to the Kinect sensor.The program of this design allows the user to operate Tetris, Powerpo
6、int,music and video player.It can be extended to other keyboard-based control programs operating in the future.Key Words: Kinect Human- machine interaction Skeleton tracking i目 录第一章 引言 .11.1 选题理由 .11.2 自然人机交互技术的发展 .11.3 国内外发展情况 .11.4 你就是控制器 .11.5 Kinect 的应用 .21.6 需求分析 .3第二章 认识 Kinect .42.1 两款 Kinect
7、 对比 .42.2 Kinect 的硬件组成 .52.2.1 Kinect 的“心脏” PS1080 SoC .62.2.2 Kinect 的“三只眼” 投影仪和两个摄像头 .72.2.3 Kinect 的“四只耳朵” 麦克风阵列 .82.3 Kinect 相关的技术规格 .92.4 Kinect 工作原理 .102.4.1 Kinect for Xbox360 的产品设计 .102.4.2 基于“管道 ”的系统架构 .11第三章 总体设计 .133.1 软件概述 .133.2 软件用户群 .133.3 软件功能 .133.4 运行环境 .133.5 开发环境 .14ii3.6 软件框架图 .
8、143.7 软件各模块设计 .143.7.1 初始化窗口 .143.7.2 注册 Kinect 变化事件 .143.7.3 骨骼事件处理 .14第四章 详细设计与算法分析 .164.1 初始化相关模块 .164.1.1 定义变量 .164.1.2 Window_Loaded 窗口载入事件 .164.2 注册 Kinect 变化事件 .164.2.1 事件方法主体 .164.2.2 事件方法中引用的方法 .164.3 骨骼事件处理 .174.3.1 隐藏骨骼跟踪提示标签 .174.3.2 判断窗口是否关闭中 .174.3.3 获取最近的骨骼跟踪跟踪实例 .174.3.4 判断获取的距离 Kine
9、ct 最近的骨骼跟踪实例 .174.3.5 提示用户可以进行应用程序控制 .174.3.6 判断 Kinect 的控制对象 .184.3.7 定义判断骨骼跟踪事件的阈值 .184.3.8 控制俄罗斯方块的方法 .184.3.9 控制 PPT 播放的方法 .204.3.10 控制音乐播放器的方法 .214.3.11 控制视频播放器的方法 .234.3.12 模拟键盘输入工具类 .244.3.13 窗口关闭方法 .25第五章 软件测试 .26iii5.1 Kinect 控制俄罗斯方块的测试 .265.1.1 骨骼跟踪图 .265.1.2 运行结果 .265.2 Kinect 控制 PPT 播放的测
10、试 .285.2.1 骨骼跟踪图 .285.2.2 运行结果 .285.3 Kinect 控制音乐播放器的测试 .295.3.1 骨骼跟踪图 .295.3.2 运行结果 .295.4 Kinect 控制视频播放器的测试 .305.4.1 骨骼跟踪图 .305.4.2 运行结果 .30第六章 总结与展望 .316.1 总结 .316.2 展望 .31参考文献 .33附 录 .34致 谢 .40天津理工大学 2013 届本科毕业设计说明书1第一章 引言1.1 选题理由人机交互技术是指通过计算机输入、输出设备,以有效的方式实现人与计算机对话的技术。它是计算机用户界面设计中的重要内容之一。它与认知学、
11、人机工程学、心理学等学科领域有密切的联系。自从微软推出 Kinect 体感外设以来,自然的人机交互成为当前的研究热点,通过 Kinect 外设,可以解除人们受键盘、鼠标等传统交互方式的束缚,具有重要的意义。通过键盘鼠标等外设控制电脑需要操作者近距离的操作,而且无法解放双手,通过自由的方式操控。本设计通过微软开发的 Kinect 体感传感器,令使用者摆脱键鼠的束缚,通过肢体语言让电脑理解你的操作意图,给使用者以更佳操控体验。1.2 自然人机交互技术的发展2008 年,比尔 盖茨提出“自然用户界面”的概念,并预言人机交互在未来几年内会有很大的改观,键盘和鼠标将会逐步被更为自然的触控式、视觉型以及语
12、音控制界面所替代。与此同时,另外一种提法“有机用户界面” 也开始悄然兴起,其包括生物识别传感器、皮肤显示器,乃至大脑与计算机的直接对接,这些技术无疑都将给人类的生活带来重大影响。随着计算机技术和传感器技术的普遍应用,现实世界也逐步出现其“数字版” 的一面,而自然人机交互技术正是现实世界与虚拟世界之间的桥梁。1.3 国内外发展情况Kinect 被吉尼斯世界纪录组织称为史上销售最快的电子产品 1。除了体感设备比较普及的游戏领域外,Kinect 的应用性和实验性正在快速发展。欧洲时装店 Topshop 在莫斯科的旗舰店安装了一种全新的试衣间,这种虚拟试衣间利用了当时最先进的两种技术增强现实和Kine
13、ct 体感,你无须试穿就能见到真实的试衣效果 2。近日,Kinect for Windows 平台为疾病患者打造了一个可以识别面部表情或手势的设备,来帮助很多中风患者缓解失语等困扰。英国的 Nottingham Trent 大学正在着手通过 Kinect for Windows 技术帮助中风患者缓解面瘫带来的影响,目前整个项目已经获得 347000 英镑的资金支持 3。还有淡江大学电机工程学系开发的基于 Kinect 之实时双向人流计数系统 4,台湾大学生医电子与资讯学研究所开发的应用 Kinect 感应器分析手指活动擷取系统 5。1.4 你就是控制器很多年来,不用控制器的沉浸式游戏一直都是游
14、戏设计师和开发人员心目中的至高境界。天津理工大学 2013 届本科毕业设计说明书2在 Kinect 出现之前,任天堂的 Wii 是体感技术的代表,同期的产品还有 Sony 的 PS3,但它们都需要额外的控制器。然而,Kinect 向世人公布:你就是控制器(You are the controller) 。站在 Kinect 前,它立刻就能知道你是谁。不就如此,它还能将你和朋友区分开来。当你移动时,传感器能在瞬间追踪到你。凭借无控制器的娱乐体验,Xbox360 和 Kinect 正以无法想象的方式改变着人们的家庭生活 6。1.5 Kinect 的应用(1)通过对最新的科技产品 Kinect 在
15、SNC 的创新智能教室框架下的应用探索,提出了结合手势识别与增强现实技术的教育辅助系统的设想并进行了实现 7。(2)利用 Kinect 深度传感器所获取的图像深度信息实现手部从背景中的分割,并通过在 Hu矩基础上加入 3 个表达式,使不变矩包含更多细节特征,对手势目标进行识别,最后把得到的识别结果转换成控制指令通过 Ad-Hoc 网络传送给智能轮椅,实现运动控制 8。(3)利用 Kinect 体感设备,可将其即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能整合到视频会议中,使视频会议更具可交互性,提供了更好的用户体验,并提高了视频会议的整体性能 9。(4)一种基于 Kinect 传
16、感器的快速物体重建方法,以及基于该方法的一种图形处理器 (Graphic processing unit, GPU) 原型系统实现 10。(5)基于 Kinect 的用于幼儿教育的手势识别功能模块,用 OpenCV 中的支持向量机识别每个特征向量的手势类别 11。(6)通过分析 Kinect 相机获取的深度图的特征,提出以综合点特征和梯度特征的局域梯度特征的方式来对人体部位区分判定 12。(7)随着 Kinect 设别的出现,获取场景的 2.5D 信息变得很容易。设计了一个全新的基于无监督物体识别系统 13。(8)基于微软 Kinect 系统的单目 RGB 摄像机以及深度距离受限的 RGB-D
17、 像机,研究解决室内机器人的 6 自由度定位问题 14。(9)基于 Kinect 的多点触控系统,该系统利用 Kinect 获取三维深度信息,通过建立触控感应平面模型,检测用户多点触控事件,并进行触控点的坐标变换,实现对电脑的控制 15。(10)利用微软公司推出的深度相机 Kinect 对人体进行扫描,获取人体深度数据,进一步构建人体表面点云数据;再运用 Pro/E 软件对点云数据进行人体模型重建,最后对人体表面特征数据进行测量 16。(11)采用微软公司开发的一款廉价体感游戏设备 Kinect,尝试了对农作物长势形态深度图像进行实时监测研究,在介绍 Kinect 深度成像原理的基础上,提出了
18、采用 Kinect 获取农作物长势深度图像的算法以及提取 3D 点云世界坐标的算法,并开展了初步试验 17。(12)利用 Kinect 以及 ICP 迭代算法计算出了人体头部的旋转角度并且对人体头部的姿态进行了准确的估计,成功利用人体脸部三维点云图像估计人体头部姿态,使得在多种复杂环天津理工大学 2013 届本科毕业设计说明书3境中,实时检测驾驶员头部姿态成为了可能 18。(13)利用微软 Kinect 体感器作为人物场景采集器,将其采集到的深度数据进行处理,将人物与背景分割,去除背景深度区域,保留人物所在深度区域,进一步检测出人物 19。(14)利用 Kinect 传感器所获取的人体骨骼跟踪
19、识别点,通过对手势在三维空间中的位置坐标转换,与手势库中的位置特征信息进行匹配,将合法的手势信息转换为识别结果,反馈给电子相册软件并完成相应的控制指令输出 20。1.6 需求分析(1)功能需求本设计的程序可以让使用者通过手臂动作操作俄罗斯方块、播放 PPT、控制音乐播放器、控制视频播放器。未来还可以扩展其他基于键盘控制的程序的操作。(2)界面需求本设计需要有选择被控程序的功能,同时还要显示玩家的动作视频和动作识别结果及对应的映射结果。(3)性能需求本设计要在本身正常运行的情况下,节省资源,保证被控程序正常运行。由于操作俄罗斯方块时通过线程休眠防止键盘事件过于频繁,但是本程序为单线程程序,线程休
20、眠时主程序界面会卡死。解决的方案是使用多线程技术,将主程序和模拟键盘操作的方法放到两个线程内,这样只休眠模拟键盘操作的线程就可以达到防止键盘事件过于频繁的目的,而且主程序也不会卡死。天津理工大学 2013 届本科毕业设计说明书4第二章 认识 Kinect作为一款集成了诸多先进视觉技术的自然交互设备,Kinect 在学术和游戏领域均有很高的关注度。此外,Kinect 硬件的研发与生产综合了声、光、电和机械学等多方面的技术,其主要零部件近百个,拆分成最小单元后有近千个,有三块独立主板,下面就详细介绍一下。2.1 两款 Kinect 对比图 2.1 所示为 Kinect for Xbox360图 2
21、.1 Kinect for Xbox360图 2.2 所示为 Kinect for Windows图 2.2 Kinect for Windows天津理工大学 2013 届本科毕业设计说明书5从外观上看,二者几乎没有区别,只是 logo 不同,一个是 XBOX360,另一个是KINECT。新版 Kinect for Windows 固件做了升级,支持近景模式、提升了骨骼跟踪的 API 性能、更好的兼容各种 Windows 计算机、采用更为先进的声学模型,并且将其作为微软授权在Windows 平台下进行开发的 Kinect 传感器。其他方面和 Kinect for Xbox360 的版本差异不大。Kinect for Xbox360 的版本从设计之初,就是为 Xbox360 定制的,并未考虑其他平台,这一版本的 Kinect,从微软授权角度而言,无法用作商业开发,只能用作教学、科研或者实验。本设计就是基于 Kinect for Xbox360 的。2.2 Kinect 的硬件组成图 2.3 拆解后的 Kinect如图 2.3 所示,Kinect 内部的确比想象中的复杂得多。以下是 Kinect 组件的完整列表:a外壳、底座及不同类型的螺丝;bMoving Touch 传动马达电机(用于仰角控制) ;