人体骨骼未知体三维交互模型的建立方法及其应用
技术领域
本发明属于计算机成像技术领域,特别是医学影像及手术模拟技术领域。其中包括一种人体骨骼未知体三维交互模型的建立方法和一种人体骨性三维交互模拟手术的实现方法。
背景技术
在科学研究领域,研究的主要目的是理解自然的本质。要达到这个目的,需经过从观察自然现象到模拟自然现象并分析模拟结果的过程,这依赖于科技进步发展。
具体到医学方面,为了能够准确认识疾病,为手术方案的制订提供依据,计算机手术模拟应运而生,是现代外科的重要发展方向,该领域的研究是计算机科学、数学、机械学、外科及生物医学工程学等多学科高技术的结晶,已成为各国科技界研究的一个热点。
日本学者Fujino于1989年第一次提出模拟手术的概念,即在计算机产生的三维实体模型上立体展示病变情况及手术过程。Murphy研究中提出了由CT数据来计划全髋关节置换手术的概念。1990年Delp等人建立了人体下肢的图形交互模型,进行下肢手术模拟的研究。近年来,随着计算机的飞速发展,这个领域的研究不断深入。1996年Koch利用有限元模型系统通过改变骨骼和软组织的位置来模拟面部整形手术。1999年Christopher利用有限元模型进行髋关节稳定性预测分析;Neumann,P.报道了利用三维切割交互模型进行颌面外科的手术设计的研究。国内已有一些开发计算机手术模拟系统的报道,如计算机辅助上颌面手术模拟,计算机辅助放射治疗。上述模拟手术的人体模型及目前国际上美国、韩国及我国建立的虚拟人,均属于正常人已知体(即直接从人体或尸体上获得数据)的三维重建模型,与实际病人骨骼疾病本身具有着一定误差。实际上,人体骨骼系统疾病的病理模型的具体数据并不能从人体或尸体上直接获得,这些结构属于未知体。以儿童先天性髋脱位为例,不能直接获得数据,需通过螺旋CT(SVCT)扫描获得数据。
现有螺旋CT设备虽然能进行三维模型重建,但却不能对模型进行任意切割,只能用于观察,目前尚无法实现手术模拟。
计算机模拟手术的关键在于人体(也包括动物体等,为叙述方便,以下统称人体)三维交互模拟的建立。通常三维模型的重建是利用三维数据场等值面生成的经典算法Marching Cubes法,即移动立方体法。该算法由Lorensen等人于1987年提出,它对体数据中的体素(又称体元)进行处理,生成三角面片集。体素是体数据的基本组成单位,每八个相邻的采样点所定义的立方体区域构成一个体素。一个体素中可能包含多个三角面片。现有手术模拟系统在进行三维重建时就是采用这种算法。为将重构的三维模型用于手术模拟,最好要求重构模型中的三角面片不但具有连接性,而且能够快速定位,这样才能满足实时交互进行三维切割、移位、旋转和拼合的需要。然而基于现有的这种Marching Cubes方法生成的三维重构模型都是散乱的三角面片集,所得到的三角面片并非都是相连的,这种模型结构在对模型进行切割、取舍等全局性模拟操作时带来不便,使得现有此类系统特别复杂,通常需要在工作站上才能实现。
而且,现有的手术模拟系统一般是利用原始图像数据直接进行三维重构,这样得到的三角面片集数量巨大,相应增加了运算的复杂性,不但对设备要求更高,而且其反应速度很慢。
而且,现有手术模拟系统并不能实现三维交互模型在任意位置的切割、平移、旋转、拾取和拼合。
发明内容
基于现有技术的不足,本发明所要解决的技术问题是,提供一种人体骨骼未知体三维交互模型的建立方法,能使建立过程中生成的三角面片相连,并可以实现快速查找和定位。
本发明所要解决的另一技术问题是,提供一种人体骨骼未知体三维交互模型的建立方法,其还可以简化模型数据,提高系统反应速度。
本发明所要解决的再一技术问题是,提供一种人体骨性三维交互模拟手术的实现方法,实现骨骼三维交互模型在任意位置的切割、平移、旋转、拾取和拼合。
为解决上述技术问题,本发明提供了如下技术方案。
人体骨骼未知体三维交互模型的建立方法,包括一图像数据获取步骤、一模型数据提取步骤、模型数据压缩步骤,及一模型数据重建步骤,所述模型数据重建步骤包括一体素处理步骤,是利用移动立方体法(Marching Cubes法)对体数据的体素进行处理,生成三角面片集;一模型记录步骤,是利用体数据的体素在模型中所处的行、层、分组位置与B+树结构的对应关系,通过B+树数据结构方式,重新组织和记录三维模型;以及一模型重建步骤,是利用B+树结构的数据搜索方式,根据B+树结构下记录的三维模型的体素的连接关系,对体素及其中的三角面片定位,实现三维模型的重建。
其中,所述图像数据获取步骤是采用螺旋CT对包含未知体的实体进行扫描,获得原始图像数据。
其中,所述模型数据提取步骤是根据灰度等级对原始图像数据进行选择,对数据开窗进行处理,提取出其中的模型图像数据,并去除图像中的干扰数据。
其中,其所述模型数据压缩步骤是根据原始图像数据的密度,对模型图像数据进行两级重采样,以简化数据,实现数据压缩。
其中,进行两级重采样所用的是领域平均滤波器。
所说的人体骨性三维交互模拟手术的实现方法包括如下步骤:骨胳模型建立步骤,利用以上任一权利要求所述的未知体三维交互模型的建立方法,建立骨骼三维交互模型,其模型图像数据以B+树数据结构形式组织记录;骨刀模型建立步骤,根据骨刀曲面方程,确定骨刀模型所需物体空间大小,并进行:体素处理步骤,是利用移动立方体法对体数据的体素进行处理,使用B+树结构分组储存三角面片集;模型记录步骤,是利用体数据的体素在模型中所处的行、层、分组位置与B+树结构的对应关系,通过B+树数据结构方式,重新组织和记录三维模型;模型重建步骤,是利用B+树结构的数据搜索方式,根据B+树结构下记录的三维模型的体素的连接关系,对体素及其中的三角面片定位,实现三维模型的重建,其中,该骨刀模型的网格划分方式及大小与所述未知体三维模型相同;以及手术模拟步骤,包含骨刀模型的平移和/或旋转步骤、骨骼模型的切割步骤以及骨骼模型的拼合步骤或其组合。
其中,所述手术模拟步骤中的骨刀的平移和/或旋转步骤,是根据平移和/或旋转变换矩阵,生成骨刀曲面方程的新描述信息,再建立该新的骨刀模型,实现骨刀的平移或旋转。
其中,所述手术模拟步骤中的骨骼模型切割步骤,是利用骨刀模型的B+树数据结构中各层索引节点内包含的层次包围盒信息,通过对骨骼模型的B+树数据结构的不完全遍历和回溯,只选择子孙节点中包含交点的非叶节点进行扩展,定位骨骼模型与骨刀模型表面间的节点并分割骨骼模型。
其中的手术模拟步骤中的骨骼模型的拼合步骤,是根据变换矩阵变换未知体模型移动部分的所有面片的顶点的坐标和法向,再由新面片集生成新的B+树,通过骨骼模型移动部分的平移和/或旋转,实现骨骼模型的拼合。
所述骨刀模型可以包括平面骨刀模型和/或球面骨刀模型,其中,平面骨刀模型由以下参数确定:局部坐标系点在全局坐标系中的坐标、刀平面方程和刀边界形状方程;球面骨刀模型由以下参数确定:局部坐标系点在全局坐标系中的坐标、球面半径和刀边界形状方程。
本发明具有如下有益效果:
本发明的人体骨骼未知体三维模型的建立方法由于采用了改进的移动立方体法,用B+树数据结构方式重新组织记录三维模型,保证了三角面片的连接,可以实现快速查找和定位,建模效率高。并且,由于采用了螺旋CT获取原始图像扫描数据,有利于模型的真实再现,并且由于简化了模型数据,可以进一步提高系统反应速度。
本发明的人体骨性三维交互模拟手术的实现方法的骨骼和骨刀三维模型具有相同的网格划分方式和大小,以及相同的B+树结构,实现了未知体交互模型在任意位置的切割、平移、旋转、拾取和拼合。
通过该骨科三维交互模型,医生可在虚拟环境中容易进行手术规划和手术过程模拟,比较不同的手术方案和结果,以帮助制定最佳手术方案。
附图说明
下面结合附图,对本发明的具体实施方式作详细说明。
图1为本发明所述人体骨骼未知体三维交互模型的重建方法的一种实施例的流程示意图;
图2为先天性髋脱位患儿SVCT扫描数据经二级重采样再进行三维重构的三角面片集简化结果列表;
图3为本发明所述人体骨性三维交互模拟手术实现方法的一种实施例的流程示意图。
具体实施方式
参见图1,所示为本发明所提出的人体骨骼未知体三维模型建立方法的一种实施方式的流程示意图。该方法包括一图像数据获取步骤、一模型数据提取步骤、一模型数据压缩步骤以及一模型数据重建步骤。
对于其中的图像获取步骤,由于未知体的三维重建不能通过在实体上直接测量得到体数据,所以原始图像中体数据一般是利用CT扫描设备对包含未知体的实体进行扫描而获得。
但是,传统的CT由于接口问题,阻碍直接获取原始扫描数据,需要依靠断层胶片重建模型,其结果是数据丢失多,误差大,失真明显。因此,最好是利用螺旋CT。螺旋CT是连续不间断地收集数据,克服了传统CT的缺点,可直接提供高精度原始整体扫描数据,从而能更好地保证重建模型的精确性和真实性。
对于其中的模型数据提取步骤,是从通过图像数据获取步骤得到的原始图像数据中选取适当灰度等级的数据开窗进行处理,提取出其中的模型图像数据,并去除图像中的干扰数据。
如果直接利用上述螺旋CT扫描数据进行三维重构,那么得到的三角面片的量将非常大。例如,对于先天性髋脱位患儿的螺旋CT扫描数据直接进行重构,得到的三角面片集大约含有290000个三角面片。如此庞大数量的三角面片将使三维重构和响应实时交互操作变得极为困难,对计算机的要求将非常高。为解决此问题,可对上述螺旋CT扫描数据进行简化压缩。
对高精度的螺旋CT扫描数据进行简化可以采用三种方法。第一种方法是先求得精细模型,再对精细模型进行优化和简化,其计算量大。第二种方法是对重构算法进行优化,结果是重构计算本身变得复杂,重构时间长。第三种方法是先简化原始数据,再生成简化模型。其优点是可以在不产生精细模型的情况下由简化数据直接生成简化模型,计算效率较高。在本发明的实施例中具体采用该第三种方法。
发明人在对上述先天性髋脱位患儿的螺旋CT扫描数据的研究中,分别采用三种滤波器进行数据重采样实验,以研究数据简化效果。螺旋CT原始数据是规整网格数据,可直接选取重采样点原始数据值作为简化数据中该点的数据值。参见图2,所示为简化结果列表。从中可以看出,对扫描数据经重采样简化再进行三维重构可分别使产生的三角面片数据集压缩到精细模型的20%(经一级重采样)和4%(经二级重采样)。研究结果表明,采用最简便的领域平均滤波器进行两级重采样简化数据生成的模型保留了原始数据中的信息,降低了计算量,取得了满意的效果,可以满足实时交互的需要。
因此,在本实施例中,所述模型数据压缩步骤是根据原始图像数据的密度,对模型图像数据进行两级重采样,以简化数据,实现数据压缩,进行两级重采样所用的是领域平均滤波器。
对于其中的模型数据重建步骤,其具体包括一体素处理步骤、一模型记录步骤及一模型重建步骤,其中:体素处理步骤是利用移动立方体法对体数据的体素进行离散处理,生成三角面片集;模型记录步骤是利用体数据的体素在模型中所处的行、层、分组位置与B+树结构的对应关系,采用B+树数据结构方式,重新组织和记录三维模型;模型重建步骤是利用B+树结构的数据搜索方式,根据B+树结构下记录的三维模型的体素的连接关系,对体素及其中的三角面片定位,实现三维模型的重建。
可以看出,本发明对传统移动立方体法作了改进,表现在,使用B+树数据结构分组存储三角面片集。这样,得到的整个髋关节三维模型为一个B+树组成的森林样数据结构,B+树是B树的一种变形,其中所有的叶节点都相互连接,这样就保证了三角面片之间的连接。B+树提供了两条搜索路径,一条是由根至叶的查找,另一条是沿叶节点的查找,从而在模型重建时,明显提高三角面片的定位速度,使三维重构和分组可在对三维网格数据的一次扫描中完成。
参见图3,所示为本发明骨科三维交互模拟手术的实现方法的流程示意图。下面结合模拟小儿先天性髋脱位骨科手术过程的实例,对本方法进行详细说明。
该方法包括骨骼模型建立步骤、骨刀模型建立步骤和手术模拟实施步骤。
其中,骨骼模型建立步骤是利用前述的未知体三维模型的建立方法,建立未知体三维模型,其模型图像数据以B+树数据结构形式组织记录。
选择左侧先天性髋脱位患儿1名,女,6岁,作为建模素材。采用PhilipTomoscan SR 7000型螺旋CT从髂骨翼至股骨近端连续扫描36层,螺旋层厚5mm,床进速度3mm/s,螺旋CT原始整体图像数据通过HUB存储于Dicom服务器。使用SGI图形工作站,通过NFS共享方式,从Dicom服务器获取螺旋CT原始图像数据。
从上述原始图像数据中选取适当灰度等级的数据开窗进行处理,提取出其中的模型图像数据,并去除图像中的干扰数据。
采用领域平均滤波器经两级重采样,有效压缩原始图像数据。
采用前述改进的移动立方体法进行体素处理,并用B+树方式分组存储经处理的体素及其所含三角面片信息。按照Marching Cubes方法可以发现其中隐含着三角面片的多层次包围盒信息,由上向下依次为分组、层、行和体素,而用B+树数据结构记录存储三角面片符合移动立方体法处理过程的特点,这样记录的三维模型为一个B+数组成的森林样数据结构。
骨刀模型建立步骤,根据骨刀曲面方程,确定骨刀模型所需的物体空间大小,并将骨刀模型的物体空间划分为与髋关节模型相同的网格空间;然后按层、行和体素顺序,开始对每一逻辑立方体进行处理。当一个立方体不处于曲面边界时,不处理该立方体,对处于边界上的立方体则生成该立方体内的局部数据场,并对该逻辑立方体内生成的所有面片进行检测,以保证该立方体内属于边界外的面片不被包含入骨刀模型内。
将骨刀模型离散为三角面片,使骨刀和髋关节模型物体空间的坐标原点重合,网格划分和大小相同,根据曲面方程生成正规网格数据。再采用改进的移动立方体法进行体素处理,产生重构骨刀模型的三角面片集,并将其组织到一棵B+树中。
现分别以平面骨刀模型和球面骨刀模型为例,说明骨刀曲面方程的确定。平面骨刀模型,由局部坐标系点在全局坐标系中的坐标、刀平面方程和刀边界形状方程(4个平面方程)确定;球面骨刀模型由局部坐标系点在全局坐标系中的坐标、球面半径和刀边界形状方程(2个平面方程)确定。
在手术模拟实施步骤中,包含骨刀模型的平移和/或旋转步骤、未知体模型的切割步骤以及未知体模型的拼合步骤或其组合。实践中的各种复杂术式都是通过这些基本操作或其组合实现的。
在手术模拟实施过程中,需要将骨刀模型移动到任意位置旋转为任意角度后进行切割操作。平移和旋转后骨刀模型的B+树结构必然彻底改变,而B+树结构又是实现前述快速切割算法的基础。因此,如何处理作了平移和旋转操作后的骨刀模型的B+树是核心问题。一种思路是根据变换矩阵变换面片的所有顶点的坐标和法向,再由新面片集生成新的B+树;另一种思路是根据变换矩阵生成整个骨刀模型的新描述信息,再由前述的骨刀模型生成方法生成新位置上的骨刀模型。按前一种算法,整个骨刀模型的每一个面片要被重新修改,而关键问题是变换过的面片很可能不再处于一个网格内,因此必须将这样的面片重新剖分。而按后一种算法,只要重新确定新位置上的骨刀模型经过的网格,再处理这些网格就可以得到新模型。由于骨刀模型经过的网格数较少,按第二种思路重新生成的面片比按第一种思路修改每一个面片的几何构造并进行剖分更为有效率。因此,本实施例中,采用了修改整个模型参数再重新生成骨刀模型的方式,先根据平移和/或旋转变换矩阵,生成骨刀曲面方程的新描述信息,再建立该新的骨刀模型,实现骨刀的平移或旋转。
骨刀模型移动到要求位置后,重新生成新的模型,以进行切割操作。此前我们已获得了髋关节表面模型的B+树表示,根据上面所述,骨刀模型是用与髋关节模型相同的B+树结构组织记录三角面片集,两模型的网格划分方式及大小均相同。在为骨刀和髋关节模型建立了各自的B+树表示后将两模型放入同一物体空间,进行求交切割运算。
按照传统的离散为三角面片的三维表面模型间的切割算法,需要对两个表面模型逐个面片进行测试,以求得两个模型的所有交点,再由交点开始利用面片的相邻信息在被切割体的模型中跟踪所有面片,确定每个面片应属于被分割后的哪一部分。为得到分割结果需要遍历被切割模型的所有面片,对于复杂模型效率极低。
本发明实现切割的方法是:在将骨刀和髋关节的三维表面模型放入同一物体空间,分别为两个模型建立各自的B+树表示后,利用B+树中各层索引节点内包含的层次包围盒信息,通过对B+树的不完全遍历和回溯,只选择子孙节点中包含交点的非叶节点进行扩展,达到快速定位表面模型间的交点并分割髋关节模型的目的。有效地提高了实际系统操作效率。
在其后的骨骼模型的拼合步骤中,是通过未知体模型移动部分的平移和/或旋转,实现未知体模型的拼合。具体方式是根据变换矩阵变换未知体模型移动部分的所有面片的顶点的坐标和法向,再由得到新面片集生成新的B+树,从而可以得到拼合后的骨骼模型。
本发明可具体应用于微机环境,便于推广使用,对提高整体医疗水平有重要意义,具有广阔的应用前景。