点云匹配和ICP算法概述
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