TechniqueandMethod基于Kinect的体感康复游戏系统设计+李世杰,夏斌(上海海事大学信息工程学院,上海201306)摘要:传统的康复训练因理疗师和设备紧缺、训练场地有限、娱乐性差等问题,存在着很大的局限性。构建了基于Kinect与1nity3D的体感康复游戏系统,主要特色包括:虚拟人物与玩家运动同步;通过引导轨迹实现运行引导反馈、卡通目标点设定算法实现游戏的不同难度等。测试结果表明,系统具有很好的实时性、交互性和娱乐性,对类似体感游戏开发有较好的参考价值。关键词!体感交互技术;Unity3D;Kinect;医疗康复中图分类号:TP302文献标识码:AD0I:10.19358/j.issn.1674-7720.2017.22.025引用格式:李世杰,夏斌.基于Kinect的体感康复游戏系统设计[J].微型机与应用,2017,36(22):95-98.DesignofamotionrehabilitationgamesystembasedontheKinectLiShijie,XiaBin(CollegeofInformationEngineering,ShanghaiMaritimeUniversity,Shanghai201306,China)Abstract:Traditionalrehabilitationtraininghassignificantlimitations,becausethephysicaltherapistandequipmentisfinite,trainingfieldisfiniteandthetraininghaspoorentertainment.ThepapersetsupamotionrehabilitationgamesystembasedonKinectandUnity3D,andthemajorcontributionsareasbelow:avirtualhumanhasthesameactionwhichthepeoplehave,theguidancetrajectoryachievesmotionguidanceripping,usingthecartoondestinationcalculationachievesthelevelsofgamedifficulty,andsoforth.Testresultsshowthatthissystemhasgoodreal-time,reciprocityandentertainment.Thesystemhasagoodreferencevaliaeforsimilardevelopmentoftherehabilitationgame.Keywords:gesture-basedinteractivetechnique;Unity3D;Kinect;medicalrehabilitation〇引言近年来,运动能力问题成为了人们关注的焦点,越来越多的人群需要进行训练。研究,科学的训练患者的机能得限度的,提高患:活自理、工作和学习能力[1]。经过几十年的实践,康复医学对运动功能障碍的疗效已获得广泛的,特训练的介人,能效地增强对肢体的控制力%23]。但是,传统训练在限定的所,而且医师在旁进行指导才能进行,有很的局限性,整个康复训练过程比较单调、缺乏趣味性。随着科技的发展,新型人机技术步人人们的,越越多的人使用该技术进行体感康复训练[4C],TAYL0RMJ等人率先证实Kinect技术在的可行性[6-],随后,WANNJP[9]等提出化治疗。上述表明,基于Kinect的康复训练系统可以用来进行肢体康复训练[9],但是目前的系统中动计,合适,设计形式缺乏趣味性。本研究充分考虑统训练系统的不合调,使用易于;'基金项目:国家自然科学基金(61550110252);上海海事大学基金;同济大学嵌人式系统与服务计算教育部重点实验室开放课题资助《微型机与应用》2017年第36卷第22期的Kinec设备,结合UnityD游戏引擎[1011],将康复动作融人,进行系统测试,设计一款不受地限制、操、趣味性强、稳强的体感训练系统[12]。1数据获取与连接实现Kinect体感器设备共有3个摄像头,分别为RGB彩色摄像头、红发射器和红CMOS摄头。通过红发射器发射红外线,红CMOS摄像机记录,测量空间进行编,得到3D深度图像。3D深图像进行,键节的三维坐标。在Unity3D与Kinect的连接方面,存在两种方式,一种是基于C++的头文件和静态链的,另一种是程序集的方式%13],种在UnityI直接调用,但在C#平台供与程序的使用方式,导人动态链接库DLL文件,通过自定义数据结构和算法,能够实现对Kinect中获得的数据重新组织,在Unity[14]用,完成。2体感游戏系统设计与实现系统框架结构图如图1所示,包含两个部分,一是体感系统开发,程估系统的研究。本重于体感开发部分,包括界欢网上投稿面、标定界面、游戏界面和得分界面。菜单界面主要用于配置的参数,如:训练手部、动的设置等。标定界面用于对人物位置的。患在游戏界面中进行训练。得分界面用于显示完成动作后的得分情况。在计过程在三个,包括丨中人物、目、引导制等。系统框架结构图2.1人物标-于现实中玩家与虚拟人物的坐标系不同,虚拟场景中的目置需据人物的置相应,此需要进行人物。分析Kinect获取的人物骨骼数据,检测在Kinect的最佳范围之内。系统中动向量的制手部图标的移动,因此人物的另一个目的人物执行所处的位置,以及提醒在游戏过程中要保持位置不发生移动。当人佳位置时,界面调整提示语,当于最佳位置时,界面保持当置,在^过程中,位置发动,倒计时显示,开。2.2目标点设定目动,手动成所的置。系统中实个训练动作,如图2所示,观察四个动发现患者在个动作时,手£着对应的肩做圆周运动。计个动「三个级,S卩、一般、。(a)侧提手臂(b)手掌摸耳朵(c)手掌摸肩膀(d)手掌举过头顶图2康复动作不同难度对应不同的目标点,鉴于此,通过设置圆心角的动级。目的位置如图3所96示,其中4点为参考坐标点,坐标表示为(;,,?),T点即图中小猪所处的位置为目标点,坐标表示为(;,,?),C点为起始坐标点,坐标表示为(;,,?),游的所有元素z值相等,所以在计算时采用二维坐标进行计算,代表不同难度等级下的圆心角,通过^、C点坐的值即T点的坐标,完成目标点设定,公式下05槡6;S)256)27n!1)05槡6;S)256)!C0S⑵其中的大小通过康复动作完整角度^获得,四个动作的完整I1所示,因为每个动种:级,所〖的取值为1、2、3,下:,2,3(3):_J图3目标点位置表1完度(r动完整角度(r侧平举手臂90手掌摸耳朵180手掌摸肩膀90手掌举过头顶1802.3引导轨迹线绘制引导的是在游戏执行过程中,引导患者进行康复动作的标准。在计中,种制作引导的,第一种为使用Sphere球体进行创建,即在引导轨迹上每隔很小的距离创建一个小球,因为的距离很近,在觉效果上构成了一条引导。种为使用Unity3D弓|的器line-Renderer来动态绘制引导轨迹线。通过Sphere球体绘制引导轨迹线的方法,虽然在效实现目的,但当较长、较时,需创建很多的Sphere球体,无疑加重了CPU和GPU的负,有可能导致,最严重的可能会导致死机。使用lineRenderer1宣染器进行绘制,在性能方面,Unity器进行了性能上的优化,CPU和GPU的很小,而且lineRenderer提供了很多绘制轨迹的方法,只需要《微型机与应用》2017年第36卷第22期技与方法TechniqueandMethod将引导轨迹上的若干坐标点坐标和坐标点个数作为参数传递给IneRenderer,就可以绘制出引导轨迹线。坐标点坐标(;,)的计算下:二二,y-1,…,((4);-;5槡(;-;)25(JC-Js)27n(5)J-Js5槡(;-;)25(JC-Js)2C0S(&)其中,(为坐标点个数,为坐标点对应的圆心角,;、Js为图3中4点坐标,;)为图3中C点坐标,为图3中动作难度对应的圆心角。2.4坐标转换计用Kinect体感器获取人体25个关节点数据,将些数据直给Unity」的物体实;动同步。如果直接使用Kinect手部坐标数据来控制Unity中的虚拟手部图标的运动,由于Unity中的长度比例和IK-nect不一致,导致运动效果不明显。而且Kinect获取的坐标数据所在的平面与界面不属于同一个平面,有可能导致手部图在摄像机视角范围内,显~。在系统设计过程中,为了解决上述问题,使用移动矢量来控制虚拟手部图动。图4为控制图。Kinect数据直给Unity中物体,形成与实动的虚拟人物。^点代表虚拟人物肩部,坐标为(;,,?),T点代表虚拟人物手部,坐标为(;,,?),从而计算出虚拟人物的手臂长度*:*0槡(~XB#25(~Jb#25(~ZB#2($#D点为屏幕中参考点,坐标为(;,,?),C点为屏幕中虚拟手部图标,坐标为(;,,Z,),从而计算出屏幕D的距离,想成屏手臂,其长为*D:*0槡(6;d#25(Jc~D#25(ZC~ZD#2(()BB'为人物手部移动向量,B'坐标为(;b,b,Z'b),CC'为虚拟手部图动向量,c点坐标为(;,,,Z.),从图4中可以观察到#4BB'与ADCC'呈相三角形,使用相形计算出C点坐标,从制(手图动,下:*B'-(;B-;B',JB-JB',ZB-Z)()0(;B~;B',JB~JB',ZB~ZB')(11);B—;B'JB—JB'(;c,Jc,Zc)-(;c5-------,Jc5-------,Zc5aa3系统测试3.1流程测试进入游戏,首先进入菜单选择界面,可进行训练手部设置、动置,点击开始按钮,进入标定界面。进入界面,根据示语调整佳置,开,进入界面,用户根据引导动手部,碰人或者规定时间内成,下一个界面,动执行后,得分界面。在得分界面中,显示四个动作得分情况,最后界面。测试流程如图5所示。测试,能够实现所能,实时较好。图5流程图35可用性测试本游戏选取了不同年龄阶段不同健康状况的用户试玩游戏,最终测试者给出了下列几点建议:第一,玩家在游程中,位置能发,缺乏(,家在进行程中,引导动态效果,引导性较差;第三,年龄较大的用户、患有肩部疾病的用户很难完成游,级需要调整;,手图成玩家图的形式,与感更强。4结论本文利用Kinect传感器和Unity游戏引擎技术,设计出一款用于训练的系统。利用IKnect体感器获取人节点的实时数据,记录患者的实时动作。利用Unity游戏引擎设计界面、标定界面、游戏界面和得分界面,将个模块实现界面化,患、更选合适自的训练。同时,在执行画《微型机与应用》2017年第36卷第22期欢网上投稿面中设置了轨迹提示、敌人不同状态的动画效果,很好地强的趣味性,让患于,达到“快乐的,快乐的”。参考文献[1]RIZZOA,KIMG.ASWOTanalysisoftliefieldofVRrehabilitationandtherapy%J&.Tele-operatorsandVirtualEnvironments,2005,14(2):119-146.[2]丁晨,王君译,瞿畅,等.IKnect体感交互技术及其在医疗康复领域的应用[J].中国康复理论与实践,2013,19(2):136-138.[3]王宏图.虚拟现实技术在脑卒中运动康复中的应用现状[J].中国康复理论与实践,2014,20(10):911-915.[4]何晓鹏.基于IKnect的人机体感交互关键技术研究[D].厦门:厦门大学,2013.[5]周柳,王英华,刘强,等.虚拟现实技术在运动康复中的应用[J].中国组织工程研究与临床康复,2007,11(5):957-960.[6&