数 据 手 套 在 医 学 虚 拟 实 验 中 的 应 用
2018-07-09黄展鹏
张 琦, 黄展鹏
(广东药科大学 医药信息工程学院,广州 510006)
0 引 言
在目前的“互联网+”的大背景下,高等教育信息化是促进高等教育改革创新和提高质量的有效途径,推进信息技术与高等教育的深度融合,利用先进的信息技术,建立高等教育资源共建共享机制[1],来实现教育信息化可持续发展。以信息技术应用为本质特征的虚拟仿真实验教学,适应了信息时代高等教育开放办学、资源共享的变革要求,为实验教学改革和实验室建设增添了活力[2]。通过虚拟实验的真实感,使学生模拟实验的全部操作过程,可加强学生的主观能动性和对知识的理解,克服传统教学方式呆板、师生间互动不足、趣味性不强的弊端,真正提升医学实验教学价值[3]。而数据手套是目前比较流行的虚拟现实交互设备之一,当用户穿戴设备之后,可以在虚拟的三维环境中实时操控虚拟手。因此,虚拟手模型的构建,以及与真实手之间的运动匹配决定了虚拟交互中自然与否,同时也是进行虚拟医学实验平台建设的首要任务。
近年来,国内外对于虚拟手的三维构建方法多数是以人手的解剖学特性为根据,利用三维软件3DsMax进行几何模型的构建[4-7], 再利用其他软件或算法实现虚拟手的运动模型,最后实现与数据手套相关联。而本文则选用三维动画软件Maya作为建模工具,因为它是世界顶级的三维动画制作软件,虽然在游戏工业领域,稍逊于3DsMax,但在动画制作行业可以称得上是绝对的创立者和领先者[8]。特别是在医学虚拟仿真开发方面,Maya更为适合构建医学虚拟模型[9]。在实现交互方面,Unity3D是一款轻量级的开发引擎,在开发虚拟现实方面易于操作,且开发成本低,适合开发虚拟现实教育类的产品[10]。因此,本文提出一种基于数据手套进行虚拟现实交互过程的更简便的解决方案,通过Maya建立逼真虚拟手的几何模型,并利用其强大的动画优势实现虚拟手的运动变形,最后在虚拟现实引擎Unity3D对虚拟手术训练的常用手势进行测试,仿真效 果良好,手势匹配度高。
1 虚拟手的三维模型构建
1.1 数据手套简介
本文采用的是新型数据手套WiseGlove,采用高质量弹性料制作,在手指关节弯曲处设置传感器,以测量每个手指关节的弯曲度及每相邻两个手指之间的夹角。WiseGlove系列手套的型号有5、14、18和19等传感的数据手套。传感器个数越多,采集手部各关节数据越多,则可以实现的手势动作越复杂。而本文采用的是14传感的右手数据手套,传感器分布如图1所示。可作每个手指的第1关节MP与第2关节PIP的屈伸,以及手指并拢分开的手势动作。
1.2 人手的生理结构及运动规律
建立虚拟手的运动模型,模拟人手的运动,首先要了解人手的生理结构以及每个手指的运动特点,才能保证在手势仿真过程中取得良好的效果。重点是针对五个手指的位置信息在空间上的变化进行研究。人手骨包括腕骨、掌骨和指骨共有27块,腕骨8块,掌骨5块,指骨有14块[11]。由于数据手套捕获的是手部关节的运动数据,因此本文只对手指骨以及手指间关节的运动进行研究。如图2所示为简化的右手手部关节结构图,其中A、B、C分别代表第1关节MP、第2关节PIP和第3关节DIP。基于人手的这种呈树状关系的结构,手指的运动主要分为屈伸,内收和外展(简称为收展)。结合本文中数据手套的传感器的角度定义范围,各关节的运动形式及范围如表1所示。由于传感器个数的限制,食指、中指、无名指以及小姆指的第3个关节处没有设置传感器,因此无法实现弯曲。另外,数据手套规定中指不能作收展动作。
1.3 手部结构与三维模型
文献[12]中指出,三维化的人体结构也就是一种拓扑结构,研究掌握了人体的相关拓扑结构,就能够很容易地使用三维方法将该结构描绘出来,图3所示为手掌与手背的结构。
图1 14个传感器的分布图2 右手手部关节结构图
表1 数据手套中各传感器的弯曲范围值
图3 手掌与手背的结构
按照真实手部的结构特征,所创建三维模型的布线必须与之相符合,才能达到仿真的目的。因此在对手部进行三维构建时,布线合理与否直接影响到后续的变形效果。在构建过程中,从最简单的正方体开始,通过加环线和挤出先将手部的大致轮廓构建出来,特别在可弯曲的关节处需要3条环线来保证弯曲的平滑,并且在每根手指指根处进行切分线保证虚拟手的正确拓扑结构。在正确的基础模型上,再进行细节刻画,例如关节的细节以及指甲的结构等。
最终创建出来的虚拟手是由949个四边面组成的低多边形模型,简称低模,经过一级平滑效果之后为3 796个四边面的高多边形模型,简称高模,如图4所示。低模与高模的主要区别为低面数的三维多边形模型主要以互动操作为主,运行在游戏程序或虚拟现实设计中;而高面数的三维多边形模型由于面数较多,多应用在预设的演示动画中[13],因此本文的后续实验中将采用低模版本进行。
通过上述方法构建虚拟手三维模型之后,为了将其最尽可能地做到逼真,必须为模型展UV绘制贴图来达到。UV提供了一种模型表面与纹理图像之间的连接关系,UV负责确定纹理图像上的一个点(像素)应该放置在模型表面的哪一个顶点上,由此可将整个纹理都铺盖到模型上[14]。特别需要注意的是,展UV时的分割线不要出现在虚拟手手背显眼的地方,应尽可能安排在手掌面。之后采用人类皮肤的素材图片为其绘制手部纹理贴图,如图5所示。可以看出,虚拟手视觉仿真效果良好,具有一定的逼真性,从而达到增加用户沉浸感的目的。
图4 高模(右)与低模(左)图5 手部贴图效果
2 数据手套与虚拟手的关联
2.1 实现虚拟手的运动方法
在目前虚拟交互技术中,使虚拟物体实现运动,大多是通过手动为其创建骨骼结构,再与网格模型进行蒙皮关联,最后调节网格模型的权重值而实现的。为了模拟虚拟手运动可以像真实手那样,本文利用Maya中骨骼系统作为工具,为虚拟手进行骨骼绑定工作,包括创建手部骨骼,蒙皮以及权重的设定。
按照人手真实骨骼结构为虚拟手创建骨骼,其中腕骨处用一个关节来代替多块骨头,其它关节按照真实手部各关节的位置进行创建。需要注意的是,虚拟手的每个关节都拥有独立的局部坐标系,因此每个关节的坐标方向,必须是统一向上的,否则将影响虚拟手的运动变形效果,如图6所示。
在计算机图形学上,蒙皮网格技术的雏形就是模型皮肤完全包围着骨骼模型,关节附近处的皮肤顶点同时被几块骨骼作用,而它们有着不同的权重,共同影响着这个顶点的位置,这种方法的关键就是顶点混合算法[15]。而目前的三维软件会依照某种顶点混合算法自动为网格顶点分配的权重值,但效果并不会十分理想,需要用户手动对顶点的权重值进行微调,以减少网格变形时的畸变现象,达到正确弯曲变形的效果。其原理是网格模型中的每个顶点受到某个骨骼变形约束的程度用0到1之间的数字表示,0表示不受约束,1表示受最大程度的约束,并且规定每个顶点所受到的所有骨骼控制的权重总和为1。图7所示当手指发生大角度弯曲时,通过调节权重值的前后皮肤变形情况的对比。为网格模型分配准确的权重值,力保虚拟手动作变形正确,才不会影响在后续虚拟实验中的视觉效果。在完成权重值的调整之后,将虚拟手的顶点坐标,骨骼以及顶点权重值等完整信息,以FBX文件格式导出。
图6 手部绑骨及各关节的局部坐标方向
图7 调整权重值的前后对比
2.2 数据手套与虚拟手的运动映射
在创建好虚拟手网格模型之后,需要与数据手套实现关联,将数据手套传感器采集的数据值传递给虚拟手,并驱动虚拟手做出正确的相应动作手势。在本文中使用Unity 3D作为虚拟实验平台来完成这一过程。主要有以下几个重要步骤:
(1) WiseGlove数据手套通过计算机RS-232串口采集到的传感器原始数据范围是0~255,通过公式将它们转换为弯曲角度,即:
(1)
式中:θ为所求的弯曲角度;β和γ分别为传感器的最大与最小值;Φ为当前手套值;α为手指的活动角度。利用式(1)对手指进行归一化活动范围[0,1]:
当(Φ-β)/(γ-β)<0.5时手指为展开动作;
当(Φ-β)/(γ-β)>0.5时为手指收拢动作。
(2) 将14个传感器的弯曲角度逐个分配给虚拟手与之相对应骨骼关节,一一对应。
(3) 由于每个用户的手部尺寸大小各不相同,因此当用户带上手套后,作握拳手势为其进行标定,更新此用户手指各关节的最大最小的弯曲范围。
(4) 为防止各手指收展动作时发生穿插面的情况,可以乘上一个系数来控制手指收展过度的情况。
3 实验及结果
实验硬件包括台式计算机一台(采用Intel Core i7-4790 四核CPU,8GB内存)和 14传感的WiseGlove右手手套一个,软件包括Maya 2012三维建模软件,WiseGlove SDK开发包以及虚拟现实引擎Unity3D v5.0.1版本。在本实验的验证中,所使用的虚拟手为低模版本,进行了两类测试,一类是对基本手势进行验证,另外一类是针对术者在手术中常用手势来进行验证。
(1) 图8所示为握拳手势效果,分别是实验过程中实拍图与Unity3D中正面与侧面的实时效果截图。
图8 实拍(左)、握拳侧面截图(中)、握拳正面截图(右)
(2) 国内外医务工作者形成并普遍地接受和遵循着一种手语,即术者以手势向助手及器械护士表达意图。为的是在手术时配合默契,保持肃静,同时可以减少飞沫污染切口,防止语音讯息对患者的刺激。在本实验中挑选几个大家共同认可的手术中常用手语作为手势进行验证效果,图9~11所示为模拟术者在手术过程中要手术刀、剪刀以及要镊子时的开合动作。
图9 要手术刀的手势实拍与截图
图10 要剪刀的手势实拍与截图
实验结果表明虚拟手在作各类动作时,弯曲平滑,没有破面穿插的情况,且各手指弯曲流畅自然,没有手指抖动或卡顿的情况,说明虚拟手运动与数据手套的匹配精度高,达到了视觉仿真的效果,增加了用户的沉浸感。
图11 要镊子的开合手势截图
4 结 语
本文完成了虚拟手的三维几何模型的构建,实现了与数据手套进行关联装配的过程,实验效果良好,虚拟手与人手的运动匹配精度高,达到了虚拟仿真的目的。特别是将数据手套应用到医学虚拟实验方面,无疑增加了用户的交互性与沉浸感,为未来的虚拟医学实验教学平台建设打下良好的基础。在日后进一步的研究里,可引入数据手套的定位器,使虚拟手可在虚拟环境中自由移动,并可以与场景中的物体发生交互碰撞,丰富用户的体验性,使数据手套在虚拟医学仿真这方面的应用更加广泛且有意义。
参考文献(References):
[1] 摘编自教育部《教育信息化十年发展规划 -年 》. 推动信息技术与高等教育深度融合,创新人才培养模式[J]. 中国信息技术教育, 2014(14):1.
[2] 王卫国, 胡今鸿, 刘 宏. 国外高校虚拟仿真实验教学现状与发展[J]. 实验室研究与探索, 2015, 34(5):214-219.
[3] 谌新兴, 龚兴牡, 石慧娟,等. 医学虚拟实验平台在实验教学中的应用[J]. 卫生职业教育, 2016, 34(2):45-46.
[4] 任 程, 戴树岭. 基于数据手套的逼真虚拟手的实现[J]. 系统仿真学报, 2008(22):6214-6217.
[5] 安 明, 陈善广, 刘玉庆. 基于数据手套的虚拟手精确建模的研究与实现[J]. 计算机仿真, 2010, 27(1):241-244.
[6] 李 波, 王增辉, 曹福毅. 基于5点数据手套的虚拟手精确控制方法[J]. 沈阳工程学院学报(自然科学版), 2015(2):155-158.
[7] 胡 弘, 晁建刚, 林万洪,等. 基于虚拟手交互的航天员虚拟装配训练仿真方法[J]. 计算机应用, 2015(s2):200-203.
[8] 郑 直. MAYA三维技术在动漫领域立体造型中的应用研究[D]. 北京:北京工业大学, 2013.
[9] 刘文苗, 杨 雪, 王 丽,等. 基于Maya技术的医学虚拟实验模型构建[J]. 实验技术与管理, 2011, 28(4):76-79.
[10] 汪腾浪, 田 元. 基于Unity 3D的教育产品开发研究[J]. 软件导刊·教育技术, 2017, 16(5):83-85.
[11] 李 锋, 叶 铭, 付增良,等. 人手部骨组织建模的B样条拟合方法研究[J]. 计算机仿真, 2009, 26(9):184-186.
[12] 邱兆平. 人体解剖学在写实三维游戏角色制作中的应用研究[D]. 上海:东华大学, 2009.
[13] 尹爱菊. 高职动漫专业三维建模教学研究[D]. 昆明:云南师范大学, 2015.
[14] 郑利平, 张 娟, 周乘龙,等. 人群仿真中角色纹理多样化方法[J]. 图学学报, 2014, 35(1):110-114.
[15] 陈志荣, 陈福民. 基于骨骼混合的蒙皮网格技术[J]. 计算机辅助工程, 2006, 15(4):57-60.