源自局部体积的腔室重建的制作方法

文档序号:22680723发布日期:2020-10-28 12:41阅读:78来源:国知局
源自局部体积的腔室重建的制作方法

本发明涉及计算机建模领域。



背景技术:

一些医疗应用需要构造解剖结构诸如心脏腔室的网格模型。

以引用方式并入本文的lorensen,william,和cline,harveye.的“marchingcubes:ahighresolution3dsurfaceconstructionalgorithm”(acmsiggraphcomputergraphics,第21卷,第4期,acm,1987)提供了一种称为“移动立方体”的算法,该算法由3d医疗数据生成具有恒定密度表面的三角形模型。



技术实现要素:

根据本发明的一些实施方案,提供了一种包括监视器和处理器的系统。处理器被配置成将解剖腔内的多个位置的相应坐标映射到相应的第一体素,以及将第一值f(0)分配给第一体素中的每个,f(n)为针对包括端值在内的0和m之间的每个整数n定义的单调函数,m为预定义的正整数。处理器还被配置成通过将相应的第二值{f(d(vi))}分配给多个第二体素{vi}来评估该多个第二体素{vi},该多个第二体素{vi}中的每个与第一体素中的最近体素相距1≤d(vi)≤m体素的距离。处理器还被配置成在评估第二体素之后,通过将体素的直接邻域的相应值的加权平均值迭代地分配给第二体素中的至少一些的每个体素来迭代地重新评估第二体素,在加权平均值中,与f(m)相差不超过第一预定义阈值δ的所述值中的任一个相比于所述值中的任何其他值被赋予更高的权重。处理器还被配置成在迭代地重新评估第二体素之后,识别第二体素的子集,该子集中的每个具有与f(m)相差超过第二预定义阈值的值。处理器还被配置成通过将网格生成算法应用到包括第二体素的子集和第一体素的体积(volume)来生成表示该体积的表面的网格,以及在监视器上显示网格。

在一些实施方案中,该体积由第二体素的子集和第一体素构成。

在一些实施方案中,网格生成算法为移动立方体算法。

在一些实施方案中,f(n)在域[0,m]上单调递减。

在一些实施方案中,f(m)=0并且f(m-1)=δ。

在一些实施方案中,对于域[0,m-3]中的任何整数n0,f(n0+1)为f(n0)的预定义百分比。

在一些实施方案中,处理器被配置成在整个m次迭代中,通过在这些迭代的每第j次迭代中评估对于d(vi)=j的第二体素中的那些来评估第二体素。

在一些实施方案中,处理器被配置成使用多个并行执行线程来评估第二体素。

在一些实施方案中,处理器被配置成使用多个并行执行线程来重新评估第二体素。

根据本发明的一些实施方案,还提供了一种方法,该方法包括将解剖腔内的多个位置的相应坐标映射到相应的第一体素,以及将第一值f(0)分配给第一体素中的每个,f(n)为针对包括端值在内的0和m之间的每个整数n定义的单调函数,m为预定义的正整数。该方法还包括通过将相应的第二值{f(d(vi))}分配给多个第二体素{vi}来评估该多个第二体素{vi},该多个第二体素{vi}中的每个与第一体素中的最近体素相距1≤d(vi)≤m体素的距离。该方法还包括在评估第二体素之后,通过将体素的直接邻域的相应值的加权平均值迭代地分配给第二体素中的至少一些的每个体素来迭代地重新评估第二体素,在加权平均值中,与f(m)相差不超过第一预定义阈值δ的所述值中的任一个相比于所述值中的任何其他值被赋予更高的权重。该方法还包括在迭代地重新评估第二体素之后,识别第二体素的子集,该子集中的每个具有与f(m)相差超过第二预定义阈值的值。该方法还包括通过将网格生成算法应用到包括第二体素的子集和第一体素的体积来生成表示该体积的表面的网格。

在一些实施方案中,解剖腔包括心脏的腔室。

