相似变换 (旋转、平移、缩放) 参数的最小方差估计 —— Umeyama 算法详细推导 (II)

Title: 相似变换 (旋转、平移、缩放) 参数的最小方差估计 —— Umeyama 算法详细推导 (II)


相关博文介绍

- 矩阵乘法可交换与可同时对角化的关系 —— Umeyama 算法推导的数学准备 (I)

- 旋转矩阵约束下的朗格朗日乘子 —— Umeyama 算法推导的数学准备 (II)

- 矩阵乘操作、三角化、开方特征值 —— Umeyama 算法推导的数学准备 (III)

- 奇异值分解之常用结论

- 旋转参数的最小方差估计 —— Umeyama 算法详细推导 (I)

- 相似变换参数 (旋转、平移、缩放) 的最小方差估计 —— Umeyama 算法详细推导 (II)

- Umeyama 算法之源码阅读与测试


前言

SLAM 轨迹的对齐和评估时, 多用 Umeyama 算法实现.

该算法要解决的问题为:

给定两个 m m m 维空间内的点集 { x i \mathbf{x}_i xi} 和 { y i \mathbf{y}_i yi} (其中 i = 1 , 2 , … , n i=1,2,\ldots,n i=1,2,,n) 找出最小误差平方意义下的相似变换参数 (Similarity Transformation).

该算法初见于 S. Umeyama 的一篇论文 “Least-squares estimation of transformation parameters between two point patterns”[1].

相似变换

相似变换 Similarity Transformation = 旋转 Rotation R \mathbf{R} R + 平移 Translation t \mathbf{t} t + 放缩 Scale c c c

上一篇博文中已经详细推导了 “[引理] 旋转参数的最小方差估计”, 该引理中只考虑了旋转变换, 获得了最优旋转参数估计 R \mathbf{R} R.


I. Umeyama 算法

1. 引理

[引理] 旋转参数的最小方差估计

A \mathbf{A} A B \mathbf{B} B 都是 m × n m\times n m×n 的矩阵.

R \mathbf{R} R m × m m\times m m×m 的旋转矩阵.

U D V T \mathbf{U} \mathbf{D} \mathbf{V}^{\small\rm T} UDVT A B T \mathbf{A}\mathbf{B}^{\small\rm T} ABT 的奇异值分解, 即
A B T = U D V T (I-1-1) \mathbf{A}\mathbf{B}^{\small\rm T} = \mathbf{U} \mathbf{D} \mathbf{V}^{\small\rm T} \tag{I-1-1} ABT=UDVT(I-1-1)
其中 U U T = V V T = I \mathbf{U}\mathbf{U}^{\small\rm T}= \mathbf{V}\mathbf{V}^{\small\rm T} = \mathbf{I} UUT=VVT=I, D = d i a g ( d i ) \mathbf{D}={\rm diag}(d_i) D=diag(di), d 1 ≥ d 2 ≥ ⋯ ≥ d m ≥ 0 d_1 \geq d_2 \geq \cdots \geq d_m \geq 0 d1d2dm0.

