肝脏虚拟外科手术切口的渲染
2021-10-13吴德道赵永虹张思维刘小平
吴德道,赵永虹,张思维,刘小平
(1.南昌大学信息工程学院,江西 南昌 330031;2.景德镇陶瓷大学,江西 景德镇 333000;3.四川开放大学工程技术学院,四川 成都 610073;4.南昌大学前湖学院,江西 南昌 330031;5.卡尔顿大学系统与计算机工程系,渥太华 加拿大 K1S 5B6)
1 引言与研究背景
实现逼真是计算机图形学的一个焦点,尤其在渲染虚拟手术的情况下。渲染虚拟手术时最重要的一个方面是手术表面的外观。长期以来,这一直是一个具有挑战性的主题,而高真实感的表面呈现直到最近几年才具备高性能实时应用程序的可行性。由于这种开发相对较新,所以在实时设计实现中,表面的真实呈现尚不普遍。在本文中,我们将着眼于如何利用这些技术来更真实地再现手术切口。许多外科手术模拟器和现代电子游戏都以某种方式描述切口的切割过程,尽管它们处理切口的方式非常不同。手术模拟器试图尽可能近地模拟手术工具与表皮组织的几何形状之间的相互作用。表面的视觉质量往往被牺牲,而不是改善模拟。另一方面,电子游戏通常侧重于传达一种被艺术化的视觉。因此,表皮切口往往是艺术再现,而不是物理模拟。用这种方法制造切口需要大量的艺术方面的投入,这既费时又费力。
我们归纳了目前的几种合成皮肤切口的方法。第一,在最基本的方法中,艺术家创建了许多具有不同程度伤害的皮肤纹理,这些纹理在角色受到伤害时在运行时交换出去。第二,较复杂的模型根据运行时确定的标准,将预生成的损伤(纹理和可能的网格修改)应用于角色模型的部分。第三,更精细的伤害模型基于运行时收集的精确伤害信息对角色进行局部修改,在运行时动态生成适当的纹理和网格修改。大多数外科手术和电子游戏模拟器中使用第一种或第二种模型来可视化角色受伤,其中艺术影响是决定切口外观的主要因素。只有在第三种模型中,损伤是在运行时合成的,因此依赖于艺术的成份较少,而可以用于更广泛的应用程序。在电子游戏和外科手术模拟器中,关于皮肤损伤的学术研究很少,而公开发布的交互式软件中复杂的破坏模型的技术细节更少,这使得对这个主题的研究既困难又有研究价值。
综合考虑,在三维重建数字化模型基础上提出了一种实时模拟和可视化切口的方法。该方法直接与三维三角网格交互,并在程序运行时生成新的几何结构与简单而有效的纹理合成器结合使用,可以在程序运行中产生高真实感的手术切口。本文其余章节组织如下。第二章回顾了之前的相关研究,并对我们的解决方案进行了概述。第三章给出了我们解决方案中使用的渲染方法以及手术切口的渲染,第四章通过实验进一步证实我们的渲染方法行之有效,最后,第五章总结了本文的研究成果,并对将来的研究提出了建议。
2 相关工作
外科手术切口创面常常被错误地与裂口交替使用,但由于创面内没有薄的组织桥,切口边缘几乎没有或没有磨损,因此具有明显的区别[1-2]。切口的另一个视觉特征是其周围的表皮组织会变红。这种红色的医学术语是红斑,由小静脉和毛细血管破裂或血液细胞流入开始愈合过程引起[3]。红斑通常是弥漫性的,没有固定模式[2]。
在计算机图形学和游戏技术领域,对手术切口可视化或切口模型的研究非常少。Grimes和Vlachos[4-5]提供了两个相关的资料,可以让我们深入了解实际的切口模型。这两幅作品描述了一种技术,使用动态可替换的剔除体来表示开放切口的程度,从这里可以看到肉和骨头的内部模型。投射的纹理是用来可视化血飞溅和切口周围的边缘开口。虽然这种技术能够创造出自然的切口,切断一部分网格,但由于需要皮肤表面后面的内部网格,其适用性是有限的。此外,它只允许使用椭球体或圆盘进行切割,因此不适合小的手术切割。Lee等人提出了一种面部创伤综合系统[6-7]。首先描述了将缠绕纹理投射到三维模型中的实际意义并介绍了生成面部深度图和测量输入切口图像的空间变化深度图的技术,然后,当将一个切口图像应用到选定区域时,这两个纹理映射用于修改面部网格的局部几何形状(深度)。他们的技术允许用户交互选择切口图像的位置,然后实时应用到目标网格。然而,他们使用预先生成的切口纹理,并没有采取任何行动来改善切口与原始表皮颜色的混合,使切口看起来人工合成明显。
本文通过用于表面可视化[8]的切口纹理在运行时生成以提高实时性能,并提出一种扩展的次表面散射方法结合基于物理的渲染方法,以便切口周围区域局部颜色变化更加具有逼真度。该方法完成切割到切口真实感呈现约在150毫秒以内,可以增加在实时应用中虚拟手术切口的高真实感。
3 高真实感渲染
虚拟手术切口高真实感渲染主要是切口自身与切口周围皮肤表面的渲染以及这二者之间颜色过渡的处理,结合基于物理的渲染、两层切口贴片以及提出的基于次表面散射的局部变色方法完成虚拟外科手术切口高真实感呈现。
3.1 基于物理的渲染
基于物理的渲染(PBR),是一组阴影模型,通过精确建模光和材料的相互作用来实现更高层次的真实感和渲染质量。用于着色的主要辐射量是辐射度(符号L)。虽然辐射度是一个光谱量,但为了渲染的目的,它通常存储为RGB三元组。设某一点(Lo)的输出辐射度是该点(Li)的输入辐射度的函数。最常用的模型是反射方程:
(1)
出射光是由一个出射方向ωo给出。对于局部光照阴影来说,ωo通常是视觉向量v,一个单位向量指向从阴影位置到相机。入射光ωi是光矢量l,指向光源的阴影位置。积分域是由半球表面法矢量n定义的。由(1)式可知,出射辐射度与入射光线与表面法线入射角加权后的半球各方向入射辐射度之和成正比(余弦因子)。入射光线也是加权的双向反射分布函数f(ωo,ωi)(双向)。该函数以输入入射光和出射光为输入,输出一个权值表示入射光线对最终出射光线的贡献大小。不同PBR模型的区别在于所选择和构造的双向反射分布函数(BRDF)。
BRDF可解释为指定给定入射光方向的散射光和反射光的分布,并由四个角度参数化。为了在物理上合理,BRDF必须遵守可逆原则,如公式(2):
f(ωo,ωi)=f(ωi,ωo)
(2)
而且能量必须守恒:
(3)
对所有可能的输入ωi方向,BRDF的积分乘以余弦系数在所有可能的输出方向ωo不得超过1。式(3)意味着发出光线的数量不能超过入射光线的数量。
Cook-Torrance BRDF是基于微表面理论[9]。在该理论中,表面被视为一组微小的光学平面——微表面,每个微表面都有其表面法向量m。此外,在对一个表面点进行着色时,给出了入射光向量l和出射光方向v。需要计算的是来自l方向的光在v方向上的反射率。只有表面法向量m等于l和v之间的半向量h的微表面才能产生反射,如图1所示[10]。
图1 微面反射示意(只有m=h的微面才能对反射有贡献)
从微表面入射的光和从微表面出射的光都可能被表面附近的形变所阻挡。这些现象分别称为阴影和遮挡。阴影和遮挡的微表面对反射没有贡献。所有有助于反射的微表面都称为活动微表面。Cook-Torrance BRDF基于这些假设,其形式如公式(4):
(4)
上式中,F(l,h)为菲涅尔反射率项,G(l,v,h)是阴影和遮挡项,D(h)为正态分布项,4(n·v)(n·l)为归一化因子。
在实时渲染中,常用的漫反射BRDF是Lambert的BRDF,如公式(5):
(5)
BRDF实际上是常数,这意味着它模拟了均匀扩散,入射光同样有可能散射到所有可能的方向。Cdiff是散射出表面光的比例系数。这个参数通常被称为反照率,它与通常认为的材料颜色密切相关。公式(1)中使用的BRDF由镜面BRDFs和漫反射BRDFs组成,但它们必须以不破坏能量守恒的方式混合在一起。这可以通过多种方式实现,常见的是在BRDFs之间进行线性插值,其系数与给定阴影点处的物体反射率成正比。满足这个特性的一个因素是扩散菲涅尔项如公式(6),其中余弦项用v·n取代:
Fdiff(F0,v,n)=F0+(1-F0)(1-(v·n)5)
(6)
最终,本文采用的完整的BRDF如公式(7):
f(v,l)=fLambert(v,l)(1-Fdiff)+
fCook-Torrance(v,l)Fdiff
(7)
3.2 手术切口的渲染
在计算机图形学和游戏技术中,没有更严格的数学或物理模型的情况下,通常将自然现象的外观建立在参考图像的基础上[11]。在我们的手术切口渲染中,包括切口周围的切沟和网格表面。后一过程包括若干阶段,首先着色器产生一个不同大小和外观的纹理,使切口可视化。然后使用纹理渲染技术将该纹理映射到网格上,通过着色器将切口贴片渲染到对应的网格面上。
在提出的两层手术切割伤口贴片生成中,我们将较暗和流血的内层与较浅的有色的外层分开。图2说明了两层切口贴片的组成。 为了方便观察,把第一幅图局部放大成第二幅图,从中可以看出,内层与外层显示出大量的锯齿,我们采取局部次表面散射来模糊处理结果如4.2节图4(b)。在内层和外层之间以及外层周围引入了淡入淡出技术,以此改善混合后的整体效果。
除去中心暗红色的切割沟槽,切口表面从内到外分别是深红的内层,浅红的外层,两层组合,两层与内层渐变,两层与内、外层渐变。
接着我们定义了内层和外层的颜色。对于内层,文中使用统一的颜色来表示沾满血的组织。而对于外层,在较深和较浅的皮肤组织颜色之间进行插值。插值因子是通过分形布朗运动[12]来确定的,该技术通过重叠具有不同形状的噪声函数来增加噪声的细节,从而使噪声具有分形性并通过使用此技术来减少切口纹理的人造外观。
算法1是生成切口贴片的像素着色器伪码,主要对两层贴片界限定义,其中在第7行,在输入纹理坐标的x和y位置设置了一个随机偏移量(在0到100之间)。这样可以使两个不同外层具有不同的外形。算法2是进行实际纹理渲染的像素着色器伪码,这个着色器对网格上给定位置的切口纹理进行采样,并返回相应纹理的颜色值。当对整个三角形执行时,该三角形的每个像素将采用切口修补的纹素的颜色值,并与原始颜色混合。
手术切割伤口可视化的最后阶段是切口周围皮肤的变色。这模拟了由于受伤组织周围毛细血管扩张而引起的皮肤发红(红斑)。通过改进Jimenez等人的次表面散射技术[13-14]来解释这种类型的皮肤变色。变色颜色可以用切口周围未受伤皮肤颜色的百分比来表示。这大约是85%到95%的红色通道,60%到75%的绿色通道,60%到85%的蓝色通道。通过修改模糊核在次表面散射着色器的中心权值,我们可以调整表皮的整体颜色。由于中心样本对最终肤色的权重最大,我们可以保持其他样本不变以表现模糊效果。对于每一个切口,我们渲染到目标网格的变色纹理贴图的alpha值为零,因此不会干扰原始的次表面散射过程。
4 实验结果与分析
实验环境配置为CPU为Intel core i5 5200,内存4 GB,显卡为AMD Radeon R5 M320的便携计算机上进行了渲染实验;使用3ds Max 2014版本作为渲染工具,Shader语言为CG。实验用例为实际的肝脏经三维扫描重建后得到的数字化模型。
4.1 实验渲染结果分析
第一组实验对象是图3(a)在经图像重建后得到的肝脏三维几何模型,如图3(b)所示,实验中手术切口在图3(c)和3(d)中分别渲染在3D网格和面片上。在图3(d)中,切口分内外两层并分别淡化界限,以此使切口颜色过渡自然,通过噪声函数的分形性来减少切口纹理的人造外观痕迹。
(a) 原始肝脏图片
4.2 实验结果对比分析
与真实肝脏软组织的切口对比如图4所示,其中左图是固定切割装置旁边是切割产生切口的肝脏软组织[15],右图是经数字重建肝脏切口的渲染。通过对比,我们可以注意到切口几何外形基本相似,所不同的是切口周围血液颜色的渲染,左图偏向切口外形实验,右图兼顾切口外形和周围表皮颜色的渲染。
图4 与真实肝脏切口的对比,其中左图为真实肝脏切口右图为重建仿真切口
为了模糊处理手术切口边界使其具有高真实感,我们采用改进的次表面散射方法使得切口周围局部变色如图5所示,其中图(b)是经模糊处理并局部放大与图(a)未经模糊处理比较更显得切口周围的过渡自然。
(a) 图3(d)切口局部放大未模糊处理 (b) 图4右图经模糊处理并切口局部放大
4.3 渲染效率分析
表2 依次增加的渲染过程及增加手术切口所对应的帧速率对比
第三组实验如表1展示出在经数字化仿真模拟肝脏模型面片数为3968的情况下,利用本文渲染方法达到的帧速率以及增加手术切口后的渲染帧速率对比。通常12 fame/s的帧速率为人眼所达到实时交互的最低的帧速率,当采用次表面散射方法渲染模型以及切口时,其渲染的帧速率依然分别可以在90和85 fame/s左右,分别为人眼实时最低速率的7.5和7倍。所以本文实验方法保证了实时渲染的需要。
5 结论
本文在三维重建数字化模型基础上提出了一种实时模拟和可视化肝脏虚拟手术切口的方法。该方法直接与三维三角网格交互,并在程序运行时生成新的几何结构与简单而有效的纹理合成器结合使用,可以在程序运行中产生高真实感的手术切口。通过使用像素着色器和运行时信息动态生成和渲染切口纹理的方法对切口自身和切口周围的表面进行可视化处理。通过描述一个避免预生成内容的解决方案,以减少对艺术输入的依赖。另外,我们扩展了最先进的次表面散射方法,允许使用纹理映射产生局部颜色变化。与Jimenez等提出的原始可分屏空间次表面散射着色器相比,改进的次表面散射着色器仅慢十分之一。将来工作重点可以集中于研究表皮组织的不同层的生理特性,以及如何将其转化为逼真的物理模拟,以密切模拟真实(创伤)表皮的行为。