DRLSE 水平集算法总结
背景:
Level Set方法是美国数学家Osher(加州大学洛杉矶分校)和Sethian(加州大学伯克利分校)合作提出的。后者因为对Level Set的贡献获得了去年美国数学会与工业应用数学会联合颁发的维纳奖。遗憾的是这两位Level Set的开创者现在正为争夺Level Set的名誉而对簿公堂。
年文章"Front Propagation with Curvature Depedent Speed: Algorithms Based on Hamilton-Jacobi Formulation"中第提出的。这个方法提出以后被成功地应用于流体力学,计算机图形学,材料科学等领域。应用于图像处理和计算机视觉始于93年Caselles等人和95年Malladi等人的两篇著名文章。他们用Level Set来表示Snakes,想法很简单:一个平面上的曲线可以表示成一个二元函数z=f(x,y)的零点集合(Zero Level Set),既这个二元函数z=f(x,y)所表示的三维曲面与xy平面的交线。更一般地,任何N维曲面都可以表示为一个N+1维曲面与一个N维超平面的交集,或称为N+1维曲面在一个N维超平面上的投影。相对最早的Snake(用参数化的曲线,所以也叫parametric active contour),用level set表示的活动曲线叫着Geometric Active Contours。
用二维曲面与二维平面的交线表示曲线,这在微积分甚至中学数学里都是很平凡的。但是,当我们要描述曲线运动的时候,用Level Set表示曲线就有很明显的优点。比如说,几条曲线在运动中merge成一条曲线,或一条曲线分裂成几条曲线,这样的拓扑变化是不可能表示成一条连续的参数化曲线的运动。原因很简单,一条连续的参数化曲线是用一个一元连续函数来卞表示的,它显然不能表示几条分开的曲线(这与连续性矛盾)。
然而,以上所说的曲线的拓扑变化却可以简单地表示成一个连续变化的的曲面与一个固定的平面的交线。这个曲面本身可以不发生拓扑变化,它可以始终是一个连续的二元函数z=f(x,y)的图象。这样,复杂的曲线运动就可以简单地表示成一个更高一维的函数的演化,这可以用一个发展方程(evolution equation)来描述,数学里已经有很多工具可以用了。
再接着说说level set吧。我这次参加CVPR,遇到很多人都说level set很难。我甚至还听说有个做snake很有名的教授对level set很反感。说实话,我在去年开始实现别人的level set方法时,也对level set越来越讨厌。原因是:现有的level set方法实现跟理论不一致(这在Gomes和Faugeras的文章里已经指出),需要搀杂不少remedies,比如最令人讨厌的re-initialization。还有一些步骤,比如velocity extension,都不是让人赏心悦目的东西。这些步骤就象长在人身上的赘肉或瘤,也许是良性的,但总是让人看着极不舒服,甚至怕它恶化。
但是,还是有些人能把这样复杂而且不是那么优美的方法实现出来,而且用得不错,具有其它很多方法不具备的优点,比如让曲线自然地split和merge。象任何一种理论和方法一样,尽管有缺点(比如re-initialization),但毕竟大家还是看到了它的巨大潜力。所以这还是成为一个很热的研究方向。
图像分割问题:
偏微分方程图像分割:
年发表的论文,Snakes:Active contour models 在图像分割领域影响深远。该模型将图像分割问题转化为一个能量泛函极小值问题。通过变分法,将泛函极值问题转化为对偏微分方程的求解。然后把偏微分方程的极小解作为图像分割的结果。目前,偏微分方程的分割方法主要有参数活动轮廓模型和几何活动轮廓模型。
levelset方法:
Level Set方法的基本思想是将平面闭合曲线隐含地表达为二维曲面函数的水平集,即具有相同函数值的点集,通过Level Set函数曲面的进化隐含地求解曲线的运动.尽管这种转化使得问题在形式上变得复杂,但在问题的求解上带来很多优点,其最大的优点在于曲线的拓扑变化能够得到很自然的处理,而且可以获得唯一的满足熵条件的弱解.
结合:
几何活动轮廓模型与水平集的结合的曲线演化方法。
该方法利用高维函数曲面,来表达低维的演化曲线或曲面,即,将演化的曲面或曲线嵌入到高维函数表示的曲面中。将演化方程转化为高维水平集函数的偏微分方程。从未避免参数化过程。故,水平及方法将几何活动轮廓模型的演化转化为,水平集函数的偏微分方程的表达式的,数值解的过程。
基本理论: just plain easy to understand: there is a surface, it intersects a plane, that gives us a contour and that's it. With image segmentation, the surface is updated with forces derived from the image.
符号距离函数的重新初始化:
finet=sgn(fine0)(1-|deltafine|);
fine(x,0)=fine0;
目的:数字纠错
重新初始化:迭代fine符号距离函数
速度函数:水平集方法进行边界轮廓提取的关键是根据实际问题的需要选取合适的速度函数F,F一般为与图像相关的项(梯度信息)以及与轮廓曲线的几何形状有关的项(曲率)的函数

其中,F表示曲线上各点的演化速度,方向沿着曲线的法线方向,通常与图像梯度和曲线曲率有关。我们想要分析和计算的是在速度F的作用下,曲面随后的演化情况。从式(2)可以看出,只要速度F变化平滑,则妒(菇,Y,t)始终保持是一个光滑函数,零水平集始终与运动曲面相对应,曲面的拓扑变化可以很容易地描述。对于不同的分割模型,速度F表达式也不相同,从而出现了多种基于水平集的图像分割方法。另外,可以看出式(2)对任意维数的曲面演化都适用。曲线的几何特性也可以很容易地从水平集函数妒(髫,,r,t)得出,譬如,曲线C上各点的

