基于gpu的软组织器官元球模型自动生成与碰撞检测的方法

文档序号:9506872阅读:1224来源:国知局
基于gpu的软组织器官元球模型自动生成与碰撞检测的方法
【技术领域】
[0001] 本发明涉及一种基于GPU并行计算的虚拟手术中软组织器官的元球模型自动生 成与碰撞检测的模拟方法。
【背景技术】
[0002] 随着计算机硬件处理性能的提升,基于虚拟现实技术的手术模拟器得到了广泛研 究。而模型建立与碰撞检测是虚拟手术中的关键技术。软组织模型的建立与碰撞检测主要 包含三方面内容:第一是根据三角网格模型生成初始的元球模型;第二是针对此初始元球 模型进行局部和全局的优化;第三是基于元球模型进行系统的碰撞检测。在设计建模算法 时要同时考虑以上三个问题,保证系统具有较好的实时性和真实性。
[0003] 碰撞检测在虚拟手术中也是一个非常关键的问题,尽管前人进行了深入的研究, 但实时地处理碰撞检测到目前为止仍然是一个很有挑战性的问题。从碰撞检测方法的角 度可以将碰撞检测划分为三类:第一类,基于包围盒的方法,这种方法因为具有良好的性能 而被广泛研究。采用包围盒的方法可以快速地排除不可能发生碰撞的物体,从而可以很快 检测到可能相交的对象。根据所采取的包围盒不同,有基于层次包围盒算法、基于AABB层 次树算法、基于OBB层次树算法和基于k-Dop层次树算法;第二类,基于空间分割的方法, 使用八叉树等数据结构对空间进行细分,这种方法对于刚体检测比较好;第三类,距离场方 法。对于需要实时更新处理的几何形状复杂的对象,由于相互交互作用的要求,这种方法还 不够快。
[0004] 本发明提出了一种基于GPU的软组织器官元球模型自动生成与碰撞检测的方法。 该方法是一种基于球的建模方法,和其他建模方法不同,该方法在表现软组织器官方面具 有很高的真实性,并能很好地满足虚拟手术中的实时性要求。

【发明内容】

