虚拟现实在医疗康复中应用的研究引言Unity引擎是近几年发展势头最为迅猛的游戏开发引擎之一,并被广泛地应用于航空航天、军事国防、教育培训、医学模拟等严肃游戏领域。康复模拟是医学模拟的一个重要分支,代表医务人员对复杂的三维医学解剖体数据的可视化需求,进而发展到能对重建的数据进行实时操作,以建立可供康复和康复规划使用的虚拟环境[1]。康复模拟能以3D虚拟仿真的培训方式,有效、安全地为医护工作初学者进行模拟仿真培训[2]。传统的康复过程存在治疗周期长,病人配合程度低,康复效果不理想等缺点,康复效果受环境因素影响很大。康复模拟的出现,在很大程度上缓解了传统康复过程的不足[3]。本文所涉及的康复场景以特定的医学康复为范例,建立3D可视化的模拟场景,为使用者展现虚拟的康复场景和康复过程,提供康复需要的医学器械,形成完整的康复环境。主要分康复引导[4]和自主操作[5]两部分。康复引导将对康复步骤进行详细的讲解,引导操作者按照正确步骤完成康复,旨在帮助操作者熟悉康复流程和相关的康复要点[6];自主操作让操作者在康复场景中进行独立操作,对错误操作予以提示,旨在检验并提升操作者在康复过程中的恢复程度[7]。康复场景利用Unity进行开发,利用3DMAX进行建模和动画效果制作,采用C#语言进行脚本制作[8]。 1 系统架构以功能需求来划分,主要分为UI交互模块、数据导入模块、状态机转换模块、逻辑结果处理模块、动画特效显示模块[9]。系统结构图如图1所示。 图1 系统结构图 先由UI交互模块负责接收用户对模型的一系列操作,不仅仅是对康复对象模型的操作,还是对其他辅助器具所进行的操作。数据导入模块是将康复对象模型中涉及的数据进行读取和导入,此处导入的数据分为静态数据和动态数据。状态机转换模块负责对康复对象模型的状态进行切换,例如血液的流动、器官的自律活动、刺激反应等。逻辑处理模块是根据用户操作和模型所处于的状态,根据静态数据对动态数据进行修改,并进一步对模型产生影响,并将处理后的结果传递给动画显示模块。动画显示模块的作用是结合逻辑处理模块处理后的数据,利用动画或特效的方式在终端(一般是屏幕)上显示出来。用户在屏幕上即可观察到自己进行操作后的结果。下面分别对这几个模块做详细的阐述。 1.1 UI交互模块UI交互模块要对用户的操作进行记录,并将用户诸如点击、拖拽、旋转等的操作行为发送给后续模块[10]。 在康复场景中,UI交互模块首先要建立一个康复对象模型,主要指康复器械或康复环境,一般通过3D建模技术进行制作[11]。在这个模块里,要对康复对象的属性进行设置,包括模型的运动矢量、康复对象类的声明(包括位置、空间特征以及各种诊断属性等),同时要加载相应的动画列表。这里的动画列表是康复对象所能做出的反应动作。动画列表中所列举的是动画文件,每一个动画文件对应一个康复对象的反应或动作。当反应或动作发生时,由后续的动画显示模块调用相应的动画文件,在终端上进行输出。 其次,要建立其他辅助器具模型,主要是大型康复器具、康复仪器、恢复者电子病历、各种监控仪器等。同样需要对这些辅助器具进行属性的设置,辅助器具模型的动画相对较少或没有,主要是一些数据界面的设计和显示。 再次,要对场景空间进行配置。Unity 3D以场景为基础单元整合资源并进行管理[12]。根据场景定义容纳多种元素,通过组件类型对元素加以区分。组件类型可以分为网格、材质、灯光、相机和粒子系统等。 在场景中布置网格,场景就具备了模型可以在场景中移动的面[13]。根据网格点计算坐标点,从而显示物体模型在场景中的位置。材质元素是模型物体表面所显示的图案或效果。会让模型物体表面出现不同样式的纹理。灯光元素使场景呈现开发者需要的颜色和氛围,对场景的呈现影响很大。Unity提供三种光源,包括方向光源、点光源和聚光灯。每种光源都定义了不同的灯光属性,使得三种光源有不同的应用。而一个场景如果想要达到真实的效果,就需要多个光源来模拟真实的光线关系。灯光除了光源还包括阴影属性和渲染模式,还包含耀斑、遮罩和光晕等属性。例如,游戏是通过相机渲染的,可以设置多个相机实现游戏场景多视角呈现。相机的投影类型决定了场景渲染出的景象是否模拟三维世界的透视效果,投影类型有透视投影和正交投影。相机尺寸、视野范围、剪裁区域和视口矩形则共同决定了渲染引擎应该渲染哪些场景物体。另外相机还包含背景、剔除遮罩、渲染路径等属性参数。烟雾、火花等特殊效果是由粒子系统生成的,它包含了一个粒子发生器,该发生器决定了粒子的喷射轨迹、粒子的生存周期和粒子的喷射速度等。这些因素共同决定了粒子所能表现的效果,可以形成诸如烟雾、水波、烟花等光影效果[14]。 1.2 数据导入模块数据导入分为两类:静态数据导入和动态数据导入。 静态数据主要是指一些在场景中固定不变的数值,可以视为常量。但因情况不同,这些数据可能会进行改动(包括添加、删除等操作),因此不能将这部分数据写入代码或模型中。解决的途径是将数据写入xml文件中,用一个唯一标识(整数型、字符型均可)来进行数据条目的区分。其他与之相关的数据即可写在同一条目下。根据属性项id的不同来读取不同的数据项,即用xml表id +数据条目id +数据属性id三重定位到所需要寻找的数据项。 动态数据指的是在程序运行过程中会经常发生改变的数据,例如操作者的用户名和密码,某个操作者的操作进度,或者康复过程中由于操作而引起的生理数值(精神状况、心跳)变化等。这部分数据,数据量大并且数据信息繁杂,无法存储于一般格式的文件中,需要保存在数据库中。与静态数据类似,通过表id +键值+属性的方式来进行数据定位。 1.3 状态机转换模块状态机转换模块主要负责模型各个状态之间的切换。模型的状态决定了模型的行为,每一种状态中可能包含一种或多种行为。模型的行为包括两部分:内部逻辑和外部表现。内部逻辑包括各种对响应事件的逻辑处理、数据计算等。外部表现包括逻辑处理后动画的播放、粒子系统的触发等。状态与状态之间的切换由某种触发条件确定,可能是一种操作,也可能是某个数值达到阈值,或者是某种逻辑判定[15]。 以心理康复为例,假设恢复者对不同质感的物体具有厌恶或恐惧的心理,当利用康复环境对恢复者进行刺激时,与病患部位接触的模型将切换到“接触”状态,对象模型将播放“触摸”动画,并根据触摸力度触发粒子系统,用以播放特效,并根据生理特征等数据对粒子系统中粒子的喷射速度、生命周期、粒子大小进行计算[16-17]。 在实际场景中,操作者利用不同的康复器械进行不同的状态切换。即使对于同一模型来说,不同种状态都有其对应的逻辑处理方法和数据体系[18]。 1.4 逻辑处理模块逻辑处理模块负责对操作或对象进行逻辑处理,逻辑处理流程一般会对数据进行相应的计算并将结果写回数据库中,或者是对某个对象的状态进行改变。 以上文提到的心理康复为例,在对模型进行操作的过程中遇到不同的材质层时,需要做不同的处理。对不同材质进行接触,在物品选择、力度选择、作用时间等操作上均有一定的区别。处理结果对后续动画调用模块也会产生影响,例如根据触摸的时间长短、恢复者各项生理反应来确定场景中模型的表现形式[19-20]。 此外,病人的体征参数、病理参数、机能参数都可以进行保存,这些参数将与整体显示(包括模型、粒子系统、动画等)进行关联,可以针对实时反馈做出相应的调整[21]。 1.5 动画显示模块Mecanim动画系统是Unity3D推出的全新的动画系统,具有重定向、可融合等诸多新特性。Avater是Mecanim动画系统中实现动画绑定的一个接口,该接口可以实现骨骼和肌肉系统的匹配,从而保证角色在执行动画的时候,能够按照预先设定的动画来运动。如果说Avater是将模型的身体和骨骼实现匹配的接口,那么Animator Controller就是将动画和模型实现绑定的接口。我们可以建立Animator Controller文件,对动画状态进行控制和转换,如图2所示。图中的每一个方框代表一个动画状态,处于该状态下的动画将进行循环播放,直到退出该状态为止。 图2 动画状态机示意图 黄色方框所代表的状态为默认动画起始状态。各状态可以相互进行切换,图中方框之间带箭头的线段表示状态切换的条件,可以在Unity中双击线段进行设置,一般判定条件为动画播放时间间隔或动画播放次数。 此外,通过对模型骨骼的绑定,还可以实现病例的“换装”,用同一套模型,对不同病症的发生情况做出不同的显示。例如对于行动不便,临床中有着各种复杂多变的情况,不同的部位、不同的瘫痪方式,仅需要一套模型,根据实际情况,调整相应的参数即可进行复杂显示[22]。 2 辅助研发康复设备康复设备是现实世界中可以被恢复者肢体等触觉感官感知的具体事物。一般来说,康复设备从设计到原型样品,制作周期长、制作投入大;并且康复设备所具备的特点,如所针对的治疗是否有效、是否适合大批量生产、是否易于使用等,也需要较长周期的临床验证。这些验证需要大量人力物力,效果未必能达到预期目标,以致造成资源的浪费,利用虚拟现实技术,可以有效地缓解这一状况[23]。 此外,病情具有个体差异性和多样性,很有可能同样的病症,使用同样的器械和康复手段,所得到的结果差异很大。利用虚拟现实技术所搭建出来的场景和器械能够针对具体情况做出有效的调整[24],使康复效果更为理想。有效促进个人专属康复器械的形成,使康复器械专属化、个性化成为可能[25]。 3 总结和展望本文介绍了如何利用Unity游戏引擎进行康复模拟场景的开发,尝试利用严肃游戏方式进行康复模拟,可以为医护人员提供了一个熟悉或预演康复流程的系统,极大地兼容康复的差异性[26]。在康复之前利用本系统进行预操作,可以对突发事件进行针对性的演练,并能发现一些实际操作中的细节。利用可视化场景进行康复模拟,能够对实际康复中遇到的疑难问题进行直观的解释和说明,有效地帮助医护人员更好地学习康复相关的理论知识和操作方法,提高动手能力和自身业务水平。 本文的进一步工作将在康复模拟场景中引入动作捕捉和虚拟现实技术,虚拟现实技术的引入将能更好地模拟真实情况,动作捕捉技术将有望实现远程医疗等领域的技术突破。 [1] Pulijala Y,Ma M,Ayoub A.VR Surgery: Interactive virtual reality application for training oral and maxillofacial surgeons using oculus rift and leap motion[J].Ser G Edut Appl,2017,187-202. [2] Widmer A,Hu Y.Subjective perception and objective measurements in perceiving object softness for VR surgical systems[A].Virtual Reality Conference[C].California:IEEE,2009:267-268. [3] 张睿.基于虚拟现实技术的虚拟手术实验系统的研究[J].才智,2009,(30):49-50. [4] Bate S,Adams A,Bennetts R,et al.Developmental prosopagnosia with concurrent topographical difficulties: a case report and virtual reality training programme[J].Neur Reh,2019,29(8):1290-1312. [5] Delcastillo K,Alto A,Belliard R,et al.Efficacy of a virtual reality fitness program for enhancing muscular fitness and body composition: 3090 Board #136 May 31 3:30 PM-5:00 PM[J].Med Sci Sports Exerc,2019,51(6):852-853. [6] Kim JH.Effects of a virtual reality video game exercise program on upper extremity function and daily living activities in stroke patients[J].J Phys Ther Sci,2018,30(12):1408-1411. [7] Bracq MS,Michinov E,Jannin P.Virtual reality simulation in nontechnical skills training for healthcare professionals:A systematic review[J].Simul Healthc,2019,14(3):188-194. [8] 纪祥虎,陈小龙,姚宇.基于Unity3D的TEE实时模拟教学系统及其关键技术[J].计算机应用,2015,(S1):235-238. [9] 胡鹏.大规模交互式虚拟场景的开发过程模型探讨[J].电脑知识与技术,2010,6(14):3770-3771. [10] Roldán JJ,Crespo E,Martín-Barrio A,et al.A training system for industry 4.0 operators in complex assemblies based on virtual reality and process mining[J].Robot Comput Integr Manuf,2019,59:305-316. [11] 何成.虚拟现实场景中三维建模的关键技术研究[J].科技视界,2018,(35):244-245. [12] 徐超,李秀霞.基于VRML的虚拟三维室内设计及人物漫游技术[J].现代电子技术,2019,42(9):86-89. [13] 曹航程,马志遂,盛佳龙,等.基于虚拟现实的室内布局系统及碰撞检测算法研究[J].无线互联科技,2016,(10):58-59. [14] 宋平.虚拟现实场景中3D模型的构建与优化[J].科技信息,2009,(31):946. [15] Blair GJ,Kapil S,Cole SP,et al.Virtual reality use in adult ICU to mitigate anxiety for a patient on V-V ECMO[J].J Clin Anesth,2019,55:26-27. [16] Jones T,Moore T,Rose H,et al.The impact of virtual reality on chronic pain[J].J Pain,2016,17(4):S102-S103. [17] Canty AL,Neumann DL,Shum DHK.Using virtual reality to assess theory of mind subprocesses and error types in early and chronic schizophrenia[J].Schizophr Res Cogn,2017,10(12):15-19. [18] Kim NG,Kim YY,Kwon TK.Development of a virtual reality bicycle simulator for rehabilitation training of postural balance[A].International Conference on Computational Science& Its Applications[C].Berlin:Springer-Verlag,2006. [19] Álvareza NG,Mortecinosb AV,Rodríguezb VZ,et al.Effect of an intervention based on virtual reality on motor development and postural control in children with down syndrome[J].Rev Chil Pediatr,2018,89(6):747-752. [20] Jung SM,Choi WH.Effects of virtual reality intervention on upper limb motor function and activity of daily living in patients with lesions in different regions of the brain[J].J Phys Ther Sci,2017,29(12):2103-2106. [21] Benham S,Kang M,Grampurohit N.Immersive virtual reality for the management of pain in community-dwelling older adults[J].OTJR (Thorofare N J),2018, 39(2):90-96. [22] 徐硕,孟坤,李淑琴,等.VR/AR应用场景及关键技术综述[J].智能计算机与应用,2017,7(6):28-31. [23] Dockx K,Bekkers EMJ,Van den Bergh V,et al.Virtual reality for rehabilitation in Parkinson’s disease[J].Coc Dat Syst Rev,2016,42(12):107-167. [24] Sarah Parsons.Learning to work together: Designing a multi-user virtual reality game for social collaboration and perspective-taking for children with autism[J].Int J Child Comput Interact,2015,(6):28-38. [25] 王戈,王晓宁,陈峰.虚拟现实技术在心理训练中的作用[J].甘肃科技,2012,28(24):82-83. [26] 戴顺孝.虚拟现实技术在康复训练中的应用和发展[J].装备机械,2016,164(4):60-62. Research on the Application of Virtual Reality in Medical Rehabilitation |