TPS插值方法

Thin Plate Spline

插值函数求解

已知有N个点 { x 1 , x 2 , . . . , x n } \{x_1,x_2,...,x_n\} {x1,x2,...,xn},可以通过变换函数 y = f ( x ) y=f(x) y=f(x)变换到 { y 1 , y 2 , . . . , y n } \{y_1,y_2,...,y_n\} {y1,y2,...,yn},此时,如果已知N个点 X X X Y Y Y,如何求解函数 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 ∣ ∣ 2 2 log ⁡ ∣ ∣ X ∣ ∣ 2 \begin{array}{c} \Phi(X)=c+a^TX+w^Ts(X) \\ s(X)=(\sigma(X-X_1),\sigma(X-X_2),...,\sigma(X-X_N))^T \\ \sigma(X)=||X||^2_2\log||X||_2 \end{array} Φ(X)=c+aTX+wTs(X)s(X)=(σ(XX1),σ(XX2),...,σ(XXN))Tσ(X)=X22logX2

对于2维空间则有
Φ ( X ) = [ Φ 1 ( X ) Φ 2 ( X ) ] \Phi(X)= \left[ \begin{array}{c} \Phi_1(X) \\ \Phi_2(X) \end{array} \right] Φ(X)=[Φ1(X)Φ2(X)]
对于每一个维度,都需要求解一个插值函数。这里不具体讨论为什么给出这种形式的插值函数,仅考虑如何对方程参数进行求解

矩阵形式

2维空间中,TPS插值函数需要求解N+3个参数,其中 w ∈ R N × 1 w\in R^{N\times1} wRN×1 a ∈ R 2 × 1 a \in R^{2\times1} aR2×1 c ∈ R 1 × 1 c \in R^{1\times1} cR1×1。原方程 Φ ( X ) \Phi(X) Φ(X)可以改写为矩阵形式如下:
[ S 1 N X ] [ w c a ] = [ Y x ] \left[ \begin{array}{c} S & 1_N & X \end{array} \right] \left[ \begin{array}{c} w \\ c \\ a \end{array} \right] = \left[ Y^x \right] [S1NX]wca=[Yx]
扩展成齐次式如下把方程扩展成如下形式:
[ S 1 N X 1 N T 0 0 X T 0 0 ] [ w c a ] = [ Y x 0 0 ] \left[ \begin{array}{c} S & 1_N & X \\ 1^T_N & 0 & 0 \\ X^T & 0 & 0 \end{array} \right] \left[ \begin{array}{c} w \\ c \\ a \end{array}\right] = \left[ \begin{array}{c} Y^x \\ 0 \\ 0 \end{array}\right] S1NTXT1N00X00wca=Yx00
可以令
Γ = [ S 1 N X 1 N T 0 0 X T 0 0 ] \Gamma= \left[\begin{array}{c} S & 1_N & X \\ 1_N^T & 0 & 0 \\ X^T & 0 & 0 \end{array}\right] Γ=S1NTXT1N00X00
则可以知道当 S S S是非奇异矩阵时, Γ \Gamma Γ也是非奇异矩阵,于是可以通过矩阵的逆求解方程参数:
[ w c a ] = Γ − 1 [ Y x 0 0 ] \left[\begin{array}{c} w \\ c \\ a \end{array}\right] = \Gamma^{-1} \left[\begin{array}{c} Y^x \\ 0 \\ 0 \end{array}\right] wca=Γ1Yx00
此时有
Γ [ w c a ] = [ S w + c + X a 1 T w X T w ] = [ Y x 0 0 ] \Gamma\left[\begin{array}{c} w \\ c\\ a \end{array}\right]= \left[\begin{array}{c} Sw+c+Xa \\ 1^Tw \\ X^Tw \end{array}\right]= \left[\begin{array}{c} Y^x \\ 0 \\ 0 \end{array}\right] Γwca=Sw+c+Xa1TwXTw=Yx00
即还需要需要令
∑ k = 1 N w k = 0 \sum_{k=1}^N w_k=0 k=1Nwk=0
∑ k = 1 N x k x w k = 0 \sum_{k=1}^N x_k^xw_k=0 k=1Nxkxwk=0
∑ k = 1 N x k y w k = 0 \sum_{k=1}^N x_k^yw_k=0 k=1Nxkywk=0
对于2维空间, Φ 1 \Phi_1 Φ1 Φ 2 \Phi_2 Φ2可以通过一个线性方程来求解,如下所示:
[ w x w y c x c y a x a y ] = Γ − 1 [ Y x Y y 0 0 0 0 ] \left[\begin{array}{c} w^x & w^y \\ c^x & c^y \\ a^x & a^y \end{array}\right] = \Gamma^{-1} \left[\begin{array}{c} Y^x & Y^y \\ 0 & 0 \\ 0 & 0 \end{array}\right] wxcxaxwycyay=Γ1Yx00Yy00

最后

可能会有错误,主要是想说明对于TPS插值为什么会要添加三个约束。欢迎指正!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值