一个机器人中的配准问题
前言
本文记录了一个机器人超声领域的配准问题。这和点云配准等问题在数学层面上都是一致的,本文的目的是从理论层面分析如何计算配准矩阵。(本文为了书写方便,向量等符号不用粗体表示,大家心里有数)
问题描述
如Fig. 1所示, { B } \{B\} {B}是机器人底座坐标系, { E } \{E\} {E}是机器人法兰坐标系, { I } \{I\} {I}是超声图像坐标系。 { I } \{I\} {I}的原点是超声图像中的索引为 ( u , v ) = ( 0 , 0 ) (u,v)=(0,0) (u,v)=(0,0)(即超声图像最左上角的点)的像素点对应的物理位置,其中 u u u和 v v v分别是超声图像像素点的行索引和列索引。 { I } \{I\} {I}的 x \text{x} x轴正方向是超声图像像素点列索引增加的方向, { I } \{I\} {I}的 y \text{y} y轴正方向是超声图像像素点行索引增加的方向。
我们有一个水缸(水缸里面的水用于超声波传递,不然无法超声成像),里面有两条交叉的线,两条线交于一点 B p ∈ R 3 {}^{B}p \in \mathbb{R}^{3} Bp∈R3,即 p p p点在机器人底座坐标系 { B } \{B\} {B}中的坐标表示是 B p {}^{B}p Bp。我们将超声探头移动并保证 B p {}^{B}p Bp这点在超声图像中显示出来,我们记 B p {}^{B}p Bp在超声图像中的成像点的像素为 ( r , c ) (r,c) (r,c)。我们可以得到:
B T I E T I I p = B p (1) {}^{B}T_{I} {}^{E}T_{I} {}^{I}p = {}^{B}p \tag{1} BTIETIIp=Bp(1)
其中 I p = ( s v v , s u u , 0 , 1 ) T {}^{I}p=(s_{v}v,s_{u}u,0,1)^{T} Ip=(svv,suu,0,1)T, s v s_{v} sv和 s u s_{u} su是已知的像素到真实物理世界的缩放系数。

