DOI: 10.11817/j.issn.1672-7207.2015.04.020
基于先验信息水平集方法的肝脏CT序列图像自动分割
赵于前1,2,3,闫桂霞1,徐效文1,邹润民2
(1. 中南大学 地球科学与信息物理学院,湖南 长沙 410083;
2. 中南大学 信息科学与工程学院,湖南 长沙,410083;
3. 中南大学 “移动医疗”教育部-中国移动联合实验室,湖南 长沙,410083)
摘要:应用二次区域生长法获取肝脏的初步分割结果,将其作为先验知识,构造新的边缘指示函数和水平集能量函数,有效地解决了因肝脏形状多变以及弱边界问题带来的分割难题。在序列的分割过程中,将上一层分割结果进行距离变换,并提取大于既定阈值的部分生成下一层区域生长的种子点,避免了分割过程中的误差积累,并使序列的分割具有延续性和自动性。算法最后应用自适应边缘行进算法修补边缘,使得分割结果更加完整。实验结果证明了该方法的有效性和可行性。
关键词:水平集;肝脏分割;先验信息;CT序列
中图分类号:TP391.4 文献标志码:A 文章编号:1672-7207(2015)04-1310-08
Automatic segmentation of livers from CT series based on level set method with prior knowledge
ZHAO Yuqian1,2,3, YAN Guixia1, XU Xiaowen1, ZOU Yunmin2
(1. School Geosciences and Info-Physics, Central South University, Changsha 410083, China;
2. School of Information Science and Engineering, Central South University, Changsha 410083, China;
3. Mobile Health Joint Laboratory of Education Ministry and China Mobile,
Central South University, Changsha 410083, China)
Abstract: The livers were preliminarily segmented by two-step region growth, and then the segmented results were taken as prior knowledge to construct a new edge indicator and level set energy function. The segment effectively solves the problems of variable liver shapes and weak boundaries. During the liver CT series segmentation, the distance transform that its value is greater than a fixed threshold is extracted from the current slice segmentation to generate the region growth seed points for the next slice segmentation, which avoids the error accumulation and ensures the continuity and automation of liver CT series segmenting process. Finally, the adaptive border marching method was used to correct the segmentation defects. The experimental results demonstrate the effectiveness and feasibility of the proposed method.
Key words: level set; liver segmentation; prior knowledge; CT series
在肝脏疾病计算机辅助诊断中,肝脏的准确分割是极其重要的环节[1-2]。对于肝脏CT序列图像,专家手动分割结果比较准确,但费时费力,且往往带有主观因素,而自动分割又存在很多困难,如:不同病人之间的肝脏形状差异很大,即使是同一病人的肝脏CT序列也会出现形状的多种变化,甚至出现肝脏分裂为几个区域的现象;肝脏区域与毗邻组织亮度相似,图像中弱边缘区域分布较广等。Susomboon等[3]利用纹理信息对肝脏区域进行识别,使用多种特征表述肝脏在CT图像中的纹理,该方法受肝脏形状变化影响小,且对单幅图像分割效果较好。但由于肝脏不同扫描层面的纹理差异,此方法对序列图像分割效果不佳。Selvera等[4]首先应用k-means以及形态学方法得到肝脏序列中初始图像的分割结果,以此训练初始神经网络,然后对剩余的图像进行分割,每一扫描层都使用上一扫描层分割结果训练得到的神经网络进行分割。该方法可以减少肝脏与毗邻器官的误分割,同时也造成层间误差的积累,使得后续扫描层的分割结果发生变形的现象越来越严重。Caselles等[5]提出了一种基于水平集演化的肝脏分割方法,水平集的初始轮廓定义为半径为r的圆,置于肝脏区域内进行演化。该方法对于边缘清晰、噪声少的肝脏图像分割效果较好,但极易在伪边缘处停止演化,很难确定合适的演化次数,容易在弱边缘处越界,而且每一幅图像的肝脏初始化轮廓都需要人为设定,自动性差。Lee等[6]提出了一种基于水平集的肝脏分割方法。与文献[5]不同的是,该方法首先使用区域增长自动获得肝脏初步轮廓,然后将其作为水平集的初始轮廓进行演化。该方法将上一扫描层分割结果的轮廓经形状传播处理后,作为下一扫描层获取肝脏初始形状的种子点,避免了种子点落在肝脏区域外部,可以达到减少层间误差积累的目的。由于该方法将每一扫描层的肝脏粗轮廓直接应用于水平集演化,在弱边缘处可发生不同程度的越界。Li等[7]提出了一种距离规则化水平集方法,使用距离规则项避免水平集的重初始化,提高了分割效率,在CT图像的分割中有较高的实用价值。由于该方法是一种基于边缘的水平集方法,用于肝脏分割时难以解决弱边缘越界问题,因此,对于肝脏CT序列图像的分割,若使用上一扫描层分割结果作为下一层的初始轮廓,则分割误差也会不断积累,导致整体分割失败。本文提出一种新的肝脏序列图像自动分割方法,应用基于先验信息的改进水平集方法进行肝脏区域分割,较好地解决了弱边缘越界问题。该方法对于肝脏的形状变化影响较小,稳定性好,在保证自动分割的同时,可避免分割错误地积累。
1 算法描述
首先对肝脏CT图像应用二次区域生长,获得初步分割结果,然后将它作为先验信息构造水平集函数,进行肝脏轮廓的演化,最后应用自适应边缘行进算法,获得完整的肝脏分割结果。CT序列的整体分割顺序为:分别将序列中初现肝脏的首、尾扫描层当作起始图像,依次向中间分割,直至遇到终止图像为止。一般将肝脏区域面积最大的CT扫描层确定为终止图像。在整个分割过程中,除了起始层和肝脏分裂初现层第2次区域生长的种子点由人工选取外,其余扫描层都从上一层分割结果自动选取。本文算法总体流程如图1所示。
图1 本文算法流程图
Fig. 1 Flowchart of proposed algorithm
1.1 肝脏初分割
在肝脏初分割之前,首先对输入图像进行去噪处理。本文使用文献[8]中基于冲击滤波器和曲率扩散滤波的去噪方法,该方法可在去除图像噪声的同时锐化器官之间的真实边缘。图2(a)所示为去噪后的肝脏CT图像,图中包含了一些分割难点,如肝脏区域分散、边界模糊、肝脏增强效果不明显等。本文采用二次区域生长法进行肝脏初分割。
1.1.1 第1次区域生长
第1次区域生长的目的是强化CT图像中肝脏与相邻器官之间的边缘。以图2(a)为例,首先计算它的梯度GP(x, y),然后用Sigmoid方程放大或缩小GP中不同位置的梯度,得到GSP(x, y):
(1)
其中:表示Sigmoid函数;m和n为调节梯度范围的参数;GSP(x, y)的取值在0到1之间。本文取m = -0.5,n = 0.8,此时,GSP(x, y)在灰度较均匀的区域趋近于1,而在边缘区域则趋近于0,如图2(b)所示。将GSP(x,y)中数量级在1×10-4以下的数值设为0,然后以0值区域作为种子点,以0.5作为阈值进行区域生长,结果如图2(c)所示。图中白色部分为生长加粗后的边缘。
图2 第1次区域生长示例
Fig. 2 Example of first region growth
1.1.2 第2次区域生长
第2次区域生长是在第1次区域生长的基础上进行的,目的是获取肝脏区域的初步分割结果。在序列图像分割过程中,当前扫描层第2次区域生长的种子点获取需要用到上一扫描层的分割结果。第2次区域生长种子点的获取如图3所示,其中,图3(a)所示为图2(a)中上一扫描层的分割结果,图3(b)所示为图3(a)中的距离变换图。图中亮度值代表肝脏区域内的点相对于最近边缘的距离d,最亮部分对应于局部最大距离值dmax,代表肝脏区域最中间点的位置。取1个距离阈值dT,将图3(b)中满足d>dT的点作为第2次区域生长种子点,其目的是为了保证种子点能落在扫描层的肝脏区域内部,避免将肝脏外的部分生长起来。本文取dT为15。
在最初的几幅CT图像中,由于肝脏区域较小,而稍后的一些CT图像也可能存在狭窄的肝脏区域,它们分割结果的距离变换图中,可能因全部或部分dmax小于dT而导致有用种子点丢失,从而使得部分肝脏区域被遗漏。为了解决这个问题,将d=dmax的所有位置点添加到种子区域中。图3(c)中,阿拉伯数字1~4所标志区域即为添加的种子点区域。
将图3(c)中的种子点应用于图2(c)区域生长时,其种子点位置与图2(c)中边缘位置重合的部分应被去除,确保区域生长只在肝脏区域内进行。本文将图3(c)中的种子点与图2(c)中的种子点相加并反转,所得白色区域即为最终种子点,如图3(d)所示。
需要说明的是,肝脏序列的2个起始分割图像第2次区域生长的种子点需要人工指定,因为这2幅图像分别是CT序列中出现肝脏的初始图像和最终图像,不存在上一扫描层的分割结果。同样,若序列中的某幅图像突然出现与上一扫描层肝脏区域不相连接的肝脏区域,则也需要人工指定种子点。种子点确定之后,即可进行第2次区域生长。图4(a)所示为当前扫描层第2次区域生长结果,图4(b)所示为图4(a)所示形态学填充结果即肝脏的初步分割结果。该图像在后续肝脏CT序列图像的分割过程中将作为先验信息,参与构造水平集方程的边缘指示函数和气球力,并作为水平集演化的初始轮廓。
1.2 基于先验信息的水平集分割
肝脏的初步分割结果经过基于边缘的水平集方法可得到边缘平滑的分割结果。由于该方法用于图像分割时可能存在弱边缘越界,并且演化系数难以适应多变的图像序列,鲁棒性差。本文将肝脏的初步分割结果作为先验信息加入到水平集中,可有效防止弱边缘越界,并增强算法的稳定性。
1.2.1 基于先验信息的边缘指示函数构建
边缘指示函数反映了图像边缘的分布情况。令I表示输入图像的灰度,边缘指示函数g可构建为
(2)
其中:为方差为的高斯核函数。从式(2)可以看出:在灰度变化幅度较大的地方,g的取值较小;反之,g的取值较大,且最大值为1。
图3 第2次区域生长种子点的获取
Fig. 3 Generation of seed points for the second region growth
图4 肝脏初步分割结果
Fig. 4 Preliminary segmentation result of liver
基于边缘的水平集方法易在弱边缘处发生越界,为了修正弱边缘,将图4(b)所示初步分割结果作为先验信息加入边缘指示方程,构建增强的边缘指示函数:
(3)
式中:gn为g(I)的归一化形式:
(4)
gn的取值在0到1之间;gp为肝脏初步分割结果,其中肝脏区域值为1,非肝脏区域值为0,如图4(b)所示;参数r(0≤r≤1)用来平衡gn和gp对gr的影响,若r=1,则边缘指示函数由gn决定;若r=0,则边缘指示函数完全由肝脏初步分割结果决定。本文取r=0.4,这样可以弱化肝脏区域内部的细小边缘,增大真正的肝脏边缘对水平集的影响,如图5所示。图5(a)和(b)所示分别为gn和gr的效果图,可以看出gr肝脏区域中的细小边缘大大减少,可以更好地表达真实边缘。
图5 2种边缘指示函数效果图
Fig. 5 Expression for two edge functions
1.2.2 基于先验信息的距离规则化水平集方法
基于先验信息的边缘指示函数可用来修正弱边缘,而下面构建的基于先验信息的水平集方法可进一步防止弱边缘越界。本文应用文献[7]中的距离规则化水平集方法。
在水平集的初始化和演化过程中,水平集函数应保持为符号距离函数。但水平集函数在演化过程中会发生符号距离函数的退化,一般通过重新初始化使水平集在演化中保持为符号距离函数,即周期性地停止演化,将退化的水平集函数重新定义为符号距离函数。重初始化作为一种数值上的补救方法,可以保持水平集函数的规则化,但也可将零水平集错误地移动到非预期位置,增大了计算量。文献[7]结合测地活动轮廓模型思想提出了距离规则化水平集方法,添加距离规则项作为惩罚项,避免了水平集的重新初始化,提高了分割效率,其能量泛函定义如下:
(5)
其中:μ为惩罚项的权重系数;为惩罚项,
(6)
Eg为外部能量泛函,
(7)
式中:g为边缘指示函数;Ω为图像域;λ和α为常数;为Dirac函数;为Heaviside函数。
方程(7)中第1项为曲线的加权长度,即传统的测地活动轮廓模型中的能量;第2项相当于球形推进项,负责推动轮廓的运行。系数α决定了推进的力度,α受边缘指示函数影响,在较平滑区域推动力较大,而在边缘处推动力趋近于0。推进的方向由α决定:当α<0时,轮廓向外推进;反之,轮廓向内推进。
文献[7]中方法是一种有效且快速的水平集方法,但此方法用于肝脏图像分割时并不理想。由于肝脏区域普遍存在弱边缘,α所决定的推动力在弱边缘处很难趋近于0,因此,球形推动无法在正确的边缘处停止运行。这种情况导致α的确定非常困难:若α过小,则水平集演化未到达肝脏边界即停止;若α过大,则边缘越界现象比较严重。本文利用经先验信息调整的球形力引导演化轮廓向正确的肝脏边缘靠近:
(8)
其中:Pi为1个包含0和1的矩阵,Pi与1.1节中得到的肝脏初步分割结果大小相同,其0值位置对应图中的背景与孔洞,而1值位置对应图中的肝脏。参数θ(0≤θ≤1)是1个平衡因子,当θ=0时,球形推动力为常数α;当θ不为0时,推动力受到先验信息Pi的约束。约束所起到的作用为:当演化到达弱边缘处时,推动力将被强制为0,停止演化。
将Gα与边缘指示函数gr加入到距离规则化水平集方法中,得到先验信息水平集方法的外部能量泛函:
(9)
因此,新构建的先验信息水平集能量泛函可写为
(10)
应用以上能量泛函进行水平集演化时,Gα中的α可设为较大值,保证演化过程中有足够的推动力使演化轮廓到达肝脏边缘,而不引起弱边缘处越界。本文取α=-1.5,λ=5,取肝脏初步分割结果的轮廓作为演化的初始轮廓,置于肝脏区域内部,由内向外演化。
1.3 后处理
由于二次区域生长的初步分割结果可能较粗糙,因此,水平集演化完成后得到的肝脏形状会有不同程度的缺损,如图6(a)所示。本文应用自适应边缘行进算法[9]修补边缘,该算法根据边缘缺口的直径自动调节行进步长,可适应不同的边缘缺损情况。边缘修补结果如图6(b)所示。另外,由于肝脏区域中有时存在一些较亮的血管,在演化结果中会存在一些孔洞,经过简单的形态学填孔操作即可解决这个问题。
图6 自适应边缘行进算法修补边缘
Fig. 6 Adaptive border marching method for segmentation defects correction
2 实验结果与分析
为了评价算法的分割性能,对随机选择的9个肝脏CT序列进行分割,并将分割结果与手动分割结果进行比较。本文采用如下3个性能指标[10-11]。
1) 体积重叠误差(Evo):
(11)
其中:As和Ms分别代表算法和手动分割结果的体素数量。
2) 平均对称面距离(Das):
(12)
(13)
其中:和分别为算法和手动分割结果的边界像素坐标;di为两者的边界距离;c为自动分割结果的边界像素总个数。
3) 相对体积差(Vrd):
(14)
本文将文献[4],[6]和[7]中的方法分别应用于9个不同肝脏序列图像的分割,然后以手动分割结果为标准求取它们的Evo,Das和Vrd,实验结果如图7所示。图7中横坐标表示肝脏CT序列的序号。
从图7可以看出:由文献[4],[6]和[7]中方法所得的Evo,Das和Vrd相比本文方法所得结果大。文献[4]中方法分割误差形成的原因为误差积累,它在利用上一层图像的肝脏信息分割下一层时,没有采取减少错误传递的措施,使得后续分割过程的误差越来越大。文献[6]中方法分割误差形成原因是边缘越界,该方法将每一扫描层的初始轮廓直接应用于下一层水平集演化中,容易在弱边缘处溢出,导致分割效果相对于本文算法较差。但此方法使用的种子点选取机制可以达到减少层间误差积累的目的,因此,分割误差比文献[4]中方法的分割误差小。文献[7]中方法分割肝脏时误差较大,其主要原因是存在弱边缘处越界误差以及CT序列图像分割过程中的误差积累。
图8(a)所示为某一肝脏CT序列中的1幅图像,图中肝脏与肌肉及胃部连接部分边缘较弱。使用该图像上一扫描层的分割结果作为此图中肝脏区域的初始轮廓,应用文献[7]中方法进行水平集演化,结果如图8(b)所示,可看出该方法在弱边缘处发生了越界。本文方法和手动分割结果分别如图8(c)和8(d)所示。很显然,它们的分割效果几乎相同,且在弱边缘处没有发生边缘越界。
将图8(a)中所在序列接下来的29幅图像分别应用文献[7]中方法、本文方法和手动方法进行分割并三维重建后的结果分别如图9(a),(b)和(c)所示。从图9可以看出:文献[7]中方法由于利用上一扫描层的分割结果作为当前扫描层的初始轮廓演化,因此,将微小的边缘越界传递并放大,从而导致分割结果不准确。而本文算法可很好地避免误差积累,得到的结果(图9(b))与手动分割结果(图9(c))非常接近。事实上,本文算法中种子点的选取方式可保证种子点落在肝脏区域内部,不至于使区域生长结果落到肝脏区域以外,可最大限度地减少误差的积累,即使上一层分割产生了微小的边缘越界,也不会将这种分割误差传递到余下层的分割。
图7 4种方法对9个不同CT序列的分割性能比较
Fig. 7 Segmentation performance comparison on four methods for 9 different CT series
图8 不同方法分割结果对比
Fig. 8 Segmentation performance comparison on different methods
图9 不同方法对某CT序列部分图像分割后的三维重建结果
Fig. 9 3D reconstruction results for part of certain CT series
3 结论
1) 提出了一种基于先验信息水平集方法的肝脏CT序列图像分割方法。首先,将肝脏图像用冲击滤波器和曲率扩散滤波方法进行平滑,去除不相关细节而不破坏原有弱边缘。然后,应用二次区域生长获取肝脏的初步分割结果,经形态学处理后,作为水平集分割的初始轮廓,并以此作为先验信息构建新的边缘指示函数和正则化水平集方程。
2) 可使演化轮廓停止于准确的肝脏边缘,有效地防止了弱边缘越界现象,并可适应肝脏形状的变化;每一幅图像的分割可通过上一幅图像分割结果的距离变换,自动得到第2次区域生长的种子点,使得整个序列分割自动进行,并可有效地避免误差的积累。
3) 应用自适应边缘行进算法修补水平集演化中可能出现的边缘缺损,并通过填孔操作填补肝脏区域中因为血管造成的孔洞,使得肝脏形状更加完整。
4) 算法在不同序列中的水平集迭代次数与演化参数都可使用固定常数,整个CT序列的分割只需人工选取初始种子点,无需人为地给每幅图像设定参数和初始轮廓,鲁棒性强。
参考文献:
[1] Li B N, Chui C K, Chang S, et al. A new unified level set method for semi-automatic liver tumor segmentation on contrast- enhanced CT images[J]. Expert Systems with Applications, 2012, 39(10): 9661-9668.
[2] 姜慧研, 马志远, 宗茂. 基于概率图谱和Random Walker的肝脏三维分割算法[J]. 东北大学学报(自然科学版), 2012, 33(12): 1718-1721.
JIANG Huiyan, MA Zhiyuan, ZONG Mao. 3D liver segmentation algorithm based on probabilistic atlas and random walker[J]. Journal of Northeastern University (Natural Science), 2012, 33(12): 1718-1721.
[3] Susomboon R, Raicu D S, Furst J D. A hybrid approach for liver segmentation[C]//Workshop Proceedings of 3-D Segmentation Clinic: A Grand Challenge.Brisbane, Australia, 2007: 151-160.
[4] Selvera M A, A, Güleser K D, et al. Patient oriented and robust automatic liver segmentation for pre-evaluation of liver transplantation[J]. Computers in Biology and Medicine, 2008, 38(7): 765-784.
[5] Caselles V, Kimmel R, Sapiro G. Geodesic active contours[J]. International Journal of Computer, 1997, 22(1): 61-97.
[6] Lee J, Kim N, Lee H, et al. Efficient liver segmentation using a level-set method with optimal detection of the initial liver boundary from level-set speed images[J]. Computer Methods and Programs in Biomedicine, 2007, 88(1): 26-38.
[7] LI Chunming, XU Chengyang, GUI Changfeng, et al. Distance regularized level set evolution and its application to image segmentation[J]. IEEE Transactions on Image Processing, 2010, 19(12): 3243-3254.
[8] Bettahar S, Stambouli A B. Shock filter coupled to curvature diffusion for image denoising and sharpening[J]. Image and Vision Computing, 2008, 26(11): 1481-1489.
[9] Pu J, Roos J, Chin A Y, et al. Adaptive border marching algorithm: automatic lung segmentation on chest CT images[J]. Computerized Medical Imaging and Graphics, 2008, 32(6): 452-462.
[10] Badakhshannoory H, Saeedi P. A model-based validation scheme for organ segmentation in CT scan volumes[J]. IEEE Transactions on Biomedical Engineering, 2011, 58(9): 2681-2693.
[11] Heinmann T, Ginneken B V, Styner M. Comparison and evaluation of methods for liver segmentation from CT datasets[J]. IEEE Transactions on Medical Imaging, 2009, 28(8): 1251-1265.
(编辑 陈灿华)
收稿日期:2014-05-12;修回日期:2014-07-10
基金项目(Foundation item):国家自然科学基金资助项目(61172184, 61379107, 61174210);新世纪优秀人才支持计划项目(NCET130603);高等学校博士学科点专项科研基金资助项目(20130162110016);湖南省科技基本建设项目(20131199)(Projects (61172184,61379107,61174210) supported by the National Natural Science Foundation of China;Project (NCET130603) supported by Plan Program for New Century Excellent Talents in University; Project (20130162110016) supported by Specialized Research Fund for the Doctoral Program of Higher Education;Project (20131199) supported by Science and Technology Basic Construction of Hunan Province)
通信作者:徐效文,副教授,从事生物医学信号处理与仪器研究;E-mail:xuxiaowen@csu.edu.cn