[0005] 本发明解决的技术问题是:针对虚拟手术中传统方法不够真实或速度太慢的问 题,提供了一种软组织器官的元球模型生成算法,并使用该元球模型处理模型碰撞问题。该 方法满足了虚拟手术系统实时性和真实性的要求。
[0006] 本发明采用的技术方案为:一种基于GPU的软组织器官元球模型自动生成与碰撞 检测的方法,包括以下四个步骤:
[0007] 步骤(1)、生成初始的元球模型:根据输入的三角形网格进行采样,并计算三角形 网格的维诺图,根据维诺图的顶点获得三角形网格的中轴面,在中轴面上放置一定数量的 球,得到初始的元球模型。
[0008] 步骤(2)、元球模型的局部优化:根据元球模型的初始位置与半径,采用多种优化 算法,如聚合距离太近的球、调整半径使球内切于三角网格模型表面、填补元球之间的空隙 等,对元球模型进行局部优化,减少球的数目,使元球模型与三角网格模型切合度更高。
[0009] 步骤(3)、元球模型的全局优化:采用一种电荷引力模型,对原始的三角网格模型 进行离散化,计算元球与网格内部的空隙之间的电荷引力,使元球按照受力方向进行移动, 使得元球模型可以更好地表示三角网格模型。
[0010] 步骤(4)、使用步骤(1) (2) (3)生成的元球模型进行检测碰撞,包括软组织器官之 间的自碰撞以及软组织器官与手术器械间的碰撞。碰撞检测采用GPU并行计算,能够达到 很好的实时性。
[0011] 本发明的原理在于:
[0012] (1)软组织器官通常具有连续、光滑、圆润的表面,使用元球模型来模拟软组织器 官,在呈现和表达这样的形体时,具有天然的优势。
[0013] (2)使用三角网格模型直接参与计算,会有计算量大、计算复杂的缺点。生成三角 网格对应的元球模型后,元球的数目与原模型的三角面片数目相比,减小了很多,能够轻易 达到实时的效果。
[0014] (3)由于元球模型可以很好地表示原三角网格模型,使用元球模型处理碰撞检测 是一种合理的方法。相比于三角形之间的相交检测,球因为具有旋转不变性,计算是否相交 十分简单。
[0015] (4)在虚拟手术系统中,手术器械一般是细长状的刚体,因此使用圆柱体可以很好 地模拟手术器械进行手术操作。
[0016] 本发明与现有技术相比的优点在于:
[0017] 1、本发明提出的元球模型自动生成算法具有生成模型精确、球数少的特点,能够 以少量的球来逼真地表示原始器官模型。
[0018] 2、本发明采用元球模型进行碰撞检测,具有实时性高的特点,并且能够很真实地 模拟真实手术的碰撞情况。
【附图说明】
[0019] 图1 :基于GPU的软组织器官的元球模型自动生成与碰撞检测的方法的处理流程 图;
[0020] 图2 :输入的三角形网格模型示意图;
[0021] 图3 :二角网格模型米样点的不意图;
[0022] 图4 :三角网格模型中轴面的示意图;
[0023] 图5 :初始的元球模型示意图;
[0024] 图6 :局部优化后的元球模型示意图;
[0025] 图7 :最终的元球示意图;
[0026] 图8 :软组织器官发生自碰撞的示意图;
[0027] 图9 :使用圆柱体模拟手术器械示意图;
[0028] 图10 :元球与圆柱体进行碰撞检测的计算方法示意图;
[0029] 图11 :脾脏的元球模型示意图;
[0030] 图12 :小肠的元球模型示意图;
[0031] 图13 :胃的元球模型示意图。
【具体实施方式】
[0032] 图1给出了基于GPU的软组织器官元球模型自动生成与碰撞检测的方法的处理流 程,下面结合其他附图及【具体实施方式】进一步说明本发明。
[0033] 本发明提供一种基于GPU的软组织器官元球模型自动生成与碰撞检测的方法,主 要步骤介绍如下:
[0034] 1、生成初始的元球模型
[0035] 该方法根据输入的三角形网格生成初始的元球模型。最初的输入为三角形网格模 型文件,以〇bj的格式存储,如图2所示。对于三角网格模型,对其进行点采样。采样点的数 量可以进行手动设置,不同的数量代表着采样点的密度。遍历三角形网格的每个三角形,将 三角形顶点置于初始采样点集合。如果三角形面积大于某一阈值,在此三角形内部随机采 样,也置于采样点集合。此阈值与采样点设置数目有关。最后,根据所设置的采样点数目, 对集合进行均匀筛选,获得采样点集。得到的采样点如图3所示。
[0036] 采用增量法来生成维诺图。以采样点集合作为输入数据,首先选取一个将三角网 格模型包围的四面体作为初始形状,然后不断进行迭代,每次添加一个采样点,计算此新添 加点所占据的范围,更新整个维诺图。由于新添加点所影响的范围是局部的,因此更新的速 度很快。迭代完成后获得三角网格对应的维诺图。
[0037] 将维诺图的顶点连接,生成一个曲面。根据维诺图的性质,此曲面为初始三角网格 模型的中轴面。中轴面如图4所示。它能够准确地表示初始模型的拓扑结构与形状。在此 中轴面上,以维诺图的顶点为球心,放置一定数量的球,生成初始的元球模型。初始的元球 模型如图5所示。
[0038] 2、元球模型的局部优化
[0039] 初始的元球模型虽然可以简单地表示三角网格模型,可是它的密度十分不均匀, 此外,很多球突出到模型表面以外,而另一些则深入在模型内部,没有发挥作用。因此需要 一些优化方法来改善元球模型。本发明采用多种优化算法,如聚合距离太近的球、调整半径 使球内切于三角网格模型表面、填补元球之间的空隙等,对元球模型进行局部优化,减少球 的数目,使元球模型与三角网格模型切合度更高。
[0040] (1)半径调整算法:计算每个元球球心到模型表面的距离,然后将其作为新的元 球半径。计算公式为:
[0041 ] D (c) = min d (c,Ti) (1)
[0042] 式中,d(c, Ti)表示元球球心到三角形i的距离;c是元球球心的位置,1\表示三角 形i。
[0043] 本算法不同元球之间不具有相关性,可以使用GPU进行并行计算。
[0044] 经过半径的调整,每个元球都能够很好地内切于三角网格模型的表面。但是很多 的元球都较为重合地拥在一起,元球的数目十分庞大,因此需要对元球进行聚合。
[0045] (2)元球聚合算法:检测每个元球与其他元球的关系,将被包含的元球删除,距离 小于某一阈值的两个元球合并为一个。合并后的元球的球心位置位于初始两个元球的球心 连线上,新的半径用公式(1)计算。若有多个元球的相互距离都小于此阈值,即多个元球聚 集,需要计算球心集合的中心位置,作为新球的球心。球心位置由公式(2)计算:
[0047] 式中,m代表聚集在一起的元球的数目,c_代表新球的球心坐标,用x、y、z坐标 分量分别进行计算,C i表示第i个元球的球心位置。
[0048] (3)空隙填补算法:搜索每个元球的周围,查询在三角网格模型内部未被元球覆 盖的区域,并用新的元球覆盖。新的元球位置如公式(3)所示。
[0050] 式中,c_代表新球的球心坐标,c p C2表示临近元球1和2的球心位置,d(c u C2) 表示元球1和2的球心距离,新的半径同样用公式(1)计算。
[0051] 经过局部优化,元球能较为均匀地分布于三角网格模型内部,球的数目有了很大 的减少,能够较为真实地表现初始三角网格模型。如图6所示。
[0052] 3、元球模型的全局优化
[0053] 元球模型在经过局部优化后,可以较为真实地表示初始的三角网格模型。可是,本 发明的终极目标是使得生成的元球模型能够最大程度地与三角网格模型相匹配。因此,需 要在三角网格模型内部未被元球覆盖的空隙部分的体积达到最小。
[0054] 本发明采用了一种电荷引力模型,赋予元球和空隙以不同极性、不同数量的电荷, 通过电荷引力的自动作用,驱动元球朝着受力方向移动,实现元球模型全局的位置
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1