活动轮廓模型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.参数活动轮廓模型
Snake模型首先需要在感兴趣区域的附近给出一条初始 曲线,接下来最小化能量泛函,让曲线在图像中发生变形并 不断逼近目标轮廓。Snake模型中的变形曲线可用参量表示:
v( s ) [ x( s ), y ( s)], s [0,1]
其能量泛函表示如下:
Esnake 1 dv d 2v ( s ) ( s) 2 0 2 ds ds
v( s ) v( s) Eext ( x, y ) 0
将变形曲线 v( s) 视为时间t的函数,上式可转变为如下梯度下 降流
v v( s ) v( s) Eext ( x, y ) t
这是一个偏微分方程(PDE),通常可采用有限差分法(finite differential method)进行求解。 参数活动轮廓模型从算法实现上看,可分为4步:即构造能量 函数、推导欧拉方程、离散化和迭代求解。 Snake模型也存在几个问题: (1) 分割结果对初始曲线的位置和形状较为敏感; (2) 难以分割凹陷区域处的目标; (3) 容易收敛到局部极值点; (4) 不能灵活地处理曲线拓扑结构的变化。
通过分离变量法求出方程的全积,即按照对时间项 t 和空间 项(将图像按像素进行网格化)分开处理的方法对此类方程进 行数值求解。 通常情况下,一个典型的水平集方法应包括如下三个部分 1) 一个(超)曲面的隐式数据表达; 2) 控制曲线运动的偏微分方程(组); 3) 相应的数值求解方案。
3.水平集函数的初始化
水平集方法的实质就是求解一个随时间变化的偏微分方 程,而数值计算的一个重要的步骤就是给出演化方程的离散 形式。由于水平集方法在演化过程中始终保持为一个有效函 数, 因此可以使用离散网格的形式来表示水平集函数 ( x, y, t ) 。 则在n时刻网格点 (i,j) 设离散网格的间隔为h, 时间步长为 t , 处的水平集函数 (ih, jh, nt ) (可缩写为 ijn ),则演化方程可离 散化为:
两方面,一方面因为曲线的隐式表达与它的符号距离函数 是等价的,另一方面从数值计算的角度来说,由于符号距 离函数的梯度 | | 1 ,因此可以保证离散网格的大小为1, 使得数值计算具有较高的精度。
综上所述,在水平集开始演化之前,把水平集函数初始 化为SDF函数。 设 C (t 0) 初始曲线,则零时刻的水平集函数为:
持轮廓连续性和平滑性的作用。第三项代表外部能量,也被 称为图像能量,表示变形曲线与图像局部特征吻合的情况。 一般外部能量可取:
Eext (v( s )) I ( x, y ) 或 Eext (v( s )) G I ( x, y )
2 2
其中 G 是标准差为 的高斯核函数。 对上面的能量泛函使用变分法可得到 Euler-Lagrange方程:
1 2 2
1 ds Eext (v( s ))ds 0
其中 ( s)(弹力系数) 用于控制活动曲线以较快或较慢的速度 进行收缩,一阶导数表示轮廓的斜率,用来控制着轮廓的连 续性; ( s) (强度系数)用于控制活动曲线沿着法线的方向 向目标变化的速度。二阶导数表示轮廓的曲率,用来控制着 轮廓的弯曲程度。能量泛函的前两项代表内部能量,起到保
C 0 t t
(3)
其中 为 的梯度。 设s是C的弧长参数, 根据曲线演化理论和水平集函数的定义,
沿着C切线方向的变化量
0 0 ,即 s
x y C , x s y s s
C ,即 和法线同一方向,如果 s
dC d 2C T, 2 N dp dp
(1)
在图中T和N是相互垂直的,,所以平面上任何曲线都可以用
曲线上任何一点的T和N的线性组合来表示。在这里引入时间 变量t,则曲线随时间t的演化方程可用如下偏微分方程来表 达:
C T N t
其中 和 分别是速度函数在切线方向和法线方向的分量, 由 于曲线在切线方向上的运动,不会改变曲线的形状和几何属 性。.因此在其体实现时可以只考虑曲线演化在法线方向上 的运动。设 N 是单位法向矢量,则曲线演化方程可改写为:
由上式可知 垂直于切线
规定 在零水平集内为负值,在外为正值,则水平集曲线的内 单位法向矢量为:
N
将上式和(2)式
C C FN 代入(3)式 0 ,可得如 t t t
F | | t
下的水平集演化方程:
(4)
从上式可知水平集方法的实质就是求解一个随时间变化 的偏微分方程,该演化方程属于Hamilton-Jacobi方程,可以
因此,离散化的演化方程可改写为
ijn 1 n t (max( Fijn , 0) min( Fijn , 0) )
(5)
式中 和 可分别表示如下:

S
求极限可得

d dS
则在曲率演化方式下,曲线的演化方程可使用如下的偏微分 方程表示:
C N t
其中 是一个常数。在曲率的作用下,任意形状的封闭曲线 在上式的驱动下都会变得平滑, 常量演化方式下的曲线演化方程为:
C V0 N t
其中 V0 是一个常数。在上述方程的驱动下,较为光滑闭合曲 线会产生尖角,且有可能会发生拓扑结构上的变化即分裂或 合并。
一般来说,为了确保数值计算的精度,水平集函数应具 备如下两个性质: (1) 水平集函数必须具有一定的光滑性。水平集演化方程
(4式) 可以得知, 演化时需要计算水平集函数的梯度 | | , 而梯度对数值变化是非常敏感的。且大部分方法中的速度 函数F都会包含有常数项和曲率项,曲率项在数值求解时 需要计算水平集函数的二阶导数,而常数项也要计算一阶 导数。因此水平集函数的光滑性将会直接影响到水平集函 数的计算精度。 (2) 水平集函数应保持为符号距离函数(SDF)。原因有
二.水平集方法的基本理论
与参数活动轮廓模型不同,水平集方法是几何活动轮廓
模型,在水平集方法中曲线的运动过程是基于曲线的几何度 量参数(如曲率和法向矢量等)而非曲线的表达参数。它能够 较好的克服Snake模型的许多缺点。
1.曲线演化理论
曲线演化理论主要利用曲线的单位法向矢量和曲率等几 何参数来研究曲线随时间的变化。其中,单位法向矢量描述 了曲线的运动方向,而曲率则表述曲线弯曲的程度。 曲线演化问题可以描述为:在二维欧式空间 R 2 中的一条 光滑闭合的曲线沿着其法线方向以一定速度运动,形成以时 间为变量的一簇曲线的过程。把曲线演化理论应用在图像分 割上,就是把分割过程近似的看作图像平面上闭合曲线在各 种因素作用下运动的过程。 假设 C C ( p) 一条光滑封闭的曲线,是任意的参数化变 量,设 表示曲率,T 表示切线, N 表示法线,则有如下关系 存在:
C FN t
(2)