根据本发明的一些实施方案,还提供了一种包括存储有程序指令的有形非暂态计算机可读介质的计算机软件产品。该指令在被处理器读取时使得处理器将解剖腔内的多个位置的相应坐标映射到相应的第一体素,以及将第一值f(0)分配给第一体素中的每个,f(n)为针对包括端值在内的0和m之间的每个整数n定义的单调函数,m为预定义的正整数。该指令还使得处理器通过将相应的第二值{f(d(vi))}分配给多个第二体素{vi}来评估该多个第二体素{vi},该多个第二体素{vi}中的每个与第一体素中的最近体素相距1≤d(vi)≤m体素的距离。该指令还使得处理器在评估第二体素之后,通过将体素的直接邻域的相应值的加权平均值迭代地分配给第二体素中的至少一些的每个体素来迭代地重新评估第二体素,在加权平均值中,与f(m)相差不超过第一预定义阈值δ的所述值中的任一个相比于所述值中的任何其他值被赋予更高的权重。该指令还使得处理器在迭代地重新评估第二体素之后,识别第二体素的子集,该子集中的每个具有与f(m)相差超过第二预定义阈值的值。该指令还使得处理器通过将网格生成算法应用到包括第二体素的子集和第一体素的体积来生成表示该体积的表面的网格。

结合附图,通过以下对本发明的实施方案的详细描述,将更全面地理解本公开,其中:

附图说明

图1为根据本发明的一些实施方案的用于生成受检者的心脏的一个或多个腔室的网格模型的系统的示意图;

图2为根据本发明的一些实施方案的用于生成网格模型的方法的流程图;

图3为根据本发明的一些实施方案的图2的方法的各个方面的示意图;

图4为根据本发明的一些实施方案的用于迭代地评估体素的技术的示意图;以及

图5a-b为根据本发明的一些实施方案的用于迭代地重新评估体素的技术的示意图。

具体实施方式

概述

本发明的实施方案提供了用于构造心脏腔室的网格模型(本文中也简称为“网格”)的技术。根据该技术,当导管在腔室内(并且任选地在邻接的血管内)移动时,导管的位置被跟踪系统连续地记录。将所记录的位置或“点”中的每个添加到表示腔室的“点云”中。随后,由点云构造体素的体积,并且随后由体积构造网格。

本发明的实施方案所解决的具体挑战在于体素体积中的间隙可使网格的构造复杂化。例如,上文在背景技术中引用的移动立方体算法可将间隙视为体积的外部,并且因此可网格化体积的内部。尽管其他算法可用于在构造网格时填充间隙,但这些算法可为缓慢的,并且并非总是有效地处理间隙中的全部。

为了解决这种挑战,本发明的实施方案提供了一种处理器,该处理器被配置成执行填充算法以用于填充体积中的大部分或全部间隙。通过这种填充,可使用快速和高效的网格构造算法诸如移动立方体算法来构造网格。

填充算法对体积的邻域进行操作,该体积包括(i)源自点云的原始体素集(在本文中被指定为{vc})和(ii)其他体素集{vo},该其他体素集中的每个与属于{vc}的最近体素相距m或更少体素的距离。m被选择为足够大,使得表示腔室的子体积的每个体素与属于{vc}的最近体素相距少于m体素的距离。

当执行填充算法时,处理器首先将值1分配给{vc}中的每个体素,并且将非零值分配给{vo}中的一些体素。具体地,处理器将值f(d(vi))分配给{vo}中的每个体素vi,其中d(vi)为vi距{vc}中的最近体素的距离(以体素计),并且f(n)为域[0,m]上的n的单调递减函数,使得f(0)=1并且f(m)=0。有利地,值的这种分配可在多个并行执行线程(例如,使用图形处理单元(gpu))上执行,因为属于{vo}的体素可彼此并行地进行评估。

接下来,处理器迭代地重新评估{vo}中的位于少于m的距离处的体素。具体地,在每次迭代中,这些体素中的每个被分配其直接邻域的值的加权平均值。在计算此加权平均值时,全部非零值接收相等的加权,而每个零值相比于非零值接收显著更高的加权。因此,如果迭代次数足够大,则处理器将表示位于腔室外部的子体积中的全部或至少绝大部分置零。(如上所述,m通常足够大,使得腔室内没有体素为零值,从而腔室内的体素未被置零)。有利的是,这种重新评估也可在多个并行执行线程上执行。

随后,处理器将{vo}中具有大于介于0和1之间的预定于阈值的值的那些体素并入该体积。处理器因而填充体积中的间隙。

