點雲配准算法ICP

ICP算法
迭代最近點(Iterative Closest Point), 常用於做點雲匹配(對齊)和激光雷達標定場景中。
本質上是最小二乘法的一個典型應用。
核心思想
把當前幀和上一幀距離最近的兩點看成爲同一點,即形成一組點對,
再計使用最小二乘法算出最優的那組轉換參數,確定旋轉矩陣和平移向量,從而確定轉換關係,

使用下面的數學關係來描述一下,
設當前幀點雲中的點爲pi,piCp_i, p_i\in C
設上一幀點雲中的點爲pi,piDp_i^{'}, p_i^{'}\in D
那麼應滿足以下的轉換模型(這個模型是已知公式)
pi=Rpi+tp_i^{'}=R\cdot p_i + t
其中,RR代表旋轉矩陣,tt代表平移向量,再進一步抽象可將上式表示爲
D=RC+tD=R\cdot C +t

ICP算法的主要步驟

  1. 任取piCp_i\in C, 並遍歷DD,尋找與pip_i距離最小的點pip_i^{'}, 形成mm對點

  2. 將這mm對點(pi,pi)(p_i,p_i^{'})帶入以下公式,使用最小二乘法計算
    arg minR,tE=12i=1mpi(Rpi+t)22\argmin_{R,t}E = \frac{1}{2} \sum_{i=1}^m\parallel p_i^{'} - (R\cdot p_i+t) \parallel_2^2

  3. 如果迭代的誤差小於指定的閾值,即 ΔE<e\Delta E<e, 或者達到了最大迭代次數,則把當前計算得到的R,tR,t作爲結果返回,否則執行步驟 (4)

  4. 使用當前求得的R,tR,t更新點集,pi=Rpi+tp_i^{'} =R\cdot p_i+t ; pi=pip_i=p_i^{'}; 轉到步驟(1)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章