APP下载

人体髋部组织几何建模程序实现

2017-06-10王沫楠李鹏程刘宇铭

哈尔滨理工大学学报 2017年2期
关键词:三维重建图像分割

王沫楠+李鹏程+刘宇铭

摘要:为了设计针对人体组织建模和分析的仿真软件,利用Visual C++语言,以Visual Studio 2010为开发工具在Windows平台上设计开发一个人体组织三维建模软件,它既可以单独使用,也可以作为虚拟手术系统的子模块。该软件主要包括医学图像分割和三维重建模块,并能够实现三维模型的可视化显示。通过该软件对人体髋关节肌肉、股骨和髋骨进行分割及三维重建,所生成的三维几何模型能够合理的表达出髋部组织的结构信息。

关键词:虚拟手术;图像分割;三维重建;MC算法

DOI:10.15938/j.jhust.2017.02.001

中图分类号: TP301文献标志码: A文章编号: 1007-2683(2017)02-0001-06Geometry Modeling Program Implementation of Human Hip Tissue

Abstract:Aiming to design a simulate software of human tissue modeling and analysis, Visual Studio 2010 is selected as a development tool to develop a 3D reconstruction software of human tissue with language C++. It can be used alone. It also can be a module of the virtual surgery systems. The system includes medical image segmentation modules and 3D reconstruction modules, and can realize the model visualization. This software system has been used to reconstruct hip muscles, femur and hip bone accurately. The results show these geometry models can simulate the structure of hip tissues.

Keywords:virtual surgery, image segmentation, 3D reconstruction, human hip

0引言

人體组织三维几何建模是虚拟手术系统的核心模块,也是医学领域研究的热点问题,通过三维几何建模可以辅助医务人员对患者进行准确高效的医疗诊断,提高手术的成功率。本文主要介绍虚拟手术系统中几何建模软件的实现方法。人体组织三维几何建模包括医学图像的预处理和三维重建两部分。图像预处理的核心操作是医学图像的分割, Kayalvizhi R等提出一种新的智能算法-粒子群算法(PSO),并将其应用到传统的阈值分割中[1]。CruzAceves I等提出一种基于活动轮廓模型理论和分布估计算法的自动图像分割方法[2]。Nayak NR等通过评估三种不同的聚类算法,提出了一种适用于灰度图像的改进聚类算法[3]。对于一般的医学图像来说,计算机自动分割方法的准确性都很难达到要求,因此,图像分割的过程中必须有交互式操作,才能得到更加精确的分割结果。Milanova M等提出一种基于视觉来确定位置的图像分割方法[4]。刘再涛等依据人类视觉感知的分层特性,提出一种新的复合医学图像分割方法。该方法通过提取医学图像的底层特征,利用FuzzyART神经网络作为像素的分类器,对医学图像进行连续两次分割[5]。Gonzalo RD等提出一种基于B样条的的交互式图像分割方法。通过控制图像上的一些点来约束曲线的拓扑结构,并设计了一个交互式界面,用户通过手动操作进行图像分割[6]。Aragon AC等为髋关节图像分割提供了一个网络平台,该平台收集志愿者的MRI图像,形成一个解决方案的知识库,提供数据用于训练自动分割算法,用户可以在界面中进行手动和半自动的交互式分割[7]。尽管近年来提出的图像分割方法层出不穷,但由于医学图像分割本身的困难,任何一种单独的计算机图像分割方法,不管是自动分割还是交互式分割都难以得到令人满意的结果。本研究采用的是将基于灰度差的区域生长方法和基于边填充算法的交互式分割方法结合起来的方法对医学图像进行分割,该方法可以满足一般医学图像的分割要求。三维重建的算法很多[8-11],Habert S等提出一种新的方法将轮廓形状(SFS)方法应用于冠状动脉与血管造影的三维重建中 [12]。CohenSteiner D提出了一种三维重建算法,与传统的重建算法不同。首先,该算法处理的是由一般形状聚合在一起的紧密集合。其次,该算法并不输出一个体数据而是输出一个网状的序列。第三,该算法具有拓扑持久性,从而可以选择最稳定的重建特性[13]。Meko M等提出一种改进的三维重建算法,该算法从两个或两个以上的摄像头获得图像,目标是减少传统三维重建算法中三角形网格和弟归子网格的数量。优化计算的复杂性,降低了三维重建对计算能力的需求[14]。Da FP等提出基于双目立体视觉的算法来生成三维的人脸密集点去模型[15]。本研究采用的是MC算法,与其他算法相比,该算法容易程序化,生成三维模型的速度快,占用内存少,可移植性强,可以利用普通的计算机图形处理硬件实现快速的几何变换和绘制,并且能够很好的表现出人体组织的表面结构,满足虚拟手术系统对三维几何模型的要求。

