Iterative Closest Point (ICP) [1][2][3] is an algorithm employed to minimize the difference between two clouds of points.
點雲匹配分類法(1)
Salvi, J. (2007). "A review of recent range image registration methods with accuracy evaluation." Image and Vision Computing 25(5): 578-596.
Mellado, N. and D. Aiger (2014). "SUPER 4PCS Fast Global Point cloud Registration via Smart Indexing."
點雲匹配分類法(2)
Coarse to fine registration粗-精過程
粗配的目的:提供剛體變換初始估計
Salvi, J., et al. (2007).
改進ICP算法
Besl, P. J. and N. D. Mckay (1992). "A Method for Registration of 3-D Shapes." IEEE Transactions on Pattern Analysis and Machine Intelligence 14(2): 239-256.
Siegwart, R., et al. (2015). "A Review of Point Cloud Registration Algorithms for Mobile Robotics." Foundations and Trends in Robotics.
ICP算法求解
問題
解決方法
Bergström, P. and O. Edlund (2014). "Robust registration of point sets using iteratively reweighted least squares."
H. Pottmann, S. Leopoldseder, and M. Hofer. Simultaneous registration of multiple views of a 3D object. ISPRS Archives 34/3A (2002), 265-270.
Andreas Nüchter(2008).3D Robotic Mapping-The Simultaneous Localization and Mapping Problem with Six Degrees of Freedom
標准ICP
標准ICP算法是最早提出的基於點-點距離的算法,另外一種是基於點-面的算法,由chen提出,好多文獻所說的惡Chen's Method。
標准的ICP算法需要粗配,滿足距離足夠近這一條件之后才能進行精確配准。
IDC
The idc algorithm does a point-to-point correspondence for calculating the scan alignment. The correspondence problem is solved by two heuristics: the closest point rule and the matching range rule. Furthermore, a formula is provided for calculating an error covariance matrix of the scan matching
Trimmed ICP
在每次迭代的過程中,根據距離殘差排序,按照重疊率計算保留的點數。根據保留的點進行計算變換。該方法可以很好的處理部分重疊問題。CC中采用該方法實現,作者的原文還提到了一種自適應計算重疊率的方法。推薦!
Chetverikov, D., et al., The Trimmed Iterative Closest Point algorithm. 2002. 3: p. 545-548.
穩健ICP
由於Outliner的存在,即觀測誤差和離群點存在,以及部分重疊問題,粗配之后的數據再進行精配的過程中仍然存在不穩健的問題(Robust問題),因此提出了穩健ICP方法。如SICP,IRLSICP
MBICP
GICP 泛化的ICP,或者叫Plane to Plane ICP
EM-ICP
NICP
GO-ICP
...
一般的ICP算法(上述的)是局部優化算法,還存在全局優化的問題,即不需要單獨粗配,直接一步到位。很多的ICP算法都是穩健的方法,但是並不是全局的優化方法。全局的方法有Super4PCS、三點Ransac等。
http://www.mathworks.com/matlabcentral/fileexchange/12627-iterative-closest-point-method
http://www.mathworks.com/matlabcentral/fileexchange/27804-iterative-closest-point
http://projects.asl.ethz.ch/datasets/doku.php?id=laserregistration:laserregistration