ICP(Iterative Closest Point),即迭代最近点算法,是经典的数据配准算法。其特征在于,通过求取源点云和目标点云之间的对应点对,基于对应点对构造旋转平移矩阵,并利用所求矩阵,将源点云变换到目标点云的坐标系下,估计变换后源点云与目标点云的误差函数,若误差函数值大于阀值,则迭代进行上述运算直到满足给定的误差要求.
ICP算法采用最小二乘估计计算变换矩阵,原理简单且具有较好的精度,但是由于采用了迭代计算,导致算法计算速度较慢,而且采用ICP进行配准计算时,其对配准点云的初始位置有一定要求,若所选初始位置不合理,则会导致算法陷入局部最优。
Align 3D Data
如果空间中两组点云之间的对应关系已经明确,则很容易求得两者之间的刚性变换,即旋转和平移共6个参数,但这种对应关系一般很难事先知道。
ICP算法假设两组点云之间的对应关系由最近点确定,一步步将源点云PP,忽略二次项,可以得到一个线性的最小二乘问题,再用Gauss-Newton或者Levenberg-Marquardt算法求解。
Algorithm
Go-ICP
Go-ICP即Globally optimal ICP,提出了在L2误差度量下欧式空间中匹配两组点云的全局最优算法。
Sparse ICP
Code
- ICP: libicp Iterative-Closest-Point Go-ICP
- Sparse ICP: sparseicp icpSparse
- CUDA
- OpenCL
Reference
[Rusinkiewicz2019] Szymon Rusinkiewicz. A Symmetric Objective Function for ICP, SIGGRAOH 2019
[Park2017] J. Park, Q.-Y. Zhou, and V. Koltun. Colored Point Cloud Registration Revisited, ICCV 2017.
[Bouaziz2013] Sofien Bouaziz, Andrea Tagliasacchi, Mark Pauly. Sparse Iterative Closest Point, SGP 2013.