最后,处理器在填充的体积上执行快速网格生成算法,诸如移动立方体算法。然后可在计算机屏幕上显示网格。任选地,网格可叠加有电生理信息,诸如局部激活时间(lat)值,以便产生电解剖标测图。

尽管本说明书主要涉及心脏的腔室,但需注意,本文所述的技术也可用于对任何其他解剖结构或非解剖结构进行建模。例如,本文所述的技术可用于深度感测应用中。

系统描述

首先参见图1,其为根据本发明的一些实施方案的用于生成显示受检者22的心脏24的一个或多个腔室的网格模型的系统20的示意图。

图1示出了操作导管26的医师30,该导管的远侧端部28被设置在心脏24内。当医师30移动位于心脏的腔室内的导管26的远侧端部28时,导管的远侧端部的位置由属于系统20的处理器32探知。

例如,导管的远侧端部可包括一个或多个电磁传感器,该一个或多个电磁传感器在存在所产生的磁场的情况下输出指示传感器的相应位置的信号。这些信号可经由电接口34(诸如端口或插座)而被处理器32接收。基于这些信号,处理器32可探知导管的远侧端部的位置。

另选地或除此之外,导管的远侧端部可包括导管电极,并且多个电极贴片可耦接到受检者22的身体。当电压施加在导管电极与电极贴片之间时,可测量导管电极与电极贴片之间的电流的相应量值。基于这些电流量值,处理器可探知导管的远侧端部的位置。另选地或除此之外,可使用任何其他合适的技术来跟踪导管的远侧端部。

在一些实施方案中,系统20还包括监视器36。在医师操作导管26时,处理器32可在监视器36上将表示导管的远侧端部的图标叠加在受检者心脏的图像上,使得医师可视觉地跟踪远侧端部的位置。另选地或除此之外,在网格模型(如下文所详述)生成之后,处理器可在监视器36上显示网格模型。

一般来讲,处理器32可被实施为单个处理器或一组协作式联网或集群处理器。在一些实施方案中,如本文所述,处理器32的功能可例如仅使用一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)以硬件来实现。在其他实施方案中,处理器32的功能至少部分地以软件实现。例如,在一些实施方案中,处理器32为编程化数字计算设备,该编程化数字计算设备包括中央处理单元(cpu)、随机存取存储器(ram)、非易失性辅助存储装置(诸如硬盘驱动器或cdrom驱动器)、网络接口、和/或外围设备。任选地,处理器32还可包括gpu。如本领域所公知的,将包括软件程序的程序代码和/或数据加载到ram中以用于由cpu和/或gpu执行和处理,并且生成结果以用于显示、输出、传输或存储。例如,程序代码和/或数据可以电子形式通过网络而被下载到计算机,或者替代地或附加地,其可被提供和/或存储在非临时性有形介质(诸如磁性存储器、光学存储器、或电子存储器)上。此类程序代码和/或数据在被提供给处理器时,产生被配置成执行本文所述的任务的机器或专用计算机。

尽管图1示出了具体应用,但需注意,本文所述的网格生成技术可用于对任何结构的表面进行建模。结构可包括任何解剖腔或非解剖腔。

网格生成

现在参见图2,其为根据本发明的一些实施方案的由处理器32执行的用于生成网格模型的方法38的流程图。现在参见图3,其为根据本发明的一些实施方案的方法38的各个方面的示意图。(为了便于说明,本附图将体素示为二维正方形。)

方法38开始于接收步骤40,在该步骤处,处理器接收心脏24的腔室内的多个位置的相应坐标60。例如,如上文参考图1所述,可从位置探知例程接收坐标60,该位置探知例程在远侧端部在腔室内移动时探知导管26的远侧端部的位置。每个坐标60也可被称为“点”,并且图3的部分a所示的坐标60的集合可被称为“点云”58。点云58通常包括数百个、数千个或数万个点,以及其中不存在点的间隙64。

接下来,在映射步骤42处,处理器将坐标60映射到相应的第一体素62,使得每个第一体素62表示其中存在坐标60中的至少一个的腔室的不同相应子体积。处理器还定义多个第二体素68,该第二体素中的每个表示间隙64或腔室外部的不同相应子体积。第一体素62和第二体素68共同定义连续“体素云”59,如图3的部分b所示。(尽管图3示出了具体示例,但需注意,体素云59可具有任何合适的形状,诸如三维网格形状,例如立方体形状)。处理器还在分配步骤46处将第一值f(0)分配给第一体素62中的每个,其中f(n)为具有下述性质的函数。