Fig. 1
和其它很多的标定方法(比如经典的eye-in-hand,eye-to-hand标定)一样,我们需要采集多组数据 < B T I ( i ) , I p ( i ) > <{}^{B}T_{I}(i), {}^{I}p(i)> <BTI(i),Ip(i)>, i = 1 , . . . , n i=1,...,n i=1,...,n,且这些数据理论上满足
B T I ( i ) E T I I p ( i ) = B p (2) {}^{B}T_{I}(i) {}^{E}T_{I} {}^{I}p(i) = {}^{B}p \tag{2} BTI(i)ETIIp(i)=Bp(2)
现在的问题是如何求解 E T I {}^{E}T_{I} ETI?最小二乘法?需要注意的是
E T I = [ R t 0 1 × 3 1 ] , R ∈ S O ( 3 ) (3) {}^{E}T_{I} = \left[ \begin{array}{c:c} R & t \\ \hline 0_{1\times3} & 1 \end{array} \right], R \in SO(3) \tag{3} ETI=[R01×3t1],R∈SO(3)(3)
也就是说,这个优化是有约束优化(在 S O ( 3 ) SO(3) SO(3)流形上的优化),所以直接最小二乘法似乎行不通(这个优化问题还是挺需要技巧的)。
我们正式把这个优化问题写成
min E T I ∈ S E ( 3 ) ∑ i = 1 n ∥ E T I I p ( i ) − ( B T I ( i ) ) − 1 B p ∥ 2 2 (4) \min_{{}^{E}T_{I} \in SE(3)} \sum^{n}_{i=1} \|{}^{E}T_{I}{}^{I}p(i) - ({}^{B}T_{I}(i))^{-1}{}^{B}p\|_{2}^{2} \tag{4} ETI∈SE(3)mini=1∑n∥ETIIp(i)−(BTI(i))−1Bp∥22(4)
为了简便,我们记 q i q_i qi是 ( B T I ( i ) ) − 1 B p ({}^{B}T_{I}(i))^{-1}{}^{B}p (BTI(i))−1Bp的前三维度的列向量,记 p i p_i pi是 p ( i ) p(i) p(i)的前三维度的列向量,另外将 E T I {}^{E}T_{I} ETI用(3)式中的 R R R和 t t t来表示,得到
min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n ∥ R p i + t − q i ∥ 2 2 (5) \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} \|Rp_i + t - q_i\|_{2}^{2} \tag{5} R∈SO(3),t∈R3mini=1∑n∥Rpi+t−qi∥22(5)
对于(5)式,我们化简如下,
min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n ∥ R p i + t − q i ∥ 2 2 = min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n ( R p i + t − q i ) T ( R p i + t − q i ) = min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n [ p i T R T R p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] = min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] (6) \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} \|Rp_i + t - q_i\|_{2}^{2} \\ = \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} (Rp_i + t - q_i)^{T}(Rp_i + t - q_i) \\ = \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^TR^TRp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \\ = \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \tag{6} R∈SO(3),t∈R3mini=1∑n∥Rpi+t−qi∥22=R∈SO(3),t∈R3mini=1∑n(Rpi+t−qi)T(Rpi+t−qi)=R∈SO(3),t∈R3mini=1∑n[piTRTRpi+2(t−qi)TRpi+(t−qi)T(t−qi)]=R∈SO(3),t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)](6)
对于求解(6)式的最小值,一个直观的想法是对 R R R和 t t t分别求偏导数,然后令偏导数为0,可以得到:
R ∑ i = 1 n ( p i q i T ) = ∑ i = 1 n ( q i − t ) p i T t = 1 n ∑ i = 1 n ( q i − R p i ) (7) R\sum^{n}_{i=1}(p_iq_i^{T}) = \sum_{i=1}^{n}(q_i-t)p_i^T \\ t = \frac{1}{n}\sum^{n}_{i=1}(q_i-Rp_i) \tag{7} Ri=1∑n(piqiT)=i=1∑n(qi−t)piTt=n1i=1∑n(qi−Rpi)(7)
注:在对 R R R求导的时候,可以用 ( u v ) ′ = u ′ v + u v ′ (uv)'=u'v+uv' (uv)′=u′v+uv′来求,这样容易计算一些。对 t t t求导直接计算就可以。
为了进一步简化符号,记 p ˉ = 1 n ∑ i = 1 n p i \bar{p}=\frac{1}{n}\sum^{n}_{i=1}p_i pˉ=n1∑i=1npi, q ˉ = 1 n ∑ i = 1 n q i \bar{q}=\frac{1}{n}\sum^{n}_{i=1}q_i qˉ=n1∑i=1nqi, p ~ i = p i − p ˉ \tilde{p}_{i}=p_i-\bar{p} p~i=pi−pˉ, q ~ i = q i − q ˉ \tilde{q}_{i}=q_{i}-\bar{q} q~i=qi−qˉ,代入(7)式化简得:
R ∑ i = 1 n ( p ~ i p ~ i T ) = ∑ i = 1 n ( q ~ i p ~ i T ) t = q ˉ − R p ˉ (8) R\sum^{n}_{i=1}(\tilde{p}_{i}\tilde{p}_{i}^T)=\sum^{n}_{i=1}(\tilde{q}_{i}\tilde{p}_{i}^T) \\ t=\bar{q}-R\bar{p} \tag{8} Ri=1∑n(p~ip~iT)=i=1∑n(q~ip~iT)t=qˉ−Rpˉ(8)
注意,(8)式中的 ∑ i = 1 n ( p ~ i p ~ i T ) \sum^{n}_{i=1}(\tilde{p}_{i}\tilde{p}_{i}^T) ∑i=1n(p~ip~iT)不一定可逆,即使可逆, [ ∑ i = 1 n ( q ~ i p ~ i T ) ] [ ∑ i = 1 n ( p ~ i p ~ i T ) ] − 1 [\sum^{n}_{i=1}(\tilde{q}_{i}\tilde{p}_{i}^T)][\sum^{n}_{i=1}(\tilde{p}_{i}\tilde{p}_{i}^T)]^{-1} [∑i=1n(q~ip~iT)][∑i=1n(p~ip~iT)]−1也不能保证属于 S O ( 3 ) SO(3) SO(3)。所以求解偏导这个方法不可行。
求解方法
回到(6)式这个优化问题:
min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] R∈SO(3),t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)]
我们把这个优化问题看作是一个两个自变量( R R R和 t t t)的优化问题, t t t是一个无约束自变量, R ∈ S O ( 3 ) R \in SO(3) R∈SO(3)是一个有约束自变量。
这个问题可以等价于
min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] = min R ∈ S O ( 3 ) min t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] (9) \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \\ = \min_{R \in SO(3)} \min_{t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \tag{9} R∈SO(3),t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)]=R∈SO(3)mint∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)](9)
当我们固定 R R R,
min t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] (10) \min_{t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \tag{10} t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)](10)
(10)式这个优化问题很简单,直接对 t t t求导就可以了,对 t t t求导的结果(8)式已经得到,即 t = q ˉ − R p ˉ t=\bar{q}-R\bar{p} t=qˉ−Rpˉ。将 t = q ˉ − R p ˉ t=\bar{q}-R\bar{p} t=qˉ−Rpˉ代入(9)式,得
min t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] = ∑ i = 1 n [ ( p ~ i T + p ˉ T ) ( p ~ i + p ˉ ) + 2 ( − q ~ i − R p ˉ ) T R ( p ~ i + p ˉ ) + ( − q ~ i − R p ˉ ) T ( − q ~ i − R p ˉ ) ] = ∑ i = 1 n [ ( p ~ i T + p ˉ T ) ( p ~ i + p ˉ ) − 2 ( q ~ i + R p ˉ ) T R ( p ~ i + p ˉ ) + ( q ~ i + R p ˉ ) T ( q ~ i + R p ˉ ) ] = ∑ i = 1 n ( p ~ i T p ~ i − 2 q ~ i T R p ~ i + q ~ i T q ~ i ) = ∑ i = 1 n ( p ~ i T p ~ i + q ~ i T q ~ i ) − 2 ∑ i = 1 n ( q ~ i T R p ~ i ) (11) \min_{t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \\ = \sum^{n}_{i=1} [(\tilde{p}_i^T+\bar{p}^T)(\tilde{p}_i+\bar{p}) + 2(-\tilde{q}_{i} - R\bar{p})^{T}R(\tilde{p}_i+\bar{p}) + (-\tilde{q}_{i} - R\bar{p})^T(-\tilde{q}_{i} - R\bar{p})] \\ = \sum^{n}_{i=1} [(\tilde{p}_i^T+\bar{p}^T)(\tilde{p}_i+\bar{p}) - 2(\tilde{q}_{i} + R\bar{p})^{T}R(\tilde{p}_i+\bar{p}) + (\tilde{q}_{i} + R\bar{p})^T(\tilde{q}_{i} + R\bar{p})] \\ = \sum^{n}_{i=1} (\tilde{p}_i^T\tilde{p}_i - 2\tilde{q}_{i} ^{T}R\tilde{p}_i + \tilde{q}_{i}^T\tilde{q}_{i}) \\ = \sum^{n}_{i=1} (\tilde{p}_i^T\tilde{p}_i + \tilde{q}_{i}^T\tilde{q}_{i}) - 2\sum^{n}_{i=1}(\tilde{q}_{i} ^{T}R\tilde{p}_i) \tag{11} t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)]=i=1∑n[(p~iT+pˉT)(p~i+pˉ)+2(−q~i−Rpˉ)TR(p~i+pˉ)+(−q~i−Rpˉ)T(−q~i−Rpˉ)]=i=1∑n[(p~iT+pˉT)(p~i+pˉ)−2(q~i+Rpˉ)TR(p~i+pˉ)+(q~i+Rpˉ)T(q~i+Rpˉ)]=i=1∑n(p~iTp~i−2q~iTRp~i+q~iTq~i)=i=1∑n(p~iTp~i+q~iTq~i)−2i=1∑n(q~iTRp~i)(11)
注:在(11)式的推导过程中,使用了 ∑ i = 1 n p ~ i = 0 \sum^{n}_{i=1} \tilde{p}_i=0 ∑i=1np~i=0和 ∑ i = 1 n q ~ i = 0 \sum^{n}_{i=1} \tilde{q}_i=0 ∑i=1nq~i=0这两个等式进行化简。
将(11)式代入(9)式得,
min R ∈ S O ( 3 ) , t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] = min R ∈ S O ( 3 ) min t ∈ R 3 ∑ i = 1 n [ p i T p i + 2 ( t − q i ) T R p i + ( t − q i ) T ( t − q i ) ] = min R ∈ S O ( 3 ) [ ∑ i = 1 n ( p ~ i T p ~ i + q ~ i T q ~ i ) − 2 ∑ i = 1 n ( q ~ i T R p ~ i ) ] (12) \min_{R \in SO(3), t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \\ = \min_{R \in SO(3)} \min_{t \in \mathbb{R}^{3}} \sum^{n}_{i=1} [p_i^Tp_i + 2(t - q_i)^{T}Rp_i + (t - q_i)^T(t - q_i)] \\ = \min_{R \in SO(3)}[\sum^{n}_{i=1} (\tilde{p}_i^T\tilde{p}_i + \tilde{q}_{i}^T\tilde{q}_{i}) - 2\sum^{n}_{i=1}(\tilde{q}_{i} ^{T}R\tilde{p}_i)] \tag{12} R∈SO(3),t∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)]=R∈SO(3)mint∈R3mini=1∑n[piTpi+2(t−qi)TRpi+(t−qi)T(t−qi)]=R∈SO(3)min[i=1∑n(p~iTp~i+q~iTq~i)−2i=1∑n(q~iTRp~i)](12)
(12)式的求最小值问题等价于(13)式的求最大值问题。
max R ∈ S O ( 3 ) [ ∑ i = 1 n ( q ~ i T R p ~ i ) ] (13) \max_{R \in SO(3)}[\sum^{n}_{i=1}(\tilde{q}_{i} ^{T}R\tilde{p}_i)] \tag{13} R∈SO(3)max[i=1∑n(q~iTRp~i)](13)
求解(13)式这个优化问题,需要一些关于矩阵迹的技巧,符号 tr \text{tr} tr表示矩阵的迹,
max R ∈ S O ( 3 ) [ ∑ i = 1 n ( q ~ i T R p ~ i ) ] = max R ∈ S O ( 3 ) tr [ ∑ i = 1 n ( q ~ i T R p ~ i ) ] ( 因为 q ~ i T R p ~ i ∈ R ) = max R ∈ S O ( 3 ) [ ∑ i = 1 n tr ( q ~ i T R p ~ i ) ] = max R ∈ S O ( 3 ) [ ∑ i = 1 n tr ( R p ~ i q ~ i T ) ] ( 因为tr ( A B ) = tr ( B A ) , A ∈ R m × n , B ∈ R n × m ) = max R ∈ S O ( 3 ) tr [ ∑ i = 1 n ( R p ~ i q ~ i T ) ] = max R ∈ S O ( 3 ) tr [ R ∑ i = 1 n ( p ~ i q ~ i T ) ] = max R ∈ S O ( 3 ) tr ( R C ) ( 记 C = ∑ i = 1 n ( p ~ i q ~ i T ) ) = max R ∈ S O ( 3 ) tr ( R U Σ V ) ( 奇异值分解 C = U Σ V , U 和 V 都是正交矩阵, Σ 是对角线都是非负数的对角矩阵 ) = max R ∈ S O ( 3 ) tr ( V R U Σ ) (14) \max_{R \in SO(3)}[\sum^{n}_{i=1}(\tilde{q}_{i} ^{T}R\tilde{p}_i)] \\ = \max_{R \in SO(3)}\text{tr}[\sum^{n}_{i=1}(\tilde{q}_{i} ^{T}R\tilde{p}_i)] \quad (因为\tilde{q}_{i} ^{T}R\tilde{p}_i \in \mathbb{R}) \\ = \max_{R \in SO(3)}[\sum^{n}_{i=1}\text{tr}(\tilde{q}_{i} ^{T}R\tilde{p}_i)] \\ = \max_{R \in SO(3)}[\sum^{n}_{i=1}\text{tr}(R\tilde{p}_i\tilde{q}_{i} ^{T})] \quad (因为\text{tr}(AB) = \text{tr}(BA), A \in \mathbb{R}^{m\times n}, B \in \mathbb{R}^{n\times m}) \\ = \max_{R \in SO(3)}\text{tr}[\sum^{n}_{i=1}(R\tilde{p}_i\tilde{q}_{i} ^{T})] \\ = \max_{R \in SO(3)}\text{tr}[R\sum^{n}_{i=1}(\tilde{p}_i\tilde{q}_{i} ^{T})] \\ = \max_{R \in SO(3)}\text{tr}(RC) \quad (记C=\sum^{n}_{i=1}(\tilde{p}_i\tilde{q}_{i} ^{T})) \\ = \max_{R \in SO(3)}\text{tr}(RU\Sigma V) \quad (奇异值分解C=U\Sigma V,U和V都是正交矩阵,\Sigma是对角线都是非负数的对角矩阵) \\ = \max_{R \in SO(3)}\text{tr}(VRU\Sigma) \tag{14} R∈SO(3)max[i=1∑n(q~iTRp~i)]=R∈SO(3)maxtr[i=1∑n(q~iTRp~i)](因为q~iTRp~i∈R)=R∈SO(3)max[i=1∑ntr(q~iTRp~i)]=R∈SO(3)max[i=1∑ntr(Rp~iq~iT)](因为tr(AB)=tr(BA),A∈Rm×n,B∈Rn×m)=R∈SO(3)maxtr[i=1∑n(Rp~iq~iT)]=R∈SO(3)maxtr[Ri=1∑n(p~iq~iT)]=R∈SO(3)maxtr(RC)(记C=i=1∑n(p~iq~iT))=R∈SO(3)maxtr(RUΣV)(奇异值分解C=UΣV,U和V都是正交矩阵,Σ是对角线都是非负数的对角矩阵)=R∈SO(3)maxtr(VRUΣ)(14)
因为 V V V, U U U都是正交矩阵(即 V , U ∈ O ( 3 ) V,U\in O(3) V,U∈O(3)), R ∈ S O ( 3 ) R \in SO(3) R∈SO(3),所以 V R U VRU VRU是正交矩阵(即 V R U ∈ O ( 3 ) VRU \in O(3) VRU∈O(3))。可以分为两种情况讨论,
第一种情况: det ( V U ) = + 1 \text{det}(VU) = +1 det(VU)=+1
因为 R ∈ S O ( 3 ) R \in SO(3) R∈SO(3),所以 det ( R ) = + 1 \text{det}(R)=+1 det(R)=+1。因为 det ( V U ) = + 1 \text{det}(VU)=+1 det(VU)=+1,所以 det ( V R U ) = + 1 \text{det}(VRU)=+1 det(VRU)=+1,即 V R U ∈ S O ( 3 ) VRU \in SO(3) VRU∈SO(3)。我们的优化目标是使得(14)式中的 tr ( V R U Σ ) \text{tr}(VRU\Sigma) tr(VRUΣ)最大。不妨设 Σ = [ σ 1 0 0 0 σ 2 0 0 0 σ 3 ] , σ 1 ≥ σ 2 ≥ σ 3 ≥ 0 (15) \Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 \\ 0 & \sigma_2 & 0 \\ 0 & 0 & \sigma_3 \end{bmatrix}, \sigma_1 \geq \sigma_2 \geq \sigma_3 \geq 0 \tag{15} Σ=
σ1000σ2000σ3
,σ1≥σ2≥σ3≥0(15)(因为 Σ \Sigma Σ是(14)式中的矩阵 C C C的奇异值分解,所以 Σ \Sigma Σ写成这样的一般形式是合理的)
进一步地,不妨设 V R U = [ a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ] (16) VRU = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \\ a_{31} & a_{32} & a_{33} \end{bmatrix} \tag{16} VRU=
a11a21a31a12a22a32a13a23a33
(16)
因为 V R U ∈ S O ( 3 ) VRU \in SO(3) VRU∈SO(3),所以 − 1 ≤ a 11 ≤ 1 -1 \leq a_{11} \leq 1 −1≤a11≤1, − 1 ≤ a 22 ≤ 1 -1 \leq a_{22} \leq 1 −1≤a22≤1和 − 1 ≤ a 33 ≤ 1 -1 \leq a_{33} \leq 1 −1≤a33≤1。将(15)式和(16)式代入 tr ( V R U Σ ) \text{tr}(VRU\Sigma) tr(VRUΣ)中,得
tr ( V R U Σ ) = a 11 σ 1 + a 22 σ 2 + a 33 σ 3 (17) \text{tr}(VRU\Sigma) = a_{11}\sigma_{1}+a_{22}\sigma_{2}+a_{33}\sigma_{3} \tag{17} tr(VRUΣ)=a11σ1+a22σ2+a33σ3(17)
由(17)式知, a 11 = a 22 = a 33 = 1 a_{11}=a_{22}=a_{33}=1 a11=a22=a33=1时, tr ( V R U Σ ) = σ 1 + σ 2 + σ 3 \text{tr}(VRU\Sigma) = \sigma_{1}+\sigma_{2}+\sigma_{3} tr(VRUΣ)=σ1+σ2+σ3达到最大值,即 V R U = I VRU=I VRU=I时。对应地,可以得出 R = V T U T R=V^{T}U^{T} R=VTUT。
第二种情况: det ( V U ) = − 1 \text{det}(VU)=-1 det(VU)=−1
因为 R ∈ S O ( 3 ) R \in SO(3) R∈SO(3),所以 det ( R ) = + 1 \text{det}(R)=+1 det(R)=+1。因为 det ( V U ) = − 1 \text{det}(VU)=-1 det(VU)=−1,所以 det ( V R U ) = − 1 \text{det}(VRU)=-1 det(VRU)=−1,即 V R U ∈ O ( 3 ) VRU \in O(3) VRU∈O(3)且 V R U ∉ S O ( 3 ) VRU \notin SO(3) VRU∈/SO(3)。
我们给出以下引理,不加证明。
引理: max A ∈ O ( 3 ) , det ( A ) = − 1 tr ( A Σ ) = σ 1 + σ 2 − σ 3 \max_{A \in O(3), \det(A)=-1}\text{tr}(A\Sigma)=\sigma_1 + \sigma_2 - \sigma_3 A∈O(3),det(A)=−1maxtr(AΣ)=σ1+σ2−σ3
其中 Σ = [ σ 1 0 0 0 σ 2 0 0 0 σ 3 ] , σ 1 ≥ σ 2 ≥ σ 3 ≥ 0 \Sigma = \begin{bmatrix} \sigma_1 & 0 & 0 \\ 0 & \sigma_2 & 0 \\ 0 & 0 & \sigma_3 \end{bmatrix}, \sigma_1 \geq \sigma_2 \geq \sigma_3 \geq 0 Σ=
σ1000σ2000σ3
,σ1≥σ2≥σ3≥0。即 A = [ 1 0 0 0 1 0 0 0 − 1 ] A=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{bmatrix} A=
10001000−1
时使得 tr ( A Σ ) \text{tr}(A\Sigma) tr(AΣ)最大。
由这个引理知, V R U = A VRU=A VRU=A时, tr ( V R U Σ ) \text{tr}(VRU\Sigma) tr(VRUΣ)最大,其中 A = [ 1 0 0 0 1 0 0 0 − 1 ] A=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & -1 \end{bmatrix} A= 10001000−1 。即 R = V T A U T R=V^TAU^T R=VTAUT。
综上第一种情况和第二种情况,我们可以得出 R R R的一般解为:
R = V T Q U T R = V^TQU^T R=VTQUT,其中 Q = [ 1 0 0 0 1 0 0 0 det ( V U ) ] Q=\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & \det(VU) \end{bmatrix} Q=
10001000det(VU)
。
写在最后
上述如有错误,恳请指正,谢谢。
对于上文中的引理,不是太容易证明,我也没有太多时间去思考和查阅如何证明,自己大概想了1个小时,没想出来如何证明,去网上查了大概的证明思路,还是有些复杂的(如果大家有证明思路,欢迎分享讨论)。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)