论文ASTER学习(网格生成)

空间变换

一、 平移
[ x ′ y 1 ] = [ 1 0 t x 0 1 t y 0 0 1 ] [ x y 1 ] = [ x + t x y + t y 1 ] \begin{bmatrix} x^\prime\\ y\\ 1 \end{bmatrix}= \begin{bmatrix} 1&0&tx\\ 0&1&ty\\ 0&0&1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}= \begin{bmatrix} x+tx\\ y+ty\\ 1 \end{bmatrix} xy1 = 100010txty1 xy1 = x+txy+ty1
二、旋转
[ x ′ y 1 ] = [ cos ⁡ θ sin ⁡ θ 0 sin ⁡ θ cos ⁡ θ 0 0 0 1 ] [ x y 1 ] = [ x cos ⁡ θ + y sin ⁡ θ x sin ⁡ θ + y cos ⁡ θ 1 ] \begin{bmatrix} x^\prime \\ y\\ 1 \end{bmatrix}= \begin{bmatrix} \cos \theta&\sin \theta & 0 \\ \sin \theta & \cos \theta &0 \\ 0&0&1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}= \begin{bmatrix} x\cos \theta + y \sin \theta \\ x\sin \theta + y \cos \theta \\ 1 \end{bmatrix} xy1 = cosθsinθ0sinθcosθ0001 xy1 = xcosθ+ysinθxsinθ+ycosθ1
三、缩放
[ x ′ y ′ 1 ] = [ s x 0 0 0 s y 0 0 0 1 ] [ x y 1 ] = [ x ∗ s x y ∗ s y 1 ] \begin{bmatrix} x^\prime\\ y^\prime\\ 1 \end{bmatrix}= \begin{bmatrix} sx&0&0\\ 0&sy&0\\ 0&0&1 \end{bmatrix} \begin{bmatrix} x\\ y\\ 1 \end{bmatrix}= \begin{bmatrix} x*sx\\ y*sy\\ 1 \end{bmatrix} xy1 = sx000sy0001 xy1 = xsxysy1
四、综合
综上所述一个2D图像只需要6个参数就能实现对图像的平移、缩放、旋转灯变换,即:
[ θ 11 θ 12 θ 13 θ 21 θ 22 θ 23 ] [ x i t y i t 1 ] \begin{bmatrix} \theta_{11} & \theta_{12} & \theta_{13} \\ \theta_{21} & \theta_{22} & \theta_{23} \end{bmatrix} \begin{bmatrix} x_i^t \\ y_i^t \\ 1 \end{bmatrix} [θ11θ21θ12θ22θ13θ23] xityit1

网格生成

我们期望通过学习出来的 C ′ C ^\prime C与预设 C C C的位置关系学习到一个变换矩阵T,使我们能够应用变换矩阵T到整个输入图,从而得到矫正后的图像 I Υ I_{\Upsilon} IΥ
从上文可知我们只要知道6个参数就可以对2d图像进行变换。所以我们定义2DTPStransformation矩阵T:
T = [ α 0 α 1 α 2 μ β 0 β 1 β 2 ν ] T=\begin{bmatrix} \alpha_0&\alpha_1&\alpha_2&\mu\\ \beta_0&\beta_1&\beta_2&\nu \end{bmatrix} T=[α0β0α1β1α2β2μν]
其中 μ , ν ∈ R 1 × K \mu,\nu\in \R^{1\times K} μ,νR1×K(与前面K个控制点对应)
给定一个2D的点 p = [ x p , y p ] T p=\begin{bmatrix}x_p,y_p \end{bmatrix}^T p=[xp,yp]T,TPS通过线性投影T得到变换后的 p ′ p^\prime p
p ′ = T [ 1 p ϕ ( ∥ p − c 1 ∥ ) ⋮ ϕ ( ∥ p − c k ∥ ) ] p^\prime=T\begin{bmatrix} 1\\ p\\ \phi(\parallel p-c_1\parallel)\\ \vdots\\ \phi(\parallel p-c_k\parallel) \end{bmatrix} p=T 1pϕ(pc1)ϕ(pck)
其中 ϕ ( r ) = r 2 log ⁡ ( r ) \phi(r)=r^2\log (r) ϕ(r)=r2log(r)代表核函数计算像素点p与控制点 c k c_k ck的欧式距离
通过 C ′ C^\prime C C C C之间的线性映射关系得到变换矩阵T,那么:
c i ′ = T [ 1 c i ϕ ( ∥ c i − c 1 ∥ ) ⋮ ϕ ( ∥ c i − c K ∥ ) ] , i = 1 , … , K c_i^\prime = T\begin{bmatrix} 1\\ c_i\\ \phi(\parallel c_i-c_1\parallel)\\ \vdots\\ \phi(\parallel c_i - c_K\parallel) \end{bmatrix}, i=1,\dots,K ci=T 1ciϕ(cic1)ϕ(cicK) ,i=1,,K
其中边界值设定为:
0 = μ 1 0 = ν 1 0 = μ C x T 0 = ν C y T \begin{matrix} 0=\mu_1\\ 0=\nu_1\\ 0=\mu C_x^T\\ 0= \nu C_y^T \end{matrix} 0=μ10=ν10=μCxT0=νCyT
根据上述公式我们可以得到:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部