限差分法,梯度:求导
MS-MUMFORD-SHAH模型:
包括对区域和边界的描述
H是Hausdorff测度:H0表示点数,H1:表示长度,H2:表示面积

其中第一项称为数据项或忠诚项,保证近似图像u 保留观察图像I 的主要信息;第二项称为近似图像的正则项,保证图像的光滑性,在观察图像有噪声时,正则项有去除噪声的作用;C 表示目标轮廓的长度;α 、β 为非负常数,平衡各项在能量中的权重。由于Mumford-Shah 能量泛函难以求解,许多学者给出了近似模型,最简单的是Chan 和Vese 提出的两相分片常数能量泛函:

不需要重新初始化的
DRLSE 水平集算法总结的更多相关文章
- 并查集算法Union-Find的思想、实现以及应用
并查集算法,也叫Union-Find算法,主要用于解决图论中的动态连通性问题. Union-Find算法类 这里直接给出并查集算法类UnionFind.class,如下: /** * Union-Fi ...
- 计划:怎样理解水平集方法 ITK Level set V4 框架介绍
简易解释:在曲面中插入一个平面所形成的轮廓,即是该轮廓的水平集表示,可见,该轮廓的水平集表示有多个.对于图像分割,在图像力的驱动下曲面进行更新. 轮廓的数学表达有隐式和显式两种表达.用曲面演化代替Fr ...
- 拓扑优化中SIMP方法与水平集方法有何优缺点,水平集法变换到高维,不是更复杂了
作者:周平章链接:https://www.zhihu.com/question/52008623/answer/187927508来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- Union-Find 并查集算法
一.动态连通性(Dynamic Connectivity) Union-Find 算法(中文称并查集算法)是解决动态连通性(Dynamic Conectivity)问题的一种算法.动态连通性是计算机图 ...
- hdu 1232 畅通工程(并查集算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 畅通工程 Time Limit: 4000/2000 MS (Java/Others) M ...
- apache server和tomcat集群配置三:水平集群下的tomcat集群配置
在jsp文件中加入以下代码,用来测试是否共享session: SessionID: <%= session.getId() %> 之前尝试在linux中,但是因为模拟环境是虚拟机,虚拟机只 ...
- 编译原理LL1文法Follow集算法实现
import hjzgg.first.First; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set ...
- 编译原理 LL1文法First集算法实现
import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap ...
- hdu 1213 How Many Tables(并查集算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1213 How Many Tables Time Limit: 2000/1000 MS (Java/O ...
随机推荐
- a标签中使用img后的高度多了4px
前两天,在做一个网站的时候,发现a标签中使用img后的高度多了4px,各种纠结. 最后,仔细分析,终于找到原因了,因为img是行内元素,默认display: inline; 它与文本的默认行为类似,下 ...
- 阿里巴巴的分布式应用框架-dubbo负载均衡策略--- 一致哈希算法
dubbo是阿里巴巴公司开发的一个开源分布式应用框架,基于服务的发布者和订阅者,服务者启动服务向注册中心发布自己的服务:消费者(订阅者)启动服务器向注册中心订阅所需要的服务.注册中心将订阅的服务注册列 ...
- 为IE单独写CSS的三种方法
本文由 Kayo Lee 发表,本文链接:http://kayosite.com/the-methods-make-css-only-for-ie.html 因为万恶的 IE 存在各种的不标准,因此, ...
- JS 回车提交
1.JavaScript 方法: <script> document.onkeydown=function(event){ e = event ? event :(window.event ...
- 【转】C#异步编程及其同步机制
C#异步编程及其同步机制 本篇文章涵盖一下几部分内容: 1. 什么是异步编程,为什么会需要异步编程 2. .NET下的异步编程及其发展 3. .NET线程同步机制及线程间数据封送 4. 异步模式 5. ...
- 理解C#系列 / 核心C# / 变量
变量 变量? 变量是对一个东西指定一个名称,变量的功能和人的名字差不多,提到名字就知道指的是什么. 变量类型? 变量类型说明了变量的类型,声明变量是一个整数,还是小数,还是字符,或是图像,或是人类,或 ...
- webSphere集群部署主要步骤
1.系统管理-节点,添加本机节点和另外一台机器的节点2.建立集群服务cluster,添加成员节点3.将应用部署到集群服务cluster4.将数据库源分别建立到节点作用域5.后续步骤参照安装手册 注意事 ...
- 9款完美体验的HTML5/jQuery应用
1.jQuery动画图标菜单导航 仿苹果样式 这次要分享的这款jQuery插件非常酷,它是一款带有动画按钮的jQuery菜单插件.而且从菜单的外观上来看,有点苹果菜单风格的味道.当我们将鼠标滑过菜单项 ...
- IOS,发短信,发邮件,打电话
今天把APP里常用小功能 例如发短信.发邮件.打电话.全部拿出来简单说说它们的实现思路. 1.发短信实现打电话的功能,主要二种方法,下面我就分别说说它们的优缺点.1.1.发短信(1)——URL // ...
- sql常用的星期方法
sql常用的星期方法: SELECT convert(varchar(10),DATEADD(wk, DATEDIFF(wk,0,getdate()), 0),120) --本周开始周一SELECT ...