一种切割形变仿真方法、装置、存储介质及终端设备转让专利

申请号 : CN201711433212.9

文献号 : CN109961514B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李巧铃闫迎迎王琼彭延军

申请人 : 中国科学院深圳先进技术研究院

摘要 :

本发明公开了一种切割形变仿真方法,用于解决现有方法因粒子之间的相互影响,模型不适用于模拟切割过程的问题。本发明提供的方法包括:获取预先构造的三维软组织模型,三维软组织模型包括内部质点和由三角面片组成的表面网络;更新切割工具和表面网络的位置信息;检测切割工具是否与表面网络中的三角面片相交;若相交,则记录两者的接触点;计算各个质点每个时间步长的受力;对受力进行时间积分,模拟出三维软组织模型的位移和形变;确定与记录下的各个接触点最接近的三角面片上的各个顶点;连接各个顶点得到切割工具的切割轨迹;将各个顶点以切割轨迹为中心分别拆分成两个对称的新顶点,顶点所在的边分别拆分成两条对称的新边,形成表面切口。

权利要求 :

1.一种切割形变仿真方法,其特征在于,包括:

获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;

在每个步长内更新切割工具和所述表面网络的位置信息;

根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;

若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;

通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;

对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;

确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;

将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;

将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口;

其中,所述三维软组织模型通过以下步骤预先构造:

读取软组织的边界信息,构造所述软组织的几何模型;

在所述几何模型表面设置三角面片,形成所述几何模型的表面网络;

在所述几何模型的内部离散设置各个质点,并计算各个质点对应支持域的邻域点,以及计算所述各个质点的物理属性;

根据设置完成所述各个质点和所述表面网络后的几何模型生成所述三维软组织模型。

2.根据权利要求1所述的切割形变仿真方法,其特征在于,所述通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力包括:采用MLS方法求解所述三维软组织模型内部各个质点的位移梯度;

根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力。

3.根据权利要求2所述的切割形变仿真方法,其特征在于,所述根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力具体为:根据所述各个质点的位移梯度和预设的第一公式计算所述各个质点每个时间步长的受力;

所述第一公式包括:fi=‑ΔuiUi,fj=‑ΔujUi;

其中,fi是指质点i的受力,fj是指质点i的邻域点j的受力,ui是质点i的位移向量,Δuj是质点i的第j个邻域的位移梯度,Ui是质点i的应变能密度,所述其中,vi是质点i的体积,应变εi和应力σi线性相关,线性柯西应变为所述各个质点的速度求解公式如下:其中,vi是t时刻的速度,fexternal是外力。

4.根据权利要求1至3中任一项所述的切割形变仿真方法,其特征在于,在确定与记录下的各个所述接触点最接近的三角面片上的各个顶点之前,还包括:将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片。

5.一种切割形变仿真装置,其特征在于,包括:

组织模型获取模块,用于获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;

位置信息更新模块,用于在每个步长内更新切割工具和所述表面网络的位置信息;

相交检测模块,用于根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;

接触点记录模块,用于若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;

受力计算模块,用于通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;

形变模拟模块,用于对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;

顶点确定模块,用于确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;

顶点连接模块,用于将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;

表面切口形成模块,用于将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口;

其中,所述三维软组织模型通过以下步骤预先构造:

几何模型构造模型,用于读取软组织的边界信息,构造所述软组织的几何模型;

表面网络形成模块,用于在所述几何模型表面设置三角面片,形成所述几何模型的表面网络;

质点设置模块,用于在所述几何模型的内部离散设置各个质点,并计算各个质点对应支持域的邻域点,以及计算所述各个质点的物理属性;

三维模型生成模块,用于根据设置完成所述各个质点和所述表面网络后的几何模型生成所述三维软组织模型。

6.根据权利要求5所述的切割形变仿真装置,其特征在于,所述受力计算模块包括:位移梯度计算单元,用于采用MLS方法求解所述三维软组织模型内部各个质点的位移梯度;

质点受力计算单元,用于根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力。

7.根据权利要求5至6中任一项所述的切割形变仿真装置,其特征在于,所述切割形变仿真装置还包括:面片细分模块,用于将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片。

8.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述切割形变仿真方法的步骤。

9.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述切割形变仿真方法的步骤。

说明书 :