在编程实现区域生长模块、交互式分割模块和三维重建模块功能的基础上,本研究设计了一款集二维医学图像浏览、预处理和三维几何重建功能于一体的人体器官几何建模软件,该软件可以独立使用,也是整个虚拟手术系统设计的一部分。

1人体组织几何建模算法

利用Visual Studio 2010软件设计人体组织几何建模界面,软件主要模块功能和实现方法包括:区域生长模块功能和算法,交互式分割模块功能和算法、三维重建模块功能和算法实现。

1.1区域生长模块

区域生长算法的基本思想是将具有相同或相似性质的像素集合起来构成区域。先在感兴趣的区域人工选取一个像素点作为种子点,然后根据某一准则将种子点周围邻域中满足条件的像素合并到种子区域中,再将这些新的像素点作为种子点反复进行上面的步骤,直到再没有满足条件的像素点,这样就形成了一个区域。区域生长方法是经典的串行区域分割方法,后面的分割以前面的结果作为判定条件。区域生长算法的关键在于生长准则和种子点的选取,大部分生长准则是根据图像的局部特征而定的。本文的研究对象为二维医学图像,故选用的生长准则为基于区域灰度差的准则。

该模块功能是利用区域生长方法对载入的二维医学断层图像进行分割。该模块中所用的区域生长方法是将灰度值作为相似性度量,通过对生长准则参数的设定,分割出感兴趣的人体组织。该模块主要用于分割灰度值均匀,组织间灰度值相差较明显且边缘清晰的医学图像。对于灰度差较小或灰度分布不均匀的组织,容易造成空洞或过度分割。可配合交互式分割模块协同完成分割工作。

本研究中的基于灰度差的区域生长算法具体如下:假设用户选取的种子点灰度值为gs,当前邻域中的像素点灰度值为gc,其相邻点灰度值为gn,则当相邻点灰度值满足条件|gn-gc|

区域生长模块程序的实现过程:①设计区域生长对话框。通过该对话框实现对医学体数据的分割,并将结果返回到CMITKTestDoc。添加名为CRegionGrowSegDlg的对话框类。并在该对话框类中添加两个mitkImageView的成员变量,用来显示源图像和目标图像。②添加分割按钮。在工具栏上添加分割按钮,用来弹出区域生长对话框。③实现在源场景中显示源图像功能。将载入的体数据存放到mitkDicomReader *reader中。利用mitkDicomReader::output()函数将输出存到mitkVolume *m_Volume中。利用mitkImageModel::SetData()函数将m_Volume存放到mitkImageModel *m_SrcModel。利用mitkImageView::AddModel()函数将m_SrcModel存放到mitkImageView *m_ScrView中。运行mitkImageView::Update()函数完成View的更新。在源图像窗口中显示图像。④实现选取种子点功能。在源图像场景中响应鼠标消息来获取种子点的坐标。此功能是由mitkImageViewManipulatorStandard派生的一个子类mitkRegionGrowImageViewManipulator完成的,通過响应_onMouseDown消息,利用mitkRegionGrowImageFilter::SetSeedPoint()来设置种子点坐标。⑤实现分割功能。实际的分割任务是通过mitkRegionGrowImageFilter实现的。利用mitkRegionGrowImageFilter类中的SetMaxDifferentValue()和SetMaxChangeValue()函数来修改灰度差参数。将设置好的图像数据交给mitkRegionGrowImageFilter *m_SliceFilter,最后运行算法m_SliceFilter>Run(),完成区域生长的分割。⑥显示分割后的图像。将分割好的数据返回到mitkImageView中,在主界面左侧区域中显示出来。

