This shows you the differences between two versions of the page.
keynote:lesson08 [2014/05/22 16:34] |
keynote:lesson08 [2023/08/19 21:02] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | |||
+ | ====== 第八课 ====== | ||
+ | |||
+ | ====== 第一节 水平集(Level Set)的基本方法 ====== | ||
+ | |||
+ | |||
+ | ===== 水平集(Level Set)的基本方法-曲线演化的直观解释 ===== | ||
+ | |||
+ | * 映射$C(p), p\in [a,b] : R->R^2$定义了一个平面的曲线,$p$是参数,对属于区间$[a,b]$内的每一个$p_0$,我们得到曲线上的一点:$C(p_0)=[x(p_0),y(p_0))$ | ||
+ | * 正则曲线:如果{{:keynote:8-1.jpg|}} | ||
+ | 例:单位圆{{:keynote:8-2.jpg|}} | ||
+ | |||
+ | * 曲线的切线 | ||
+ | * 弧长参数 | ||
+ | * 如果曲线的参数满足{{:keynote:8-1-4.jpg|}} | ||
+ | p表示曲线上以某一点为标准的弧长{{:keynote:8-1-5.jpg|}}. | ||
+ | * 弧长. | ||
+ | {{:keynote:8-1-6.jpg|}}. | ||
+ | * 对弧长参数 | ||
+ | {{:keynote:8-1-7.jpg|}}. | ||
+ | * 曲率 | ||
+ | {{:keynote:8-1-8.jpg|}}. | ||
+ | * 假设T表示切线,N表示法线,则 | ||
+ | {{:keynote:8-1-9.jpg|}} {{:keynote:8-1-10.jpg|}}. | ||
+ | * Frenet公式 | ||
+ | {{:keynote:8-1-11.jpg|}} | ||
+ | |||
+ | |||
+ | ==== 水平集(Level Set)的基本方法-数学基础-曲线的微分几何 ==== | ||
+ | |||
+ | * 曲率的其他定义 | ||
+ | * 假设θ为切线T与x轴之间的夹角,则 | ||
+ | {{:keynote:8-1-12.jpg|}}. | ||
+ | * 隐式曲线的曲率 | ||
+ | {{:keynote:8-1-13.jpg|}} | ||
+ | | ||
+ | ==== 水平集(Level Set)的基本方法-数学直观 ==== | ||
+ | * 隐式曲线的法向量 {{:keynote:8-1-14.jpg|}}. | ||
+ | {{:keynote:8-1-15.jpg|}}. | ||
+ | * 因为切向量T和法向量N互相垂直,所以平面上任何曲线都可以用曲线上任何一点的T和N的线性组合来表示 | ||
+ | {{:keynote:8-1-16.jpg|}}. | ||
+ | === 水平集(Level Set)的基本方法-曲线演化的直观解释 === | ||
+ | * 如果只考虑几何形状的变化,那其变化只跟法线方向的变化有关系,则有 | ||
+ | {{:keynote:8-1-17.jpg|}}. | ||
+ | * 例:沿着曲率变化最大方向的曲线变形 | ||
+ | {{:keynote:8-1-18.jpg|}}. | ||
+ | 最后变化为曲率都为常数的曲线停止,即圆. | ||
+ | |||
+ | === 水平集(Level Set)的基本方法-曲面演化的直观解释 === | ||
+ | * 平均曲率和高斯曲率 | ||
+ | * 每个正则曲面都有两个主曲率 | ||
+ | * 两个主曲率的平均值就是平均曲率 | ||
+ | * 两个主曲率的积是高斯曲率 | ||
+ | === 水平集(Level Set)的基本方法-数学基础-隐函数 === | ||
+ | * 隐函数(implicit function):自变量和因变量之间的法则是由一个方程式所确定. | ||
+ | {{:keynote:8-1-19.jpg|}}. | ||
+ | * 例子 | ||
+ | {{:keynote:8-1-20.jpg|}}. | ||
+ | == 水平集(Level Set)的基本方法-数学基础-距离场函数 == | ||
+ | * 距离函数定. | ||
+ | {{:keynote:8-1-21.jpg|}}. | ||
+ | * 距离函数的性质 | ||
+ | {{:keynote:8-1-22.jpg|}}. | ||
+ | | ||
+ | <note important>何道敬 学号:10921043</note> | ||
+ | | ||
+ | |||
+ | <note important>Level Set 在体绘制当中的应用</note> | ||
+ | |||
+ | 科学计算可视化作为计算机应用学科中的一个分支,已广泛应用于医疗卫生、地质勘探、气象分析等与人类生活息息相关的重要领域,其主要目标就是把实际采样或模拟仿真得到的三维体数据通过体绘制技术,转化为人眼视觉容易感知的二维图像。我们在本次报告中,主要介绍水平集在地质数据可视化中的应用,图中出示了地质数据的示意图: | ||
+ | {{:keynote:图片1.png|}} | ||
+ | |||
+ | 从图中可以看出,由于受到噪音的干扰,地质数据可视化是一个烦琐而具有挑战性的课题,主要存在如下两方面的挑战: | ||
+ | Challenges of Seismic Visualization | ||
+ | (1)An important component of oil and gas exploration | ||
+ | (2)Difficult to segment the 3D bounding surface of many complex geologic features | ||
+ | 为了更好的刻画地质数据中的断层、河道以及相干体信息,我们采用了水平集的方法进行分割处理,如图所示:{{:keynote:图片2.png|}} | ||
+ | |||
+ | |||
+ | Level Set Method | ||
+ | Implicit function | ||
+ | { (x1,...,xn) | f(x1,...,xn) = c } | ||
+ | where c is a constant. | ||
+ | It is the set where the function takes on a given constant value. | ||
+ | Implicit surface | ||
+ | The point set represented by implicit function | ||
+ | |||
+ | The level set equation | ||
+ | 如公式所示: | ||
+ | |||
+ | {{:keynote:1.png|}} | ||
+ | |||
+ | {{:keynote:2.png|}} | ||
+ | |||
+ | Dynamic implicit surfaces (in motion) | ||
+ | Produce physically realizable surface models | ||
+ | Modeling, simulation, and segmentation | ||
+ | Implicit handling of complex topologies deformed by operations without destroying the representation | ||
+ | |||
+ | 地质数据的绘制总体流程如图所示: | ||
+ | |||
+ | {{:keynote:图片3.png|}} | ||
+ | |||
+ | ---- | ||
+ | |||
+ | <note important>周志光 学号:10921042</note> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === ====== 第二节 Level Set 方法概念 ====== === | ||
+ | |||
+ | === Level Set -水平集 === | ||
+ | |||
+ | == Level set 的数学定义: == | ||
+ | |||
+ | * 假设隐函数φ(x,t)表示一个高维空间的方程其在低维空间上的接触面为φ(x,t)=0, | ||
+ | * 其中{{:keynote:levelset-1.jpg|}} | ||
+ | * 则level set表示为方程Γ(t)有如下性质, | ||
+ | * 其中接触面表示为: | ||
+ | * φ(x,t)<0 for x∈Ω | ||
+ | * φ(x,t)>0 for x∉‾Ω | ||
+ | * φ(x,t)=0 for x∈∂Ω=Γ(t) | ||
+ | |||
+ | |||
+ | |||
+ | == Level set 的运动表示 == | ||
+ | * {{:keynote:levelset2.jpg|}} | ||
+ | * 假设{{:keynote:levelset3.jpg|}}则有 | ||
+ | * {{:keynote:levelset4.jpg|}} | ||
+ | | ||
+ | |||
+ | == Level Set方法的几何意义 == | ||
+ | |||
+ | * 1)给定一个高维空间在低维空间(n维)定义上的接触面,分析和计算其边界在速度v下的运动轨迹 | ||
+ | * 2)速度v是与位置,时间和接触面的几何形状有关的(如平均曲率,法向),还有外部的物理作用力。 | ||
+ | * (UCLA的Osher和Sethian首先提出了这个方法) | ||
+ | | ||
+ | == 小结 == | ||
+ | * Level set 方法实际上就是求解一个随时间变化的偏微分方程 | ||
+ | * {{:keynote:levelset4.jpg|}} | ||
+ | * 其中Vn表示可以是任何关于时间,位置,几何等量的函数。 | ||
+ | * 有时提到Level set 方法是指其数值解方法 | ||
+ | * 应用Level set方法需要解决两个问题: | ||
+ | * a 如何列出有意义的方程求解实际问题 | ||
+ | * b 如何能快速、稳定地求出方程的数值解 | ||
+ | | ||
+ | == 速度F成份 == | ||
+ | |||
+ | * {{:keynote:levelset5.jpg|}} | ||
+ | * 1.与曲率相关的所谓扩散项起到保持曲线的光滑性的作用 | ||
+ | * 2.对流项为曲线演化提供动力支持 | ||
+ | * 3.速度衰减因子使速度在边缘轮廓处停止 | ||
+ | * Level set 的主要优点就是其考虑了物体几何的一些更本质的特征(如曲率,梯度等), | ||
+ | * 所以得到的结果能够比已有的一些其他方法要好。 | ||
+ | |||
+ | |||
+ | |||
+ | <note important>向南 10921041</note> | ||
+ | |||
+ | === Level Set的数值解法=== | ||
+ | * 应用Level Set的数值解法需要解决的两个问题 | ||
+ | * 1. 列出对求解实际问题具有意义的方程; | ||
+ | * 2. 快速、高效,稳定的求解方程; | ||
+ | | ||
+ | |||
+ | * 几种数值解法 | ||
+ | * 1. Upwind差分法 | ||
+ | * 基本思想: | ||
+ | * {{:keynote:upwind差分法1.png|}} | ||
+ | * 算法精度: | ||
+ | * {{:keynote:upwind_jindu2.png|}} | ||
+ | * 稳定条件: | ||
+ | * {{:keynote:upwind_wending_tiaojian1.png|}} | ||
+ | * 优缺点:算法简单,精度偏低,计算速度较慢 | ||
+ | * 2. Hamilton-Jacobi ENO | ||
+ | * 基本思想 : | ||
+ | * 用尽量光滑的多项式插值ψ,然后求解ψ(x),使用HJ ENO方法 | ||
+ | * 可以更精确地估计ψ(x)相关值{{:keynote:hj-eno-1.jpg|}} 以及 {{:keynote:hj-eno-2.jpg|}} | ||
+ | * 3. Hamilton-Jacobi WENO | ||
+ | * 当采用三阶的HJ ENO方法,在计算{{:keynote:hj-weno.png|}}时,该算法需要知道{{:keynote:hj-weno-1.png|}},共有 | ||
+ | * 三种方法用于估计{{:keynote:hj-weno.png|}},如果定义如下式子: | ||
+ | * {{:keynote:hj-weno-2.png|}} ,则HJ-ENO算法的三种估计如右式: {{:keynote:hj-weno-3.png|}} | ||
+ | * HJ-ENO算法的主要目的就是从上述三个估计中选择一个最光滑的多项式逼近。由于HJ-ENO算法仅具有三阶精度,因此为了提高该算法的精度, | ||
+ | * 通过将三种进行加权,从而得到HJ-WENO算法,该算法的加权形式如下: | ||
+ | * {{:keynote:hj-weno-41.png|}}, | ||
+ | * 可以证明,该算法对光滑区域能够达到5阶的精度。 | ||
+ | * 4. TVD Runge-Kutta方法 | ||
+ | * 上述三种算法中,HJ-ENO与HJWENO能够分别提供3阶,5阶精度,而Upwind算法仅能达到1阶的精度。相较于前三种算法,TVD Runge-Kutta算法能够提供更好的精度。 | ||
+ | * 在TVD RK算法中,一阶TVD RK就是向前Euler算法(即Upwind算法); | ||
+ | * 二阶TVD RK与二阶RK算法相似; | ||
+ | * 而三阶TVD RK算法,其形式如右式:{{:keynote:tvd-rk.png|}} | ||
+ | * 数值方法小结 | ||
+ | * Level Set的一般表现形式:{{:keynote:xiaojie-1.png|}}, | ||
+ | * 其中,{{:keynote:xiaojie-3.png|}} 称为对流项, {{:keynote:xiaojie-2.png|}} 称为曲率。 | ||
+ | * 一般而言,求解该方程可以分三步走: | ||
+ | * 1. 用ENO,WENO或upwind方法求解对流项; | ||
+ | * 2. 用中心差分的方法估算曲率; | ||
+ | * 3. 用TVD RK方法求解。 | ||
+ | * 如下所示: | ||
+ | * {{:keynote:xiaojie-4.png|}} | ||
+ | |||
+ | <note important>曾波 10921039</note> | ||
+ | |||
+ | ====== 第三节 水平集(Level Set)的建模方法与应用举例 ====== | ||
+ | 背景: | ||
+ | 借鉴一些流体中的重要思想,1988年,Osher和Sethian首次提出了水平集算法, | ||
+ | 这是一种有效解决曲线演化问题的数值方法,并且计算稳定,适宜任意维数空间。 | ||
+ | 随后,Osher等人对水平集算法做出扩展和总结,Giga也做了相关的理论扩展。 | ||
+ | 90年代以来,许多学者纷纷加入Level Set方法的研究队伍,使得Level Set方 | ||
+ | 法被广泛应用于计算机图形学、计算物理、图像处理、计算机视觉、化学、控制理论等众多领域。 | ||
+ | 下面是一些在图形学方面的应用。 | ||
+ | |||
+ | 1 图像轮廓提取 | ||
+ | 1.1 边界检测和轮廓线提取 | ||
+ | * 隐式动态轮廓模型。 | ||
+ | * 用隐式模型可以跟踪拓扑变化的轮廓。 | ||
+ | * 隐式轮廓线的微分方程表达为。 | ||
+ | {{:keynote:123.png|}} | ||
+ | * 注意轮廓不但被梯度驱动,而且被曲率驱动。 | ||
+ | * 实验结果如下 | ||
+ | {{:keynote:zhangzhen-2.png|}} | ||
+ | | ||
+ | 1.2 不用边界表达的动态轮廓线算法 | ||
+ | 其导数为: | ||
+ | |||
+ | {{:keynote:zhangzhen-3.png|}} | ||
+ | |||
+ | 边界长度可以表示为: | ||
+ | |||
+ | {{:keynote:zhangzhen-4.png|}} | ||
+ | |||
+ | 无边界表达的优化方程为: | ||
+ | |||
+ | {{:keynote:zhangzhen-5.png|}} | ||
+ | |||
+ | 实验结果如下: | ||
+ | |||
+ | {{:keynote:zhangzhen-6.png|}} | ||
+ | |||
+ | 2 图像分割 | ||
+ | 2.1 What is image segmentation? | ||
+ | * Definition:Separate the original image into regions that | ||
+ | are meaningful for a specific task. ( shape recovery) | ||
+ | {{:keynote:zhangzhen-7.png|}} {{:keynote:zhangzhen-8.png|}} | ||
+ | 2.2 Image Segmentation | ||
+ | {{:keynote:zz-9.png|}} | ||
+ | 2.3 基于Fast Marching技术的图像分割 | ||
+ | * 算法框架 | ||
+ | {{:keynote:zz-10.png|}} | ||
+ | 2.4 Mumford-Shah 图像分割 | ||
+ | * Mumford-Shah模型 | ||
+ | {{:keynote:zz-11.png|}} | ||
+ | |||
+ | 实验结果如下: | ||
+ | |||
+ | {{:keynote:zz-12.png|}} {{:keynote:zz-13.png|}} | ||
+ | |||
+ | 3 图像修复 | ||
+ | |||
+ | 3.1 图像填补(inpainting) | ||
+ | 假设原始图像为{{:keynote:zz-14.png|}}图像填补算法将恢复一序列图像{{:keynote:zz-15.png|}} | ||
+ | 使得:{{:keynote:zz-16.png|}} | ||
+ | 即表达式为:{{:keynote:zz-17.png|}} 其中{{:keynote:zz-18.png|}}是由一些规则定义的。 | ||
+ | 3.2 演化规则的定义 | ||
+ | * 假设图像是光滑的 | ||
+ | * 演化应该保持边界 | ||
+ | 3.3 演化的数学表达式 | ||
+ | {{:keynote:zz-19.png|}} | ||
+ | 3.4 实验结果如下: | ||
+ | {{:keynote:zz-20.png|}} {{:keynote:zz-21.png|}} | ||
+ | |||
+ | 4 运动分析 | ||
+ | * 地测线动态区域 | ||
+ | * 定义和假设 | ||
+ | (a)只有两个区域需要区分:前景和背景. | ||
+ | |||
+ | (b)I为输入图像由{{:keynote:zz-22.png|}}组成. | ||
+ | |||
+ | (c){{:keynote:zz-23.png|}}是对图像的一个分割. | ||
+ | |||
+ | (d){{:keynote:zz-24.png|}}是两个区域的公共边界. | ||
+ | | ||
+ | * 边界表示 | ||
+ | |||
+ | {{:keynote:zz_25.png|}} | ||
+ | |||
+ | * 边界和区域表示的Level set 形式 | ||
+ | |||
+ | {{:keynote:zz-26.png|}} | ||
+ | |||
+ | * 实验结果如下: | ||
+ | | ||
+ | {{:keynote:zz-27.png|}} | ||
+ | |||
+ | <note important>张祯-10921044</note> | ||
+ | |||
+ | |