基于体感技术的碰撞球游戏设计与开发.docx
- 文档编号:11985951
- 上传时间:2023-06-03
- 格式:DOCX
- 页数:53
- 大小:1.88MB
基于体感技术的碰撞球游戏设计与开发.docx
《基于体感技术的碰撞球游戏设计与开发.docx》由会员分享,可在线阅读,更多相关《基于体感技术的碰撞球游戏设计与开发.docx(53页珍藏版)》请在冰点文库上搜索。
基于体感技术的碰撞球游戏设计与开发
基于体感技术的碰撞球游戏设计与开发
摘要
体感技术是一项利用人体肢体动作识别外界感应的一门技术,它可以让人们可以很直接地用自身的肢体动作,与周边的设备或某种环境互动,而且不需要使用任何复杂的其他外在设备,便可让人们身临其境地与内容进行互相“交流”。
此次毕业课程设计是利用微软公司的Kinect体感设备作为捕捉人体动作识别的工具来获取到人体骨骼模型,然后通过VisualStudio开发工具,来实现设计出一个能够满足人们简单娱乐的小球碰撞游戏。
该系统利用Kinect传感器红外摄像头侦测、捕捉用户肢体及骨骼动作,将采集到的红外线图像和Kinect的原始参数进行一系列复杂的计算,从而获得人体三维深度流数据信息,以此来创建成相关的骨骼模型,再将整合形成的原始模型转换成虚拟角色,当用户发出挥手、抬脚、说话等动作时,该虚拟角色通过识别该人体骨骼模型的关键部位进行动作触发,使小球做出相应的动作。
毕业课程应用Kinect设备,其具备当今最先进的人机交互技术、人体运动分析技术和骨骼提取技术,是对相关技术的一次大胆尝试。
其中,人机交互技术在许多领域得到了广泛应用。
人体运动分析技术也有了可观的发展,实质上能够捕捉人体的动作是实现人体运动分析的前提。
骨骼提取作为捕捉人体动作的重要一环,也日益得到学术界的关注,骨架是表现图像拓扑的一个重要特征,是表示物体形状的一种有效形式,其信息量少,但又能较完整描述物体的几何性质,因此在图像检索、模式识别和虚拟运动等领域得到了广泛的应用。
市场上涉及到的行业有虚拟试衣,体感游戏,购物商城,虚拟会议等等。
但体感技术提取人体信息不够灵敏,技术还有待提高。
关键词:
体感,Kinect,小球碰撞,虚拟角色,骨骼模型
TheTechnologyOfSomatosensoryBasedOnCollisionBallGameDesignAndDevelopment
ABSTRACT
Motion-sensingtechnologyisauseofhumanbodymovementrecognitionoutsidetheinductionofaforeigntechnology,asthenameimplies,itcanletpeoplecandirectlyusetheirbodymovements,interactionswiththesurroundingequipmentorsomekindofenvironment,andthere'snoneedtouseanyotherouterequipmentcomplex,canmakepeoplemorevividlyandcontentto"communicate"witheachother.Toimproveefficiency
ThisdesignistouseMicrosoft'sdevicebodyfeelingequipmentascapturehumanmotionrecognitiontooltogettothehumanbodyskeletonmodel,thenthroughVisualStudiodevelopmenttoolstodesignacansatisfypeoplesimpleballcollisionofentertainmentgames.ThesystemUSESsensorsinfraredcameradevicedetection,capturinguserbodyandbonemoves,thecollectedinfraredimageandtoaccesstheoriginalparameterscalculationofacomplexsetof3ddepthstreamdatainformationforthehumanbody,inordertocreatearelevantbonemodel,andthenintegratedformoftheoriginalmodelistransformedintoavirtualcharacter,whentheusersenttowave,liftthefoot,theactionsuchasspeaking,thevirtualcharacterbyidentifyingthekeypartsofthehumanbodyskeletonmodelforactiontriggers,maketheballmakesthecorrespondingaction.
Asthefieldofpatternrecognitionandartificialintelligencetechnologylevelunceasingenhancement,makestheman-machineinteractiontechniquehasbeenwidelyappliedinmanyfields.Atthesametime,inrecentyears,humanmotionanalysistechnologyhasconsiderabledevelopment,inessence,tocapturetheactionofthehumanbodyisthepremisetorealizehumanmovementanalysis.Skeletonextraction,asanimportantpartofthehumanbodymovements,isbecomingmoreandmoreattentionbytheacademiccircle,andalsoanimportantfeatureskeletontopologyistokeeptheimage,isaneffectiveformofsaidobjectshape,thelesstheamountofinformation,butalsocancompletedescriptiongeometricpropertiesoftheobject,soinimageretrieval,patternrecognitionandthevirtualmovement,andotherfieldshasbeenwidelyused.Butmotion-sensingtechnologytoextracthumanbodyinformationsensitiveenoughtotechnologyneedstobeimproved.
KEYWORDS:
Motion-sensing,Kinect,Smallballcollision,Virtualcharacter,Skeletonmodel
前 言
随着当今社会的高速发展,人们的工作效率也越来越高,生活节奏也逐步加快,这些都与计算机的迅猛发展密不可分。
现今社会,基本有人类的地方就有计算机,也没有哪个行业可以真正与计算机脱离开来。
提高人类计算机的使用效率,改变人类使用计算机的时间是现实亟待解决的问题既是节约时间,又可以提高工作效率,还可以提高人们娱乐和交流方式。
人机交互是研究人与计算机及其相互作用的技术,其研究目的在于利用所有可能的信息通道进行人-机交流,提高交互的自然性和高效性。
目前人与计算机交互的方式往往局限于鼠标与键盘,正是由于这种传输方式的单一性阻碍了人机交互的进一步发展,人机交互中输入输出效率之间的差距变的越来越大。
随着科学技术的高速发展,更高层次的人机交互理念对交互方式提出了巨大的需求,众多科研人员开始对新的交互技术的多通道界面展开研究,目前的研究内容主要是集中在手势输入、语音识别及感觉反馈等方面。
而Kinect体感技术的出现促进人机交互的发展,具有重要意义,Kinect作为新一代的体感设备,可以依靠实时捕捉使用者的动作、面部识别及语音识别就可以达到输入功能。
这一特性很好地填补了现有人机交互技术的缺陷,并且促使Kinect体感技术成为人机交互领域中的一个研究热点。
在于人们可以很直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让人们身历其境地与内容做互动。
可以说这项技术是目前人机交互技术中最前沿、最热的领域之一,它将开启人机交互的新时代。
自微软Kinect红外深度感应器发布以来,国内外对其技术和应用上的研究都取得了比较多且富有创造性的成果。
Kinect感应器最初是作为微软XBOX游戏机的体感外设发布的,后经热心开发者建立起OpenNI的软件框架,Kinect在计算机方面的研究和应用才逐步获得了较大的影响力。
现阶段微软已经为此款深度感应器发布了官方的驱动程序及SDK,更进一步推动了体感技术的开发应用。
Kinect在国内外的研究动态,在人体骨架识别和建模方面,利用SDK,华中科技大学的WeiShen和微软公司的KeDeng等人提出了基于模型的人体骨架修正和标记方法,较好地解决了获取人体动作视频中的遮挡问题。
此外,微软剑桥研究院的ShahramIzadi等人则利用深度摄像头开发了一套实时三维重建和交互系统,系统通过摄像头对所见物体进行三维重建,并实现了操作者在虚拟空间中的实时交互。
可以说传感器方面的革新使人体骨架建模有了更优的解决方案,为基于人体骨架识别和运动跟踪方面的应用开拓了广阔的前景。
另一方面我们也认识到Kinect技术目前应用不是很广泛,其深度探测技术还不够成熟,其每秒只能拍摄30帧,这样的动作捕捉不但不能准确分辨,也会造成很大的延时。
只能适合缓慢的动作,这使得其应用范围受到一定局限,难以实现一些需要快速做出相关肢体动作来控制设备内容的实时运作。
所以未来需要对其精确度提升有很大的要求,最近也获知Kinect2已经在国外发售,有望能实现自然语音识别、更准确的面部识别和更详细的人体运动捕捉能力。
本次毕业课题是以Kinect体感技术来实现一个碰撞球的游戏系统,硬件平台就是微软的XBOX360。
软件开发工具MicrosoftVisualStudio进行系统开发。
开发所用语言为C#。
通过Kinect红外摄像头设采集用户动作,将采集到的三维深度流数据信息通过编程算法和图像处理,在Kinect平台上创建成相关的骨骼模型,再将整合成的原始模型转换成虚拟角色,当用户发出动作时,该虚拟角色也将相应的做出与之同步的动作触发,从而控制场景中的小球运动和碰撞。
这样可以根据游戏体验增强家人之间的互动关系,促进孩子与家长之间的沟通协作性。
在整个设计过程中要针对小球碰撞游戏的情况解决以下一些问题。
如何能够将Kinect采集到的深度数据转化为相应的骨骼模型来操纵小球运动。
并通过相关算法提高获取到的骨骼模型的识别精度,并实时跟踪用户的肢体动作,减少动作的延时。
提高玩家体验游戏效果的真实性。
第1章绪论
1.1引言
人机交互从只有一个维度的绿色字符控制台界面(CLI),到有鼠标操作两个维度的图形用户界面(GUI),再到现在的多点触摸(Multi-Touch)在手机、平板电脑等移动终端上得到了广泛的应用,无疑又引爆了消费者对自然交互的渴望,但交互体验还停留在二维平面的阶段,同时随着摄像头、GPS、重力感应等各类传感器的普及,虚拟现实和增强现实大放异彩,在虚拟与现实世界重叠的同时,又有了眼球跟踪、语音识别、人脸识别等让技术更好理解人类的手段。
Kinect正是在这样的背景中诞生的,使人机交互技术从二维的世界扩展到三维的空间,而且是进入到了非接触的交互体验之中。
Kinect是微软于2010年发布的一种三维体感摄像机,它具有骨骼跟踪、人脸识别、麦克风输入、语音识别等功能。
因此,可以很好的利用Kinect进行人机交互,而人体运动分析更是人机交互中目前研究的重点和热点方向。
人体运动分析有着广阔的应用前景,主要包括以下几个方面的应用[1]:
(1)智能监控系统,例如在一些智能监控场合,通过对人脸识别、步态分析决定是否容许其进入该区域。
比如说在银行、机场等安全要求比较高的地区,可以通过监控,发现可疑人员并发出报警。
(2)虚拟现实,例如可以对用户在真实物理空间中的姿态进行有效的分析理解。
(3)智能用户接口,计算机可以通过计算机视觉信息,实现人机交互。
比如机器人通过摄像头捕捉人体运动信息并加以理解并作出合适的反应。
(4)运动分析,例如在舞蹈,体操运动的训练中,通过分析关键节点的运动来指导纠正练习者的动作等。
(5)基于模型的视频编码,例如通过建立人脸、人体的参数化模型,达到较高的压缩效果,对人体运动分析的研究具有重要意义。
1.1.1国内外研究现状
日常生活中的智能监控系统、体育运动竞技研究、动画制作等许多领域都需要对人体运动状态进行分析。
要实现人体运动的分析,就必须对人体运动的状态进行捕获,通过采集得到的数据对人体关节点进行定位获得准确的运动参数。
目前捕获人体运动的方法有很多,但是最直接的方法,还是通过摄像头进行捕获。
因为通过摄像头获取的图像和视频不仅包含了许多运动信息,而且摄像头不会对人的运动产生任何约束,因此,人体运动方面的研究,几乎都是使用摄像头作为输入信息进行研究的。
人体运动捕捉的研究开始于1980年,由于它的广泛应用,国内外的学者对此进行了大量研究,提出了许多运动捕捉和姿态估计的方法。
基于视频的人体运动分析主要是从摄像机拍摄的图像序列中分析每一帧的人体运动状态,对人的行为进行识别。
通过不同的运动分析方法可以从图像中提取出不同的信息。
北京理工大学徐枫等人使用无标记运动捕捉的方法获得任意时刻人体对应的骨骼和三维模型[2]。
T.Drummond等人通过检测运动物体的边缘信息,可以快速恢复图像的三维模型,具有较高的实时性[3]。
美国科学家Moon等人提出了采用形状编码的方法对外轮廓进行描述,利用外轮廓信息来进行运动捕捉[4]。
武汉理工大学教授李豪杰等人研究出了自顶向下和自底向上的运动捕捉方法[5],自顶向下的捕捉方法又称为基于模型的方法,该方法根据已知的条件,将人体模型与图像进行匹配,建立一些约束,以获得人体姿态参数。
该方法主要包括:
(1)微分法建立一个目标函数,通过雅克比矩阵建立模型微分和图像坐标的联系[6],本方法收敛速度较快,但不适合跟踪大幅度的运动。
(2)动力学法在预测时与图像某些相关数据间生成一种类似于弹簧弹力的力,根据这种类似于弹簧弹力的力修正模型参数,直到匹配成功[7]。
本方法可以跟踪较大幅度的运动,但却不能保证其收敛性。
(3)Kalman滤波利用目标的动态信息首先对前一时刻的状态进行预测,然后利用前一时刻的估计值和现在时刻的观测值来更新对状态变量的估计,求出现在时刻的估计值[9],本方法可以描述跟踪过程中的某些不确定信息,鲁棒性较高,但本方法要求系统状态和噪声是单峰分布,很难满足现实要求。
自底向上的捕捉方法又称为非模型的方法,该方法通过对底层特征的跟踪,对图像进行处理分析,从中提取感兴趣的特征,将它们与待识别目标的特征相比较,选取最相似的部分,以此确定待识别目标在图像中的位置,获取人体姿态信息。
该方法主要包括:
(1)特征跟踪法,首先在首帧中标注出人体的关键点位置,然后通过后续帧中通过跟踪建立起帧与帧之间的关系,最后获取不同的时刻人体的姿态参数[10]。
(2)标记法是作为指导对人体的轮廓进行标记,从而获得姿态信息[11]。
(3)模板匹配法是以边缘为特征,通过形状关联匹配从模板库中找到最相近的样例,通过这个样例获得输入图像的二维关节点位置,然后使用Taylor[12]级数法恢复出三维的人体姿态。
姿态估计主要可以分为两种:
一种是标记出图像的每个像素点所在的人体部位,通过图像的全局特征进行匹配分析,然后经过聚合可以得到人体各关节点的位置,进而实现运动捕捉。
东北师大副教授林鹏等人通过构建深度图样本库,提取训练样本中的局域梯度特征,利用随机森林学习得到分类器,并对图像进行单点分类,计算人体各关节点[13],他们利用AdaBoost多示例学习算法训练部位检测器,然后利用各部位检测器对样本测试,从而将样本转化为特征向量,再用SVM方法对这些向量进行学习,得到最终的部位组合分类器[14]。
1.1.2本文的主要内容
本文主要分析了骨骼定位研究的背景和意义,介绍了国内外相关的研究工作,包括运动捕捉和人体姿态估计的定位方法,分析了它们的优缺点,然后选择了下面的研究方法:
使用微软的深度摄像头Kinect提取深度图像作为输入信息,然后,利用最优阈值法实现人体与背景的分割,通过算法进行骨架提取,在骨架上确定初始的关节点,通过人体的固有特性来最终确定实际关节点的位置。
1.1.3章节安排
本文从理论和实验两个方面,对基于Kinect的骨骼定位中的深度图像背景分割、骨架提取、骨骼定位进行了研究。
具体章节安排如下:
第一章提出了本课题研究的背景和意义,对国内外有关人体骨骼定位的方法进行了总结和归纳。
第二章介绍了Kinect的软硬件结构、获取深度图像的基本原理、深度图像的校正以及Kinect的机器学习技术。
第三章阐述了基于深度图像的骨架提取,提出了一种基于最优阈值的图像分割方法,利用该方法实现了人体与背景的分割;使用数学形态学的方法对人体的剪影图进行了去噪,实现了人体骨架的提取。
第四章主要进行研究小球碰撞游戏的开发,以及相应流程图,基于微软的C#进行编程,并达到了预期目标。
第五章对全文进行了总结和展望,本次课题成果存在的问题,并探讨了未来的研究方向。
第2章Kinect传感器的结构及工作原理
2.1Kinect硬件部分
2.1.1Kinect基础介绍
Kinect是微软在2009年6月2日的E3大展上。
正式公布的XBOX360体感周边外设。
Kinect实物图如图2-1所示:
Kinect彻底颠覆了游戏的单一操作。
使人机互动的理念更加彻底的展现出来。
不需要使用任何控制器,它依靠相机捕捉三维空间中玩家的运动。
微软指出它会让系统更加简易操作来吸引大众。
可以说人们利用它能够直接地使用肢体动作,与周边的装置或环境互动,而无需使用任何复杂的控制设备,便可让其身历其境地与内容做互动。
Kinect是一种3D体感摄影机(开发代号“ProjectNatal”),同时导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能玩家可以通过这项技术在游戏中开车、与其他玩家互动、通过互联网与其他Xbox玩家分享图片和信息等。
图2-1Kinect设备外观
Kinect传感器主要由以下部件组成:
不同的芯片;三块主板;外壳、底座;用于仰角控制的传动马达电动机;USB线;散热风扇;红外投影机;彩色摄像头;红外摄像头;四个麦克风阵列等,拆解后的Kinect如图2-2所示:
图2-2拆解后的Kinect
•外壳、底座及4个不同类型的螺钉。
•MovingTouch传动马达电动机(用于仰角控制)
•散热风扇
•彩色摄像头
•红外摄像头
•红外投影机
•麦克风阵列
•3部分主板
•14种关键芯片
2.1.2系统级芯片
Kinect使用的是PrimeSense公司生产的PS1080系统级芯片。
PS1080芯片拥有很强的并行计算能力,可控制近红外光源,然后进行图像编码并主动投射近红外光谱。
同时,通过一个标准的CMOS图像传感器接收投影的红外光谱并且将编码后的反射斑点图像传输给PS1080芯片,PS1080芯片对此进行处理并生成深度图像。
PS1080芯片是一个多感应系统,能提供同步深度图像、彩色图像和音频流,它通USB2.0物理层协议将所有数据传送到主机。
另外,PS1080芯片适用于所有深度获取算法均在PS1080芯片上运行的各种主机CPU,主机只需要运行最低限度的USB通信层。
通过这种设计,即便是计算能力有限的主机设备也具备获取深度图像的能力。
2.1.3红外投影机
红外投影机是位于Kinect最左边的镜头,它与最右侧的红外摄像头配合使用。
PS1080芯片对红外光源进行控制,以便通过红外光编码影像放映场景。
红外投影机主动投射近红外光谱,照射到粗糙物体、或者是通过一个类似于毛玻璃的透明散射体而导致光谱发生扭曲,然后形成无规则分布的反射斑点,进而能被红外摄像头读取。
它的光源是一类普通激光光源,该光波波长为830nm,可以持续输出,符合IEC60825-1标准中的一级安全要求,对人体没有害。
2.1.4彩色摄像头和红外摄像头
Kinect是通过彩色摄像头和红外摄像头来获取图像的,彩色摄像头用来获取RGB图像,红外摄像头用来获取深度图像,两者的分辨率都为640×480。
红外摄像头是一个标准的CMOS图像传感器,负责接收发出的红外光,并将红外光编码图像传给PS1080芯片,PS1080芯片负责处理红外图像,然后逐帧生成准确的场景深度图像。
为了生成更准确的传感器信息,PS1080芯片会执行“PrimeSense”注册过程。
注册就是将RGB图像和深度图像进行对应,产生像素相互对应的图像,即RGB图像中的每个像素分别与深度图像中的一个像素对应。
这能让应用程序准确了解收到的RGB图像中每个像素的深度信息。
所有传感器信息(深度图像、RGB图像和音频)通过一个USB2.0接口传送给主机,且时间准确。
2.1.5麦克风阵列
由于Kinect的三个镜头的分布不对称,因此Kinect麦克风阵列的分布也是不对称的,这样才能保持质量分布的均衡,麦克风阵列布局如图2-3所示:
图2-3Kinect麦克风阵列布局
Kinect的音频系统采用了四元线性麦克风阵列技术。
麦克风阵列中含有四个相互独立的小型麦克风,这四个小型麦克风呈线性排列,每个麦克风之间相隔数厘米,这些麦克风可以捕捉多声道立体声,然后通过数字信号处理等组件,根据麦克风阵列接听声音的时间差来判断声源方向。
从元件上看,除了Kinect的四个麦克风阵列以外,还配置了WolfsonMicroelectronicsWM8737G芯片用于进行本地的音频信号处理。
与一般的单麦克风数据相比,Kinect采用的阵列技术包含有效的噪声消除和回波抑制(AcousticEchoCancellation,AEC)算法,同时采用波束成形(Beamforming)技术,通过每个独立设备的响应时间确定音源位置,并尽可能避免环境噪声的影响。
2.2Kinect传感器的软件系统
Kinect传感器提供原始数据流给SDK,这些数据流包括深度数据流、彩色图像数据流和音频数据流。
通过KinectSDK可以直接获取这些原始传感器数据流,并在此基础上进行较为底层的应用开发。
此外,KinectSDK封装了骨骼跟踪等高层NUIAPI供应用程序调用,从而进一步开发动作识别、体感操作和智能监控等应用。
应用层API包括三大组件,分别是:
(1)NUIAPI:
SDK的核心,用来处理彩色图像流、深度图像数据、骨骼跟踪和控制/管理Kinect设备等。
(2)KinectAudioDMO:
提供波束成形和音源定位功能。
(3)Window
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 技术 碰撞 游戏 设计 开发