一种切割形变仿真方法、装置、存储介质及终端设备

技术领域

[0001] 本发明涉及虚拟现实技术领域,尤其涉及一种切割形变仿真方法、装置、存储介质及终端设备。

背景技术

[0002] 虚拟手术中的研究对象一般是三维软组织,研究目的包括软组织的形变和切割。传统的方法主要包括质点弹簧法或者有限元方法。但质点弹簧方法容易产生抖动,降低了系统的稳定性和真实性;有限元方法计算量较大,不易满足实时性的要求。无网格方法是近年来兴起的一种新兴模拟物体运动的方法,且应用越来越广泛。
[0003] 无网格方法在计算过程中不使用网格,而是使用带属性的粒子作为计算单元,其实现的形变模拟具有形变效果好,实时性高的特点。无网格法主要分为两类,一类是以Lagrange方法为基础的粒子法,一类是以Euler方法为基础的无格子法。其中,光滑流体动力学(SPH)是应用比较广泛的一种无网格方法,该方法以离散的粒子为基础,计算粒子的物理属性,根据每个粒子的物理属性计算粒子的速度,根据速度更新物体的位置信息。SPH方法不仅局限与模拟流体形变,也可应用到固体的形变及切割中。基于点的方法也是无网格方法中的一种,与SPH方法类似,使用粒子作为运算的基础。在基于点的方法上进行改进,在模拟固体物体的形变时,内部使用离散的粒子作为运算单元,在表面和内部离散分布质点进行计算。
[0004] 使用基于点的无网格方法计算量远远小于有限元方法,实时性和可操作性比质点弹簧方法要高。但该方法不支持拓扑结构的改变,因此在研究软组织的切割过程中需要对模型进行改进。Müller在2004年提出了一种基于点的无网格方法,并模拟了弹塑性以及融化物体的形变。但是因为粒子之间的相互影响,该模型并不适用于切割过程。

发明内容

[0005] 本发明实施例提供了一种切割形变仿真方法、装置、存储介质及终端设备,能够模拟三维软组织的因受力产生的位移、形变,并形成对应的切割切口,该方法支持拓扑结构的改变且适用于切割过程。
[0006] 第一方面,提供了一种切割形变仿真方法,包括:
[0007] 获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;
[0008] 在每个步长内更新切割工具和所述表面网络的位置信息;
[0009] 根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;
[0010] 若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;
[0011] 通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;
[0012] 对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;
[0013] 确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;
[0014] 将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;
[0015] 将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。
[0016] 可选地,所述通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力包括:
[0017] 采用MLS方法求解所述三维软组织模型内部各个质点的位移梯度;
[0018] 根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力。
[0019] 可选地,所述根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力具体为:根据所述各个质点的位移梯度和预设的第一公式计算所述各个质点每个时间步长的受力;
[0020] 所述第一公式包括:fi=‑ΔuiUi,fj=‑ΔujUi;
[0021] 其中,fi是指质点i的受力,fj是指质点i的邻域点j的受力,ui是质点i的位移向量,Δuj是质点i的第j个邻域的位移梯度,Ui是质点i的应变能密度,所述
[0022] 其中,vi是质点i的体积,应变εi和应力σi线性相关,线性柯西应变为[0023] 所述各个质点的速度求解公式如下:
[0024]
[0025] 其中,vi是t时刻的速度,fexternal是外力。
[0026] 可选地,所述三维软组织模型通过以下步骤预先构造:
[0027] 读取软组织的边界信息,构造所述软组织的几何模型;
[0028] 在所述几何模型表面设置三角面片,形成所述几何模型的表面网络;
[0029] 在所述几何模型的内部离散设置各个质点,并计算各个质点对应支持域的邻域点,以及计算所述各个质点的物理属性;
[0030] 根据设置完成所述各个质点和所述表面网络后的几何模型生成所述三维软组织模型。
[0031] 可选地,在确定与记录下的各个所述接触点最接近的三角面片上的各个顶点之前,还包括:
[0032] 将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片。
[0033] 第二方面,提供了一种切割形变仿真装置,包括:
[0034] 组织模型获取模块,用于获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;
[0035] 位置信息更新模块,用于在每个步长内更新切割工具和所述表面网络的位置信息;
[0036] 相交检测模块,用于根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;
[0037] 接触点记录模块,用于若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;
[0038] 受力计算模块,用于通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;
[0039] 形变模拟模块,用于对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;
[0040] 顶点确定模块,用于确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;
[0041] 顶点连接模块,用于将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;
[0042] 表面切口形成模块,用于将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。
[0043] 可选地,所述受力计算模块包括:
[0044] 位移梯度计算单元,用于采用MLS方法求解所述三维软组织模型内部各个质点的位移梯度;
[0045] 质点受力计算单元,用于根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力。
[0046] 可选地,所述切割形变仿真装置还包括:
[0047] 面片细分模块,用于将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片。
[0048] 第三方面,提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述切割形变仿真方法的步骤。
[0049] 第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述切割形变仿真方法的步骤。
[0050] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0051] 本发明实施例中,首先,获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;在每个步长内更新切割工具和所述表面网络的位置信息;然后,根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;接着,通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;另外,在记录下接触点之后,确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;再之,将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。可见,在本发明实施例中,可以模拟出三维软组织的因受力产生的位移、形变,并形成对应的切割切口,该方法支持拓扑结构的改变且适用于切割过程。

