水平集Chan-Vese模型的变分法梯度下降

回顾:

在之前的水平集方法中,我们最后得出了一个能量泛函 E 如下:

E=\mu \iint_{}^{} \left | \bigtriangledown H(\o (x,y) \right |dxdy+\nu \iint_{}^{} H(\o (x,y)dxdy+ \lambda 1\iint_{}^{} \left | I(x,y)-c1 \right |^2H(\o )dxdy + \lambda 2\iint_{}^{} \left | I(x,y)-c2 \right |^2(1-H(\o ))dxdy

不要出现误区,我们的目的是得到水平集函数 \phi (x,y) ,使整体能量泛函 E 最小化 ,这里水平集函数 \phi (x,y) 的初始值是给定的,因为要有一个差不多的初始轮廓,初始轮廓是一个面就是 \phi (x,y) 的初始值 (形式是一个和图像一样尺寸的矩阵,轮廓内数值为 1,轮廓外为 -1),就是要通过变分法梯度下降 ,一点一点的调整,最后得到一个个 \phi (x,y) ,使能量泛函 E 越来越趋近于极值 .(变分法梯度下降推导过程在这里

再使用变分方程之前,要先了解几点:

关于泛函 E 中的  :\left | \bigtriangledown H(\o (x,y) \right | = \sqrt{(\delta (\phi )*\phi _{x})^{2}+(\delta (\phi )*\phi _{y})^{2}}=[(\delta (\phi )*\phi _{x})^{2}+(\delta (\phi )*\phi _{y})^{2})]^{\frac{1}{2}}

 变分方程公式:\frac{\partial \phi }{\partial t}=\large \frac{\partial F}{\partial u}-\frac{d}{dx}(\frac{\partial F}{\partial {u}'}) = 0

但是我们发现这里的\large u=\phi 也就是水平集函数,但\large \phi =\phi (x,y) 参数是两个,所以我们使用的变分方程应该为:

\large \large \frac{\partial \phi }{\partial t} =\frac{\partial F}{\partial u}-\frac{d}{dx}(\frac{\partial F}{\partial {u_{x}}'})-\frac{d}{dy}(\frac{\partial F}{\partial {u_{y}}'}) = 0

在泛函 E 中 :

F = \mu \left | \bigtriangledown H(\phi (x,y)) \right |+\upsilon H(\phi (x,y))+\lambda 1\left | I(x,y)-c1 \right |^2 H(\phi )+\lambda 2\left | I(x,y)-c2 \right |^2(1-H(\phi ))

 \large u=\phi

利用变分公式,先算出   \frac{\partial F}{\partial u} = \frac{\partial F}{\partial \phi }  :

\frac{\partial F}{\partial \phi } = \upsilon \delta (\phi )+\lambda 1\left |I(x,y)-c1 \right |^2\delta (x)-\lambda 2\left |I(x,y)-c2 \right |^2\delta (x)

\frac{d}{dx}(\frac{\partial F}{\partial {u_{x}}'})+\frac{d}{dy}(\frac{\partial F}{\partial {u_{y}}'})=\frac{d}{dx}[\frac{\delta (\phi )\phi _{x}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}]+\frac{d}{dy}[\frac{\delta (\phi )\phi _{y}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}]

 所以 :

\large \frac{\partial \phi }{\partial t}=\frac{\partial F}{\partial \phi }-\frac{d}{dx}(\frac{\partial F}{\partial {u_{x}}'})-\frac{d}{dy}(\frac{\partial F}{\partial {u_{y}}'})= \upsilon \delta (\phi )+\lambda 1\left |I(x,y)-c1 \right |^2\delta (x)-\lambda 2\left |I(x,y)-c2 \right |^2\delta (x)-\mu (\frac{d}{dx}[\frac{\delta (\phi )\phi _{x}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}]+\frac{d}{dy}[\frac{\delta (\phi )\phi _{y}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}])

上式中:

\frac{d}{dx}[\frac{\phi _{x}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}]+\frac{d}{dy}[\frac{\phi _{y}}{\sqrt{(\delta (\phi )\phi _{x})^2+(\delta (\phi )\phi _{y})^2}}]=div \frac{\bigtriangledown \phi }{\left | \bigtriangledown \phi \right |}

所以完整的Chan-Vese模型的变分法梯度下降公式为:

\frac{\partial F}{\partial \phi }-\frac{d}{dx}(\frac{\partial F}{\partial {u_{x}}'})-\frac{d}{dy}(\frac{\partial F}{\partial {u_{y}}'})

=\upsilon \delta (\phi )+\lambda 1\left |I(x,y)-c1 \right |^2\delta (\phi )-\lambda 2\left |I(x,y)-c2 \right |^2\delta (\phi )-div \frac{\bigtriangledown \phi }{\left | \bigtriangledown \phi \right |}\delta (\phi )

=\delta (\phi )[\upsilon +\lambda 1\left |I(x,y)-c1 \right |^2-\lambda 2\left |I(x,y)-c2 \right |^2-div \frac{\bigtriangledown \phi }{\left | \bigtriangledown \phi \right |}]

=\delta (\phi )[-\upsilon -\lambda 1\left |I(x,y)-c1 \right |^2+\lambda 2\left |I(x,y)-c2 \right |^2+div \frac{\bigtriangledown \phi }{\left | \bigtriangledown \phi \right |}]

应用方法与总结:

我们费了半天劲,求出了一个 :

\large \frac{\partial \phi }{\partial t}=\delta (\phi )[-\upsilon -\lambda 1\left |I(x,y)-c1 \right |^2+\lambda 2\left |I(x,y)-c2 \right |^2+div \frac{\bigtriangledown \phi }{\left | \bigtriangledown \phi \right |}]=0

求出来这个差不多是 0 的式子有什么意义呢 ?我们其实就是用这个差不多为 0 的式子做梯度下降,一开始我们有一个和图像大小一样的水平集函数  \phi (x,y),我们设置一个偏小的步长,每次都让水平集函数(就是一个矩阵)加上这个步长 * \small \frac{\partial \phi }{\partial t} ,经过一次次的迭代计算梯度下降,使得原本的水平集函数中的数值开始慢慢变化,逐渐演化到 \small 0 水平面上方,最后取大于 \small 0 的作为曲线的轮廓 (个人理解,若有错误请及时纠正!)

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值