1.2交互式分割模块

本研究采用边填充算法的交互式分割方法,由操作者根据要分割的区域绘制任意多边形,程序自动将多边形内部的区域分离出来。算法可以简单描述为两个步骤:将绘图窗口的背景色置为M颜色;对多边形的每一条非水平边,从该边上的每个像素开始向右求补。

该模块功能是利用一种交互式分割方法对载入的二维医学断层图像进行分割。利用手动绘制多边形选出感兴趣的区域并提取、分离,从而完成对医学图像的分割。该模块对形状规则的组织器官分割效果较好且节省时间,对于形状不规则的组织器官往往配合区域生长模块共同分割,否则消耗大量的时间。

交互式分割模块程序的实现过程:①设计圆形、矩形和多边形分割工具的三个类,每个类完成一种分割方式的功能。分别为RectWidgetManipulator,EllipseWidgetManipulator和PolyWidgetManipulator。②利用CMITKTestView::OnAddWidget()完成对分割工具的选择,选择圆形、矩形或多边形。③响应鼠标消息MyEllipseWidgetManipulator::_onMouseDown()完成多边形的绘制。④调用CMITKTestView::OnSegmentCurrent()中的GetRegionMask()函数对选定的多边形区域进行填充。⑤调用CMITKTestDoc::SegmentCurrent()对填充后的多边形所包含的图像区域进行分割。⑥将结果返回到m_ImageModel>SetSliceChanged()中,最后由m_View>Update()显示在主界面左侧区域中。

1.3三维重建模块

本文中的表面重建算法采用的是经典的MC算法,用户通过设置一个高阈值一个低阈值,将处于两阈值之间的组织器官分离出来,从而实现医学图像的表面重建。该模块功能是利用一种基于体素的三维重建算法对分割后的一组二维医学断层图像进行几何三维表面重建。用户可以对重建后的三维模型进行放大、缩小、移动和旋转等操作,从而能够直观的观察该组织的生理结构和病灶的大小、位置等信息。

三维重建模块程序的实现过程:①设计一个表面重建按钮和一个设置高阈值和低阈值的对话框,载入体数据后,数据被读取到CMITKTestDoc类的mtikVolume *m_Volume中,这时表面重建按钮变为有效。②将保存有体数据的成员m_Volume交给mitkMarchingCubes *mc,再运行该算法mc>Run()完成表面重建功能。③将重建后的数据交给mitkMesh *m_Mesh,m_Mesh通过GetMesh函数交给mitkSurfaceModel *m_SurfaceModel,调用m_SurfaceModel>GetProperty()设置面绘制方法并设置表面材质属性、颜色、光照等。④通过mitkView *view>AddModel()把m_SurfaceModel交给view,view>show()在主界面右侧窗口中显示模型,调用view>Update()更新界面。⑤利用mitkPLYBinaryWriter将三维几何模型保存成ply格式。

2人体髋部组织几何建模实现

2.1几何建模系统界面设计

根据以上分析,利用Visual Studio C++软件进行虚拟手术系统界面的设计,如图1所示。其中各个菜单的子菜单如图2所示。几何建模界面如图3所示,区域生长对话框如图4所示。

其中::医学图像浏览功能。:交互式分割按钮。:区域生长对话框按钮。:三维重建按钮。

Different Value和Change Value输入框设置生长准则的两个参数。

2.2人体组织三维重建程序设计

人体组织几何三维重建就是从一组二维医学图像中进行边界识别分割,提取物体相关表面信息来重新还原物体的三维模型,从而真实的反映人体器官的生理结构。目前人体组织几何建模三维重建方法主要分两种:表面重建和体重建。表面重建可以将任意组织的表面结构表达出来,但无法表达组织器官的内部结构。体重建不仅能够表达组织器官的表面信息还可以表现其内部结构,但是其计算量太大,并且生成的体模型内部存在大量空洞。由于本研究中的虚拟手术系统对三维模型的内部表现要求不高,最重要的是要求模型内部必须是连续贯通的,其内部的填充在接下来的工作中实现,因此选用了表面重建方法。三维重建模块程序流程图如图5所示。

