薄板样条插值---TPS(Thin Plate Spline)

薄板样条插值—TPS(Thin Plate Spline)

插值

已知一系列的观测点 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x n , y n ) \bold {(x_1, y_1), (x_2,y_2), \cdots, (x_n, y_n)} (x1,y1),(x2,y2),,(xn,yn), 这一组观测值得生成函数 Y = f ( X ) Y=f(X) Y=f(X)未知,如何通过这一组观测值拟合出一个近似于真实生成函数的表达式。拟合出来的表达式称之为插值函数。

TPS

薄板样条的插值函数形式如下:
Φ ( x ) = c + a T x + w T s ( x ) s ( x ) = ( σ ( x − x 1 ) , σ ( x − x 2 ) , ⋯   , σ ( x − x n ) ) T σ ( x ) = ∣ ∣ x ∣ ∣ x 2 log ⁡ ∣ ∣ x ∣ ∣ x 2 \begin{aligned} \Phi(\bold x) &= \bold {c + a^Tx + w^Ts(x)} \\ \bold {s(x)} &= \bold{(\sigma(x - x_1), \sigma(x - x_2), \cdots, \sigma(x - x_n))^T } \\ \sigma(\bold x) & = \bold {||x||_x^2\log||x||_x^2}\\ \end{aligned} Φ(x)s(x)σ(x)=c+aTx+wTs(x)=(σ(xx1),σ(xx2),,σ(xxn))T=xx2logxx2

其中, c ∈ R 1 × 1 , a ∈ R D × 1 , w ∈ R N × 1 \bf c \in \mathbb R^{1\times 1} ,\bf a \in \mathbb R^{D \times 1}, w \in \mathbb R^{N\times 1} cR1×1,aRD×1,wRN×1。 从中可以看出,该函数的输出值是一个标量,也就是说,如果要针对多个维度进行插值,需要求解多个插值函数。该插值函数总共存在 N + D + 1 N+D+1 N+D+1个参数。 而每个观测点都能提供一个如下的约束,共 N N N个约束条件。
y k = Φ ( x k ) y_k = \Phi(x_k) yk=Φ(xk)
在认为添加 D + 1 D+1 D+1个约束条件:
∑ k = 1 K w k = 0 ∑ k = 1 K w k x k 1 = 0 ⋮ ∑ k = 1 K w k x k D = 0 \begin{aligned} \sum_{k=1}^{K}w_k &= 0 \\ \sum_{k=1}^{K}w_k {\bf x}_k^{1} &= 0 \\ \vdots \\ \sum_{k=1}^{K}w_k {\bf x}_k^{D} &= 0 \\ \end{aligned} k=1Kwkk=1Kwkxk1k=1KwkxkD=0=0=0

令:
X = [ x 1 1 x 1 2 ⋯ x 1 D x 2 1 x 2 2 ⋯ x 2 D ⋮ ⋮ ⋱ ⋮ x N 1 x N 2 ⋯ x N D ] Y = [ y 1 y 2 ⋮ y N ] S = [ σ ( x 1 − x 1 ) σ ( x 1 − x 2 ) ⋯ σ ( x 1 − x N ) σ ( x 2 − x 1 ) σ ( x 2 − x 2 ) ⋯ σ ( x 2 − x N ) ⋮ ⋮ ⋱ ⋮ σ ( x N − x 1 ) σ ( x N − x 2 ) ⋯ σ ( x N − x N ) ] \begin{aligned} X& = \begin{bmatrix} \bf{x}_1^1 & \bf{x}_1^2 &\cdots & \bf{x}_1^D\\ \bf{x}_2^1 & \bf{x}_2^2 &\cdots & \bf{x}_2^D\\ \vdots & \vdots & \ddots & \vdots\\ \bf{x}_N^1 & \bf{x}_N^2 &\cdots & \bf{x}_N^D\\ \end{bmatrix} \qquad Y = \begin{bmatrix} \bf{y}_1\\ \bf{y}_2 \\ \vdots \\ \bf{y}_N\\ \end{bmatrix}\\ S &= \begin{bmatrix} \bf{\sigma(x_1 - x_1)} & \bf{\sigma(x_1 - x_2)}&\cdots & \bf{\sigma(x_1 - x_N)}\\ \bf{\sigma(x_2 - x_1)} & \bf{\sigma(x_2 - x_2)}&\cdots & \bf{\sigma(x_2 - x_N)}\\ \vdots & \vdots & \ddots & \vdots\\ \bf{\sigma(x_N - x_1)} & \bf{\sigma(x_N - x_2)}&\cdots & \bf{\sigma(x_N - x_N)}\\ \end{bmatrix} \end{aligned} XS=x11x21xN1x12x22xN2x1Dx2DxNDY=y1y2yN=σ(x1x1)σ(x2x1)σ(xNx1)σ(x1x2)σ(x2x2)σ(xNx2)σ(x1xN)σ(x2xN)σ(xNxN)

则约束条件构成的方程组可以改写为:
[ S 1 N X 1 N T 0 0 X T 0 0 ] [ w c a ] = Γ [ w c a ] = [ Y 0 0 ] \begin{bmatrix} S & 1_N & X \\ 1_N^T&0 &0 \\ X^T& 0 &0 \\ \end{bmatrix} \begin{bmatrix} \bf w \\ \bf c \\ \bf a \end{bmatrix} = \Gamma \begin{bmatrix} \bf w \\ \bf c \\ \bf a \end{bmatrix} = \begin{bmatrix} \bf Y \\ 0 \\ 0 \\ \end{bmatrix} S1NTXT1N00X00wca=Γwca=Y00
Γ \Gamma Γ非奇异时,这个方程组有唯一解。因此可获得参数矩阵:
[ w c a ] = Γ − 1 [ Y 0 0 ] \begin{bmatrix} \bf w \\ \bf c \\ \bf a \end{bmatrix} = \Gamma^{-1} \begin{bmatrix} \bf Y \\ 0 \\ 0 \\ \end{bmatrix} wca=Γ1Y00

Reference
[1] 数值方法——薄板样条插值(Thin-Plate Spline)
[2] Thin plate splines 薄板样条插值个人理解
[3] 关于Thin Plate Spline (薄板样条函数)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值