参考文献:
关于此类的详细信息和学术上的理论推导大家可以查看PaulJ. Besl的文章“A Method forRegistration of 3-D Shapes”。
小结:
ICP匹配,中文应该叫临近点迭代吧,是计算机图形学中的一个非常有用的算法,尤其是在三维重建点云配准中有着极其重要的地位,此外在SLAM等移动机器人导航等领域也有着很大的用武之地。
经过了十多年的发展ICP也有着很多的变种,今天我们首先熟悉下最基本的ICP匹配算法,PCL中的实现与参考文献中的一致,最终的变换矩阵都是基于SVD(奇异值分解)的。
在具体的实践中,一共有3个约束来终止迭代:
- 迭代次数,默认值为10;
- 上次转换与当前转换的差值;
- 前后两次迭代方差的差值。
当然我们还可以使用kdtree加速算法。
还有一点需要重点提示下,输入的点云需要经过预处理,过于复杂和过多噪声的点与将会出现“Invalid (NaN, Inf) point coordinates given to nearestKSearch!”的错误,比如我使用了官网教程中“楼梯的点云“。
不同版本的PCL函数命名可能不同,函数个数可能也不一样。