水平集图像处理入门 (A TUTORIAL OF LEVEL SET FOR IMAGE PROCESSING) 冯向军(FENG XIANGJUN) 05/29/2006 [内容提要]:本文简明扼要地阐明了水平集技术的基本概念、基本思想、基本方法和基本技术通过展示水平集去噪的机理和实效,使读者不难对水平集技术实用于图像处理有个真切的体会本文可供图像处理专业的大学生、研究生参考附录给出了水平集技术的关键细节:曲率和梯度计算的一个MATLAB程序 Abstract ---In this report, the basic concepts, basic thought, basic methodology and basic technology of level set technology for image processing were briefly introduced. Undergraduate students and graduate students related with image processing may take this report as a reference. 一、水平集的定义 [1]与实数c对应的可微函数的水平集是实点集 {(x1, x2, ...,xn) | f(x1, x2,...,xn) = c} 称可微函数f为水平集函数。
[举例] 函数 对应于常数c的水平集是 以(0,0,0)为球心,sqrt(c) 为半径的球面 当 n=2, 称水平集为水平曲线(LEVEL CURVE) 当 n=3, 称水平集为水平曲面(LEVEL SURFACE) 二、水平集图像处理的核心思想 水平集图像处理的核心思想是把n维描述视为高一维(n+1)维的水平集,或者说是把n维描述视为有n维变量的水平集函数f的水平集.这样一来就把求解n维描述的演化过程转化为求解关于有n维变量的水平集函数f的演化所导致的水平集的演化过程其要害是通过这种转化,引入了变中的相对不变:水平集函数f的水平c不变我们把这种变中的相对不变叫做泛对称引入了泛对称,就引入了规律,而引入了规律就能推演出水平集在此规律下依各种具体条件而演化的具体演化方程也即是说,引进了泛对称这一规律,我们就有了从一般到特殊的演绎过程的出发点和依据这种思想方法的实质是以关系来决定对象 三、水平集图像处理的奠基性工作 水平集图像处理的奠基性工作包含在下列论文之中 Osher & Sethian ('Fronts propogating with curvature-dependent speed:Algorithms based on Hamilton-Jacobi formulations', Journal of Computational Physics 79, 12-49, 1988) 以下是开创人之一STANLEY OSHER的样子 [4]四、水平集图像处理的基本方程 考虑零水平集x(t)所对应的水平集函数 ,则有 (4-1) 对方程(4-1)两边求关于时间的偏导数,有 (4-2) 假设F为外法向方向的速度,那么 这其中 因此,我们便得到基本方程式 (4-3) 除此基本方程式以外,还有其它一些方程式,它们都能从方程(4-1)推导出来。
基本方程式式(4-3)是水平集函数及相应的水平集在法向力F的推动下的演化方程 国内外有很多人介绍水平集图像处理的思想时一般都太偏向技术层面,没有看到这思想的实质:以极为普遍的关系:泛对称来决定对象通过上述简单推导,读者诸君不难看出这水平集图像处理的精神实质 五、一般性算法 水平集图像处理的这种思想方法直接形成了一种一般性算法 (1)设定水平集函数的初态; (2)确定动力F的形式; (3)按基本方程推演水平集函数的各状态; (4)对于每一水平集函数的状态求解零水平集 尽管具体技术细节千变万化,水平集图像处理的算法万变不离其宗,都是围绕上述 一般性算法而展开的 六、水平集技术去噪的机理[2] 所谓水平集技术,就是利用水平集的概念和将求解n维描述的演化转化为求解由于具有n个实变量的水平集函数的演化而导致的水平集的演化这么一种思想方法来达到某种实用目的的技术水平集技术可用于图像去噪其机理如下 图6.1 简单曲线 图6.2 不太简单的曲线 图6.3 不简单的曲线 图6.1-6.3给出了曲线的三种类型:简单曲线、不太简单的曲线,不简单的曲线。
我们所感兴趣的是简单曲线通俗地说,所谓简单曲线即是无交叉点的曲线 简单曲线在曲率力的驱动下演化具有一种非常特殊的数学性质所谓曲率力就是绝 对值与曲线的曲率成比例,而符号与曲率的符号相反的力 F= -bK (6-1) 这其中 K为曲率,而b为比例系数 三维曲面的曲率可分为平均曲率和高斯曲率位于p点的曲面之法截面其曲率叫做法曲率法曲率的最大值k1和最小值k2叫做主曲率高斯曲率Kg是两种主曲率的乘积,而平均曲率Km是两种主曲率的算术平均值 高斯曲率 Kg = (k1)(k2) (6-2) 平均曲率Km = (k1+k2)/2 (6-3) 二维由隐函数 g(x,y) = 0 所决定的曲率则可表达为[5] 曲率有正有负,于是在法向曲率力的推动下,曲线的运动方向之间有所不同: 有些部分朝外扩展,而有些部分则朝内运动这种情形如下图所示图中蓝色箭头处的曲率为负,而绿色箭头处的曲率为正 简单曲线在曲率力的驱动下演化所具有的一种非常特殊的数学性质是: 一切简单曲线,无论被扭曲得多么严重,只要还是一种简单曲线,那么在曲率力的 推动下最终将退化成一个圆,然后消逝。
这是微分几何中的一个著名定理正是因为有这种奇特的数学性质,才使得水平集技术用于去噪有了坚实的科学基础 大家可以看看下面的关于这一数学性质的演示录像[2]http://math.berkeley.edu/~sethian/Movies/Moviecurvcollapse.mpeg 七、我对水平集去噪机理的MATLAB仿真 我对水平集去噪机理用MATLAB进行了一系列仿真 7.1 假设水平集函数为 对于y > 0; 对于y <= 0. 我对该水平集函数在平均曲率驱动下的零水平集的演化进行了仿真,其结果如下图所示从图中可见,在曲率力的驱动下,半圆逐渐变形、变小,最终归于消逝7.2 三维哑铃零水平集在平均曲率驱动下的演化过程 从图中可见,在平均曲率力的驱动下,作为零水平曲面的三维哑铃逐渐形变、变小,最终归于消逝7.3 三维哑铃零水平集在高斯曲率驱动下的演化过程 从图中可见,由图中可见,在高斯曲率力的驱动下,作为零水平曲面的三维哑铃也逐渐形变、变小,最终归于消逝但是其变化过程似乎要慢一些八、用水平集技术去噪的一个实例 将图像本身的灰度信息作为水平集函数。
让此水平集函数在曲率力作用下运动,即可实现去噪下图是我用MATLAB仿真的结果这个结果还可以进一步改进 九、结语本文是一个关于用于图像处理的水平集技术的入门讲座文中注重水平集技术的来龙去脉、基本概念、基本思想、基本方法和基本技术参考文献[1] http://mathworld.wolfra http://math.berkeley.edu/~sethian/Movies/Moviecurvcollapse.html[3]http://barissumenge。