论文年代比较久远,但是内容很不错。论文从速度和效果上,对比了ICP配准过程的6个步骤中每个步骤的一些方法。最后给出了一个效果不错,并且速度比价快的框架,也称fastICP。
ICP的6个步骤为:
- 从待配准的两个点云(也可以只用其中的一个点云)中选择一些顶点。
- 为这些顶点寻找出对应顶点
- 对对应点对进行加权
- 丢弃一些不合格的对应点对
- 误差函数选择
- 最小化误差函数
作者使用了三个场景作为实验的例子:
接下来我们看看每个步骤中的一些方法及性能对比。
顶点选择
- 使用所有的顶点
- 均匀采样
- 随机采样
- 利用rgb图片,选择亮度梯度值大的点
- 以上的方法,可以只在两个待配准点云中的其中一个选取,也可以在两个中选取。
作者还提出了一个新的选择方案,叫normal-space。原理是从已经被选中的点中选取法向量分布尽可能大的那些点。主要是用来解决类似3个例子中incised plane这种特征较少的情况。因为像随机采样这种方法,在那些特征明显的地方选取的点会比较少,这使得配准效果不好。
论文对比了不同方法的效果:
左边的两个图是对比不同采样方法的,可以看出除了incised plane这个例子,所有的采样方法性能都差不多。右边的两个图片是,在一个点云和在两个点云上采样的效果。如果使用normal shooting进行对应点匹配时,在两个点云上选择点,效果会比较好。
对应点寻找
- 直接在另外一个点云中寻找最近点,可以使用kd树或者最近点缓存技术进行加速
- normal shooting,从待寻找对应点的顶点的法向量方向发射一条射线到另外一个点云曲面上,然后取相交的点作为对应点。
- 从目标点云的相机视角,将待配准点云变换到目标点云上,然后寻找对应点
- 将带配准点云变换到目标点云上,然后利用点到点距离or点到射线距离或者rgb图片信息寻找对应点。(有待验证与3的差别。)
看看不同方法在fractal例子上的性能:
可以看出normal shooting的性能最好,然后是投影的方法。直接寻找最近点的方法最差,只是因为直接寻找最近点会被离群点或者噪声点所影响,而基于投影的方法则能很好的避免。下图是这两种方法寻找的对应点,a是直接寻找最近点,b是基于投影的方法:
在incised plane上只有直接寻找最近点的方法收敛了,其他都没有:
在速度方面上,基于投影的方法最快:
对应点加权
- 常数权重
- 计算对应点对之间的距离,根据距离加权:
Weight=1−Di