ICP算法是點雲配准算法,給出兩組點雲,可以計算出兩組點雲的位姿關係R、t。問題數學表達爲:
已知兩組點雲:
求R、t使下式最小:
(0-1)
1 如果兩組點雲中的點一一對應,則求解方法很簡單。
(1)求解兩組點雲的質心:
(2)求兩組點雲去質心座標:
(3)每點組成矩陣求均值、SVD求解:
(4)R、t結果如下:
2 一般的情況是點雲不相匹配,如何求解R、t。
(1)對X中的每個店,在Y中找到距離X最近的點,一一對應
(2)篩選距離最近的若干點
(3)代入公式(0-1)最優化求解得到R、t
(4)利用求解得到的R、t,重新在Y中找距離X最近的點,重複(1)-(4)直到小於一定閾值。
ICP求解很耗時
3 公式證明
最小化方程轉化:
開平方化簡得到:
可以分爲兩部分,前半部分僅與R有關,求解可以求解,得到R後根據後半部分求解得到t。因此得到:
開平方得到:
第一項與R無關,第二項由於與R無關,因此求即求
令,即求tr(RH)的最大值。由於:假設矩陣A爲正定對稱矩陣,則對於任意的正交矩陣B,都有:tr(A)>=tr(B)tr(A)>=tr(B)tr(A)>=tr(B),則:
因此,tr(RH)取最大值時
則: