《基于体感技术的碰撞球游戏设计与开发毕业论文.doc》由会员分享,可在线阅读,更多相关《基于体感技术的碰撞球游戏设计与开发毕业论文.doc(59页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、基于体感技术的碰撞球游戏设计与开发摘 要 体感技术是一项利用人体肢体动作识别外界感应的一门技术,它可以让人们可以很直接地用自身的肢体动作,与周边的设备或某种环境互动,而且不需要使用任何复杂的其他外在设备,便可让人们身临其境地与内容进行互相“交流”。此次毕业课程设计是利用微软公司的Kinect体感设备作为捕捉人体动作识别的工具来获取到人体骨骼模型,然后通过VisualStudio开发工具,来实现设计出一个能够满足人们简单娱乐的小球碰撞游戏。该系统利用Kinect传感器红外摄像头侦测、捕捉用户肢体及骨骼动作,将采集到的红外线图像和Kinect的原始参数进行一系列复杂的计算,从而获得人体三维深度流数
2、据信息,以此来创建成相关的骨骼模型,再将整合形成的原始模型转换成虚拟角色,当用户发出挥手、抬脚、说话等动作时,该虚拟角色通过识别该人体骨骼模型的关键部位进行动作触发,使小球做出相应的动作。毕业课程应用Kinect设备,其具备当今最先进的人机交互技术、人体运动分析技术和骨骼提取技术,是对相关技术的一次大胆尝试。其中,人机交互技术在许多领域得到了广泛应用。人体运动分析技术也有了可观的发展,实质上能够捕捉人体的动作是实现人体运动分析的前提。骨骼提取作为捕捉人体动作的重要一环,也日益得到学术界的关注,骨架是表现图像拓扑的一个重要特征,是表示物体形状的一种有效形式,其信息量少,但又能较完整描述物体的几何
3、性质,因此在图像检索、模式识别和虚拟运动等领域得到了广泛的应用。市场上涉及到的行业有虚拟试衣,体感游戏,购物商城,虚拟会议等等。但体感技术提取人体信息不够灵敏,技术还有待提高。关键词:体感,Kinect,小球碰撞,虚拟角色,骨骼模型The Technology Of Somatosensory Based On Collision Ball Game Design And DevelopmentABSTRACTMotion-sensing technology is a use of human body movement recognition outside the induction o
4、f a foreign technology, as the name implies, it can let people can directly use their body movements, interactions with the surrounding equipment or some kind of environment, and theres no need to use any other outer equipment complex, can make people more vividly and content to communicate with eac
5、h other. To improve efficiencyThis design is to use Microsofts device body feeling equipment as capture human motion recognition tool to get to the human body skeleton model, then through VisualStudio development tools to design a can satisfy people simple ball collision of entertainment games. The
6、system USES sensors infrared camera device detection, capturing user body and bone moves, the collected infrared image and to access the original parameters calculation of a complex set of 3 d depth stream data information for the human body, in order to create a relevant bone model, and then integr
7、ated form of the original model is transformed into a virtual character, when the user sent to wave, lift the foot, the action such as speaking, the virtual character by identifying the key parts of the human body skeleton model for action triggers, make the ball makes the corresponding action.As th
8、e field of pattern recognition and artificial intelligence technology level unceasing enhancement, makes the man-machine interaction technique has been widely applied in many fields. At the same time, in recent years, human motion analysis technology has considerable development, in essence, to capt
9、ure the action of the human body is the premise to realize human movement analysis. Skeleton extraction, as an important part of the human body movements, is becoming more and more attention by the academic circle, and also an important feature skeleton topology is to keep the image, is an effective
10、 form of said object shape, the less the amount of information, but also can complete description geometric properties of the object, so in image retrieval, pattern recognition and the virtual movement, and other fields has been widely used. But motion-sensing technology to extract human body inform
11、ation sensitive enough to technology needs to be improved.KEY WORDS: Motion-sensing,Kinect,Small ball collision,Virtual character,Skeleton model15目 录前 言1第1章 绪 论31.1引言31.1.1 国内外研究现状41.1.2 本文的主要内容51.1.3 章节安排6第2章 Kinect传感器的结构及工作原理72.1 Kinect 硬件部分72.1.1 Kinect基础介绍72.1.2 系统级芯片82.1.3 红外投影机92.1.4 彩色摄像头和红外摄
12、像头92.1.5 麦克风阵列92.2 Kinect 传感器的软件系统102.2.1 Kinect的核心 NUI API112.2.2 Kinect Audio DMO122.2.3 Windows Speech SDK122.3 深度图像的获取技术132.4 Kinect 获取深度图的原理14第3章 基于深度图像的骨架提取163.1 检测方法163.1.1 传统的检测方法163.1.2 深度摄像头实现目标检测与分割173.1.3 基于最优阈值的方法183.2骨骼提取203.2.1 人体骨架空间203.2.2 关节定位21第四章 小球碰撞游戏开发234.1 建立游戏模块234.2 基于C#编程2
13、44.2.1 定义小球模块244.2.2 定义游戏模式254.2.3 碰撞类型264.2.4 界面显示284.2.5 语音识别模块294.3 游戏体验35第5章 总结与展望375.1 论文主要工作375.2 展望37结 论39谢 辞40参考文献41附 录43前言随着当今社会的高速发展,人们的工作效率也越来越高,生活节奏也逐步加快,这些都与计算机的迅猛发展密不可分。现今社会,基本有人类的地方就有计算机,也没有哪个行业可以真正与计算机脱离开来。提高人类计算机的使用效率,改变人类使用计算机的时间是现实亟待解决的问题既是节约时间,又可以提高工作效率,还可以提高人们娱乐和交流方式。人机交互是研究人与计算
14、机及其相互作用的技术,其研究目的在于利用所有可能的信息通道进行人-机交流,提高交互的自然性和高效性。目前人与计算机交互的方式往往局限于鼠标与键盘,正是由于这种传输方式的单一性阻碍了人机交互的进一步发展,人机交互中输入输出效率之间的差距变的越来越大。随着科学技术的高速发展,更高层次的人机交互理念对交互方式提出了巨大的需求,众多科研人员开始对新的交互技术的多通道界面展开研究,目前的研究内容主要是集中在手势输入、语音识别及感觉反馈等方面。而Kinect体感技术的出现促进人机交互的发展,具有重要意义,Kinect作为新一代的体感设备,可以依靠实时捕捉使用者的动作、面部识别及语音识别就可以达到输入功能。
15、这一特性很好地填补了现有人机交互技术的缺陷,并且促使Kinect体感技术成为人机交互领域中的一个研究热点。在于人们可以很直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让人们身历其境地与内容做互动。可以说这项技术是目前人机交互技术中最前沿、最热的领域之一,它将开启人机交互的新时代。自微软Kinect红外深度感应器发布以来,国内外对其技术和应用上的研究都取得了比较多且富有创造性的成果。Kinect感应器最初是作为微软XBOX游戏机的体感外设发布的,后经热心开发者建立起OpenNI的软件框架,Kinect在计算机方面的研究和应用才逐步获得了较大的影响力。现阶段微软已经
16、为此款深度感应器发布了官方的驱动程序及SDK,更进一步推动了体感技术的开发应用。Kinect在国内外的研究动态,在人体骨架识别和建模方面,利用SDK,华中科技大学的Wei Shen和微软公司的Ke Deng等人提出了基于模型的人体骨架修正和标记方法,较好地解决了获取人体动作视频中的遮挡问题。此外,微软剑桥研究院的Shahram Izadi等人则利用深度摄像头开发了一套实时三维重建和交互系统,系统通过摄像头对所见物体进行三维重建,并实现了操作者在虚拟空间中的实时交互。可以说传感器方面的革新使人体骨架建模有了更优的解决方案,为基于人体骨架识别和运动跟踪方面的应用开拓了广阔的前景。另一方面我们也认识
17、到Kinect技术目前应用不是很广泛,其深度探测技术还不够成熟,其每秒只能拍摄30帧,这样的动作捕捉不但不能准确分辨,也会造成很大的延时。只能适合缓慢的动作,这使得其应用范围受到一定局限,难以实现一些需要快速做出相关肢体动作来控制设备内容的实时运作。所以未来需要对其精确度提升有很大的要求,最近也获知Kinect2已经在国外发售,有望能实现自然语音识别、更准确的面部识别和更详细的人体运动捕捉能力。本次毕业课题是以Kinect体感技术来实现一个碰撞球的游戏系统,硬件平台就是微软的XBOX360。软件开发工具Microsoft Visual Studio进行系统开发。开发所用语言为C#。通过Kine
18、ct红外摄像头设采集用户动作,将采集到的三维深度流数据信息通过编程算法和图像处理,在Kinect平台上创建成相关的骨骼模型,再将整合成的原始模型转换成虚拟角色,当用户发出动作时,该虚拟角色也将相应的做出与之同步的动作触发,从而控制场景中的小球运动和碰撞。这样可以根据游戏体验增强家人之间的互动关系,促进孩子与家长之间的沟通协作性。在整个设计过程中要针对小球碰撞游戏的情况解决以下一些问题。如何能够将Kinect采集到的深度数据转化为相应的骨骼模型来操纵小球运动。并通过相关算法提高获取到的骨骼模型的识别精度,并实时跟踪用户的肢体动作,减少动作的延时。提高玩家体验游戏效果的真实性。第1章 绪 论1.1
19、引言人机交互从只有一个维度的绿色字符控制台界面(CLI),到有鼠标操作两个维度的图形用户界面(GUI),再到现在的多点触摸(Multi-Touch)在手机、平板电脑等移动终端上得到了广泛的应用,无疑又引爆了消费者对自然交互的渴望,但交互体验还停留在二维平面的阶段,同时随着摄像头、GPS、重力感应等各类传感器的普及,虚拟现实和增强现实大放异彩,在虚拟与现实世界重叠的同时,又有了眼球跟踪、语音识别、人脸识别等让技术更好理解人类的手段。Kinect正是在这样的背景中诞生的,使人机交互技术从二维的世界扩展到三维的空间,而且是进入到了非接触的交互体验之中。Kinect是微软于2010年发布的一种三维体感
20、摄像机,它具有骨骼跟踪、人脸识别、麦克风输入、语音识别等功能。因此,可以很好的利用Kinect进行人机交互,而人体运动分析更是人机交互中目前研究的重点和热点方向。人体运动分析有着广阔的应用前景,主要包括以下几个方面的应用1:(1) 智能监控系统,例如在一些智能监控场合,通过对人脸识别、步态分析决定是否容许其进入该区域。比如说在银行、机场等安全要求比较高的地区,可以通过监控,发现可疑人员并发出报警。(2) 虚拟现实,例如可以对用户在真实物理空间中的姿态进行有效的分析理解。(3) 智能用户接口,计算机可以通过计算机视觉信息,实现人机交互。比如机器人通过摄像头捕捉人体运动信息并加以理解并作出合适的反
21、应。(4) 运动分析,例如在舞蹈,体操运动的训练中,通过分析关键节点的运动来指导纠正练习者的动作等。(5) 基于模型的视频编码,例如通过建立人脸、人体的参数化模型,达到较高的压缩效果,对人体运动分析的研究具有重要意义。1.1.1 国内外研究现状日常生活中的智能监控系统、体育运动竞技研究、动画制作等许多领域都需要对人体运动状态进行分析。要实现人体运动的分析,就必须对人体运动的状态进行捕获,通过采集得到的数据对人体关节点进行定位获得准确的运动参数。目前捕获人体运动的方法有很多,但是最直接的方法,还是通过摄像头进行捕获。因为通过摄像头获取的图像和视频不仅包含了许多运动信息,而且摄像头不会对人的运动产
22、生任何约束,因此,人体运动方面的研究,几乎都是使用摄像头作为输入信息进行研究的。人体运动捕捉的研究开始于1980年,由于它的广泛应用,国内外的学者对此进行了大量研究,提出了许多运动捕捉和姿态估计的方法。基于视频的人体运动分析主要是从摄像机拍摄的图像序列中分析每一帧的人体运动状态,对人的行为进行识别。通过不同的运动分析方法可以从图像中提取出不同的信息。北京理工大学徐枫等人使用无标记运动捕捉的方法获得任意时刻人体对应的骨骼和三维模型2。T.Drummond等人通过检测运动物体的边缘信息,可以快速恢复图像的三维模型,具有较高的实时性3。美国科学家Moon等人提出了采用形状编码的方法对外轮廓进行描述,
23、利用外轮廓信息来进行运动捕捉4。武汉理工大学教授李豪杰等人研究出了自顶向下和自底向上的运动捕捉方法5,自顶向下的捕捉方法又称为基于模型的方法,该方法根据已知的条件,将人体模型与图像进行匹配,建立一些约束,以获得人体姿态参数。该方法主要包括:(1) 微分法建立一个目标函数,通过雅克比矩阵建立模型微分和图像坐标的联系6,本方法收敛速度较快,但不适合跟踪大幅度的运动。(2) 动力学法在预测时与图像某些相关数据间生成一种类似于弹簧弹力的力,根据这种类似于弹簧弹力的力修正模型参数,直到匹配成功7。本方法可以跟踪较大幅度的运动,但却不能保证其收敛性。(3) Kalman滤波利用目标的动态信息首先对前一时刻
24、的状态进行预测,然后利用前一时刻的估计值和现在时刻的观测值来更新对状态变量的估计,求出现在时刻的估计值9,本方法可以描述跟踪过程中的某些不确定信息,鲁棒性较高,但本方法要求系统状态和噪声是单峰分布,很难满足现实要求。自底向上的捕捉方法又称为非模型的方法,该方法通过对底层特征的跟踪,对图像进行处理分析,从中提取感兴趣的特征,将它们与待识别目标的特征相比较,选取最相似的部分,以此确定待识别目标在图像中的位置,获取人体姿态信息。该方法主要包括:(1) 特征跟踪法,首先在首帧中标注出人体的关键点位置,然后通过后续帧中通过跟踪建立起帧与帧之间的关系,最后获取不同的时刻人体的姿态参数10。(2) 标记法是
25、作为指导对人体的轮廓进行标记,从而获得姿态信息11。(3) 模板匹配法是以边缘为特征,通过形状关联匹配从模板库中找到最相近的样例,通过这个样例获得输入图像的二维关节点位置,然后使用Taylor12级数法恢复出三维的人体姿态。姿态估计主要可以分为两种:一种是标记出图像的每个像素点所在的人体部位,通过图像的全局特征进行匹配分析,然后经过聚合可以得到人体各关节点的位置,进而实现运动捕捉。东北师大副教授林鹏等人通过构建深度图样本库,提取训练样本中的局域梯度特征,利用随机森林学习得到分类器,并对图像进行单点分类,计算人体各关节点13,他们利用AdaBoost多示例学习算法训练部位检测器,然后利用各部位检
26、测器对样本测试,从而将样本转化为特征向量,再用SVM方法对这些向量进行学习,得到最终的部位组合分类器14。1.1.2 本文的主要内容本文主要分析了骨骼定位研究的背景和意义,介绍了国内外相关的研究工作,包括运动捕捉和人体姿态估计的定位方法,分析了它们的优缺点,然后选择了下面的研究方法:使用微软的深度摄像头Kinect提取深度图像作为输入信息,然后,利用最优阈值法实现人体与背景的分割,通过算法进行骨架提取,在骨架上确定初始的关节点,通过人体的固有特性来最终确定实际关节点的位置。1.1.3 章节安排本文从理论和实验两个方面,对基于Kinect的骨骼定位中的深度图像背景分割、骨架提取、骨骼定位进行了研
27、究。具体章节安排如下:第一章提出了本课题研究的背景和意义,对国内外有关人体骨骼定位的方法进行了总结和归纳。第二章介绍了Kinect的软硬件结构、获取深度图像的基本原理、深度图像的校正以及Kinect的机器学习技术。第三章阐述了基于深度图像的骨架提取,提出了一种基于最优阈值的图像分割方法,利用该方法实现了人体与背景的分割;使用数学形态学的方法对人体的剪影图进行了去噪,实现了人体骨架的提取。第四章主要进行研究小球碰撞游戏的开发,以及相应流程图,基于微软的C#进行编程,并达到了预期目标。第五章对全文进行了总结和展望,本次课题成果存在的问题,并探讨了未来的研究方向。第2章 Kinect传感器的结构及工
28、作原理2.1 Kinect 硬件部分2.1.1 Kinect基础介绍Kinect是微软在2009年6月2日的E3大展上。正式公布的XBOX360体感周边外设。Kinect 实物图如图 2-1 所示:Kinect彻底颠覆了游戏的单一操作。使人机互动的理念更加彻底的展现出来。不需要使用任何控制器,它依靠相机捕捉三维空间中玩家的运动。微软指出它会让系统更加简易操作来吸引大众。可以说人们利用它能够直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让其身历其境地与内容做互动。Kinect是一种3D体感摄影机(开发代号“Project Natal”),同时导入了即时动态捕捉、影
29、像辨识、麦克风输入、语音辨识、社群互动等功能玩家可以通过这项技术在游戏中开车、与其他玩家互动、通过互联网与其他Xbox玩家分享图片和信息等。图2-1 Kinect 设备外观Kinect传感器主要由以下部件组成:不同的芯片;三块主板;外壳、底座;用于仰角控制的传动马达电动机;USB线;散热风扇;红外投影机;彩色摄像头;红外摄像头;四个麦克风阵列等,拆解后的Kinect如图2-2所示:图2-2 拆解后的Kinect 外壳、底座及4个不同类型的螺钉。 Moving Touch传动马达电动机(用于仰角控制) 散热风扇 彩色摄像头 红外摄像头 红外投影机 麦克风阵列 3部分主板 14种关键芯片2.1.2
30、 系统级芯片Kinect使用的是PrimeSense公司生产的PS1080系统级芯片。PS1080芯片拥有很强的并行计算能力,可控制近红外光源,然后进行图像编码并主动投射近红外光谱。同时,通过一个标准的CMOS图像传感器接收投影的红外光谱并且将编码后的反射斑点图像传输给PS1080芯片,PS1080芯片对此进行处理并生成深度图像。PS1080 芯片是一个多感应系统,能提供同步深度图像、彩色图像和音频流,它通USB2.0 物理层协议将所有数据传送到主机。另外,PS1080 芯片适用于所有深度获取算法均在 PS1080 芯片上运行的各种主机 CPU,主机只需要运行最低限度的 USB 通信层。通过这
31、种设计,即便是计算能力有限的主机设备也具备获取深度图像的能力。2.1.3 红外投影机红外投影机是位于Kinect最左边的镜头,它与最右侧的红外摄像头配合使用。PS1080芯片对红外光源进行控制,以便通过红外光编码影像放映场景。红外投影机主动投射近红外光谱,照射到粗糙物体、或者是通过一个类似于毛玻璃的透明散射体而导致光谱发生扭曲,然后形成无规则分布的反射斑点,进而能被红外摄像头读取。它的光源是一类普通激光光源,该光波波长为830nm,可以持续输出,符合IEC 60825-1标准中的一级安全要求,对人体没有害。2.1.4 彩色摄像头和红外摄像头Kinect是通过彩色摄像头和红外摄像头来获取图像的,
32、彩色摄像头用来获取RGB图像,红外摄像头用来获取深度图像,两者的分辨率都为640480。红外摄像头是一个标准的CMOS图像传感器,负责接收发出的红外光,并将红外光编码图像传给PS1080芯片,PS1080芯片负责处理红外图像,然后逐帧生成准确的场景深度图像。为了生成更准确的传感器信息,PS1080芯片会执行“PrimeSense”注册过程。注册就是将RGB图像和深度图像进行对应,产生像素相互对应的图像,即RGB图像中的每个像素分别与深度图像中的一个像素对应。这能让应用程序准确了解收到的RGB图像中每个像素的深度信息。所有传感器信息(深度图像、RGB图像和音频)通过一个USB2.0接口传送给主机
33、,且时间准确。2.1.5 麦克风阵列由于Kinect的三个镜头的分布不对称,因此Kinect麦克风阵列的分布也是不对称的,这样才能保持质量分布的均衡,麦克风阵列布局如图2-3所示:图2-3 Kinect麦克风阵列布局Kinect的音频系统采用了四元线性麦克风阵列技术。麦克风阵列中含有四个相互独立的小型麦克风,这四个小型麦克风呈线性排列,每个麦克风之间相隔数厘米,这些麦克风可以捕捉多声道立体声,然后通过数字信号处理等组件,根据麦克风阵列接听声音的时间差来判断声源方向。从元件上看,除了Kinect的四个麦克风阵列以外,还配置了Wolfson MicroelectronicsWM8737G芯片用于进
34、行本地的音频信号处理。与一般的单麦克风数据相比,Kinect采用的阵列技术包含有效的噪声消除和回波抑制(Acoustic Echo Cancellation,AEC)算法,同时采用波束成形(Beamforming)技术,通过每个独立设备的响应时间确定音源位置,并尽可能避免环境噪声的影响。2.2 Kinect 传感器的软件系统Kinect传感器提供原始数据流给SDK,这些数据流包括深度数据流、彩色图像数据流和音频数据流。通过Kinect SDK可以直接获取这些原始传感器数据流,并在此基础上进行较为底层的应用开发。此外,Kinect SDK封装了骨骼跟踪等高层NUIAPI供应用程序调用,从而进一步
35、开发动作识别、体感操作和智能监控等应用。应用层API包括三大组件,分别是:(1) NUI API:SDK的核心,用来处理彩色图像流、深度图像数据、骨骼跟踪和控制/管理Kinect设备等。(2) Kinect Audio DMO:提供波束成形和音源定位功能。(3) Windows Speech SDK:提供音频、语音、多媒体API集以及微软语音识别功能。2.2.1 Kinect 的核心 NUI API15NUI(网络用户标识) API是Kinect的核心API。它支持“流处理”和“设备管理”的功能,主要包括:(1) Kinect传感器与计算机的连接、访问和关闭。(2) 访问从Kinect传感器上
36、传输的图像和深度数据流。(3) 通过对图像和深度数据的处理来进行骨骼跟踪。Kinect for Windows SDK的驱动程序最多支持4个Kinect设备连接在同一台计算机上。NUI API具有设备枚举的方法,可以判断已连接设备的数量。应用程序可以通过枚举来获得各个Kinect设备的名称,单独使用或设置其属性。初始化NUI API和使用Kinect传感器的步骤如下:(1) 获得Kinect实例,代码如下:KinectSensorsensor=(fromsensorToCheckinKinectSensor.KinectSensorswheresensorToCheck.Status=Kine
37、ctStatus.ConnectedselectsensorToCheck).FirstOrDefault ();以上为LINQ查询表达式,可以使用LINQ的foreach语法进行当前活动,连接Kinect传感器进行遍历。代码如下:foreach (KinectSensor kinect in KinectSensor.KinectSensors)if (kinect.Status = KinectStatus.Connected)kinectSenosr = kinect;break;(2) 调用KinectSensor.Start方法初始化并启动Kinect传感器。(3) 注册相关事件,如
38、视频流或深度数据到来的事件、骨骼跟踪事件,并基于这些事件调用SDK提供的相关API进行处理,代码如下:KinectSensor.ColorFrameReadyKinectSensor.DepthFrameReadyKinectSensor.SkeletonFrameReadyKinectSensor.AllFrameReady如果同时使用多台Kinect,开发者可以指定其中一个作为当前骨骼跟踪的设备。(4) 调用KinectSensor.Stop方法关闭Kinect传感器。如果应用程序初始化并启动Kinect传感器,在未正常关闭前,如果Kinect传感器被意外拔出,则该事件可以被捕捉。2.2.
39、2 Kinect Audio DMOKinect麦克风阵列基于语音识别的类库之上,主要API包括DMO(DirectX Media Object,DirectX多媒体对象)和MSAPI语音识别(Microsoft Speech Recognition API)。Kinect SDK中的Audio API对DMO进行了封装,并针对Kinect传感器的麦克风阵列进行了优化。Kinect SDK中包含一个托管的音频接口Kinect Audio DMO API,通过该接口可初始化音频、采集音频和结束音频流,还包含了声源定位的相关API,并且支持声源波束方向变化的事件。Kinect Audio API主
40、要是通过Kinect AudioSource类来完成,包括从麦克风阵列中获取原始音频流或加工过的音频流。应用程序使用AudioAPI的作用:(1) 高质量的音频采集和音频控制。Kinect Audio API内嵌一系列的算法来确保接收音频品质,包括降噪、自动增益控制和回声消除等处理。(2) 波束成形和程序初始化,波束定位。Kinect Audio DMO用内置的算法来控制束和提供应用程序的原始方向。BeamAngleMode类对底层的DMO系统模式和麦克风阵列属性进行了抽象封装。通常该属性设置为Adaptive,由Kinect SDK来控制波束成形。2.2.3 Windows Speech S
41、DKKinect SDK的安装同时也包括语音识别的组件部分,包括Microsoft Speech API、SpeechPlatform SDK和Kinect for Windows Runtime Language Pack(运行语言包)。Kinect for Windows运行语言包是一系列的语言模型,用于Kinect SDK和语音识别API组件之间的互操作和语音指令识别的优化。语音识别是自然人机交互很重要的一个方面。Microsoft Speech SDK作为Kinect SDK的组件被安装,包含一个自定义的声学模型。简单来说,语音识别分为两个层次:对特定语音命令识别和自然语音识别。Kin
42、ect SDK目前不包含自然语音识别的部分,属于特定语音命令识别的范畴。Kinect SDK利用Microsoft.SpeechAPI的最新声学算法,应用程序可以进行语音识别和语音控制。Kinect SDK是基于Microsoft.Speech类库实现语音命令的识别,也可以基于Kinect的麦克风通过System.Speech类库来实现语音命令识别,但由于距离的原因识别效果不好。Microsoft.Speech类库的关键对象是SpeechRecognitionEngine,负责从Kinect传感器获取降噪预处理后的音频数据流,然后分析和解释,从而进一步匹配出最适合的语音命令。2.3 深度图像的
43、获取技术15目前,用来获取深度图像信息的传感器技术主要包括三种。第一种,激光雷达测距技术。激光雷达测距技术融合了传统的雷达技术和现代的激光技术。由于激光雷达具有亮度高、抗干扰性强、单色性好、体积小等优点,因此已经广泛应用于各个领域。激光雷达测距技术的主要原理是通过激光发射器发出激光,当激光检测到被测物体时会进行反射,然后在发射处接收被测物体的反射光,并计算激光返回所需要的间隔时间,结合光速就可以求出被测物体的距离。其获取深度数据的公式为:其中c为光速,t为间隔时间,R为深度数据。光线飞行时间测距技术发展较早、现在主要有DepthSense,ZCam等产品,其主要优点是速度较快、帧率较大,缺点是
44、容易受背景光的影响。第二种,立体视觉技术16。立体视觉技术是基于视差的原理,通过多目摄像头获取多幅RGB图像,经过摄像机标定、图像预处理、立体匹配、深度确定及内插等过程获得物体的深度信息。美国麻省理工学院Marr教授首次提出了比较完善的视觉系统框架。常用的几种立体视觉技术有双像合成法、莫尔条纹法、傅里叶变换轮廓法、位相测量法、主动三角形法、几何光学聚焦法以及飞行时间法。立体视觉技术的优点是系统结构简单、精度较高,缺点主要是算法的复杂度高,实时性较低。第三种,结构光成像技术。结构光成像技术是一种主动式三角测量技术,投射已知的红外模式到场景中,在场景中产生具有可识别编码的条纹,由摄像头读取条纹并由
45、图像传感器获得图像,通过系统化的几何关系,利用三角原理计算从而最终来确定深度信息。根据结构光投射模式的不同,结构光三维视觉测量方法可分为点结构光模式、线结构光模式和面结构光模式。结构光测量技术作为一种快速、高精度、实时性强的三维测量技术,在汽车、航空、模具、医疗等领域均得到了广泛的应用。2.4 Kinect 获取深度图的原理17本文采用的是基于光编码技术(light coding)的Kinect传感器。Kinect有发射、捕捉等功能,它的深度摄像头是由一个红外投影机和红外摄像头组合而成的,红外投影机发出的光线覆盖的范围和红外摄像头接收的光线覆盖的范围有重叠的区域,如图2-4所示:图 2-4 K
46、inect 红外摄像头视角Kinect 获取深度信息是利用基于光编码的技术,红外投影机发射一束红外光线,经过散射片后会分成许多束光线,这些光束聚合在一起会形成散射光斑。而红外摄像头可以捕获散射光斑并且与内部存储的参考模式进行比较。参考模式是通过捕获已知距离的散射光斑获得的,并且存储在 Kinect 内部。当红外摄像头捕获的光斑的真实距离比参考模式小或者大的时候,光斑在红外图像中的位置将会沿着基准线有一定的移动,通过图像的相关性过程可以测量所有光斑的移动范围,因而形成一幅视差图像,然后可以通过视差图像中相应的位移计算出每个像素点的深度距离。洛阳理工学院毕业设计(论文)第3章 基于深度图像的骨架提
47、取本章内容主要分为两个部分:对深度图进行预处理,实现人体与背景的分割;对人体关节点进行定位,实现骨架提取。3.1 检测方法3.1.1 传统的检测方法18在通过深度图像对骨架进行提取之前,很重要的一步是探测人体在图像中的区域,并实现去除背景等必要的操作。从图像中去探测人体,是一个比较困难的问题,原因在于人体身高、体型、穿着都不一样,就算是外形大致一样,四肢也可以运动,相互遮挡,再加上背景的复杂性,所以难以用常规的图像匹配的方法找出人体。目前使用的方法主要有传统的检测方法和利用深度图实现背景分割法,下面对这两种方法进行简单的介绍。传统的方法中有一种方法是人穿着特殊颜色的衣物,利用光照条件,使得人体
48、区域和背景颜色或灰度上产生较明显的差异。例如孙怡采用了基于模型和非模型的方法进行了腿部动作跟踪,获得图像后,利用阈值法分割法分离出其中的人体区域。这种方法实现起来过程简单,效率高,效果较好,但是对实验环境和实验者的穿着有一定的要求,应用起来有一定的局限性。利用背景静止的特性,是目前进行人体区域分割的主要方法。只要摄像机的位置不变,同时背景环境不发生变化,获取的图像序列中运动的区域就是人体区域,根据这个特性形成的方法主要有帧间差分法、光流法和背景差分法。帧间差分法主要是是通过对视频序列中相邻的两帧或几帧图像对应的像素点作差分运算,运算得到的数值的绝对值如果小于等于某个阈值,则该点为背景点,否则为运动目标的像素点。光流法实际上是通过检测图像像素点的强度随时间的变化进