变分法:在图像处理中的应用
Posted 白巧克力亦唯心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变分法:在图像处理中的应用相关的知识,希望对你有一定的参考价值。
前言
最近学习稠密重建的相关知识,发现变分法通常作为一个平滑的正则项出现在残差平方和的损失函数中。而图像处理中又经常出现这类最小损失函数的优化问题,如图像分割、稠密光流、稠密重建等等,这些优化问题中都有可能涉及到变分法。因此,我想系统记录下学习过程:变分法是什么?全变分正则项有何含义?加了变分正则项的损失函数如何求解?等等。本系列应该会有三章:
- 第一章讲数学基础:泛函极值和变分法
- 第二章讲变分法在图像去噪上的应用
- 第三章讲变分法在稠密重建上的应用
变分法基础
变分法求解的过程大致为:首先从问题出发构建能量泛函及约束条件,然后构建对应的 Euler-Lagrange 偏微分方程,最后在初值条件下求解偏微分方程的数值解。后续小节将按照这个思路对变分法求极值的原理进行梳理。目前,网上变分法资料比较多,我仅仅是将其他资料进行一个结合和梳理,感兴趣的小伙伴可以阅读参考文献列表。
趣事
最速下降问题是伽利略在 1630 年提出的:让一个物体从静止开始在一个光滑的轨道上从高处开始下滑,问最快到达低处的轨道形状应该是什么样的?如下图所示,图片来源 wiki。
大家都知道两点之间直线最短,但从图中可以看出,最短的路径并不是最快抵达的。伽利略没有找到问题的正确解,只证明了圆弧的下降速度比直线快。
时间来到微积分学快速发展的那个黄金年代,Johann Bernoulli (伯努利家族) 于 1696 年在《教师学报》上就最速曲线问题向全欧洲的数学家提出点名挑战,规定 6 个月后公布如何求解答案。在提出这个有趣挑战的同一年,牛顿、莱布尼茨、洛必达、Johann Bernoulli 和 Jacob Bernoulli 都得到了同一个结论。再后来,欧拉(1744年)和拉格朗日(1760年)对这类问题进行了推广并得到了一个求解的通用方程:Euler-Lagrange Equation。
在看到这一连串大佬名字以后,相信大家心理都不由得感叹了一下。接下来,我们也将借助这个问题对变分法涉及到的数学基础进行整理和推导。
从最短路径到变分求解
在求解上述最速下降问题之前,我们先从另一个熟知的最短路径问题开始,即找到使得从 A 点到 B 点之间路径最短的曲线方程
y
(
x
)
y(x)
y(x)。
假设两个端点的坐标分别为
(
a
,
p
)
\\left(a,p\\right)
(a,p) 和
(
b
,
q
)
\\left(b,q\\right)
(b,q),连接这两个点的任意曲线方程
y
=
y
(
x
)
y=y(x)
y=y(x) 都满足如下边界条件:
y
(
a
)
=
p
,
y
(
b
)
=
q
y(a) = p, \\quad y(b)=q
y(a)=p,y(b)=q 为了计算曲线
y
(
x
)
y(x)
y(x) 的长度,我们可以采用积分的方法,将曲线分成很多微小线段,将所有线段进行累积来计算总长度:
d
s
=
d
x
2
+
d
y
2
=
1
+
(
d
y
d
x
)
2
d
x
=
1
+
y
′
2
d
x
S
=
∫
a
b
1
+
y
′
2
d
x
(
1
)
\\beginaligned \\mathrmds &= \\sqrt\\mathrmdx^2 + \\mathrmdy^2 = \\sqrt1 + \\left(\\frac\\mathrmdy\\mathrmdx\\right)^2 \\mathrmdx = \\sqrt1+y^\\prime 2 \\mathrmdx \\\\ \\ S &= \\int_a^b \\sqrt1+y^\\prime 2 \\mathrmdx \\qquad\\qquad(1) \\endaligned
ds S=dx2+dy2=1+(dxdy)2dx=1+y′2dx=∫ab1+y′2dx(1) 因此,最短路径对应的曲线方程
y
(
x
)
y(x)
y(x) 应使得
S
S
S 取极小值。通常,我们是估计一个变量
x
x
x 使得某个函数
y
(
x
)
y(x)
y(x) 取极值,求解的方法是令一阶导等于 0,因此求方程
y
′
(
x
)
=
0
y^\\prime(x) =0
y′(x)=0 就可以得到
x
x
x。但这里问题不一样,这里是求一个函数
y
(
x
)
y(x)
y(x) 使得
S
S
S 取极值,需要求解的是一个什么样的函数
y
(
x
)
y(x)
y(x) 而不是变量
x
x
x。如下图所示 [参考资料 1],求解的量不是
x
x
x 而是函数
y
(
x
)
y(x)
y(x),函数的微小变化
δ
y
(
x
)
\\delta y(x)
δy(x) 称之为函数
y
(
x
)
y(x)
y(x) 的变分。注意,函数的微分
d
y
\\mathrmdy
dy 是变量
x
x
x 的微小变化导致的函数变化,而变分是函数自身发生的微小变化,跟自变量
x
x
x 的变化没有关系。
现在,我们将这个问题进行一般化处理,假设我们构建的积分函数是如下形式:
C
=
∫
a
b
F
(
x
,
y
,
y
′
)
d
x
C = \\int_a^b F\\left(x,y,y^\\prime\\right)\\mathrmdx
C=∫abF(x,y,y′)dx 所谓泛函是指
C
C
C 的数值依赖函数
y
(
x
)
y(x)
y(x) 的变化而变化,
C
C
C 和
y
(
x
)
y(x)
y(x) 之间的这种依赖关系就称为泛函关系。其中
F
F
F 是关于
x
x
x,
y
(
x
)
y(x)
y(x) 以及一阶导
y
′
(
x
)
y^\\prime(x)
y′(x) 的函数。
假设存在
y
(
x
)
y(x)
y(x) 使得
C
C
C 取最小值,并且一阶导数存在。我们给曲线加一个变分扰动,当扰动接近 0 时,函数
C
C
C 的变化也接近 0 :
δ
C
=
C
(
y
+
δ
y
)
−
C
(
y
)
=
∫
a
b
[
F
(
x
,
y
+
δ
y
,
y
′
+
δ
y
′
)
−
F
(
x
,
y
,
y
′
)
]
d
x
\\beginaligned \\delta C &= C(y+\\delta y ) - C(y) \\\\ &=\\int_a^b\\left[ F\\left(x,y+\\delta y,y^\\prime+\\delta y^\\prime \\right)-F\\left(x,y,y^\\prime\\right) \\right] \\mathrmdx \\endaligned
δC=C(y+δy)−C(y)=∫ab[F(x,y+δy,y′+δy′)−F(x,y,y′)]dx 根据微分和变分的定义,大家可以快速的证明微分运算符和变分运算符两者可以互换顺序,具体推导见参考资料 5:
d
(
δ
y
)
=
δ
(
d
y
)
\\mathrmd(\\delta y ) = \\delta ( \\mathrmdy)
d(δy)=δ(dy) 对函数
F
F
F 进行泰勒展开有:
F
(
x
,
y
+
δ
y
,
y
′
+
δ
y
′
)
=
F
(
x
,
y
,
y
′
)
+
∂
F
(
x
,
y
,
y
′
)
∂
y
δ
y
+
∂
F
(
x
,
y
,
y
′
)
∂
y
′
δ
y
′
=
F
(
x
,
y
,
y
′
)
+
∂
F
(
x
,
y
,
y
′
)
∂
y
δ
y
+
∂
F
(
x
,
y
,
y
′
)
∂
y
′
(
δ
y
)
′
\\beginaligned F(x, y + \\delta y, y^\\prime + \\delta y^\\prime) &= F(x,y,y^\\prime)+\\frac\\partial F(x,y,y^\\prime)\\partial y\\delta y + \\frac\\partial F(x,y,y^\\prime)\\partial y^\\prime\\delta y^\\prime \\\\ &=F(x,y,y^\\prime)+\\frac\\partial F(x,y,y^\\prime)\\partial y\\delta y + \\frac\\partial F(x,y,y^\\prime)\\partial y^\\prime(\\delta y)^\\prime \\endaligned
F(x,y+δy,y′+δy′)=F(x,以上是关于变分法:在图像处理中的应用的主要内容,如果未能解决你的问题,请参考以下文章