例如,处理器可将包括点云58的体积分成多个子体积,该子体积中的每个可具有任何合适的尺寸,诸如0.8mm×0.8mm×0.8mm。子体积中的每个随后可由相应体素表示。表示其中存在坐标60中的至少一个的子体积的每个体素可被指定为第一体素62,并且可被指定值f(0)。

在图3的部分b中,第一体素62(每个位于点云58的边界66内)由第一图案表示,由此指示这些体素已被分配值。相比之下,在该阶段仅具有默认“占位符”值诸如负无穷大(“—inf”)的第二体素68由第二图案表示。如图的该部分所示,一些第二体素位于边界66内,而其他第二体素位于边界66与体素云的周边72之间。

一般来讲,f(n)为针对包括端值在内的0和m之间的每个整数n定义的单调函数,其中m为预定义的正整数。(一般来讲,m可在应用之间具有显著不同)。例如,f(n)可在域[0,m]上单调递减。通常,在此类实施方案中,f(0)为1,而f(m)为0。

在一些实施方案中,对于域[0,m-3]中的任何整数n0,f(n0+1)为f(n0)的预定义百分比。例如,对于其中f(n)在域[0,m]上单调递减的实施方案而言,f(n0+1)可等于p*f(n0),其中p在域[0,m-3]上介于0.8和0.95之间。在一些此类实施方案中,f(m-1)等于p*f(m-2)。因此,例如,对于m=10,f(m)=0并且p=0.9而言,f(n)在域[0,m]上取得的值可为1、0.9、0.81、0.73、0.66、0.59、0.53、0.48、0.43、0.39、和0。在其他此类实施方案中,f(m-1)等于小数δ,诸如小于或等于0.0001的任何数,而f(m)=0。

在映射步骤42和分配步骤46之后,处理器在评估步骤48处评估第二体素68(即,将相应值分配给第二体素)。具体地,处理器将第二值f(d)分配给每个第二体素68,其中d为第二体素距最近第一体素的距离(以体素计)。

在一些实施方案中,在整个m次迭代中,通过在每第j次迭代中评估对于d=j的第二体素来评估第二体素68。就这一点而言,现在参见图4,其为根据本发明的一些实施方案的用于迭代地评估第二体素68的技术的示意图。

如图4所示,在m次迭代的第一次期间,向第二体素68的第一子集分配第一值f(1),该第一子集中的每个为第一体素62的直接邻域(即,与其相邻)。类似地,在第二迭代期间,向第二体素的第二子集分配值f(2),该第二子集中的每个为第一子集的成员的直接邻域。每个后续迭代随后评估第二体素的另一子集。(在实施过程中,通常,在整个m次迭代的每第j次迭代期间,处理尚未被评估的第二体素中的全部。具有值为f(j-1)的直接邻域的经处理体素中的那些被分配值f(j),而其他体素则不被评估。)

在一些实施方案中,如果两个体素共享至少一个顶点,则一个体素被称为另一个体素的直接邻域(或“相邻”)。因此,体素可具有最多26个直接邻域。(该标准呈现在图4中,不同的是,由于体素的二维表示,图4示出了8个而非26个直接邻域。)在其他实施方案中,仅当两个体素共享至少一个面时,这两个体素才被称为彼此的直接邻域;因此,体素可仅具有最多六个直接邻域。在其他实施方案中,还可使用其他标准来确定体素的直接邻域。

在一些实施方案中,使用多个并行执行线程(例如,在gpu上运行)评估第二体素68。例如,在整个m次迭代的每次期间,可并行处理尚未被评估的第二体素中的全部。

评估步骤48的效果示于图3的部分c中,其中靠近周边72的体素由白色空间表示,由此指示这些体素已被分配值f(m)(其在许多实施方案中为零,如上所述),而第二体素的其余部分(包括填充间隙64的体素)由第一图案表示,由此指示这些体素已被分配其他值。(尽管部分c未示出任何未被评估的第二体素,但需注意,在实施过程中,体素云59中的至少一些体素可位于距最近第一体素大于m的距离处,使得这些体素可保持未被评估(即,可保持为具有默认初始值)。然而,这些体素未用于方法38中。)

