插值
假设已知函数
y = f ( x )
在
N + 1
个点
x 1 , x 2 , ⋯ , x N + 1
处的函数值
y 1 , y 2 , ⋯ , y N + 1
,但函数的表达式
f ( x )
未知,那么能够经过插值函数
p ( x )
来逼近未知函数
f ( x )
,而且
p ( x )
必须知足web
p ( x k ) = y k , k = 1 , 2 , ⋯ , N + 1. (1)
常见的插值函数的形式有多项式函数、样条函数。机器学习
多项式函数:令
p ( x )
为
N
次多项式函数,因而
p ( x )
有
N + 1
个参数,而由公式(1)可知这
N + 1
个参数知足
N + 1
个约束条件,因此能够求出
p ( x )
的表达式。svg
样条函数:咱们知道
N
阶多项式函数必然有
N − 1
个极值点,因此获得的插值函数摆动会比较大,这有点像机器学习中的过拟合现象,能够用样条函数来避免这个问题。这里的样条函数其实就是分段函数,表示在相邻点
x k
和
x k + 1
之间用低阶多项式函数
S k ( x )
进行插值。分段线性插值和三次样条插值都属于样条插值。函数
TPS
本文介绍的TPS针对的是插值问题的一种特殊状况,而且TSP插值函数的形式也比较新颖。 考虑这样一个插值问题:自变量
x
是2维空间中的一点,函数值
y
也是2维空间中的一点,而且都在笛卡尔坐标系下表示。给定
N
个自变量
x k
和对应的函数值
y k
,求插值函数 学习
Φ ( x ) = [ Φ 1 ( x ) Φ 2 ( x ) ] ,
使得 ui
y k = Φ ( x k ) . (2)
咱们能够认为是求两个插值函数
Φ 1 ( x )
和
Φ 2 ( x )
。atom
TPS插值函数形式以下: spa
Φ 1 ( x ) = c + a T x + w T s ( x ) (3 )
其中
c
是标量,向量
a ∈ R 2 × 1
,向量
w ∈ R N × 1
,函数向量code
s ( x ) = ( σ ( x − x 1 ) , σ ( x − x 1 ) , ⋯ , σ ( x − x N ) ) T
σ ( x ) = | | x | | 2 2 log | | x | | 2 .
Φ 2 ( x )
和
Φ 1 ( x )
有同样的形式。看到这里可能会产生疑问?插值函数的形式千千万,怎么就选择公式(3)这种形式呢?咱们能够把一个插值函数想象成弯曲一个薄钢板,使得它穿过给定点,这样会须要一个弯曲能量: orm
J ( Φ ) = ∑ j = 1 2 ∬ R 2 ( ∂ 2 Φ j ∂ x 2 ) 2 + 2 ( ∂ 2 Φ j ∂ x ∂ y ) 2 + ( ∂ 2 Φ j ∂ y 2 ) 2 d x d y
那么能够证实公式(3)是使得弯曲能量最小的插值函数。参考文献[3]中给了证实过程。
TSP插值函数
Φ 1
有
N + 3
个参数,而条件(2)只给出了
N
个约束,咱们再添加三个约束:
∑ k = 1 N w k = ∑ k = 1 N x x k w k = ∑ k = 1 N x y k w k = 0 0 0 (4)
x x k
和
x y k
分别表示点
x
的
x
坐标值和
y
坐标值。因而(2)和(4)能够写成
⎡ ⎣ ⎢ S 1 T N X T 1 N 0 0 X 0 0 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ w c a ⎤ ⎦ ⎥ = ⎡ ⎣ ⎢ Y x 0 0 ⎤ ⎦ ⎥ (5)
其中,
( S ) i j = σ ( x i − x j )
,
1 N
表示值全为1的
N
维列向量,
X = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ x x 1 x x 2 ⋯ x x N x y 1 x y 2 ⋯ x y N ⎤ ⎦ ⎥ ⎥ ⎥ ⎥
Y x = ⎡ ⎣ ⎢ ⎢ ⎢ ⎢ y x 1 y x 2 ⋯ y x N ⎤ ⎦ ⎥ ⎥ ⎥ ⎥
咱们能够令
Γ = ⎡ ⎣ ⎢ S 1 T N X T 1 N 0 0 X 0 0 ⎤ ⎦ ⎥
那么可知当
S
是非奇异矩阵时,
Γ
也是非奇异矩阵,因而参数为:
⎡ ⎣ ⎢ w c a ⎤ ⎦ ⎥ = Γ − 1 ⎡ ⎣ ⎢ Y x 0 0 ⎤ ⎦ ⎥ (6)
能够把
Φ 1
和
Φ 2
的参数经过一个矩阵运算计算出来:
⎡ ⎣ ⎢ w x c x a x w y c y a y ⎤ ⎦ ⎥ = Γ − 1 ⎡ ⎣ ⎢ Y x 0 0 Y y 0 0 ⎤ ⎦ ⎥ (7)
咱们把
Γ − 1
写成下面的形式:
Γ − 1 = [ Γ 11 Γ 21 Γ 12 Γ 22 ]
称矩阵
Γ 11
为弯曲能量矩阵,其秩为
N − 3
。
Principal Warp
Principal Warp是进一步对TPS进行分析的方法。看原论文[1]的介绍看的好艰辛,等后面若是再碰到的时候再总结。感兴趣的读者能够去阅读论文[1]或者书[2]的第12.3节。
TPS对齐两张图片
假设对齐图片1到图片2。给定图片1和图片2中的已知landmark点,咱们能够经过TPS获得由图片1的坐标到图片2的坐标的映射关系。遍历图片1中的每一个点,咱们能够获得它在图片2中应该对应的点,把图片1中每一个点上的像素信息移到对应的图片2中去,就能够获得对准图片2以后的图片1。
可是图片1并非全部的点都在图片2中有对应,好比:若是图片1中的点映射的横坐标和纵坐标都为负值这种状况。我不知作别人是怎么处理的,目前我是直接舍弃这样的点。
参考
[1] F. L. Bookstein. Principal warps: Thin-plate splines and the decomposition of deformations . IEEE Trans. Pattern Anal. Mach. Intell., 11(6):567–585, June 1989. [2] Ian L. Dryden and Kanti V. Mardia. [Statistical Shape Analysis: With Applications in R].(须要这本书电子版的读者请私信我) [3] Kent, J. T. and Mardia, K. V. (1994a). The link between kriging and thin-plate splines. In: Probability, Statistics and Optimization: a Tribute to Peter Whittle (ed. F. P. Kelly), pp 325–339. John Wiley & Sons, Ltd, Chichester. page 282, 287, 311