注意:由于页面显示原因,里头的公式没能做到完美显示,有需要的朋友请到我的资源中下载
无需进行重新初始化的水平集演化:一个新的变分公式
Chunming Li , Chenyang Xu , Changfeng Gui , and Martin D. Fox
1.Department of Electrical and 2.Department of Imaging 3.Department of Mathematics
Computer Engineering and Visualization University of Connecticut
University of Connecticut Siemens Corporate Research Storrs, CT 06269, USA
Storrs, CT 06269, USA Princeton, NJ 08540, USA [email protected]
{cmli,fox}@engr.uconn.edu [email protected]
摘要
在本文中,我们表达了一个新的变化的框架对于几何活动轮廓,它迫使水平集函数接近于一个符号距离函数,并且因此完全的排除了代价性的重新初始化的过程。我们的变化的构架由一个内部能量项,它惩罚了来自符号距离函数的水平集函数的偏离,还有一个外部能量项,它可以驱动零水平向着预想的图像特征运动,比如目标边界。水平集函数结果的演变是梯度流,它最小化了整个的能量函数。提出的变化的水平集构架有三个主要的优点比起传统的水平集构架。首先,可以用一个明显的更大的时间步骤去进行数值性的解决演变的偏微分方程。,因此加速了曲线演化。第二,水平集函数能用一般的函数进行初始化,该函数对于构架是非常有效的,并且在使用中更容易。第三,在我们框架中水平集演变可以通过简单有效的差框架来实施,并且计算更加有效。
近年来,研究人员在几何活动轮廓提取方面做了很多的工作,例如,通过使用水平集方法来实现的活动轮廓提取,同时该方法已经被广泛的使用在解决各种图像分割处理及计算机模式识别方面。水平集方法是Osher 和Sethian于1998年针对火焰变化分析等流体力学问题研究是提出来的。活动轮廓是由Kass,Withins和Terzopoulos在研究从图像上同时使用动态曲线演化方法分割目标是提出来的。现在的活动轮廓可以被宽泛的分为参数活动轮廓模型或者几何活动轮廓模型根据他们的表示和实施。特别的,参数活动轮廓明确的代表参数的轮廓在一个拉格朗日框架中,而几何活动轮廓明确代表二维函数在欧拉框架中演化水平集。
几何活动轮廓被独立的引入。这些模型是基于曲线演变理论和水平集方法。这些基本思想是去表达轮廓作为一个隐函数定义在高维的零水平集,通常叫做水平集函数,并且根据偏微分方程来演化水平集函数。这个方法代表几个优点相对于传统的参数活动轮廓首先,由水平集函数表示的轮廓会自动的断开或者融合在演化的过程中,并且拓扑改变会自然处理。第二,水平集函数综述保持在一个固定的网格上,这允许了有效的数值框架。
早期的几何活动轮廓通常使用拉格朗日框架,派生出一个带参数演化的偏微分方程,这个偏微分方程之后转化成可以进行演化的基于水平集方法的偏微分方程与从水平集方法中得出的欧拉方程有一定的联系。作为替代方案,水平集函数的演变的偏微分方程可以直接来自于最小化目标能量函数的水平集函数定义的问题。这种类型的变分方法被称为变分水平集方法。
对比原始的偏微分方程实现的水平集方法,使用变分水平集方法更加的方便,在吸收准确的目标信息方面能够更加的贴近真实的情况。如基于区域信息和基于形状先验信息,之后转化成能量函数时只在水平集区域内进行演化,因此有产生了一个很好的很强大的结果。举个例子,Chan和Vese使用变分水平集来解决活动轮廓提取的模型。通过采用基于区域的信息转化为自己的能量功能作为一个额外的约束,他们的模型有很大的较大的收敛范围和灵活的初始化。Vemuri和Chen[9]提出了另外一个变分水平集方程,通过加入形状先验信息,他们的模型可以有效的进行图像的配准及分割。
在实施传统的水平集方法中,它是非常必需的保持演化的水平集函数接近于一个符号距离函数。重新初始化,对于周期性的重新初始化水平及函数的技术到一个符号距离函数,已经被广泛的应该在大量的修复于保持稳定的曲线演化和确保可用的结果。然而,如G和F指出的,重新初始化水平集函数明显是一个理论和实施中的折中。然而,许多人提出的重新初始化框架都有一个不想要的变效应,在移动零水平集远离它的原位置。它仍然存在各种问题例如什么时候和怎样去应用一个重新初始化。到目前为止,重新初始化过程在特定方式中应用。
在本论文中,我们提出了一个新的变分水平集函数使得水平集函数能够接近符号距离函数,进而实现避免程序花费大量的时间代价用于初始化。我们的变分水平集由内部能量项和外部能量项组成。内部能量项通过符号距离函数上不断惩罚水平集函数的偏差,而内部能量项长期驱动零水平集函数运动到所需的目标周围,如图像的边界。水平集函数的演化产生的梯度流最大限度的减少整体的能量函数。由于内部能量函数的存在,水平集函数将自然的自动的在整个演化过程中保持一个近似的符号距离函数。因此,重新初始化的过程已经被完全的消除了。论文中提出的变分水平集演化方法相对于传统的水平集方法有三个主要的优势。第一,传统的方法进行数值化求解偏微分方程花费了大量的时间步长,因此,论文中的方法加快了曲线演化的速度;第二,水平集函数作为一个函数进行初始化计算将比距离符号函数的计算更加的有效;第三,提出了在传统的水平集函数演化中使用简单点额有限差分方法进行计算,而不是使用复杂的迎风格方法。该算法已经在处理模拟和真实图像中获得了希望的结果。特别的是他实现了在识别模糊边界有很强的鲁棒性。
进化曲线是水平集函数的隐性表示。考虑灰度图像I和闭合曲线C,曲线C隐性表示为定义在图像上的三维连续函数φ(t, x, y)曲面的零水平及,也就是C(t) = {(x, y) | X:φ(t, x, y) = 0},对于给定的φ(t, x, y)=0;水平集函数φ(t, x, y)在速度场F的作用下开始进化,具体的水平集进化函数φ可以进行如下形式的表示:
(1)
函数F叫做速度函数,对于图像分割,函数F依赖于图像数据和水平集函数。在传统的水平集方法中,水平集函数能产生震荡,非常尖和平坦的形状在演变的过程中,这使得进一步计算非常不准确。为了避免这些问题,一个一般的数值框架去初始化函数作为一个符号距离函数在演化之前,并且在演化的过程中周期性的重塑水平集函数成为一个符号距离函数。确实,重新初始化过程是至关重要的,并且不能避免在水平集方法中。
重新初始化在传统的水平集中被广泛的用作一个数值修复。标准的重新初始化方法是去解决下面的重新初始化等式
(2)
重新初始化方法中有很多丰富的文化,并且大多数都是上面的偏微分方程的变体。不幸的是,如果要去重新初始化的函数不是光滑的或者在界面的一边比另一边更加陡峭,那么结果函数的零水平集就会不正确的从原函数中移动。然而,当水平集函 数远离一个符号距离函数的时候,这些方法不能重新初始化水平集函数成为一个符号距离函数。实际上,演化的水平集函数能大大的从它的值中偏离,作为一个迭代步骤中小数量的符号距离函数,尤其是当时间步骤没被选择足够小的时候。
目前,重新初始化被广泛的应用在数值修复中,为了保持稳定的曲线演化并确保想要的结果。从实际的观点来看,重新初始化是相当复杂,昂贵的,并且有微小的边效应,然而,大多数的水平集方法都担忧他们自己的问题,比如什么时候和怎么去重新初始化的水平集函数对于一个符号距离函数。到目前为止,还没有简单的答案通用。在本文中,提出的变化的水平集构架能通过简单有效的差分框架简单的实施。
如前面讨论的,在演化的过程中,保持演化的水平集函数作为一个近似的符号距离函数,尤其是在零水平集领域周围。众所周知,衣服符号距离函数必须满足一个要求的特性。相反的,任意一个函数%满足该特性是符号距离函数加一个常数。自然的,我们提出下面的积分(3)式。
(3)
作为一个度量,去特征化如何逼近一个函数φ成为一个符号距离函数。这个度量将起到一个重要的作用在我们的变体水平集构架中。
根据上面对P(φ)函数的定义,我们提出了以下的变分水平集公式
(4)
其中>0 是一个参数控制通过符号距离函数上不断惩罚水平集函数φ的偏差的效果。而是一个确定的能量项可以影响零水平集函数φ的移动。
在本文中,我们使用加托导数(或第一变分)作为函数化,同时使用以下的的演化方程:
(5)
这是一个梯度流[18],最大限度的最小化的函数E。对一个特定的函数在φ中进行了明确的定义,同时加托导数可以被计算并在函数φ及其衍生函数中表示。
在图像活动轮廓分割中我们专注于实用变分公式,从而使φ的零水平曲线可以进化到目标区域图像。对了这个目的,被定义成一个依赖图像数据(见下文),因此我们称之为外部能量项。因此,能量项P(φ)被称为水平集函数φ的内部能量项,因为他只是φ的一个函数。
φ函数的演化过程根据梯度流(5)和最小化函数(4),零水平曲线将会在外部能量项的推动下进行演化。同时,由于内部能量项的不断惩罚水平集函数的偏差,因此演化函数φ将会被作为一个近似的符号距离函数在演化过程中根据公式(5)进行自动的维护。因此,重新初始化的在本文提出演化方法中将会被完全的消除。这个概念将会在下面活动轮廓提取中进行更深一步的演示。
在图像分割中,活动轮廓是一条动态运动的曲线,之后慢慢的移动到目标的边界。为了实现这个目标,我们明确的定义了一个外部能量项可以将零水平集曲线向着目标边界运送。设置I为一个图像,g为边缘函数,定义为:
在公式中是一个标准算子为的高斯内核。我们为函数φ(x,y)定义一个外部能量项如下:
(6)
其中>0 和v 是两个常量,项和定义如下:
(7)
和
(8)
特别说明下,其中是一个单变量的狄拉克函数,H是一个亥维赛函数。
现在,我们定义一下完成了能量项函数:
(9)
在整个演化过程中,外部能量项将驱动零水平集不断的想目标的边界移动,而内部能量项则通过符号距离函数不断的惩罚水平集函数的偏差。
为了更好的理解能量函数,我们假设零水平集φ表示为一个可微的参数化曲线C(p),p∈[0,1]。我们已经知道[9]式(7)中能量函数在计算了零水平集曲线φ在共形度量中的长度。另外式(8)中能量函数用来加速曲线演化。注意的是,当g函数的参数为1是,式(8)中的能量函数是指示的是区域[17],式(8)中的能量函数可以视为加权后的。中的系数v可以是大于零或小于零,根据初始轮廓与感兴趣的目标区域之间的相位位置关系确定。举个例子,如果初始轮廓的划定在目标的外面,系数v在这个加权区域项应该是正数值,因此轮廓的演化会更加的快速。如果初始化轮廓在目标区域的内部,系数v应该是负数以加快轮廓的外部演化。
通过有限变分法,函数中的加托导数(第一个变分集)可以写成:
其中是拉普拉斯检测算子。因此最小化函数φ能够满足Euler-lagrange方程。在最小化函数过程中的最陡的下降过程是下面的梯度流:
(10)
这个梯度流是水平集函数的演化方程的方法。
在式(10)的右边中的第二项和第三项对应的梯度流能量函数和,它们分别负责驱动零水平集曲线向目标区域边界运动。为了解释第一项的作用,这得考虑到内部能量函数,我们注意到梯度流
有一个元素作为扩散率,如果,那么扩散率是正数同时这一项的影响是使轮廓正常的扩散,使得φ更加的平滑以至于减少梯度流,如果,那么将使得轮廓逆向扩散,从而增大梯度流的影响。
我们使用一个圆形图像作为一个图像对象,如Fig. 1,展示了水平集函数φ根据公式(10)进行演化的结果。在Fig.1中,在第一层的第一张图中展示了初始化水平集函数,同时他的零水平集曲线在第二层的第一张图中被标志出来。上层展示了水平集函数φ的演化过程,而下层展示了相对应的零水平集函数φ。第四列是曲线演化最终收敛的结果。正如我们从这个实例中所看到的,在演化的过程中,进化中的水平集函数φ的维护与符号距离函数是非常接近的。
在实现过程中,在式(10)中的狄拉克函数主要进行的是整个轮廓的平滑,接下来定义如下
(11)
在本论文的所有实验中,我们使用规范化的参数=1.5的狄拉克函数。因为我们在本文中引入了惩罚能量扩散项,因此我们不再需要像传统水平集方法一样使用逆风方案。相反,所有的空间偏导数和都是用的中心差分方法近似表示,而时间偏导数是由向前差分近似。因此,通过上诉的差异,式(10)的可以近似简单的写成
(12)
其中可以近似的使用上述空间差分方法表示式(10)中的右边部分。差分方程(12)可以表示为以下迭代
(13)
在实施提出的水平集方法,时间步骤T能被明显的选择大于传统水平集中的时间步骤。我们在时间步上尝试进行了大范围内的选择,从0.1到100.0。例如,我们在Fig.1中使用=50.0 和=0.004,同时在曲线演化中只进行了40次的迭代,然而曲线精确收敛到了对象的边界。
一个很明显的问题是:时间步在那个范围内可以使式(13)中的迭代更加的稳定?从我们多次的实验中来看,我们发现了时间步和系数必须满足在4.1章节中提出的差分方法中,为了保持稳定的水平集演化。
使用较大的时间步可以加速演化的过程,但是如果时间步过大,在边界定位上会出现错误。我们通常会权衡选择较大的时间步长以让其精确定位目标边界。通常来说,我们使用用于大部分的图像。
在传统的水平集方法中,将水平集函数φ作为符号距离函数φ0进行初始化是不可缺少的。如果初始化的水平集函数与符号距离函数有着显著的差异,那么重新初始化的方案将不能够重新初始化符号距离函数。在我们的计划中,不仅仅是重新初始化的过程被完全的消除,而且水平集函数φ也不再需要作为符号距离函数进行初始化。
在这里,我们提出了一下的函数作为初始水平集函数φ0。设置为图像区域的一个子集,同时为在边界上的所有的点的坐标,这便可以有效的识别一些简单的形态学操作。初始水平集函数φ0定义如下:
(14)
其中是一个参数。我们建议选择大于,其中式(11)中定义正规化的迪克拉函数时所定义的标准化参数。
不同于符号距离函数的是,符号距离函数是从全局的轮廓来进行计算,而本文中提到的初始化水平集函数是从目标区域中进行计算。这种基于区域的的水平集函数初始化不仅计算效率更高,同时也在不同的情况下提供了更为灵活的初始化方案。举个例子来说,如果目标区域能够被粗略的自动的从某些方式得到,例如阈值,然后我们通过这些大致获得的区域去构造我们的水平及函数φ0。紧接着,初始的水平集函数会根据演化方程不断地稳定的进行演化,伴随着他的零水平集曲线会收敛于目标区域的边界上。为了演示本问题出的初始化方案的效果,我们使用Fig.1中相同的图像应用初始化及演化的模型。初始的水平集函数φ0根据式(14)中的定义进行构建,其中=6 ,初始区域包括两个独立分开的区域。按照定义,初始化函数φ0只有三个值:-6、0、6,他的等高线在Fig.2中的第一个图像中标注出来。φ函数从初始化φ0中的进化在Fig.2中通过七个层次-3、-2、-1、0、1、2、3标注水平集曲线的演化进行展示,同时在图像中,使用最初的一条线作为零水平集曲线(这条线在七条等高线的正中间)。在图中我们可以清晰的看到水平集函数最终非常接进去符号距离函数,在七个级别的等高线之间几乎是等间隔的,相邻之间的间隔几乎接近于1 。
但要注意的是,这种初始函数φ与符号函数有着显著的偏离,即在整个演化过程中,水平集函数φ在整个区域内的进化更新,并不能全图像的近似为符号距离函数。但是,由于演化过程基于本文提出的惩罚扩散的演变,因此会使得水平集函数φ在接近零水平集是近似等于符号距离函数。事实上,在图二中我们已经通过演示得到了希望的效果。
本文提出的变分水平集方法已经被广泛的应用在不同形式多样的合成或真实的图像处理中。在本节实验结果的展示中,水平集函数都以式(14)所述方法进行定义,其参数=6和一些区域。
举个例子来说,在图3中展示了对一张100*200像素的一个瓶子和杯子的图像的处理,初始水平集函数φ0以一个方形的封闭曲线计算得来,在图3中进行的演示。对这张图像,我们使用参数:,,,时间步长,该步长远远大于传统水平集函数中的步长。本次曲线演化进行了650次迭代。
图4中展示了在一张64*80像素的显微图像中的两个细胞进行演化,正如我们所看到的,这两个细胞的边界的某一些部分非常的模糊。通过这个图像,展示了本文算法在处理弱边界图像问题中的鲁棒性。我们使用的图4(a)中直线下方的区域作为初始水平集区域去构造初始化水平集函数φ0,正如图4中所展示的,初始的直线成功的演化到了两个目标的边界上,而且他们的整个形状被很好地覆盖了。这个结果演示了我们的算法在提取图像弱边界问题上可以得到理想中的结果,这种结果在传统的水平集方法中是很难得到的。
我们的方法也被应用于处理超声波图像。超声图像是臭名昭著的散斑噪声和低性噪比,因此很难使用传统的方法进行目标边界的提取。图5展示了本论文的方法在处理一张110*130像素的颈动脉超声波图像。尽管强噪声的存在,该图像仍然使用我们的算法进行了成果的边界提取。
在本文中,我们提出了一个新的变分水平集的演化公式,该方法完全消除了重新初始化过程所需要的时间代价。所提出的水平集方法可以使用有限差分方法进行简单的计算实现,同时在计算上相对于传统的水平集方法来说更加的有效率。在本文的方法中,相对较大的时间步长可以被用来加速曲线演化,同时稳定的维护演化中的水平集函数。此外,水平集函数不再需要作为符号距离函数进行初始化。我们提出的基于区域的初始化水平集函数的方案不仅仅在计算方面比计算符号距离函数更加有效,同时也允许更加灵活的水平集方法。我们通过使用模拟和真实的图像进行了本文算法的演示,而且还特别的尝试的使用了弱边界与强噪声的图像验证了本文算法的强壮性。
[1] M. Kass, A.Witkin, and D. Terzopoulos, “Snakes: active contour models”, Int’l J. Comp. Vis., vol. 1, pp. 321-331, 1987.
[2] C. Xu and J. Prince, “Snakes, shapes, and gradient vector flow”, IEEE Trans. Imag. Proc., vol. 7, pp. 359-369, 1998.
[3] X. Han, C. Xu and J. Prince, “A topology preserving level set method for geometric deformable models”, IEEE Trans. Patt. Anal. Mach. Intell., vol. 25, pp. 755-768, 2003.
[4] J. A. Sethian, Level set methods and fast marching methods, Cambridge: Cambridge University Press, 1999.
[5] V. Caselles, F. Catte, T. Coll, and F. Dibos, “A geometric model for active contours in image processing”, Numer. Math., vol. 66, pp. 1-31, 1993.
[6] V. Caselles, R. Kimmel, and G. Sapiro, “Geodesic active contours”, Int’l J. Comp. Vis., vol. 22, pp. 61-79, 1997.
[7] R. Malladi, J. A. Sethian, and B. C. Vemuri, “Shape modeling with front propagation: a level set approach”, IEEE Trans. Patt. Anal. Mach. Intell., vol. 17, pp. 158-175, 1995.
[8] T. Chan and L. Vese, “Active contours without edges”, IEEE Trans. Imag. Proc., vol. 10, pp. 266-277, 2001.
[9] B. Vemuri and Y. Chen, “Joint image registration and segmentation”, Geometric Level Set Methods in Imaging, Vision, and Graphics, Springer, pp. 251-269, 2003.
[10] B. B. Kimia, A. Tannenbaum, and S. Zucker, “Shapes, shocks, and deformations I: the components of twodimensional shape and the reaction-diffusion space”, Int’l J. Comp. Vis., vol. 15, pp. 189-224, 1995.
[11] S. Osher, J. A. Sethian, “Fronts propagating with curvaturedependent speed: algorithms based on Hamilton-Jacobi formulations”, J. Comp. Phys., vol. 79, pp. 12-49, 1988.
[12] J. Gomes and O. Faugeras, “Reconciling distance functions and Level Sets”, J. Visiual Communic. and Imag. Representation, vol. 11, pp. 209-223, 2000.
[13] M. Sussman, P. Smereka, and S. Osher, “A level set method for momputing solutions to incompressible two-phase flow”, J. Comp. Phys., vol. 114, pp. 146-159, 1994.
[14] H. Zhao, T. Chan, B. Merriman, and S. Osher, “A variational level set approach to multiphase motion”, J. Comp. Phys., vol. 127, pp. 179-195, 1996.
[15] D. Peng, B. Merriman, S. Osher, H. Zhao, and M. Kang, “A PDE-based fast local level set method”, J. Comp. Phys., vol. 155, pp. 410-438, 1999.
[16] M. Sussman and E. Fatemi “An efficient, interfacepreserving level set redistancing algorithm and its application to interfacial incompressible fluid flow”, SIAM J. Sci. Comp., vol. 20, pp. 1165-1191, 1999.
[17] S. Osher and R. Fedkiw, Level Set Methods and Dynamic Implicit Surfaces, Springer-Verlag, New York, 2002.
[18] L. Evans Partial Differential Equations, Providence: American Mathematical Society, 1998.
[19] V. I. Arnold, Geometrical Methods in the Theory of Ordinary Differential Equations, New York: Springer-Verlag, 1983.