R \mathbf{R} R 为参数的目标函数 ∥ A − R B ∥ F \|\mathbf{A}- \mathbf{R} \mathbf{B}\|_{F} ARBF 的最小值为
min ⁡ R ∥ A − R B ∥ F 2 = ∥ A ∥ F 2 + ∥ B ∥ F 2 − 2   t r ( D S ) (I-1-2) \underset{\mathbf{R}}{\min} \|\mathbf{A}-\mathbf{R}\mathbf{B}\|_{F}^2 = \|\mathbf{A}\|_{F}^2 + \|\mathbf{B}\|_{F}^2 -2\, {\rm tr}(\mathbf{D}\mathbf{S}) \tag{I-1-2} RminARBF2=AF2+BF22tr(DS)(I-1-2)
其中
S = { I , if      det ⁡ ( A B T ) ≥ 0 d i a g ( 1 , 1 , ⋯   , 1 , − 1 ) , if      det ⁡ ( A B T ) < 0 (I-1-3) \mathbf{S} = \left\{ \begin{array} {ll} \mathbf{I}, & \text{if} \;\; \det (\mathbf{A}\mathbf{B}^{\small\rm T})\geq 0\\ {\rm diag}(1,1,\cdots,1,-1), & \text{if} \;\; \det (\mathbf{A}\mathbf{B}^{\small\rm T})< 0\\ \end{array} \right. \tag{I-1-3} S={I,diag(1,1,,1,1),ifdet(ABT)0ifdet(ABT)<0(I-1-3)
r a n k ( A B T ) ≥ m − 1 {\rm rank}(\mathbf{A}\mathbf{B}^{\small\rm T}) \geq m-1 rank(ABT)m1 时, 达到式 (I-1-2) 目标函数最小化所需的最优的旋转矩阵 R \mathbf{R} R 被唯一确定为
R = U S V T (I-1-4) \mathbf{R} = \mathbf{U} \mathbf{S} \mathbf{V}^{\small\rm T} \tag{I-1-4} R=USVT(I-1-4)
其中当 det ⁡ ( A B T ) = 0 \det ({\mathbf{A}\mathbf{B}^{\small\rm T}}) = 0 det(ABT)=0 时 (也就是说, 当 r a n k ( A B T ) = m − 1 {\rm rank}(\mathbf{A}\mathbf{B}^{\small\rm T})= m-1 rank(ABT)=m1 时), 式 (I-1-4) 中的 S \mathbf{S} S 需要选择为
S = { I , if      det ⁡ ( U ) det ⁡ ( V ) = 1 d i a g ( 1 , 1 , ⋯   , 1 , − 1 ) , if      det ⁡ ( U ) det ⁡ ( V ) = − 1 (I-1-5) \mathbf{S} = \left\{ \begin{array} {ll} \mathbf{I}, & \text{if} \;\; \det (\mathbf{U})\det(\mathbf{V}) = 1\\ {\rm diag}(1,1,\cdots,1,-1), & \text{if} \;\; \det (\mathbf{U})\det(\mathbf{V}) = -1\\ \end{array} \right. \tag{I-1-5} S={I,diag(1,1,,1,1),ifdet(U)det(V)=1ifdet(U)det(V)=1(I-1-5)


2. 定理

[定理] 相似变换参数的最小方差估计

X = { x 1 , x 2 , ⋯   , x n } \mathbf{X} = \{\mathbf{x}_1, \mathbf{x}_2,\cdots, \mathbf{x}_n\} X={x1,x2,,xn} Y = { y 1 , y 2 , ⋯   , y n } \mathbf{Y} = \{\mathbf{y}_1, \mathbf{y}_2,\cdots, \mathbf{y}_n\} Y={y1,y2,,yn} m m m-维空间中的两组对应点样本. 这两组对应点样本进行相似变换 (旋转 R \mathbf{R} R、平移 t \mathbf{t} t、缩放 c c c) , 得到的均方误差 (mean-square error, MSE) 为
e 2 ( R , t , c ) = 1 n ∑ i = 1 n ∥ y i − ( c R x i + t ) ∥ 2 2 (I-2-1) e^{2}(\mathbf{R}, \mathbf{t}, c) = \frac{1}{n} \sum_{i=1}^{n}\|\mathbf{y}_i - (c\mathbf{R} \mathbf{x}_i + \mathbf{t})\|_{2}^2 \tag{I-2-1} e2(R,t,c)=n1i=1nyi(cRxi+t)22(I-2-1)
而最小均方误差为
ε 2 = σ y 2 − t r ( D S ) 2 σ x 2 (I-2-2) \varepsilon^{2} = \sigma_{y}^2 - \frac{{\rm tr}(\mathbf{D}\mathbf{S})^2}{\sigma_x^2} \tag{I-2-2} ε2=σy2σx2tr(DS)2(I-2-2)
其中
μ x = 1 n ∑ i = 1 n x i (I-2-3) \boldsymbol{\mu}_x = \frac{1}{n} \sum_{i=1}^{n} \mathbf{x}_i \tag{I-2-3} μx=n1i=1nxi(I-2-3)

μ y = 1 n ∑ i = 1 n y i (I-2-4) \boldsymbol{\mu}_y = \frac{1}{n} \sum_{i=1}^{n} \mathbf{y}_i \tag{I-2-4} μy=n1i=1nyi(I-2-4)

σ x 2 = 1 n ∑ i = 1 n ∥ x i − μ x ∥ 2 2 (I-2-5) \sigma_x^2 = \frac{1}{n} \sum_{i=1}^n \|\mathbf{x}_i - \boldsymbol{\mu}_x\|_2^2 \tag{I-2-5} σx2=n1i=1nxiμx22(I-2-5)

σ y 2 = 1 n ∑ i = 1 n ∥ y i − μ y ∥ 2 2 (I-2-6) \sigma_y^2 = \frac{1}{n} \sum_{i=1}^n \|\mathbf{y}_i - \boldsymbol{\mu}_y\|_2^2 \tag{I-2-6} σy2=n1i=1nyiμy22(I-2-6)

∑ x y = 1 n ∑ i = 1 n ( y i − μ y ) ( x i − μ x ) T (I-2-7) {\sum}_{xy} = \frac{1}{n} \sum_{i=1}^{n} (\mathbf{y}_i - \boldsymbol{\mu}_y) (\mathbf{x}_i - \boldsymbol{\mu}_x)^{\small\rm T} \tag{I-2-7} xy=n1i=1n(yiμy)(xiμx)T(I-2-7)

- μ x \boldsymbol{\mu}_x μx μ y \boldsymbol{\mu}_y μy 分别是 X \mathbf{X} X Y \mathbf{Y} Y 的均值向量

- σ x 2 \sigma_x^2 σx2 σ x 2 \sigma_x^2 σx2 分别是 X \mathbf{X} X Y \mathbf{Y} Y 的围绕各自均值向量的方差

- ∑ x y {\sum}_{xy} xy X \mathbf{X} X Y \mathbf{Y} Y 的协方差矩阵

∑ x y {\sum}_{xy} xy 的奇异值分解式为 U D V T \mathbf{U} \mathbf{D} \mathbf{V}^{\small\rm T} UDVT, 其中 D = d i a g ( d i ) \mathbf{D} = {\rm diag}(d_i) D=diag(di), d 1 ≥ d 2 ≥ ⋯ ≥ d m ≥ 0 d_1 \geq d_2 \geq \cdots \geq d_m \geq 0 d1d2dm0, 以及令
S = { I , if      det ⁡ ( ∑ x y ) ≥ 0 d i a g ( 1 , 1 , ⋯   , 1 , − 1 ) , if      det ⁡ ( ∑ x y ) < 0 (I-2-8) \mathbf{S} = \left\{ \begin{array} {ll} \mathbf{I}, & \text{if} \;\; \det ({\sum}_{xy})\geq 0\\ {\rm diag}(1,1,\cdots,1,-1), & \text{if} \;\; \det ({\sum}_{xy})< 0\\ \end{array} \right. \tag{I-2-8} S={I,diag(1,1,,1,1),ifdet(xy)0ifdet(xy)<0(I-2-8)
r a n k ( ∑ x y ) > m − 1 {\rm rank}{({\sum}_{xy})} > m-1 rank(xy)>m1 时, 最优相似变换参数被唯一确定
R = U S V T (I-2-9) \mathbf{R} = \mathbf{U} \mathbf{S} \mathbf{V}^{\small\rm T} \tag{I-2-9} R=USVT(I-2-9)

t = μ y − c R μ x (I-2-10) \mathbf{t} = \boldsymbol{\mu}_y - c\mathbf{R} \boldsymbol{\mu}_x \tag{I-2-10} t=μycRμx(I-2-10)

c = 1 σ x 2 t r ( D S ) (I-2-11) c = \frac{1}{\sigma_x^2} {\rm tr}(\mathbf{D} \mathbf{S}) \tag{I-2-11} c=σx21tr(DS)(I-2-11)

r a n k ( ∑ x y ) = m − 1 {\rm rank}{({\sum}_{xy})} = m-1 rank(xy)=m1 时, 式 (I-2-9) 中的 S \mathbf{S} S 必须选为
S = { I , if      det ⁡ ( U ) det ⁡ ( V ) = 1 d i a g ( 1 , 1 , ⋯   , 1 , − 1 ) , if      det ⁡ ( U ) det ⁡ ( V ) = − 1 (I-2-12) \mathbf{S} = \left\{ \begin{array} {ll} \mathbf{I}, & \text{if} \;\; \det (\mathbf{U})\det(\mathbf{V}) = 1\\ {\rm diag}(1,1,\cdots,1,-1), & \text{if} \;\; \det (\mathbf{U})\det(\mathbf{V}) = -1\\ \end{array} \right. \tag{I-2-12} S={I,diag(1,1,,1,1),ifdet(U)det(V)=1ifdet(U)det(V)=1(I-2-12)


II. 推导

1. 正则矩阵的定义与性质

表一. 正则矩阵的定义

公式名/编号
T-1-1 h ≜ [ 1 1 ⋯ 1 ] ⏟ n T \mathbf{h} \triangleq \underset{n}{\underbrace{\begin{bmatrix}1 &1 &\cdots &1\end{bmatrix}}}^{\small\rm T} hn [111]T
正则矩阵
T-1-2
K ≜ I − 1 n h h T = [ 1 − 1 n − 1 n ⋯ − 1 n − 1 n 1 − 1 n ⋯ − 1 n ⋮ ⋮ ⋱ ⋮ − 1 n − 1 n ⋯ 1 − 1 n ] \mathbf{K} \triangleq \mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T} = \begin{bmatrix} 1-\frac{1}{n} &-\frac{1}{n} &\cdots & -\frac{1}{n}\\ -\frac{1}{n} &1-\frac{1}{n} &\cdots &-\frac{1}{n}\\ \vdots &\vdots &\ddots & \vdots\\ -\frac{1}{n} &-\frac{1}{n} &\cdots & 1-\frac{1}{n}\\ \end{bmatrix} KIn1hhT= 1n1n1n1n11n1n1n1n11n1

表二. 正则矩阵的性质

公式名/编号性质
T-2-1 h T h = n \mathbf{h}^{\small\rm T}\mathbf{h} = n hTh=n
复制性
T-2-2
t h T = t [ 1 1 ⋯ 1 ] ⏟ n = [ t t ⋯ t ] ⏟ n ,      w h e r e   t ∈ R x \mathbf{t}\mathbf{h}^{\small\rm T} = \mathbf{t}\underset{n}{\underbrace{\begin{bmatrix}1 &1&\cdots &1 \end{bmatrix}}} = \underset{n}{\underbrace{\begin{bmatrix}\mathbf{t} &\mathbf{t} &\cdots &\mathbf{t} \end{bmatrix}}},\;\; {\rm where}\,\mathbf{t}\in \mathbb{R}^{x} thT=tn [111]=n [ttt],wheretRx
不变性
T-2-3
K K = ( I − 1 n h h T ) ( I − 1 n h h T ) = I − 1 n h h T − 1 n h h T + 1 n 2 h h T h h T = I − 1 n h h T = K \begin{aligned} \mathbf{K}\mathbf{K} &=\left(\mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T} \right) \left(\mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T}\right) \\ & = \mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T} + \frac{1}{n^2} \mathbf{h} \mathbf{h}^{\small\rm T}\mathbf{h} \mathbf{h}^{\small\rm T}\\ &= \mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T}\\ &= \mathbf{K} \end{aligned} KK=(In1hhT)(In1hhT)=In1hhTn1hhT+n21hhThhT=In1hhT=K
对称性
T-2-4
K = K T = K K \mathbf{K} = \mathbf{K}^{\small\rm T} = \mathbf{K}\mathbf{K} K=KT=KK
正交性
T-2-5
h T K = h T ( I − 1 n h h T ) = 0 \mathbf{h}^{\small\rm T} \mathbf{K} = \mathbf{h}^{\small\rm T} \left(\mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T} \right) = \mathbf{0} hTK=hT(In1hhT)=0

已知矩阵的 Frobenius-范数 的平方是其各个元素平方的和. 将这些元素的平方按元素所在列为一组求和, 再把各列的和相加, 就是所有元素的平方和. 这样就建立了矩阵 Frobenius-范数和矩阵各个列向量 2-范数之间的关系.

表三. 矩阵 Frobenius-范数的列形式

公式名/编号性质
T-3-1 ∣ X ∣ F 2 = ∑ i = 1 n ∣ x i ∣ 2 2 |\mathbf{X}|_{F}^2 = \sum_{i=1}^n |\mathbf{x}_i|_2^2 XF2=i=1nxi22
T-3-2 ∣ t h T ∣ F 2 = t r [ ( t h T ) ( t h T ) T ] = n   t r ( t t T ) = n ∣ t ∣ 2 2 |\mathbf{t} \mathbf{h}^{\small\rm T}|_{F}^2 = {\rm tr}\left[ \left(\mathbf{t} \mathbf{h}^{\small\rm T}\right) \left(\mathbf{t} \mathbf{h}^{\small\rm T}\right)^{\small\rm T} \right] = n \,{\rm tr}(\mathbf{t}\mathbf{t}^{\small\rm T}) = n |\mathbf{t}|_2^2 thTF2=tr[(thT)(thT)T]=ntr(ttT)=nt22

表四. 正则矩阵的统计应用

公式名/编号性质
均值
T-4-1
μ x = 1 n ∑ i = 1 n x i = 1 n X h \boldsymbol{\mu}_x = \frac{1}{n}\sum_{i=1}^{n} \mathbf{x}_i = \frac{1}{n} \mathbf{X} \mathbf{h} μx=n1i=1nxi=n1Xh
均值
T-4-2
μ y = 1 n ∑ i = 1 n y i = 1 n Y h \boldsymbol{\mu}_y = \frac{1}{n}\sum_{i=1}^{n} \mathbf{y}_i = \frac{1}{n} \mathbf{Y} \mathbf{h} μy=n1i=1nyi=n1Yh
零均值化
T-4-3
X K = [ x 11 x 12 ⋯ x 1 n x 21 x 22 ⋯ x 2 n ⋮ ⋮ ⋱ ⋮ x n 1 x n 2 ⋯ x n n ] [ 1 − 1 n − 1 n ⋯ − 1 n − 1 n 1 − 1 n ⋯ − 1 n ⋮ ⋮ ⋱ ⋮ − 1 n − 1 n ⋯ 1 − 1 n ] = [ x 11 − 1 n ∑ i x 1 i x 12 − 1 n ∑ i x 1 i ⋯ x 1 n − 1 n ∑ i x 1 i x 21 − 1 n ∑ i x 2 i x 22 − 1 n ∑ i x 2 i ⋯ x 2 n − 1 n ∑ i x 2 i ⋮ ⋮ ⋱ ⋮ x n 1 − 1 n ∑ i x n i x n 2 − 1 n ∑ i x n i ⋯ x n n − 1 n ∑ i x n i ] = [ x 1 − μ x x 2 − μ x ⋯ x n − μ x ] \begin{aligned} \mathbf{X}\mathbf{K} & = \begin{bmatrix} x_{11} &x_{12} &\cdots & x_{1n}\\ x_{21} &x_{22} &\cdots & x_{2n}\\ \vdots &\vdots &\ddots & \vdots\\ x_{n1} &x_{n2} &\cdots & x_{nn}\\ \end{bmatrix} \begin{bmatrix} 1-\frac{1}{n} &-\frac{1}{n} &\cdots & -\frac{1}{n}\\ -\frac{1}{n} &1-\frac{1}{n} &\cdots &-\frac{1}{n}\\ \vdots &\vdots &\ddots & \vdots\\ -\frac{1}{n} &-\frac{1}{n} &\cdots & 1-\frac{1}{n}\\ \end{bmatrix} \\ &= \begin{bmatrix} x_{11}-\frac{1}{n}\sum_i x_{1i} &x_{12}-\frac{1}{n}\sum_i x_{1i} &\cdots & x_{1n}-\frac{1}{n}\sum_i x_{1i}\\ x_{21}-\frac{1}{n}\sum_i x_{2i} &x_{22}-\frac{1}{n}\sum_i x_{2i} &\cdots & x_{2n}-\frac{1}{n}\sum_i x_{2i}\\ \vdots &\vdots &\ddots & \vdots\\ x_{n1}-\frac{1}{n}\sum_i x_{ni} &x_{n2}-\frac{1}{n}\sum_i x_{ni} &\cdots & x_{nn}-\frac{1}{n}\sum_i x_{ni}\\ \end{bmatrix} \\ &= \begin{bmatrix} \mathbf{x}_1- \boldsymbol{\mu}_x &\mathbf{x}_2- \boldsymbol{\mu}_x &\cdots &\mathbf{x}_n- \boldsymbol{\mu}_x\end{bmatrix} \end{aligned} XK= x11x21xn1x12x22xn2x1nx2nxnn 1n1n1n1n11n1n1n1n11n1 = x11n1ix1ix21n1ix2ixn1n1ixnix12n1ix1ix22n1ix2ixn2n1ixnix1nn1ix1ix2nn1ix2ixnnn1ixni =[x1μxx2μxxnμx]
零均值化
T-4-4
Y K = [ y 1 − μ y y 2 − μ y ⋯ y n − μ y ] \mathbf{Y}\mathbf{K} = \begin{bmatrix} \mathbf{y}_1- \boldsymbol{\mu}_y &\mathbf{y}_2- \boldsymbol{\mu}_y &\cdots &\mathbf{y}_n- \boldsymbol{\mu}_y\end{bmatrix} YK=[y1μyy2μyynμy]
方差
T-4-5
1 n ∣ X K ∣ F 2 = 1 n ∑ i = 1 n ∣ x i − μ x ∣ 2 2 = σ x 2 \frac{1}{n} |\mathbf{X}\mathbf{K}|_{F}^2 = \frac{1}{n} \sum_{i=1}^{n} |\mathbf{x}_i- \boldsymbol{\mu}_x|_2^2 = \sigma_x^2 n1XKF2=n1i=1nxiμx22=σx2
方差
T-4-6
σ y 2 = 1 n ∣ Y K ∣ F 2 \sigma_y^2 =\frac{1}{n} |\mathbf{Y}\mathbf{K}|_{F}^2 σy2=n1YKF2
协方差
T-4-7
1 n Y K X T = 1 n Y K K T X T = 1 n ( Y K ) ( X K ) T = 1 n [ y 1 − μ y y 2 − μ y ⋯ y n − μ y ] [ ( x 1 − μ x ) T ( x 2 − μ x ) T ⋮ ( x n − μ x ) T ] = 1 n ∑ i = 1 n ( y i − μ y ) ( x i − μ x ) T = ∑ x y \begin{aligned} \frac{1}{n} \mathbf{Y} \mathbf{K} \mathbf{X}^{\small\rm T} & = \frac{1}{n} \mathbf{Y} \mathbf{K} \mathbf{K}^{\small\rm T} \mathbf{X}^{\small\rm T} = \frac{1}{n} \left(\mathbf{Y} \mathbf{K}\right) \left(\mathbf{X}\mathbf{K}\right)^{\small\rm T}\\ &= \frac{1}{n} \begin{bmatrix} \mathbf{y}_1- \boldsymbol{\mu}_y &\mathbf{y}_2- \boldsymbol{\mu}_y &\cdots &\mathbf{y}_n- \boldsymbol{\mu}_y\end{bmatrix} \begin{bmatrix} (\mathbf{x}_1- \boldsymbol{\mu}_x)^{\small\rm T} \\ (\mathbf{x}_2- \boldsymbol{\mu}_x)^{\small\rm T} \\ \vdots \\ (\mathbf{x}_n- \boldsymbol{\mu}_x)^{\small\rm T} \end{bmatrix}\\ &= \frac{1}{n} \sum_{i=1}^{n} (\mathbf{y}_i - \boldsymbol{\mu}_y) (\mathbf{x}_i - \boldsymbol{\mu}_x)^{\small\rm T}\\ &= {\sum}_{xy} \end{aligned} n1YKXT=n1YKKTXT=n1(YK)(XK)T=n1[y1μyy2μyynμy] (x1μx)T(x2μx)T(xnμx)T =n1i=1n(yiμy)(xiμx)T=xy

表五. 正则矩阵的其他计算结果

公式名/编号性质
T-5-1 X K + 1 n X h h T = X ( I − 1 n h h T ) + 1 n X h h T = X \mathbf{X}\mathbf{K} + \frac{1}{n} \mathbf{X} \mathbf{h} \mathbf{h}^{\small\rm T} = \mathbf{X}(\mathbf{I} - \frac{1}{n} \mathbf{h} \mathbf{h}^{\small\rm T})+ \frac{1}{n} \mathbf{X} \mathbf{h} \mathbf{h}^{\small\rm T} = \mathbf{X} XK+n1XhhT=X(In1hhT)+n1XhhT=X
T-5-2 Y K + 1 n Y h h T = Y \mathbf{Y}\mathbf{K} + \frac{1}{n} \mathbf{Y} \mathbf{h} \mathbf{h}^{\small\rm T} = \mathbf{Y} YK+n1YhhT=Y

2. 目标函数

矩阵乘的操作可知
[ R x 1 R x 2 ⋯ R x n ] = [ R X ] (II-2-1) \begin{bmatrix}{\mathbf{R} \mathbf{x}_1 } & {\mathbf{R} \mathbf{x}_2 } &\cdots & {\mathbf{R} \mathbf{x}_n} \end{bmatrix} = \begin{bmatrix} \mathbf{R} \mathbf{X} \end{bmatrix} \tag{II-2-1} [Rx1Rx2Rxn]=[RX](II-2-1)
再结合式 (T-2-2) 可知
[ y 1 − ( c R x 1 + t ) y 2 − ( c R x 2 + t ) ⋯ y n − ( c R x n + t ) ] = [ Y − ( c R X + t h T ) ] (II-2-2) \begin{bmatrix}{\mathbf{y}_1 - (c\mathbf{R} \mathbf{x}_1 + \mathbf{t})} & {\mathbf{y}_2 - (c\mathbf{R} \mathbf{x}_2 + \mathbf{t})} &\cdots & {\mathbf{y}_n - (c\mathbf{R} \mathbf{x}_n + \mathbf{t})}\end{bmatrix} = \begin{bmatrix} \mathbf{Y} - (c\mathbf{R} \mathbf{X} + \mathbf{t}\mathbf{h}^{\small\rm T} ) \end{bmatrix} \tag{II-2-2} [y1(cRx1+t)y2(cRx2+t)yn(cRxn+t)]=[Y(cRX+thT)](II-2-2)
根据 Frobenius-范数 (T-3-1) 变换目标函数 (I-2-2)
e 2 ( R , t , c ) = 1 n ∑ i = 1 n ∥ y i − ( c R x i + t ) ∥ 2 2 = 1 n ∥ Y − c R X − t h T ∥ F 2 (T-5-1) , (T-5-2) = 1 n ∥ Y K + 1 n Y h h T − c R ( X K + 1 n X h h T ) − t h T ∥ F 2 = 1 n ∥ Y K − c R X K + ( 1 n Y h − c n R X h − t ) h T ∥ F 2 = 1 n ∥ ( Y K − c R X K ) − t ′ h T ∥ F 2 = 1 n t r { [ ( Y K − c R X K ) − t ′ h T ] T [ ( Y K − c R X K ) − t ′ h T ] } (T-3-2) = 1 n ∥ Y K − c R X K ∥ F 2 + ∥ t ′ ∥ F 2 + t r [ ( Y K − c R X K ) T t ′ h T ] ‾ = 1 n ∥ Y K − c R X K ∥ F 2 + ∥ t ′ ∥ F 2 (II-2-3) \begin{aligned} e^{2}(\mathbf{R}, \mathbf{t}, c) & = \frac{1}{n} \sum_{i=1}^{n}\left\|\mathbf{y}_i - (c\mathbf{R} \mathbf{x}_i + \mathbf{t})\right\|_{2}^2\\ &= \frac{1}{n} \left\| \mathbf{Y} - c\mathbf{R} \mathbf{X} - \mathbf{t}\mathbf{h}^{\small\rm T} \right\|_{F}^2\\ {\small\text{(T-5-1)},\text{(T-5-2)}}\quad &= \frac{1}{n} \left\| \mathbf{Y}\mathbf{K} + \frac{1}{n} \mathbf{Y} \mathbf{h} \mathbf{h}^{\small\rm T} - c\mathbf{R} \left(\mathbf{X}\mathbf{K} + \frac{1}{n} \mathbf{X} \mathbf{h} \mathbf{h}^{\small\rm T}\right) - \mathbf{t}\mathbf{h}^{\small\rm T} \right\|_{F}^2\\ &= \frac{1}{n} \left\| \mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K} + \left(\frac{1}{n} \mathbf{Y} \mathbf{h} - \frac{c}{n}\mathbf{R} \mathbf{X} \mathbf{h} - \mathbf{t}\right) \mathbf{h}^{\small\rm T}\right\|_{F}^2\\ &= \frac{1}{n} \left\| \left(\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right) - \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right\|_{F}^2\\ &= \frac{1}{n} {\rm tr}\left\{ \left[ \left(\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right) - \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right]^{\small\rm T} \left[ \left(\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right) - \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right] \right\}\\ {\small\text{(T-3-2)}}\quad &= \frac{1}{n} \left\|\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right\|_F^2 + \|\mathbf{t}^{'}\|_{F}^2 + \underline{{\rm tr}\left[\left(\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right)^{\small\rm T} \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right]}\\ &= \frac{1}{n} \left\|\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right\|_F^2 + \|\mathbf{t}^{'}\|_{F}^2 \end{aligned} \tag{II-2-3} e2(R,t,c)(T-5-1),(T-5-2)(T-3-2)=n1i=1nyi(cRxi+t)22=n1 YcRXthT F2=n1 YK+n1YhhTcR(XK+n1XhhT)thT F2=n1 YKcRXK+(n1YhncRXht)hT F2=n1 (YKcRXK)thT F2=n1tr{[(YKcRXK)thT]T[(YKcRXK)thT]}=n1YKcRXKF2+tF2+tr[(YKcRXK)TthT]=n1YKcRXKF2+tF2(II-2-3)
其中
t ′ ≜ − ( 1 n Y h − c n R X h − t ) (II-2-4) \mathbf{t}^{'} \triangleq -\left(\frac{1}{n} \mathbf{Y} \mathbf{h} - \frac{c}{n}\mathbf{R} \mathbf{X} \mathbf{h} - \mathbf{t}\right) \tag{II-2-4} t(n1YhncRXht)(II-2-4)
另外, 式 (II-2-2) 倒数第二行下划线项被省略的原因是
t r [ ( Y K − c R X K ) T t ′ h T ] = t r [ K T ( Y − c R X ) T t ′ h T ] = t r [ h T K T ‾ ( Y − c R X ) T t ′ ] (T-2-5) = 0 (II-2-5) \begin{aligned} {\rm tr}\left[\left(\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right)^{\small\rm T} \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right] &= {\rm tr}\left[\mathbf{K}^{\small\rm T} \left(\mathbf{Y}- c\mathbf{R} \mathbf{X}\right)^{\small\rm T} \mathbf{t}^{'} \mathbf{h}^{\small\rm T}\right] \\ & = {\rm tr}\left[\underline{\mathbf{h}^{\small\rm T} \mathbf{K}^{\small\rm T} } \left(\mathbf{Y}- c\mathbf{R} \mathbf{X}\right)^{\small\rm T} \mathbf{t}^{'} \right] \\ {\small\text{(T-2-5)}}\quad &= 0 \end{aligned} \tag{II-2-5} tr[(YKcRXK)TthT](T-2-5)=tr[KT(YcRX)TthT]=tr[hTKT(YcRX)Tt]=0(II-2-5)


3. 平移参数的最优估计

要使目标函数式 (II-2-3) 达到最小值, 首先需要
∥ t ′ ∥ F 2 = 0 (II-3-1) \|\mathbf{t}^{'}\|_{F}^2 = 0 \tag{II-3-1} tF2=0(II-3-1)
由式 (II-2-4) 可知, 此时需要 t \mathbf{t} t 满足
t = 1 n Y h − c n R X h = μ y − c R μ x (II-3-2) \mathbf{t} = \frac{1}{n} \mathbf{Y} \mathbf{h} - \frac{c}{n}\mathbf{R} \mathbf{X} \mathbf{h} = \boldsymbol{\mu}_y - c \mathbf{R} \boldsymbol{\mu}_x \tag{II-3-2} t=n1YhncRXh=μycRμx(II-3-2)

这就是 [定理] 中的式 (I-2-10), 即平移参数的最优估计结果.


4. 旋转参数的最优估计

满足式 (II-3-1) 或式 (II-3-2) 的目标函数式为
e 2 ( R , t , c ) = 1 n ∥ Y K − c R X K ∥ F 2 = 1 n ∥ A ˉ − R B ˉ ∥ F 2 (II-4-1) \begin{aligned} e^{2}(\mathbf{R}, \mathbf{t}, c) & = \frac{1}{n} \left\|\mathbf{Y}\mathbf{K}- c\mathbf{R} \mathbf{X}\mathbf{K}\right\|_F^2 \\ & = \frac{1}{n} \left\|\bar{\mathbf{A}}- \mathbf{R} \bar{\mathbf{B}}\right\|_F^2 \end{aligned} \tag{II-4-1} e2(R,t,c)=n1YKcRXKF2=n1 AˉRBˉ F2(II-4-1)
其中定义
A ˉ ≜ Y K (II-4-2) \bar{\mathbf{A}} \triangleq \mathbf{Y} \mathbf{K} \tag{II-4-2} AˉYK(II-4-2)

B ˉ = c X K (II-4-3) \bar{\mathbf{B}} = c \mathbf{X} \mathbf{K} \tag{II-4-3} Bˉ=cXK(II-4-3)

[定理] 中的条件已知 “ ∑ x y {\sum}_{xy} xy 的奇异值分解式为 U D V T \mathbf{U} \mathbf{D} \mathbf{V}^{\small\rm T} UDVT”, 即
U D V T = ∑ x y = (T-4-7) 1 n Y K X T (T-2-4) = 1 n Y K K T X T = 1 c n ( Y K ) ( c X K ) T = 1 c n A ˉ B ˉ T (II-4-4) \begin{aligned} \mathbf{U} \mathbf{D} \mathbf{V}^{\small\rm T} &= {\sum}_{xy} \overset{\small\text{(T-4-7)}}{=} \frac{1}{n} \mathbf{Y} \mathbf{K} \mathbf{X}^{\small\rm T}\\ {\small\text{(T-2-4)}}\quad &= \frac{1}{n} \mathbf{Y} \mathbf{K} \mathbf{K}^{\small\rm T} \mathbf{X}^{\small\rm T}\\ &= \frac{1}{cn} (\mathbf{Y} \mathbf{K})(c\mathbf{X} \mathbf{K})^{\small\rm T}\\ &= \frac{1}{cn} \bar{\mathbf{A}} \bar{\mathbf{B}}^{\small\rm T} \end{aligned} \tag{II-4-4} UDVT(T-2-4)=xy=(T-4-7)n1YKXT=n1YKKTXT=cn1(YK)(cXK)T=cn1AˉBˉT(II-4-4)
也就是说 A ˉ B ˉ T \bar{\mathbf{A}} \bar{\mathbf{B}}^{\small\rm T} AˉBˉT 的奇异值分解就是 U ( c n D ) V T \mathbf{U} (cn \mathbf{D}) \mathbf{V}^{\small\rm T} U(cnD)VT, 其中 c n D cn \mathbf{D} cnD 是奇异值降序排列组成的对角矩阵.

根据 [引理] 中式 (I-1-4) 可知, 使得式 (II-4-1) 描述的目标函数取最小值的旋转参数的最优估计结果为
R = U S V T (II-4-5) \mathbf{R} = \mathbf{U} \mathbf{S} \mathbf{V}^{\small\rm T} \tag{II-4-5} R=USVT(II-4-5)
当然首先要满足存在唯一解的条件
r a n k ( ∑ x y ) > m − 1 (II-4-6) {\rm rank}{({\sum}_{xy})} > m-1 \tag{II-4-6} rank(xy)>m1(II-4-6)
否者无确切解 (可参考 旋转参数的最小方差估计 —— Umeyama 算法详细推导 (I) 中的讨论).

矩阵 S \mathbf{S} S 也完全由 [引理] 替换对应参数获得, 这里不再重复.

根据 [引理] 中式 (I-1-2) 可知, 此时取得的最小值
e 2 ( R , t , c ) = 1 n ∥ A ˉ − R B ˉ ∥ F 2 (I-1-2) = 1 n ∥ A ˉ ∥ F 2 + 1 n ∥ B ˉ ∥ F 2 − 2 n   t r ( c n D S ) = 1 n ∥ Y K ∥ F 2 + 1 n ∥ c X K ∥ F 2 − 2 n   t r ( c n D S ) (T-4-5),(T-4-6) = σ y 2 + c 2 σ x 2 − 2 c   t r ( D S ) (II-4-7) \begin{aligned} e^{2}(\mathbf{R}, \mathbf{t}, c) & = \frac{1}{n} \left\|\bar{\mathbf{A}}- \mathbf{R} \bar{\mathbf{B}}\right\|_F^2\\ {\small\text{(I-1-2)}}\quad & = \frac{1}{n} \|\bar{\mathbf{A}}\|_{F}^2 + \frac{1}{n} \|\bar{\mathbf{B}}\|_{F}^2 - \frac{2}{n}\, {\rm tr}(cn\mathbf{D}\mathbf{S})\\ &= \frac{1}{n} \|\mathbf{Y} \mathbf{K}\|_{F}^2 + \frac{1}{n} \|c \mathbf{X} \mathbf{K}\|_{F}^2 - \frac{2}{n}\, {\rm tr}(cn\mathbf{D}\mathbf{S})\\ {\small\text{(T-4-5),(T-4-6)}} \quad&= \sigma_y^2 +c^2 \sigma_x^2 - {2c}\, {\rm tr}(\mathbf{D}\mathbf{S}) \end{aligned} \tag{II-4-7} e2(R,t,c)(I-1-2)(T-4-5),(T-4-6)=n1 AˉRBˉ F2=n1AˉF2+n1BˉF2n2tr(cnDS)=n1YKF2+n1cXKF2n2tr(cnDS)=σy2+c2σx22ctr(DS)(II-4-7)
上式是在对平移参数和旋转参数最优估计后, 得到的最小目标函数值.


5. 缩放参数的最优估计

可以看出此时的目标函数式 (II-4-7) 是关于 c c c 的二次函数, 对其求关于 c c c 的导数
d e 2 ( R , t , c ) d c = 2 c σ x 2 − 2   t r ( D S ) (II-5-1) \frac{de^2(\mathbf{R},\mathbf{t},c)}{dc} = 2c\sigma_x^2 - 2 \,{\rm tr}(\mathbf{D}\mathbf{S}) \tag{II-5-1} dcde2(R,t,c)=2cσx22tr(DS)(II-5-1)
计算极值点, 即为缩放参数的最优估计
c = t r ( D S ) σ x 2 (II-5-2) c= \frac{{\rm tr}(\mathbf{D}\mathbf{S})}{\sigma_x^2} \tag{II-5-2} c=σx2tr(DS)(II-5-2)


6. 最小化目标函数

将最后一个最优估计参数, 代入式 (II-4-7) 得到最终的最小化目标函数值
ε 2 = σ y 2 + c 2 σ x 2 − 2 c   t r ( D S ) = σ y 2 + ( t r ( D S ) σ x 2 ) 2 σ x 2 − 2 ( t r ( D S ) σ x 2 ) t r ( D S ) = σ y 2 − t r ( D S ) 2 σ x 2 (II-6-1) \begin{aligned} \varepsilon^2 &= \sigma_y^2 +c^2 \sigma_x^2 - {2c}\, {\rm tr}(\mathbf{D}\mathbf{S})\\ &= \sigma_y^2 +\left(\frac{{\rm tr}(\mathbf{D}\mathbf{S})}{\sigma_x^2}\right)^2 \sigma_x^2 - {2} \left(\frac{{\rm tr}(\mathbf{D}\mathbf{S})}{\sigma_x^2}\right) {\rm tr}(\mathbf{D}\mathbf{S})\\ & = \sigma_y^2 - \frac{{\rm tr}(\mathbf{D}\mathbf{S})^2}{\sigma_x^2} \end{aligned} \tag{II-6-1} ε2=σy2+c2σx22ctr(DS)=σy2+(σx2tr(DS))2σx22(σx2tr(DS))tr(DS)=σy2σx2tr(DS)2(II-6-1)
这样就完全证明了 [定理] 部分.


总结

本篇博文详细推导了 S. Umeyama 论文 “Least-squares estimation of transformation parameters between two point patterns” 中的定理部分[1], 获得了相似变换参数 (旋转、平移、缩放) 的最小方差估计.

这就为实际应用中的源码实现提供了坚实的数学基础, 相对来说源码实现并不复杂.

后面我们会简单看一下 Umeyama 算法的源码, 包括 Eigen 中的 C++实现和 evo 中的 Python 实现.

(如有问题, 请指出)


参考文献

[1] S. Umeyama, “Least-squares estimation of transformation parameters between two point patterns,” in IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 13, no. 4, pp. 376-380, April 1991, doi: 10.1109/34.88573.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值