3髋部骨和肌肉几何建模结果

肌肉的数据来源为本课题组一名健康男性在哈尔滨医科大学附属第一医院拍摄的髋关节MRI图像,采用轴位连续断层扫描方式,选择T2加权自旋回波序列。扫描参数如下:矩阵512×512,层厚3 mm,视野FOV17 cm,共计182层。骨的数据来源同区域生长模块。本模块的软件环境:使用Visual C++开发环境在Windows PC平台上实现。硬件环境:CPU 为AMD Athlon 7750双核,內存4G。提取的程序运行结果包括:研究对象在相同种子点不同参数下应用区域生长算法的分割结果;研究对象在不同种子点相同参数下应用区域生长算法的分割结果;分别应用区域生长算法和交互式分割算法分割股骨的结果;分别应用区域生长算法和交互式分割算法分割半腱肌的结果。

1)以源图像骨薄肌中选取的点为种子点,参数dv和cv均取30,利用区域生长算法分割出的肌肉如图6所示。

2)以源图像骨薄肌中选取的点为种子点,参数dv和cv均取90,利用区域生长算法分割出的肌肉如图7所示。

3)以源图像半腱肌中选取的点为种子点,参数dv和cv仍取30,利用区域生长算法分割出的肌肉如图8所示。

4)以股骨中的一个点为种子点,由于骨的灰度值较大,因此参数dv取300,cv取900。股骨的分割结果如图9所示。

分割结果1)~4)表明,以源图像股薄肌中选取的点为种子点,参数dv和cv均取30,利用区域生长算法可以分割出完整的股薄肌切片。但是对于同样的种子点,当参数dv和cv均取90时,由于选择的参数较大,利用区域生长算法分割出连通的多块肌肉。如果参数dv和cv均取30,在参数不变的情况下,选取边界模糊的半腱肌中的一个点作为种子点,分割出了包括半腱肌在内的多块肌肉。从肌肉和骨的分割结果可以看出,区域生长算法对参数的控制和种子点的选择要求较高,对边界较模糊的组织容易提取出分割对象以外的多个部分即出现过度分割。

5)医学数据来源与区域生长模块相同,利用交互式分割算法对人体肌肉和骨骼进行分割处理,半腱肌的分割结果如图10所示,股骨分割结果如图11所示。

从分割结果5)可以看出,交互式分割方法可以的分割出任何感兴趣的组织和器官,但是该方法操作起来比较费时,并且对操作者有较高的要求,因此,对于股骨这样边界清晰且灰度值差比较大的组织可以直接选用区域生长算法进行分割,而对于半腱肌等边界模糊的肌肉组织,就可以考虑选用交互式分割方法,或者首先采用交互式分割将感兴趣的区域大体的分割出来,将灰度值相差不大的组织分离出去,再利用区域生长方法就可以更好的分割出想要的结果,既有效的避免了区域生长方法的过度分割,也提高了分割的效率。

由于三维重建的几何模型是由计算机合成的,非自然图像,用户在重建模型的过程中,根据需要设定和调整相关参数,因此很难定量的对三维重建的结果进行评估。目前对三维重建质量的评估主要是主观上的,根据操作者的解剖学经验或对比真实的人体器官,对三维模型的关键特征点进行比较,来判断重建结果的优劣。下面是本软件重建的三维几何模型与真实的人体肌肉和骨骼结构的对比:

缝匠肌对比如图12所示:(a)为真实人体缝匠肌结构,(b)为基于本软件建立的缝匠肌几何模型。

如图13所示:(a)图为真实人体髋骨正面结构,(c)图为真实人体髋骨背面结构,(b)和(d)为基于本软件建立的髋骨正面和背面几何模型。

从图12和图13可以看出,本软件重建的三维几何模型与真实人体肌肉和骨骼的生理结构基本吻合,能够表现出相应肌肉和骨骼的细节特征。在未来的研究中,将考虑生成体模型方法和程序实现,以便与研究组设计的体网格划分模块和生物力学有限元分析模块连接在一起。

4结论

