- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于LevelSet方-北京大学计算机系图形与交互技术试验室
基于Level Set方法的曲线演化
杨猛,汪国平,董士海
(中国科学院计算技术研究所智能信息处理开放实验室,北京 100080)
(北京大学计算机科学技术系,北京100871)
摘要:
Level Set Method是一种描述曲线以曲率相关的速度演化的有效方法,最近几年在医学图像处理、自然现象的模拟以及计算机视觉等领域得到了广泛的应用。本文给出了一种平滑Level Set 距离函数的简单方法,该方法只采用内插值的方式,消除平面上的全部孤立点及部分可能产生歧义的点。在允许存在部分冗余点的情况下,利用曲线轮廓跟踪算法得到平面上所有曲线的轮廓。
关键词:Level Set Method,Hamiton-Jacobi 方程,曲线演化,Narrow Band Level Set 方法,PDE Based Fast Local Level Set Method,轮廓跟踪。
1 概述:
Level Set Method是 Sethian 在研究曲线以曲率相关的速度演化时提出来的[1],用于描述曲线(或曲面,以下对于曲线的讨论均适用于曲面,故略去曲面)的演化过程。Level Set 方法的基本数学思想是将当前正在演化的曲线看作是一个更高维函数的Level Set,借用双曲守恒定律的计算方法,利用曲线演化与Hamilton-Jacobi 方程的相似性,给出了一种曲线演化的强鲁棒性的计算方法。
自从Osher 和 Setian [1] 在1988年提出Level Set 方法以来,该方法已经在图像处理[2,8]、晶体生长[3]、流体的模拟[4]以及计算机视觉[5,11]等领域得到了广泛的应用。尤其是在基于图像的建模方面,Faugeras 提出了一种利用曲面演化恢复物体几何模型的方法[5],可以很好地恢复漫反射物体的三维模型。采用与 Faugeras类似的方法,我们在将 Level Set 方法应用于IBM(Image Based Modeling)时,发现了一些与 Level Set 相关的问题,本文讨论了其中的两个核心问题—曲线轮廓跟踪和曲线平滑。
Level Set 方法区别于其它曲线演化方法的最大优势就在于它的稳定性以及拓扑无关性。曲线在演化过程中,可能会产生尖点、断裂为多条曲线或者两条或多条曲线融而为一。Level Set 方法能有效的处理这些情况。但正如Sethian 在[1]中指出的,Level Set 方法的一个缺点就是它的计算量太大,因为它将二维的问题扩展到三维、三维的问题(曲面演化问题)扩展到了四维,维数的扩展增加了计算复杂度,平面曲线的演化算法的计算复杂度为O(N2),三维曲面的计算复杂度为O(N 3)其中N是将平面(或空间)均匀离散成网格点后,水平方向的网格点数目。
为此,Sethian提出了窄带(Narrow Band)Level Set 方法[9],这种方法的基本思想是在曲线的周围建立一个自适应的窄带(见图2),每次演化时,只更新窄带内的网格点的函数值。在演化过程中,为防止曲线的点跨越窄带,需要存储窄带的内外边界,当曲线上的点接近内外边界时,再重新建立一条以当前曲线为中心的,宽度为k的窄带,Sethian 将这一步称为重新初始化(Reinitialize)。通过这种方式,可以将计算复杂度降至O(Nk),其中k 是窄带的宽度。
在窄带方法中,核心的内容是窄带的动态更新以及距离函数的重新初始化过程。Sethian 的重新初始化过程需要首先取得曲线的拓扑表示,而由于无论采用何种方式更新距离函数,都会带来误差,所以在寻找曲线轮廓前,必须对离散网格点的距离函数进行平滑。Sethian 采用内、外插值的方法进行平滑,能够消除所有的歧义点(距离值不精确的点),但耗时较长。Peng [10] 提出了一种基于 PDE 的快速局部 Level Set 方法(PDE Based Fast Local Level Set Method),Peng 的方法不需要得到曲线的显式表示,只需要利用局部网格点的距离函数值,就可以重新估算各点距曲线的最短距离,所以该方法得到了很多应用。但是这种方法对曲线演化的速度有限制,要求每次演化,曲线上点的运动速度不会超过一个网格点。
Level Set 方法要求平面上所有的点(或窄带内的点)都有运动速度,但在一些实际应用中[5,11],只有曲线上的点才有演化速度,并且运动速度可能并不仅仅与曲线的曲率有关,有时[5]必须取得曲线的显式表示才能计算点的运动速度,然后将曲线上点的速度扩展到整个平面(或窄带内),所以平滑算法与曲线轮廓跟踪算法的好坏直接影响曲线演化的效率。
本文的平滑算法与 Sethian 的方法的不同之处在于,只采用内插值的方式,消除所有的孤立点(关于孤立点的定义,见下文)和引起歧义的外部
原创力文档


文档评论(0)