用于图像分割的自适应距离保持水平及演化总结
DRLSE算法
研读了Drlse算法后,又发现了这篇文章,在LI等人的研究基础上有所改进。然而,尽管Li 等人提出的距离保持水平集方法具有诸多优势,但存在需要初始曲线包围目标物体或完全位于其内部或外部的问题.为此,我们提出了一个自适应型的距离保持水平集方法;该方法允许初始曲线放置在图像的任何位置.这一创新使得该方法能够解决传统变分水平集方法所无法解决的一些复杂图像分割问题,例如从任意一条起始曲线出发自动识别目标物内外轮廓、分割多目标或多区域深度凹陷的目标边缘等问题.我们对不同边界形态的目标图像以及自然图像进行了系列实验验证;结果显示该方法均取得了令人满意的分割效果.
传统的水平集的问题:
为了确保水平集的演化既稳定又高效地进行, 在其演化的各个阶段, 水平集函数必须始终近似于符号距离函数(尤其是零平面附近)以便维持计算精度. 由于这一过程具有周期性特点, 必须定期重新初始化该函数. 这样的反复初始化虽然会耗费时间(导致演化速度减缓)但也可能因数值误差而导致零平面定位出现偏差;
水平集演化过程中进行数值模拟时需要采用了逆向(upwind)有限差分法这一特殊技术;该方法具有较高的计算复杂度和较大的计算规模。
LI的优点:
该方法通过在能量泛函中引入一项内部能量泛函来实现对水平集函数与符号距离函数偏差的校正效果。其主要作用是纠正这两者之间的差异,在演化过程中无需再进行周期性的初始化操作。
Li的缺点:
该种几何模型只能朝着单一方向(内部或外部)发展,而无法基于图像信息自主选择内部还是外部的方向,其初始轮廓的方向必须由人工设定.这导致了该模型无法随意设定初始曲线,它要求该模型必须围绕着目标边界展开,并可以在其内部或外部进行设置.因此这种方法既缺乏自适应能力又对起始位置高度敏感.
外部能量泛函中的权重参数v为定值,在实际应用中无法根据图像特征自动调节其符号和大小幅度。这使得基于零水平集的方法在检测复杂物体轮廓时存在明显缺陷:即无法有效识别多层边界以及具有狭窄深度凹陷区域的真实边界;此外还面临多目标物体边缘检测方面的局限性
控制演化停止的停止速度函数向0趋近的速度较慢,导致弱边界处仍有可能出现较大的演化速度
在数值实现过程中所采用的正则化Dirac函数具有紧支集特性,在此基础上设计出来的演化方程其控制作用仅局限于局部区域,并因此限制了活动轮廓对于目标物体边界的捕捉能力
此文的改进:
采用基于图像特性的可变权重函数v(I),替代固定权重方案。这种可变权重机制使得零水平集可以根据输入图像的变化动态调整其运动方向。具体而言,在这一过程中:其符号值会根据输入图像动态调整;这种可变权重机制消除了传统演化模型对初始曲线位置的高度敏感性问题。另一方面,在幅值上也会随之动态变化以反映图中细节特征;显著提升了模型在检测多层次边界方面的性能;同样增强了模型在复杂场景中的目标识别能力
引入了一种新型的停止速度函数,在此背景下,弱边界在零水平集检测方面的性能得到了显著提升,并且这一改进还促进了零水平集演化速度的提升。
在数值实现过程中,我们采用了支集为区间(−∞,+∞)的正则化Dirac函数,这一选择使得演化方程具有全局控制特性,从而实现了能量泛函的整体最小化,进一步提升了活动轮廓捕获的效果。
实际:换了一个能量函数,换了定义域。
1 距离保持水平集演化
1.1
我历时一周的时间进行了DRLSE算法原文的翻译工作,并将内容详细记录在笔记本中。个人觉得理解起来难度不小,在对比之下,本文作者对于该算法的理解更为透彻。总体而言,初学此算法仍感有些吃力。
该研究提出了一种改进型的距离保持水平集方法[6],其核心在于在传统水平集方法的能量框架内引入一项新的内部调节项,以有效减少与符号距离函数之间的偏差,从而避免了对水平集函数进行周期性重新初始化的问题。具体来说,文献[6]考虑了如下的能量表达式:E(φ) = μP(φ) + Em(φ) \quad (1),其中各项参数分别代表...
-------------------------------------------------------2
是图像区域Ω上的水平集函数φ的内部能量泛函,衡量了该函数与符号距离函数之间的偏离程度,并用于纠正这种偏差,其中参数μ>0为其加权系数;外部能量泛函Em(φ)则定义如下: Em(φ)=λ∫∇δ(φ)·∇φ dx dy +ν∫∇−φ dx dy (3)
----------------------3
其中λ>0以及v是常数。δ(x)与H(x)分别代表一维Dirac函数和Heaviside阶跃函数。g(s)定义为速度截止函数。g(s)=(1+s²)^{-1},
I(x,y)表示图像函数。
基于能量泛函E(φ),通过对该泛函求其极小值来推导出描述控制水平集演化过程的偏微分方程:
为了解决上述方程的数值求解问题,在文献[6]中应用了式(5)定义的一个规范化形式化的Δε(x),替代了传统的广义函数理论中的Δ(x),同时采用了较为简便的有限差分方法,并且允许选择一个相对较大的时间增量Δt(如Δt=5.0)。
在传统方法中, 水平集函数φ 通常需要初始化为符号距离函數.與之相比, 文獻[6]提出的方法无需對水準函數進行週期性 初始化,並且要求的 initialized條件也不是嚴格的 symbol distance函數. 文獻[6]采用了特定类型的 initial函數來实现这一目標
(6)
其中,ω是Ω的开子集,ρ>0 是常数.
1.2 进一步分析
在传统的几何活动轮廓模型中, 水平集函数在整个演化过程中始终维持接近符号距离函数的状态(尤其是在零水平 集的周围),这有助于确保水平集演化的稳定性以及结果的有效性. 我们知道符号距离函数具有如下的特性[8]
- 满足|∇φ|=1;
对于所有满足|∇φ|=1 的单位梯度场φ来说, 它们都可以唯一地表示为某个参考符号距离函数加上一个全局常数.由此可知, 内部能量泛函P(φ)度量地评估了基于水平集方法构造的距离场偏离理想符号距离的程度.通过对其最小化处理, 可以有效抑制这种偏差的发生, 从而避免了在演化过程中需要反复重新初始化的问题.
水平集演化的本质在于通过图像特征引导演化曲线朝着能量泛函极小化的方向发展。外部能量泛函Em(φ)极小化的结果表现为:首先,在影响零水平集的加权长度Lg(φ),使其朝着极小化方向发展;其次,在影响加权面积Ag(φ),使其在v>0时收缩或v<0时扩张;此外,在这一过程中,零水平集能够逐步平滑,并减少尖锐点、拐角和奇异点。
在距离保持水平集方法中, 权系数v扮演着至关重要的角色.一方面,其符号决定了零水平集的演变方向, 并使零水平集收敛于正确的目标边界:当初始曲线包围目标物体时, 零水平集应向内部收缩,从而要求权系数v必须大于0;相反地,如果初始曲线位于目标物体内部或外部,则相应地需要零水平集向外扩张(内部收缩),这要求权系数v小于0.另一方面,由于权系数v是一个常数,
可以看出调整权系数 v 会影响停止速度函数的幅度大小,在一定程度上它决定了零水平集捕捉目标物体多层轮廓的能力。这一现象得到了验证:当v = 1.5时,零水平集仅能识别外部边缘(如图2(c)所示);而当v = 6.5时,则能够识别部分内部边缘但仍存在外部边缘泄露(如图2(d)所示)。
下面,我们深入探讨距离保持水平集方法的一些局限性.首先,该方法缺乏方向性和大小上的自适应性.权系数v不仅决定了零水平集的演化方向,还调节了停止速度函数的幅值.然而,由于v被预先设定为常数,导致整个演化过程缺乏对方向和大小的自适应调整能力.这种缺陷极大地限制了该方法在复杂问题求解中的灵活性:一方面,一旦确定v的方向性(即v的符号),活动轮廓只能向单一方向演化(单方向运动流),这就要求初始化曲线必须将目标物体包裹或置于其内部/外部位置;否则将会产生错误边界或无法提取任何边界.另一方面,由于v大小在零水平集演化过程中始终无法自适应调整,导致零水平集难以在捕捉图像多层轮廓的同时避免边界泄漏.图2所示实例表明:当|v|较小时,仅能提取物体外轮廓;而当|v|较大时,虽然部分内轮廓被提取,但会导致外边界泄漏.其次,停止速度函数g(s) = (1+ s² )−1收敛至0的速度过于缓慢,容易导致弱边界处出现边界泄漏现象.我们知道,在几何活动轮廓模型中,演化曲线若能在目标边界处停下(即停止速度函数控制下的收敛速度近似为0),则能有效抑制边界泄漏[2].然而,实际情况下目标边界处梯度通常并非无限大(尤其是在弱边界上),因此很难保证停止速度函数收敛速度足够小以避免边界泄漏现象.特别是在弱边界区域时,可能反而出现较大的收敛速度而导致泄漏问题.第三,正则化Dirac函数的选择存在不足.Dirk 函数δ(x)的存在使得演化方程仅作用于局部区域(即局部作用域).文献[6]采用正则化Dirac 函数δε(x)(支撑集为[−ε ε])来替代Dirac 函数δ(x).然而这种正则化形式具有有限支撑域的特点(即局部作用域),因而演化方程仅影响零水平集周围少量水平面而不影响全局区域的变化情况.这可能导致演化曲线陷入局部极小状态而无法探测出物体内外轮廓以及深度凹陷区域等细节特征;此外还可能使算法无法有效识别多目标物体间的边界
2 自适应距离保持水平集演化及数值实现
2.1 自适应距离保持水平集演化
在距离保持水平集方法中,权系数v 是一个常数,这使得模型缺乏方向和大小的自适应性.为了解决这一问
题,我们考虑引入可变权系数,它需要满足两个条件:1) 能够根据图像信息自动改变正、负符号,使零水平集能够
自适应地选择其运动方向,从而克服对初始位置的依赖性;2) 能够根据图像信息自动改变大小,从而使零水平
集有足够的能力捕获多层轮廓而又不致边缘泄露.
基于以上考虑,本文如下定义可变权系数:
v(I ) c sgn( Gσ I ) Gσ I = ⋅ Δ × ∇ × (7)
其中,I(x,y)为图像函数,sgn(⋅)是符号函数,Gσ是标准差为σ 的高斯滤波器,∇Gσ×I 是图像经过高斯滤波后的梯度,
ΔGσ×I 为Laplace 算子作用于高斯滤波后的图像的结果,c>0 是常数.
下面,我们对可变权系数v(I)作一些分析.
-
在图像内的边界处,二阶导数有一个非常重要的性质,即目标边界两侧二阶导数值符号相反.根据这个性质,对于活动轮廓在目标物体外的部分,有ΔGσ×I>0, sgn( Gσ I ) 0 Δ × > ,v(I)>0,从而引导零水平集向内朝着目标物体演化,同时,对于活动轮廓在目标物体内的部分,有Gσ I 0 Δ × < , sgn( Gσ I ) 0 Δ × < ,ν (I ) < 0 ,引导零水平集向外朝着目标物体演化.这就是说,零水平集能够根据当前位置自适应地决定向内还是向外运动,从而完全摆脱了演化曲线对初始位置的依赖,可以在任何位置定义初始曲线.
-
权系数v(I)的大小是由图像梯度决定的,因此,它能够依据图像信息自适应地调整大小.当零水平集运动
到目标边缘附近时,梯度的模较大,导致v(I)的绝对值也较大,这极大地提高了零水平集检验多层轮廓的能力,以
及对深度凹陷区域与多目标物体边缘的捕获能力. -
在某种特定环境下,我们可能对目标物体的轮廓或细节需求不一样,式(7)中引入系数c 就是用来控制不
同环境对目标边缘的不同需求,如果需要提取多层轮廓或者较弱的边缘,可适当提高c 的取值,一般在1.8~5 之
间(后文图6(b)),但对噪声的敏感性相应增加;如果仅需要单层轮廓或者图像中一些主要目标的轮廓,则取较小
的c 值,一般在1.0~1.8 之间(后文图6(c)),但对噪声的敏感性相应减弱.
基于上面的分析,本文定义的能量泛函如下:
其水平集形式为
其中, k = div(∇φ / ∇φ )为演化曲线的曲率.
2.2 数值实现
因为函数δε(x)的支集为区间(-∞,+∞),所以方程(9)对整个水平集函数产生影响并导出了能量泛函的全局极小值这一结果显著提升了零水平集检测多层轮廓的能力以及捕捉深度凹陷区域和多目标物体边界的能力.本文实验中取ε=1.5.初始水平集函数设定与文献[6]中的定义一致(见式(6))并且参数ρ设定为4并对图像边界进行了镜像反射处理.采用中心差分方法方程(10)的空间离散形式即为
其中, ( k, )
L φi j 为方程(10)右边的差分离散形式.本文算法是根据式(12)实现的.