本软件实现了同时载入多张医学图像的功能。提供了区域生长和交互式分割两种分割方法,可以同时利用两者对图像进行分割,结合各自的优点和适用范围,使分割结果更加精确且保证了分割的速度。本软件可以不必保存分割后的数据直接进行三维重建,使界面左侧的图像分割和右侧的三维重建保持同步,可以直接根据三维重建的效果对二维图像的分割进行修改,省去了以往软件必须先保存再重建的繁琐操作。依据所提出的方法,对人体髋部骨和肌肉进行了几何重建,重建的三维模型能够表现出相应部位的细节特征。

参 考 文 献:

[1]KAYALVIZHI R, DURAISAMY SP. A New Multilevel Thresholding Method Using Swarm Intelligence Algorithm for Image Segmentation[J]. Journal of Intelligent Learning Systems and Applications, 2010, 2(3):126-138.

[2]CRUZaceves I, AVINAcervantes JG, LOPEZhernandez JM, et al. Automation Image Segmentation Using Active Contours with Univariate Marginal Distribution[J]. Mathematical Problems in Engineering, 2013(2): 23-27.

[3]NAYAK NR, MISHRA BK, RATH AK, et al. A Time Efficient Clustering Algorithm for Gray Scale Image Segmentation [J]. International Journal of Computer Vision and Image Processing, 2013, 3(1): 22-32.

[4]MILANOVA M, MENDI E. Contourbased Image Segmentation Using Selective Visual Attention [J]. Journal of Software Engineering and Applications, 2010, 3(8): 796-802.

[5]刘再涛, 魏本征, 柳澄. 一种基于视觉感知的复合医学图像分割算法[J]. 郑州大学学报(理学版), 2011(1): 62-66.

[6]GONZALO RD, UNSER M. Splinebased Framework for Interactive Segmentation in Biomedical Imaging [J]. IRBM, 2013(3): 230-233.

[7]ARAGON AC, LEE WS, VYAS A. A Crowdsourcing Web Platform Hip Joint Segmentation by Nonexpert Contributors[J]IEEE International Symposium on Medical Measurements & Applications,2013(2): 350-354.

[8]FU J, CHEN LY. Singleslice Reconstruction Method for Helical conebeam Differential Phasecontrast CT[J]. BioMedical Materials and Engineering,2013,24(1): 45-51.

[9]HABERT S, DAHDAH N, CHERIET F. A Novel Method for an Automatic 3d Reconstruction of Coronary Arteries from Angiographic Image[J]. Information Science, Signal Processing and Their Applications, 2012 11th International Conference on, 2012: 484-489.

[10]CAZALS F, DAVID CS. Reconstructing 3d compact sets. Comput. Geom, 2012, 45(1): 1-2.

[11]MESKO M, KRSAKK E, HRKU't P. The Recursive Segment 3D Reconstruction Algorithm[J]. 2013(3): 261-264.

[12]王沫楠胞元模型在骨组织建模中的应用及评价[J].机械工程学报,2015,51(11):142-149

[13]WANG Monan, WANG Lei, LI Pengcheng, et al. A Novel Modeling and Simulation Method of Hip Joint Surface Contact Stress[J]. Bioengineered, 2017,8(1):105-112.

[14]DAVID L M, NIGEL P W.Unstructured Grid Generation Using Iterative Point Insertion and Local Reconnection[J]. Aiaa Journal, 1995,33(9):1619-1625.

[15]DA FP, SUI YH. 3d Reconstruction of Human Face Based on an Improved Seedsgrowing Algorithm[J]. Machine Vision and Applications, 2011, 22(5): 212-213.

(編辑:温泽宇)

猜你喜欢

三维重建图像分割
互联网全息位置地图迭加协议与建模制图技术
品析“飞利浦公司”基于单目视觉的三维重建技术专利
计算机定量金相分析系统的软件开发与图像处理方法
一种改进的分水岭图像分割算法研究
无人机影像在文物建筑保护中的应用
一种图像超像素的快速生成算法
基于鲁棒性的广义FCM图像分割算法
光编码技术在犯罪现场重建中的应用
大规模壁画拼接:使用moving DLT的新尝试
一种脑切片图像分割新法