一种基于CycleGAN的虚拟切割方法
技术领域
本发明涉及一种基于CycleGAN的虚拟切割方法,属于虚拟切割技术领域。
背景技术
近年来,随着虚拟现实技术的不断发展,通过虚拟现实平台模拟手术训练变得可能。虚拟手术给医护人员提供了极大的便利,他们可以通过虚拟手术技术进行反复的模拟练习,提升自己的医疗水平。目前的虚拟手术通过建模、渲染、计算等方法模拟手术的过程,并呈现在虚拟现实平台上,建模时往往使用有限元模型、无网格模型等模型。
然而,目前虚拟手术技术考虑的方面仍不够全面,真实性远远不足。在做力的反馈时,血肉对刀具的挤压力以及该过程中的粘弹性对手术的操作有着较大的影响,但是目前还很少有将这些纳入虚拟切割的过程中;此外,真实手术中,切割开的血肉与空气接触过久容易引发感染,所以手术对时间的要求很高,然而目前的虚拟手术贴图更新同步性不够,缺乏有感染、腐烂的贴图,手术真实性下降。
发明内容
针对目前虚拟手术对作用力考虑不够全面、真实性不足的问题,本发明提出了一种基于CycleGAN的虚拟切割方法,在虚拟切割过程中引入非线性粘弹性、切割排斥力、软组织萎缩力等,使虚拟切割过程更加准确真实,同时利用CycleGAN模型更新虚拟切割中的贴图,给使用者更好的视觉体验。
为解决上述技术问题,本发明采用了如下技术手段:
一种基于CycleGAN的虚拟切割方法,具体包括以下步骤:
S1、基于无网格方法建立弹性软组织模型虚拟切割力的方程;
S2、基于准线性粘弹性模型建立非线性粘弹性软组织模型虚拟切割力的方程;
S3、根据碰撞点确定虚拟切割面;
S4、基于磁性氧化网格模型得到虚拟切割的综合外力,并计算非线性粘弹性软组织模型虚拟切割的位移;
S5、基于CycleGAN实时更新虚拟切割中软组织模型贴图。
进一步的,步骤S1中在弹性软组织模型中任一点进行虚拟切割,施加力f满足以下方程:
其中,f表示切割力,E表示杨氏模数,▽Ui表示软组织模型中任一点i的梯度,▽U表示软组织模型U的梯度。
进一步的,步骤S2中虚拟切割力的方程为:
其中,fi(t+Δt)表示t+Δt时刻在任一点i处的虚拟切割力,vi表示施加在点i上的速度矢量,σi(t+Δt)表示t+Δt时刻在任一点i处的应力,▽ui表示点i处的梯度,εi(t+Δt)表示t+Δt时刻在任一点i处的应变张量。
进一步的,步骤S3的具体操作如下:
S31、虚拟切割中有η个碰撞点,碰撞点j的坐标为Pj(xj,yj,zj),j∈[1,η],根据平面方程一般式Ax+By+Cz+D=0构建切割面方程:
其中,且C≠0。
S32、令整理S31公式得:
S33、将碰撞点坐标带入步骤S32的公式中,得到a0,a1,a2,进一步计算得到切割面。
进一步的,步骤S4的具体操作如下:
S41、用铁单质对手术刀的排斥力表示虚拟切割中软组织对手术刀的挤压力,具体公式如下:
F1=k1m1 (5)
其中,F1表示当前铁单质对手术刀的排斥力,k1为由实验得出的常数,表示铁单质质量与产生的排斥力之间的线性关系,m1表示当前铁单质的质量。
S42、用铁单质氧化产生的力表示虚拟切割中软组织萎缩力,具体公式如下:
F2=k2m2 (6)
其中,F2表示铁单质氧化为三氧化二铁产生的力,k2为由实验得出的常数,表示三氧化二铁质量与萎缩力之间的线性关系,m2表示三氧化二铁的质量。
S43、将F1,F2与步骤S2的虚拟切割力叠加得到外力F0,公式如下:
F0=f-F1-F2 (7)
其中,f表示步骤S2得到的虚拟切割力。
S44、计算非线性粘弹性软组织模型虚拟切割的位移,在虚拟切割中碰撞点j处位移满足以下公式:
其中,Xj+1表示受力位移后的点j+1的空间坐标,Xj表示碰撞点j的空间坐标,vj表示施加在点j上的速度矢量,vj+1表示施加在点j+1上的速度矢量,F0j表示施加在点j上的外力,F0(j+1)表示施加在点j+1上的外力,mj表示点j的质量。
进一步的,所述的步骤S5的具体操作如下:
S51、构造初始域X和目标域Y,初始域X中包含N个训练样本目标域Y中包含M个训练样本/>
S52、构造CycleGAN模型的两个映射G:X→Y和F:Y→X,使用判别器DX分辨域X中的图片{x}和通过映射F生成的图片{F(y)},使用判别器DY分辨域Y中的图片{y}和通过映射G生成的图片{G(x)}。
S53、计算对抗损失,映射函数G:X→Y和F:Y→X分别满足以下公式:
其中,LGAN(G,DY,X,Y)表示映射函数G与它对应的判断器DY的对抗损失,LGAN(F,DX,Y,X)表示映射函数F与它对应的判断器DX的对抗损失。
S54、计算循环一致损失,映射函数G和F的循环一致损失满足以下公式:
其中,Lcyc表示循环一致损失,表示域X内图片x的数学期望,|| ||1表示1-范数,/>表示域Y内图片y的数学期望。
S55、针对步骤S53、S54的损失进行反向传播,更新参数,之后利用训练完成的CycleGAN模型实时产生并更新虚拟切割中软组织模型贴图。
采用以上技术手段后可以获得以下优势:
本发明提出了一种基于CycleGAN的虚拟切割方法,在现有网格中纳入磁性氧化模型,用铁单质对刀具的排斥力模拟生物软组织对刀的挤压力,用铁单质的氧化过程模拟生物软组织接触空气萎缩过程,通过多个力的组合提高虚拟切割手术的真实性和准确性,有利于使用者把握手感;本方法提出的磁性氧化模型具有较强的鲁棒性,适用于绝大多数虚拟手术,有利于手术医师在虚拟现实系统中磨练手术技能。此外,本发明利用CycleGAN模型生成具有纹理以及腐烂情况的贴图图片,训练完成的CycleGAN模型可以根据原始图片实时准确更新贴图,增加虚拟手术的真实感,增强使用者的感官体验,进一步增强虚拟手术的训练效果。
附图说明
图1为本发明一种基于CycleGAN的虚拟切割方法的步骤流程图。
图2为本发明一种基于CycleGAN的虚拟切割方法的切割示意图。
图3为本发明一种基于CycleGAN的虚拟切割方法中磁性氧化网格模型示意图。
图4为本发明一种基于CycleGAN的虚拟切割方法中CycleGAN模型的结构图。
图5为本发明一种基于CycleGAN的虚拟切割方法中CycleGAN模型循环一致示意图。
具体实施方式
下面结合附图对本发明的技术方案作进一步说明:
一种基于CycleGAN的虚拟切割方法,如图1所示,包括以下步骤:
S1、基于无网格方法建立弹性软组织模型虚拟切割力的方程;在三维空间中,连续弹性理论被用来表示连续物体如软组织的行为,当施加力时,用X=(x,y,z)T表示施力点的原始材料坐标,力的作用下这些点将移动到新的位置X'=(x',y',z')T,导致软组织变形。这种软组织变形可以用位移场U=(u(x,y,z),v(x,y,z),w(x,y,z))表示,原始位置与变形得到的新位置之间的关系满足公式:
U=X'-X (12)
在弹性软组织模型中虚拟切割的施加力f满足以下方程:
其中,f表示切割力,E表示杨氏模数,▽Ui表示软组织模型中任一点i的梯度,▽U表示软组织模型U的梯度。
S2、基于准线性粘弹性模型建立非线性粘弹性软组织模型虚拟切割力的方程;生物软组织主要由胶原蛋白和弹性蛋白组成,具有良好的弹性和粘度,基于准线性黏弹性(QLV)模型,软组织应力应变行为的非线性描述如下:
其中,σ为应力,ε是应变张量,t表示某一时刻,是考虑与应变相关的弹性非线性的函数,τ为时间常数。
假设在t=t0时刻有一个外力作用于软组织,则会引起瞬时应变,应变公式为:
ε(t)=H(t)ε0 (15)
其中,H(t)是单位阶跃函数,ε0是t=t0时刻的应变张量。因为阶跃函数的导数是脉冲函数,有:
其中,δ(t)是单位脉冲函数。
将虚拟切割模拟时间T分为m个时间段,每段时间为根据公式(14)得到t+Δt时刻应力应变关系:
其中,ε(t-Δt)表示t-Δt时刻的应变张量,τi表示任一点i处的时间常数,共有n个点,ε(t+Δt)表示t+Δt时刻的应变张量。
非线性粘弹性软组织模型虚拟切割力的方程为:
其中,fi(t+Δt)表示t+Δt时刻在任一点i处的虚拟切割力,vi表示施加在点i上的速度矢量,σi(t+Δt)表示t+Δt时刻在任一点i处的应力,▽ui表示点i处的梯度,εi(t+Δt)表示t+Δt时刻在任一点i处的应变张量。
S3、根据碰撞点确定虚拟切割面;如图2所示,虚拟切割过程中手术刀通常只是沿着刀片的方向切割软组织,可以使用碰撞检测得到的点来适应切割面,具体操作如下:
S31、虚拟切割中有η个碰撞点,碰撞点j的坐标为Pj(xj,yj,zj),j∈[1,η],根据平面方程一般式Ax+By+Cz+D=0构建切割面方程:
其中,且C≠0。
S32、令整理S31公式得:
S33、将碰撞点坐标带入步骤S32的公式中,得到a0,a1,a2,进一步计算得到切割面。
S4、基于磁性氧化网格模型得到虚拟切割的综合外力,并计算非线性粘弹性软组织模型虚拟切割的位移;在实际的手术过程中,生物软组织在手术刀切割时会对手术刀产生一个较小的挤压力,同时切割产生的开口接触空气等容易发生感染,造成组织萎缩。本发明的磁性氧化网格模型如图3所示,在网格模型背对侧设置铁单质,用铁单质模拟挤压力与肌肉萎缩,计算切割综合外力并计算切割位移,具体操作如下:
S41、用铁单质对手术刀的排斥力表示虚拟切割中软组织对手术刀的挤压力,具体公式如下:
F1=k1m1 (21)
其中,F1表示当前铁单质对手术刀的排斥力,k1为由实验得出的常数,表示铁单质质量与产生的排斥力之间的线性关系,m1表示当前铁单质的质量。
S42、用铁单质氧化产生的力表示虚拟切割中软组织萎缩力,具体公式如下:
F2=k2m2 (22)
其中,F2表示铁单质氧化为三氧化二铁产生的力,k2为由实验得出的常数,表示三氧化二铁质量与萎缩力之间的线性关系,m2表示三氧化二铁的质量。
S43、将F1,F2与步骤S2的虚拟切割力叠加得到外力F0,公式如下:
F0=f-F1-F2 (23)
其中,f表示步骤S2得到的虚拟切割力。
S44、计算非线性粘弹性软组织模型虚拟切割的位移,在虚拟切割中碰撞点j处位移满足以下公式:
其中,Xj+1表示受力位移后的点j+1的空间坐标,Xj表示碰撞点j的空间坐标,vj表示施加在点j上的速度矢量,vj+1表示施加在点j+1上的速度矢量,F0j表示施加在点j上的外力,F0(j+1)表示施加在点j+1上的外力,mj表示点j的质量。
S5、基于CycleGAN实时更新虚拟切割中软组织模型贴图,如图4所示,具体操作如下:
S51、收集虚拟软组织模型贴图、带有纹理的贴图、带有腐烂情况的贴图,构造初始域X和目标域Y,域X内的图片是没有纹理的模型贴图,域Y内的图片是带有纹理的模型贴图;初始域X中包含N个训练样本目标域Y中包含M个训练样本/>将域X和域Y中的数据分布分别表示为x~pdata(x)和y~pdata(y)。
S52、构造CycleGAN模型的两个映射G和F,G:X→Y用于根据域X中的图片生成一个域Y中的图片,F:Y→X用于根据域Y中的图片生成一个域X中的图片;使用判别器DX分辨域X中的图片{x}和通过映射F生成的图片{F(y)},使用判别器DY分辨域Y中的图片{y}和通过映射G生成的图片{G(x)}。
S53、计算对抗损失,映射函数G:X→Y和F:Y→X分别满足以下公式:
其中,LGAN(G,DY,X,Y)表示映射函数G与它对应的判断器DY的对抗损失,LGAN(F,DX,Y,X)表示映射函数F与它对应的判断器DX的对抗损失。
S54、计算循环一致损失,如图5所示,为了进一步减少可能的映射函数的空间,认为学习的映射函数应该是循环一致的:对于来自域X的每个图像x,图像转换周期应该能够使x返回到原始图像,如:x→G(x)→F(G(x))≈x,称这个式子为前向循环一致;同样的,对于来自域Y的每个图像y,图像转换周期应该能够使y返回到原始图像,如:y→F(y)→G(F(y))≈y。
映射函数G和F的循环一致损失满足以下公式:
其中,Lcyc表示循环一致损失,表示域X内图片x的数学期望,|| ||1表示1-范数,/>表示域Y内图片y的数学期望。
S55、针对步骤S53、S54的损失进行反向传播,更新参数,构建两个生成对抗网络,第一个生成对抗网络用于将软组织模型贴图转化成带有纹理的软组织模型贴图;第二个生成对抗网络用于将软组织模型贴图转化成带有腐烂情况的软组织模型贴图。之后利用训练完成的CycleGAN模型实时产生并更新虚拟切割中软组织模型贴图。
上面结合附图对本发明的实施方式作了详细地说明,但是本发明并不局限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。