附图说明

[0052] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0053] 图1为本发明实施例中一种切割形变仿真方法一个实施例流程图;
[0054] 图2为本发明实施例中一种切割形变仿真方法在一个应用场景下预先构造三维软组织模型的流程示意图;
[0055] 图3为本发明实施例中在一个应用场景下手术刀片与包围层次盒的碰撞示意图;
[0056] 图4为本发明实施例中一种切割形变仿真方法在一个应用场景下形成表面切口的示意图;
[0057] 图5为本发明实施例中一种切割形变仿真方法在另一个应用场景下形成表面切口的示意图;
[0058] 图6为本发明实施例中一种切割形变仿真装置一个实施例结构图;
[0059] 图7为本发明一实施例提供的终端设备的示意图。

具体实施方式

[0060] 传统的基于点的方法在构建模型时表面和物体内部都采用的离散的质点,这在切割过程中拓扑结构的变化时是一个很大的局限。同时基于点的方法在大形变时会产生形变失真等现象。
[0061] 针对原有技术的缺点,本发明把表面采样点连成三角面片,有助于切割过程中拓扑结构的改变。又在原模型中加入体积守恒约束,保证每个粒子在形变过程中的体积不变,使大形变时形变不会失真。通过这两点对模型进行扩展,在后期即可对模型进行切割模拟。本发明在仿真模拟中还可以使用交互设备来控制手术工具,实现人机交互友好界面,增加手术的真实感。
[0062] 本发明提供了一种改进的无网格方法,在眼角膜手术的场景下,可以实时模拟眼角膜的切割形变过程。首先,使用基于点的动力学方法模拟眼角膜移植手术中角膜的形变:使用离散的粒子作为运动的基本单元,计算粒子的应力张量,驱动角膜形变;并在原始的基于点的方法上加入体积约束和距离约束,较大程度地提高形变的稳定性。然后提出一种改进的基于点的动力学模型来模拟角膜的切割过程:在模型(三维软组织模型)的表面进行采样,组成三角面片,使模型支持拓扑结构的改变,使用节点复制方法进行表面切割,并在切割过程中对切割三角面片进行细分,使其可以生成相对平滑的切口。模型使用层次包围盒(BVH)进行碰撞检测,基于opengl渲染实现可视化,并且可以实现与力反馈设备的交互,可进行实时的形变切割模拟。实验表明该模型提供了真实高效的形变仿真模拟,具有较好的稳定性和扩展性。
[0063] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0064] 请参阅图1,本发明实施例中一种切割形变仿真方法一个实施例包括:
[0065] 101、获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;
[0066] 102、在每个步长内更新切割工具和所述表面网络的位置信息;
[0067] 103、根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交,若是,则执行步骤104,若否,则继续检测;
[0068] 104、记录所述切割工具与三角面片的接触点;
[0069] 105、通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;
[0070] 106、对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;
[0071] 107、确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;
[0072] 108、将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;
[0073] 109、将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。
[0074] 对于步骤101,三维软组织模型的构造主要可以分为两个大步骤,一个是几何建模,一个是物理建模。几何建模就是读取待建模的软组织的边界信息,在其表面分布三角面片,在内部离散分布上质点。物理建模就是分布完质点之后,每个质点都有一个支持域,求出支持域内的质点的邻域点,以及每个质点的质量、密度、体积等物理属性。具体地,如图2所示,所述三维软组织模型可以通过以下步骤预先构造:
[0075] 201、读取软组织的边界信息,构造所述软组织的几何模型;
[0076] 202、在所述几何模型表面设置三角面片,形成所述几何模型的表面网络;
[0077] 203、在所述几何模型的内部离散设置各个质点,并计算各个质点对应支持域的邻域点,以及计算所述各个质点的物理属性;
[0078] 204、根据设置完成所述各个质点和所述表面网络后的几何模型生成所述三维软组织模型。
[0079] 具体地,该三维软组织模型上的表面网络可以使用包围层次盒(BVH)来实现,对形变对象构造包围层次盒,最底层每个包围盒中包含一个三角面片,以便于后续的碰撞检测。
[0080] 对于上述步骤102,在本实施例中,切割软组织的工具即为上述的切割工具,在大多数场景下,该切割工具为手术刀片。在建模时,可以简化刀片模型,将手术刀片抽象成一条只有长度没有厚度的直线段,在刀片的直线段上均匀取n个采样点,比如10个采样点,并在每个步长内更新这10个采样线的位置,以及更新所述包围层次盒的位置信息。
[0081] 对于步骤103,该步骤用于检测切割工具和表面网络是否发生碰撞的,也就是在一个应用场景下检测手术刀片是否切入了软组织中。具体地,承接上述举例,可以遍历包围盒,判断刀片模型与包围盒的哪一个分支相交,进而判断刀尖是否与包围盒中的三角面片相交。如图3所示,假设P点是手术刀片01的刀尖,三角形ABC是刀尖碰到的包围盒所包围的三角面片,ON是三角面片的法向量,可由3D模型文件(比如,obj模型)直接读入。如果则说明OP与ON的夹角大于90,则刀尖碰到三角面片,即可记录与三角面片的接触点存入缓存中作为刀片01的移动轨迹点,反之则没有碰到,继续进行碰撞检测。
[0082] 对于步骤104,由上述内容可知,当碰撞后,即所述切割工具与所述表面网络中的三角面片相交时,记录所述切割工具与三角面片的接触点。
[0083] 对于步骤105和步骤106,为求解该三维软组织模型的形变,可以使用基于点的动力学方法。可以将软组织剖分成多个带有体积的粒子单元,把各粒子单元的质心取为质点。根据受力情况,我们就可以通过这些质点在形变过程中产生的应变能来求解质点的运动速度进而求出下一时刻的位置,各个质点的速度求解如下式:
[0084]
[0085] 其中vi是t时刻的速度,fexternal是外力,包括重力、摩擦力等。ui是质点i的位移向量,Δuj是质点i的第j个邻域的位移梯度,所以ΔujUi表示第j个邻域点的位移梯度乘以中心质点的应变能密度的负数,即在xi处的粒子,其第J个邻域粒子的弹力大小。Ui是质点i的应变能密度,在软组织受外力作用产生弹性形变时,在它内部就会积蓄应变能,在单轴应力状态下,其内所积蓄的应变能密度为:
[0086]
[0087] 其中,vi是质点i的体积,通过m/p可求得。假设变形体是线弹性各向同性的胡克材料,那么应变εi和应力σi线性相关,即σ=Cε。由线性柯西应变可知:
[0088]
[0089] 因此,我们可以求出软组织受外力后内部质点及其邻域点的受力情况如下:
[0090]
[0091]
[0092] 其中,fi是指质点i的受力,fj是指质点i的邻域点j的受力。由此可知,求出质点的位移梯度的话就可以求出各个质点的受力,可以使用MLS方法求解各个质点的位移梯度。假T设某一点Xi的位移是u=(u,v,w) ,根据一阶泰勒近似
所以Xi的邻域的一个点的j的位移就是:
[0093]
[0094] 根据最小二乘法 使e最小求得:
[0095]
[0096] 令 可求出
[0097] 同理可求出Δv|xi,Δw|xi,最后得到质点的梯度Δui。
[0098] 在求出各个质点的梯度之后就尅求出各个质点每个时间步长的受力情况,对于步骤106,具体可以使用verlet算法对各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型受力产生位移,进而产生形变。在一个应用场景下,该模拟形变的伪代码如下表格中的内容所示:
[0099]
[0100] 对于上述步骤107~109,可以理解的是,在切割工具切割软组织时,除了带来软组织内部各个质点的位移以及软组织形变以外,还会在软组织表面造成切口。因此,除了模拟位移和形变,本实施例还需要模拟形成模型的表面切口。
[0101] 在本实施例中,该三维软组织模型的表面由三角面片组成,切割时把手术刀片抽象为一条只有长度没有厚度的直线段,在进行碰撞检测时,每一时间步长判断一次刀尖与三角面片是否相交,具体可以使用BVH碰撞检测方法,若相交则记录下相交的接触点。可知,寻找与各个接触点最为接近的三角面片的顶点作为刀尖的轨迹点,这些相邻轨迹点连接起来就是刀尖的切割轨迹。
[0102] 在一个应用场景中,在切割工具移动前,可以先在系统上创建缓存列表,然后检测切割工具的移动,遍历包围盒,判断切割工具与包围盒上的三角面片是否发生碰撞,如果否,则继续检测切割工具的移动;如果是,则求解碰撞的交点,即将接触点记录到缓存列表中。在这个过程中,寻找与这些接触点最接近的三角面片的顶点,连接这些顶点得到切割工具的切割轨迹。
[0103] 对于上述步骤109,在得到切割工具的切割轨迹之后,承接上述举例,可以将刀尖划过的临近点以切割轨迹为中心拆分成两个对称的新顶点,临近的边也拆分为两条对称的新边,从而新顶点和新边形成了该三维软组织模型的表面切口。当刀尖与软组织表面接触时,寻找与刀尖最接近的点作为待拆分点。这种方法形成的切口只需要将碰撞检测出的网格进行切割,不改变其他网格的拓扑结构。
[0104] 如图4所示,弧形的线条是刀尖的切割轨迹,空心的点是离切割轨迹最近的顶点,实心的点是顶点复制之后的点,复制并拆分结果如图4,其表面形成切口。可见,这种方法形成的切口只需要将碰撞检测出的网格进行切割,不改变其他网格的拓扑结构。但这种方法在三角网格稀疏时形成的切口往往比较粗糙,为了改善这种情况,本实施例使用一种改进的节点复制方法,如图5所示,在步骤107之前,先将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片,即把空心点的临近点的三角面片进行细分,然后再执行步骤107~109,这样获得的切割轨迹更接近刀尖运动轨迹,得到的切口也更加逼真。
[0105] 需要说明的是,在形成切口之后,还可以及时更新切口附近的质点的邻域信息以及包围盒,以为后续的形变和切口形成做准备。
[0106] 由上述内容可知,本实施例提出一种切割形变仿真方法,使之可以进行拓扑结构的改变。在变形对象的内部依然离散成一个个的带属性的质点,但在表面使用网格模型,同时加入体积守恒,保证大形变下物体模型的形变的稳定性。使用BVH包围盒(层次包围盒)可快速找出碰撞交点,提高交互计算速度。同时该切割形变仿真方法还可以实现力反馈设备的应用,实现形变对象和手术工具之间的交互,增强了虚拟手术过程模拟的真实性。
[0107] 本实施例中,首先,获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;在每个步长内更新切割工具和所述表面网络的位置信息;然后,根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;接着,通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;另外,在记录下接触点之后,确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;再之,将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。可见,在本实施例中,可以模拟出三维软组织的因受力产生的位移、形变,并形成对应的切割切口,该方法支持拓扑结构的改变且适用于切割过程。
[0108] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0109] 上面主要描述了一种切割形变仿真方法,下面将对一种切割形变仿真装置进行详细描述。
[0110] 图6示出了本发明实施例中一种切割形变仿真装置一个实施例结构图。
[0111] 本实施例中,一种切割形变仿真装置包括:
[0112] 组织模型获取模块601,用于获取预先构造的三维软组织模型,所述三维软组织模型包括内部质点和由三角面片组成的表面网络;
[0113] 位置信息更新模块602,用于在每个步长内更新切割工具和所述表面网络的位置信息;
[0114] 相交检测模块603,用于根据所述切割工具和所述表面网络的位置信息检测所述切割工具是否与所述表面网络中的三角面片相交;
[0115] 接触点记录模块604,用于若所述切割工具与所述表面网络中的三角面片相交,则记录所述切割工具与三角面片的接触点;
[0116] 受力计算模块605,用于通过求解所述三维软组织模型内部各个质点的位移梯度来计算所述各个质点每个时间步长的受力;
[0117] 形变模拟模块606,用于对所述各个质点每个时间步长的受力进行时间积分,模拟出所述三维软组织模型因受力产生的位移和形变;
[0118] 顶点确定模块607,用于确定与记录下的各个所述接触点最接近的三角面片上的各个顶点;
[0119] 顶点连接模块608,用于将确定出的所述各个顶点连接起来,得到所述切割工具的切割轨迹;
[0120] 表面切口形成模块609,用于将所述各个顶点以所述切割轨迹为中心分别拆分成两个对称的新顶点,并且将所述各个顶点所在的边以所述切割轨迹为中心分别拆分成两条对称的新边,拆分得到的新顶点和新边形成所述三维软组织模型的表面切口。
[0121] 进一步地,所述受力计算模块可以包括:
[0122] 位移梯度计算单元,用于采用MLS方法求解所述三维软组织模型内部各个质点的位移梯度;
[0123] 质点受力计算单元,用于根据所述各个质点的位移梯度计算所述各个质点每个时间步长的受力。
[0124] 进一步地,所述受力计算模块具体可以用于:根据所述各个质点的位移梯度和预设的第一公式计算所述各个质点每个时间步长的受力;
[0125] 所述第一公式包括:fi=‑ΔuiUi,fj=‑ΔujUi;
[0126] 其中,fi是指质点i的受力,fj是指质点i的邻域点j的受力,ui是质点i的位移向量,Δuj是质点i的第j个邻域的位移梯度,Ui是质点i的应变能密度,所述
[0127] 其中,vi是质点i的体积,应变εi和应力σi线性相关,线性柯西应变为[0128] 所述各个质点的速度求解公式如下:
[0129]
[0130] 其中,vi是t时刻的速度,fexternal是外力。
[0131] 进一步地,所述三维软组织模型可以通过以下模块预先构造:
[0132] 几何模型构造模块,用于读取软组织的边界信息,构造所述软组织的几何模型;
[0133] 表面网络形成模块,用于在所述几何模型表面设置三角面片,形成所述几何模型的表面网络;
[0134] 质点设置模块,用于在所述几何模型的内部离散设置各个质点,并计算各个质点对应支持域的邻域点,以及计算所述各个质点的物理属性;
[0135] 三维模型生成模块,用于根据设置完成所述各个质点和所述表面网络后的几何模型生成所述三维软组织模型。
[0136] 进一步地,所述切割形变仿真装置还可以包括:
[0137] 面片细分模块,用于将各个所述接触点所在的三角面片和邻近的三角面片均细分为更小的三角面片。
[0138] 图7是本发明一实施例提供的终端设备的示意图。如图7所示,该实施例的终端设备7包括:处理器70、存储器71以及存储在所述存储器71中并可在所述处理器70上运行的计算机程序72,例如执行上述切割形变仿真方法的程序。所述处理器70执行所述计算机程序72时实现上述各个切割形变仿真方法实施例中的步骤,例如图1所示的步骤101至109。或者,所述处理器70执行所述计算机程序72时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块601至609的功能。
[0139] 示例性的,所述计算机程序72可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器71中,并由所述处理器70执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序72在所述终端设备7中的执行过程。
[0140] 所述终端设备7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器70、存储器71。本领域技术人员可以理解,图7仅仅是终端设备7的示例,并不构成对终端设备7的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
[0141] 所述处理器70可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field‑Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0142] 所述存储器71可以是所述终端设备7的内部存储单元,例如终端设备7的硬盘或内存。所述存储器71也可以是所述终端设备7的外部存储设备,例如所述终端设备7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器71还可以既包括所述终端设备7的内部存储单元也包括外部存储设备。所述存储器71用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器71还可以用于暂时地存储已经输出或者将要输出的数据。
[0143] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0144] 在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0145] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实施例的模块、单元和/或方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0146] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0147] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0148] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0149] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read‑Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0150] 以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。