SVD法是將在兩個不同座標系下的測量的多個點的座標值對構造成一個矩陣,對該矩陣進行奇異值分解得到姿態矩陣。
1P=12R2P+12T
首先,使用兩組點構造出一個矩陣H
H=i=1∑m((2Pi−2Pˉ)⋅(1Pi−1Pˉ)T)
然後對H進行奇異值分解
U⋅Δ⋅VT=SVD(H)
然後計算∣V⋅UT∣的符號,如果大於0,則
12R=V⋅UT
如果小於0,把V的任意一列改變符號,仍然計算V⋅UT作爲12R。
在計算出12R後,代入
1P=12R2P+12T
即可得到 12T。
該方法的代碼實現可以參考筆者以前的博客
https://blog.csdn.net/iamqianrenzhan/article/details/103463932。