上一篇文章中,我们讨论了 Thin Plate Spline,简称 TPS,为什么可以从稀疏关键点匹配生成连续形变场。它的核心思想可以概括为一句话:在满足控制点匹配的前提下,使整体弯曲能量最小。 在上一篇文章中,我们直接给出了 TPS 的函数形式:
f(x,y)=a0+a1x+a2y+i=1∑nwiϕ(∥(x,y)−pi∥),(1)
其中,径向基函数为:
ϕ(r)=r2logr.(2)
但这里其实留下了两个关键问题:
- 为什么最小化弯曲能量会导出双调和方程?
- 为什么二维 TPS 的核函数正好是 r2logr?
本文就继续从这两个问题出发,说明 TPS 函数形式的具体来历。
弯曲能量与双调和方程
先考虑一个标量函数 f(x,y)。在物理意义上,它可以理解为薄板在二维平面上方的高度;在图像配准中,它也可以理解为二维变换中的某一个坐标分量。TPS 在区域 Ω 内的弯曲能量定义为:
J(f)=∬Ω(fxx2+2fxy2+fyy2)dxdy.(3)
其中:
fxx=∂x2∂2f,fxy=∂x∂y∂2f,fyy=∂y2∂2f.(4)
这些二阶偏导数刻画的是曲面的弯曲程度。为了找到弯曲能量最小的函数,可以对 f 引入一个很小的扰动:
fϵ=f+ϵη,(5)
其中,η(x,y) 是任意扰动函数,ϵ 是一个很小的标量。如果 f 是弯曲能量的极小值点,那么在 ϵ=0 处,能量的一阶变化应当为 0:
δJ=dϵdJ(f+ϵη)ϵ=0=0.(6)
将 f+ϵη 代入式(1),可得:
J(f+ϵη)=∬Ω[(fxx+ϵηxx)2+2(fxy+ϵηxy)2+(fyy+ϵηyy)2]dxdy.(7)
接下来对 ϵ 求导,并在 ϵ=0 处取值,得到:
δJ=2∬Ω(fxxηxx+2fxyηxy+fyyηyy)dxdy.(8)
这一步仍然含有 η 的二阶导数。为了得到关于 f 的微分方程,需要通过分部积分把导数从 η 上转移到 f 上。经过两次分部积分后,可得:
δJ=2∬Ω(fxxxx+2fxxyy+fyyyy)ηdxdy+2B(f,η)∣∂Ω.(9)
其中,B(f,η)∣∂Ω 表示分部积分后产生的边界项。通常假设扰动函数 η 及其一阶导数在边界上为零,或者采用自然边界条件,则边界项可以忽略。因此有:
δJ=2∬Ω(fxxxx+2fxxyy+fyyyy)ηdxdy=0.
由于 η 在区域内部是任意的,因此必须有:
fxxxx+2fxxyy+fyyyy=(∂x2∂2+∂y2∂2)2f=Δ2f=0.(3)
其中 Δ=∂x2∂2+∂y2∂2 是二维 Laplace 算子。上式就是双调和方程。也就是说,TPS 的最小弯曲能量问题,经过变分法会导出四阶双调和方程。
引入控制点约束
如果没有控制点约束,弯曲能量最小化只会导出:
Δ2f=0.
但 TPS 并不是任意找一张最平滑的薄板,而是要求薄板经过给定控制点。假设有 n 个控制点:
pi=(xi,yi),i=1,…,n,(16)
并且每个控制点对应的目标标量值为:
f(pi)=zi,i=1,…,n.(17)
于是,TPS 的优化问题可以写成带等式约束的形式:
fminJ(f),s.t.f(pi)=zi,i=1,…,n.(18)
为了处理这些控制点约束,可以引入拉格朗日乘子 λi,构造增广泛函:
L(f,λ)=J(f)−2i=1∑nλi(f(pi)−zi).(19)
其中,λi 表示第 i 个控制点约束对应的拉格朗日乘子。对 f 做扰动 f+ϵη,并在 ϵ=0 处取一阶变分。这里简化下记号,用x=(x,y) 表示二维空间位置。忽略了分部积分产生的边界项,可得:
δL=2∬ΩΔ2f(x)η(x)dx−2i=1∑nλiη(pi).(20)
这里的关键是,控制点约束是离散的。为了把离散点上的取值写成积分形式,可以利用 Dirac delta 函数构造:
η(pi)=∬Ωη(x)δ(x−pi)dx.(21)
因此:
i=1∑nλiη(pi)=i=1∑nλi∬Ωη(x)δ(x−pi)dx=∬Ωη(x)i=1∑nλiδ(x−pi)dx.(22)
代回一阶变分式,可得:
δL=2∬Ω[Δ2f(x)−i=1∑nλiδ(x−pi)]η(x)dx.(23)
由于扰动函数 η(x) 在区域内部是任意的,要使 δL=0,必须满足:
Δ2f(x)=i=1∑nλiδ(x−pi).(24)
这说明,加入控制点约束以后,薄板不再只是满足自由弯曲的齐次双调和方程,而是受到多个离散点源的作用。换句话说,每一个控制点都可以理解为作用在薄板上的一个点源,而 TPS 曲面就是这些点源响应叠加后的结果。
齐次解、非齐次解与 Green 函数
到这里,我们已经从最小弯曲能量出发,得到了 TPS 对应的非齐次双调和方程:
Δ2f(x)=i=1∑nwiδ(x−pi).(25)
这是一个带点源项的非齐次双调和方程。
根据线性微分方程的基本思想,它的解通常可以分为两部分:
f(x)=fh(x)+fp(x).(26)
其中,fh(x) 是齐次方程的解,满足:
Δ2fh(x)=0.(27)
而 fp(x) 是由右侧点源项引起的一个特解,满足:
Δ2fp(x)=i=1∑nwiδ(x−pi).(28)
在 TPS 的标准形式中,齐次部分通常写成全局仿射项:
fh(x,y)=a0+a1x+a2y.(29)
需要注意的是,严格来说,双调和方程 Δ2f=0 的齐次解空间并不只包含仿射函数。例如,x2、y2、xy 等多项式也满足双调和方程。但在 TPS 的标准表达中,通常只保留仿射项来描述整体趋势,例如平移、旋转、缩放或剪切;而局部非刚性弯曲则交给径向基函数项来表示。
接下来的问题就是:非齐次部分 fp(x) 应该如何求? 关键就在于 Green 函数。
Green 函数可以理解为单位点源作用下系统的基本响应。只要知道双调和算子对一个单位点源的响应,就可以通过线性叠加得到多个控制点共同作用下的非齐次解。这一步也解释了 TPS 核函数的来源:二维双调和算子的 Green 函数。
双调和算子与 Green 函数
既然控制点对应的是点源,那么我们先考虑最基本的单位点源问题:
Δ2G(x)=δ(x).(30)
这里的 G(x) 称为双调和算子的 Green 函数,表示单位点源作用下系统产生的响应。由于双调和方程是线性的,如果知道单位点源的响应 G(x),那么多个点源的响应可以直接叠加:
fp(x)=i=1∑nwiG(x−pi).(31)
也就是说,TPS 的非刚性形变项本质上就是若干个 Green 函数响应的线性叠加。因此,只要得到 G(x) 的具体形式,就可以进一步写出 TPS 的函数形式。
二维双调和 Green 函数的径向形式
在二维空间中,双调和算子的 Green 函数具有径向对称性,因此它只与当前位置到点源的距离有关。令 r=x2+y2, 于是有:G(x,y)=G(r)。需要注意的是,下面的常规函数推导默认在 r>0 的区域进行。在 r=0 处,点源项需要从分布意义理解,不能简单地把 r=0 直接代入 logr。对于单位点源问题:
Δ2G(x)=δ(x),(32)
在远离点源的位置,也就是 r>0 的区域,右侧没有点源,因此有:
Δ2G(r)=0.(33)
对于二维径向函数 G(r),Laplace 算子可以写为:
ΔG(r)=G′′(r)+r1G′(r).(34)
为了求解 Δ2G=0,令:H(r)=ΔG(r), 那么在 r>0 时,ΔH(r)=0,从而有:
径向 Laplace 方程:两边乘以 r:写成全导数形式:积分一次:整理:再积分一次:代入ΔG(r):两边乘以r:写成全导数形式:H′′(r)+r1H′(r)rH′′(r)+H′(r)(rH′(r))′rH′(r)H′(r)H(r)G′′(r)+r1G′(r)rG′′(r)+G′(r)(rG′(r))′=========0,0,0,C1,rC1,C1logr+C2.C1logr+C2,C1rlogr+C2r,C1rlogr+C2r,(35)
对 r 积分一次,得到:
rG′(r)=2C1r2logr−4C1r2+2C2r2+C3.(36)
因此:
G′(r)=2C1rlogr−4C1r+2C2r+rC3.(37)
继续积分,并将常数重新整理为 A,B,C,D,可以得到:
G(r)=Ar2logr+Br2+Clogr+D.(38)
这就是二维双调和方程在 r>0 区域的径向解形式。 但 TPS 中最终只保留了核心项 r2logr。由于 G(r) 需要在 r=0 处有限,因此必须有 C=0。此外,Br2+D 是一个二次多项式,它的四阶导数为零,因此不会对 Δ2G 产生贡献,可以纳入到齐次解中。于是可以令 B=D=0,从而得到:
G(r)=Ar2logr.(39)
接下来只需要确定常数 A。直接计算 G(r)=Ar2logr 的 Laplace 算子:
G′(r)G′′(r)ΔG(r)Δ2G(r)=A(2rlogr+r),=A(2logr+3),=4Alogr+4A,=4AΔlogr.(40)
二维 Laplace 算子的基本解满足:
Δlogr=2πδ(x).(41)
所以:
Δ2G(r)=4AΔlogr=8πAδ(x).(42)
为了满足单位点源方程 Δ2G=δ(x),必须有 8πA=1,即 A=8π1。于是,二维双调和算子的 Green 函数为:
G(r)=8π1r2logr.(43)
由于常数系数 8π1 可以吸收到权重参数 wi 中,因此 TPS 中通常直接取径向基函数为:
ϕ(r)=r2logr.(44)
到这里,r2logr 的来源就比较清楚了:它正是二维双调和算子在单位点源作用下的基本响应。
小结
将齐次解和非齐次解合在一起,二维空间中 TPS 的函数形式可以写成:
f(x)=f(x,y)=全局仿射项a0+a1x+a2y+i=1∑n局部非刚性弯曲项wiϕ(∥x−pi∥)=a0+a1x+a2y+i=1∑nwi∥x−pi∥2log∥x−pi∥.(45)
其中,a0+a1x+a2y 是全局仿射项,用来描述整体平移、旋转、缩放或剪切趋势。
而:
i=1∑nwiϕ(∥x−pi∥)(46)
则来自多个 Dirac 点源的 Green 函数响应叠加,用来描述由控制点诱导的局部非刚性弯曲。所以,TPS 的核心并不是简单地“选择了一个看起来合适的径向基函数”,而是有一条清晰的数学来源。这也解释了为什么 TPS 能够从稀疏控制点生成连续、平滑的形变场:
控制点决定薄板必须经过哪里,而最小弯曲能量决定薄板在这些点之间如何自然地弯过去。