在评估步骤48之后,处理器在重新评估步骤50处在整个第二体素上执行预定义数量的迭代(例如,介于100次和200次迭代之间)。在这些迭代中的每次期间,处理器通过将体素的直接邻域的相应值的加权平均值分配给第二体素中的至少一些的每个体素(通常,不具有值f(m)的第二体素中的每个)来重新评估第二体素。通常,加权平均值将更高的权重赋予与f(m)相差不超过预定义阈值δ的任何值。(如上所述,在一些实施方案中,f(m-1)=δ并且f(m)=0。)例如,加权平均值可将相等权重1赋予与f(m)相差超过δ的全部值,同时将例如40或更高的权重赋予与f(m)相差δ或更小的任何值。

就这一点而言,现在另外参见图5a-b,其为根据本发明的一些实施方案的用于迭代地重新评估第二体素68的技术的示意图。以例示的方式,这些图中的每个示出了用于第二体素68的小代表性集合的两次重新评估迭代,其中忽略了可位于集合之外的任何体素。图5a-b假定f(m)=0并且将相等的权重赋予大于δ的全部体素值。为了方便起见,在图5b中,不大于δ的值被写为0。

图5a-b之间的初始体素值没有差别,仅有一个的不同之处是:在图5b中,一个体素68a为零值。然而,由于这一不同之处,重新估值的影效果在图5b中为明显不同的。具体地,在图5a中,体素值在体素的整个集合上为“平滑”的,但在图5b中,赋予体素68a的更高的权重导致整个集合变为零值。

一般来讲,如果m足够大并且间隙64并非异常大,则边界66内的体素云59的部分(表示腔室的内部)为平滑的,如图5a所示,因为该部分通常不包括f(m)值体素。另一方面,边界66外的体素云59的部分(表示腔室的内部)通常因存在于该部分中的f(m)值体素而由f(m)主导,如图5b所示。

在一些实施方案中,使用多个并行执行线程来重新评估第二体素,如上文针对评估步骤48所述。

在重新评估步骤50之后,处理器在子集识别步骤52处识别第二体素的子集,该子集中的每个具有与f(m)相差不超过另一预定义阈值α的值。例如,对于其中f(m)=0的实施方案而言,处理器可识别值大于α的那些第二体素,其中α例如介于0.5和0.8之间。随后,在体积定义步骤54处,并且如图3的部分d所示,处理器定义体积74,该体积包括第一体素62和第二体素的所识别子集(通常,由这些体素构成)。一般来讲,体积74包括边界66内的体素中的大部分或全部,同时不包括边界66外的体素中的大部分或全部。

通常,处理器定义用于体素云59的值表。当执行分配步骤46、评估步骤48和重新评估步骤50时,处理器更新表中的值。随后,在体积定义步骤54处,处理器通过将与f(m)相差超过α的那些第二体素设定为f(0)并且将第二体素中的剩余部分设定为f(m)来定义体积74。因此,例如,对于属于体积74的那些体素,可在表中列为值1,而对于不属于体积的74体素,可列为值0。

随后,在网格生成步骤56处,处理器通过将网格生成算法应用到体积74来生成表示体积74的表面的网格76,诸如三角形网格。图3的部分e示出了网格76,其通过对网格中的一些三角形添加阴影来指示网格的三维特性。

在一些实施方案中,处理器使用移动立方体算法来生成网格76。该算法通常需要定义其表面有待被网格化的体积的函数作为输入。为了满足该需求,处理器可提供上述值表,该值表指示属于体积74的那些体素。

本领域技术人员应当理解,本发明不限于上文具体示出和描述的内容。相反,本发明的实施方案的范围包括上文所述的各种特征的组合与子组合两者,以及本领域的技术人员在阅读上述说明书时可能想到的未在现有技术范围内的变型和修改。以引用方式并入本专利申请的文献被视为本申请的整体部分,不同的是如果这些并入的文献中限定的任何术语与本说明书中明确或隐含地给出的定义相冲突,则应仅考虑本说明书中的定义。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1