ICP演算法綜述(一)
《A review of point cloud registration algorithms fro mobile robotics》
正如論文標題,這篇綜述將icp演算法在移動機器人學中的應用。
大多數綜述分為3個部分:回顧歷史、具體形式和應用場景。本文首先介紹第一部分。
1 回顧歷史
ICP演算法的目的是為了通過把不同座標系中的點,通過最小化配準誤差,變換到一個共同的座標系中。
上圖中,綠色為參考點雲,藍色為需要匹配的點雲。左圖為兩個點雲的初始位置,其實在這個圖中,兩個點雲已經位於同一個座標系(由我們指定的初始值).中圖紅色直線為匹配的誤差. 右圖為配準後的點雲.
由上圖表明,ICP演算法就是幹這種活的。
這個是關於ICP論文的數量變化曲線,藍色代表一個數據庫的,綠色代表另一個數據庫的。說明ICP演算法的繁榮發展。
有很多大牛對ICP演算法進行了改進,這裡不介紹。下面介紹一下演算法的整體思路:
幾何配準的目的:
The aim of geometric registration is to be able to represent a shape,called reading, in the same coordinate frame as another, called reference. This is equivalent to finding the transformation of reading that best aligns it to reference
論文裡的兩個點雲分別叫做reference和reading。目的是把reading匹配到reference上。
形狀shape是啥呢?
形狀是一個點集合。這個點集合包括幾何和非幾何資訊。
幾何資訊就是能夠被空間變換影響的。點的這部分維度叫做特徵。如點的座標、曲面法線、切向量。
非幾何資訊資訊不能被空間變換影響。這部分維度叫做描述子。例如,顏色、溫度等。
舉個例子:例如一個點雲中的點的型別為XYZRGB,那麼這裡的幾何資訊就是點的座標XYZ,而RGB為非幾何資訊。
我們知道,點雲的數量非常巨大,並且含有噪聲,所以需要濾波。
濾波就是從帶有噪聲中提取有用的資訊。文中介紹了兩種形式。
第一種方式是去除不能為匹配帶來有用資訊的點。
第二種方式是對點雲進一步抽象,例如提取區域性的法線資訊或曲率。
下圖給出了ICP的數學形式表示
這個公式的思想很好理解,我們要估計的是變換矩陣T。T的含義是把A系中的點變換到B系中。問題是error怎麼定義呢?
通常,這個誤差定義在兩個關聯的點上進行度量。
那麼會有兩個問題,1 如何查詢關聯點 2 如何對誤差度量
如何查詢關聯點呢?
ICP叫做迭代最近點,就是簡單的認為與一個點最近的點就是關聯點。理想情況是,匹配後的兩個點雲的關聯點應該是最近點。尋找關聯點的問題也叫作資料關聯、點匹配、對應點查詢。
關聯可以通過特徵或者描述子完成。
找到匹配點後,可以計算誤差。
此外,可以通過加權的方式,來減少異常值的影響
由於有噪聲或者錯誤的資料關聯,所以我們希望最小化誤差
i 和i+1代表迭代時的變換矩陣的指標。
這裡就是不斷的合成變換矩陣,得到最終估計的變換矩陣。
注意這裡是左乘矩陣。
演算法
小結:
ICP叫做迭代最近點,我們從名字可以看出,包括迭代和查詢最近點(資料關聯)。
迭代是需要初始值的,所以我們需要提供初始值。
然後不斷的重複迭代最近點的過程,直至收斂。
上述的演算法只是一個框架,沒有明確指出:
1 如何資料關聯
2 誤差函式怎麼定義。
這應該就是各種ICP演算法的不同所在吧