Efficient Variants of the ICP Algorithm

ICP算法(Iterative Closet Point)是三维网格注册的经典算法,常用于对物体不同角度拍摄的三维扫描像的对齐。ICP算法起始条件包括两个待注册的网格和两个网格相对关系(旋转、平移)的初始估计,算法迭代的选取两个网格的关联点对,计算点对的距离,通过最小化所有点对的距离和解优化问题求得两个网格的旋转、平移关系。由于ICP方法的广泛使用,研究人员对ICP方法也提出了多种改进。改进集中在:

  1. 取样:选择一个或两个网格上的部分点作为样本
  2. 匹配:建立样本点的关联关系
  3. 置权:给关联样本点对设置权重
  4. 删除:对不符合条件的关联点对做删除
  5. 误差度量:给关联点对设置误差度量
  6. 最优化:最优化误差度量

文章对上述几个方向的ICP变体,生成指定的数据进行测试比较。文章所用的数据包括:1.Wave;2.Fractal landscape;3.Incised plane。

用来比较的ICP基准算法是:

  • 在两个网格上随机取样
  • 匹配最近点对作为关联点对,且要求关联点对法向偏差不超过45度
  • 所有关联点对设置平均权重
  • 删除包含边缘点的关联点对,距离最大的一定比例的关联点对也做删除
  • 点到面误差度量
  • 经典的“取样-匹配-最优化”的迭代过程

取样方法

  • Uniform Sampling
  • Random Sampling
  • Normal Space Sampling:选择样本点使得样本点法向散布最大

对于wave场景,由于不同点的法向分布很均匀,所以不同的取样方式收敛速度差别不大。而对于incised plane场景,由于不同点的法向差别很大,所以normal space sampling可以尽可能多的选择不同法向的关联点,具有最快的收敛速度,且注册误差最小。

点对匹配

  • closet point:选择另一个网格上的最近点构建关联点对,可以使用kd-tree加速
  • normal shooting:从源点出发沿着源点法向的光线与目标网格的交点,与源点构成关联点对
  • project:以目标网格的相机光心作为起点,计算源点到目标网格的投影点,与源点构成关联点对
  • project and walk:将源点投影到目标网格,在目标深度图上指向搜索得到关联点

对于fractal测试场景,由于closet point方法对与噪声敏感,所以收敛速度最慢,而收敛最快的方法是normal shooting方法。但是对于incised plane场景,只有closet point方法最终收敛到正确答案。有次可以得到结论closet point方法不是收敛最快的,但却是最鲁棒的匹配方法。

权值设置

  • constant weight
  • linear with distance:weight = 1 - (Dist(p1,p2)/Dist_max)
  • Compatibility of normals:weight = n1.n2
  • Uncertainty:基于相机噪声的权值设置

从结果来看,不同的设置权值方式对收敛速度的影响很小,并且是受数据集相关的。

删除准则

  • 距离超过固定门限的关联点对删除
  • 距离最大的n%关联点对删除
  • 距离超过2.5倍标准差的关联点对删除


结论是,删除关联点对可能会提高注册的稳定性和精确度,但是对于注册的收敛速度影响不大。

误差度量

  • point-to-point
  • point-to-plane

从两个场景来看,point-to-plane的收敛速度都快于point-to-point。特别是incised plane,由于pont-to-point方法不允许平面的滑动,所以无法获得准确的旋转平移。


本文是3-D Digital Imaging and Modeling, 2001的一篇文章,Google学术的引用达到2920次。

文章以达到收敛所需的迭代次数为判别准则比较ICP多个角度的变体,基本覆盖了在实际ICP工程应用中可以调整的各种方案。


【吴】

你可能感兴趣的:(Efficient Variants of the ICP Algorithm)