其中F是曲线的速度函数, 决定了曲线C上每一点的运动速度。
关于速度函数F有很多表达方式.较为常见的是曲率演化 和常量演化。 曲率就是针对曲线上某个点的切线方向角对弧长的转动 率,曲率越太则曲线的弯曲程度越大,如下图设 M 0 是基点, 在点 M 和 M 之州的弧长为 | S | ,则弧段 MM 平均曲率为:
ijn 1 ijn
t Fijn ijijn
其中 Fijn 表示n时刻速度函数在网格点(i,j)处的值。对于 上式,可采用有限差分法进行求解。 首先定义一阶中心差分、一阶向前差分和一阶向后差分
六个算子如下:
x0
1 1 0 (i 1, j i 1, j ) y (i , j 1 i , j 1 ) 2h 2h 1 1 x (i 1, j i , j ) y (i , j 1 i , j ) h h 1 1 x (i , j i 1, j ) y (i , j i , j 1 ) h h
sign( x, y, C (t 0)) 1 。 dist ( x, y, C (t 0)) 表示点(x,y)到初始曲
线 C (t 0) 的最短距离。。因此计算SDF函数包括两个步骤: (1) 判断点在初始曲线的内部还是外部; (2) 计算点到初始曲线的最短距离。
4. 水平集方法的数值计算
活动轮廓模型
活动轮廓模型(或者说基于能量泛函的分割方法)包括 以Snake模型为代表的参数活动轮廓模型和基于水平集方法 的几何活动轮廓模型(常被称为水平集方法) 活动轮廓模型的基本思想是使用连续曲线来表达目标轮 廓,并定义一个能量泛函使得其自变量包括曲线,将分割过 程转变为求解能量泛函的最小值的过程,数值实现时可通过 求解函数对应的欧拉(Euler-Lagrange)方程来实现, 当能量达 到最小时的曲线位置就是目标轮廓所在。
水平集就是曲面上函数值为0的所有点的集合。如下图所示:
t0 时刻的曲面 ( x, y, t0 )(水平集函数) 在 z 0 切面上的虚线 (零
水平集)即为隐含的曲线。因此在处理曲线的演化问题时,
水平集方法遵循一定的演化规律(即水平集演化方程),来 不断地更新水平集函数。使得零水平集发生变化,从而达到 演化隐含在水平集函数中的闭合曲线的目的。 下面从从数学的角度给出水平集方法与曲线演化理论之 间的关系。给定水平集函数 (C , t ) ,则t时刻演化的曲线 C (t ) 为 其零水平集 (C (t ), t ) 0 ,根据复合函数求导法则对 (C (t ), t ) 0 进行求导可得:
y f ( x) 0 来描述,此时若设
( x, y ) y f ( y )
则 ( x, y ) 0 就是曲线的隐式表达式。如下图:
引入时间变量 t 后,曲线的演化形成了随时间变化的曲线族
C (t ) ,可以把曲线族看作是更高维空间曲面函数 的零水平集
{ 0, t} ,此时 ( x, y, t ) 即被称为随时间变化的水平集函数,零
( x, y, t 0) sign( x, y, C (t 0)) dist ( x, y, C (t (t 0)) 是一个取值为+1或-1的符号函数, 如果点 ( x,y ) 在 C (t 0) 的 外 部 , 则 sign( x, y, C (t 0)) 1 , 在 内 部
图:曲率演化方式和常量演化方式的对比
曲线演化理论用在图像分割中最为关键的一步就是将图 像的特性引入到曲线演化方程中,从而使得演化曲线能在收 敛的情况下停留在目标轮廓上。水平集方法正是为了解决这 一问题。
2.水平集方法
水平集方法的主要思想是:将移动变形的曲线作为零水 平集嵌入到更高一维的函数中,由封闭超曲面的演化方程可 以得到函数的演化方程,而嵌入的封闭曲线总是保持为函数 在零水平截面上的点集,最终只要获得演化函数在零水平截 面上点集的位置,即可得到移动变形曲线的演化结果。 水平集方法一个重要的理论前提是隐函数的概念,在曲 线演化理论中引入水平集的目的就是为曲线提供一种隐式表 达方式,从而避免参数化这种显式表达。隐式表达有着明显 的优点。(比如,几条曲线在运动中合并成一条曲线,或一条 曲线分裂成若干条曲线,这样的拓扑结构变化不可能用一条 连续的参数化曲线的运动来表示,但是曲线的拓扑结构变化 却可以表示成一个连续变化的曲面与一个固定的平面的交线 的变化,曲面本身可以不发生拓,从而使得复杂的曲线运动 过程变为一个更高一维的函数的演化过程。) 假设二维平面上的曲线由 y f ( x) 表示,该关系也可以用
相关文档
最新文档