efficient variants of the ICP algorithm论文

发表于03年ICP领域经典的一篇综述论文,主要贡献:将ICP论文总结为6个阶段,汇总了各个阶段的算法,并提出了法线空间采样(Normal space sampling),该论文大部分综述已经过时,这里转载一篇翻译:
https://zhuanlan.zhihu.com/p/385733421

1 ICP 的六个阶段

Selection: 在 target 和 source 的模型中下采样点来进行计算 (主要目的是为了增加运算速度)
Matching: 将target和 source 中下采样的点进行配对,即找到对应关系
Weighting: 给这些对应关系中增加相应的权重
Rejecting: 根据设定的规则,剔除一些对应关系,使其不参与计算
error metric: 设计最小化误差方程
Minimizing: 最小化 5 中的误差方程

2测试场景

​ 在这片论文中,共有三种测试场景,具体图形如下所示

​ ① wave (波形)

​ ② Fractal landscape (崎岖的地形景观)

​ ③ Incised plane (切平面)

在这里插入图片描述

3. ICP的变种比较

3.1 Selection

  • 所有的点参与运算
  • 均匀采样 Uniform sampling
  • 随机采样(在每一次迭代中都重新采样) Random sampling
  • 在使用颜色的对齐方案中,选择那些具有高梯度的点
  • 上述方案中的每一种只在一个网格中或者应用在两个网格中
  • 基于法线的采样(选择的点的法线的分布尽可能的大)(作者提出)Normal-space sampling
    在这里插入图片描述

在这里插入图片描述

将 Uniform sampling, Random sampling, Normal-space sampling 三种方法在 “Wave” 的场景中测试(Figure. 2),可以看到其收敛速度差不多,因为Wave场景的法线分布本来就比较好,所以哪一种采样都差不多。 而应用在 “Incised plane” 场景中时(Figure. 3) 可以看到只有 Normal-space sampling 能收敛,这是因为在切平面的表面的采样点只能确定六个参数中的三个(一个平移参数和两个旋转参数),而其他的三个参数只能依靠平面中的凹槽内的采样点, 从 Figure. 4(a) 中我们能看到,使用均匀和随机采样的方法只能在凹槽内采集到少量的点,并且同时存在的噪音掩盖了这少量的采样点,所以无法收敛到正确的位置。而基于法线的采样却能在凹槽内选中更多的样本(Figure. 4(b))。
在这里插入图片描述

在采样方向中,只是比较两种方法的相对差距(1. 只在一个网格中进行采样,2. 在两个网格中都进行采样)。从 Figure. 5 中可以看到两者之间差距微乎其微。但是导致这种情况可能使用为使用 最近点匹配的方法(Section 3.2), 这个方法对于两个网格来说是对称的。而如果我们使用不对称的配对方法,例如 投影或法线 的方法可以从 Figure. 6 中看到同时在两个网格中进行采样的效果会好一些,特别是在早期的迭代阶段。此外,当两个网格的重叠较小时,或者网格中存在许多的孔洞时,我们预计从两个网格进行采样会改善结果。

在这里插入图片描述
在这里插入图片描述

3.2 Matching Points

  • 在另一个网格中找到最近的点。 kd-tree or closest-point caching
  • source中的点发出一道其法线方向的射线,射线与target网格表面相交的点就是其对应点。 (normal shooting)
  • 将source的点根据source的相机投影到target中。(reverse calibration)
  • 将 source 的点投影到 target 网格中,然后在target网格的范围内执行搜索。搜索有: point-to-point distance, point-to-ray distance and compatibility of intensity or color.
  • 以上任一种方法,根据给定的阈值,只取与source兼容的匹配点。有基于颜色和法线夹角的阈值。

因为我们不分析使用颜色的变体,所以我们将比较的特定变体是:最近点(Closest point)、最近相容点(45度内的法线)(Closest compatible point)、normal shooting、到相容点的法线(45度内的法线)(Normal shooting compatible)、投影(Project)以及投影后搜索(Project and walk)。这些算法中的前四个算法使用kd-tree进行加速。对于最后一种算法,搜索实际上是在目标网格中进行最陡下降搜索来试图找到最近的点。我们之所以选择这个变体,是因为它在某些情况下中的工作效果几乎与投影然后穷举搜索一样好,但运行时间更短。

在这里插入图片描述

在这里插入图片描述

我们首先看一下在 “fractal” 中的表现,从Figure. 7 中看到 Normal shooting 的表现最好, Project 的表现次之,而Closest point 的表现就没那么好了。我们认为 Clocest point 的方法对离群点和噪音更加的敏感,导致其得到更多的错误匹配相对另外两种方法来说(Figure. 8)。

在这里插入图片描述

在这里插入图片描述

然而,在 ”incided plane“ 的场景中,得到的结果却是不同的(Figure. 9)。在这里,只有 Clocest point 方法收敛到正确的位置。因此,我们得出结论:虽Clocest point 方法虽然在 较为容易的场景中收敛速度不是最快的,但是对于困难的几何体的场景中他们是最鲁棒的。

现在为止,我们一直以迭代次数作为标准,但是运行时间也是很重要的。因为 ICP 的匹配阶段通常是最耗时的,因此需要ICP快速的运算(不需要处理几何上困难的情况,如 ”incided plane“)的时候必须要找到最快的匹配算法。 因此,让我们比较一下这些算法在"fractal" 中的误差随时间的变化情况(Figure. 10)。我们看到虽然 Project 算法在每次迭代的过程中不能找到最佳的收敛,当是每次迭代的速度最快,因为它的运算时间的固定的,而没有涉及到最近点的搜索(即使使用kd-tree来加速,也需要O(log n) 时间)。结果表明,基于 Project 的算法具有最高的 收敛速度时间比。 注意,这个图不包括计算除了 Project 算法之外的所有算法初始化建立kd-tree 的时间,如果包括在内的话, Project 算法的优势更加的明显。

3.3 Weighting of Pairs

  • 固定权重 (Constant weight)
  • 为较大的点对点距离的对应pair指定较低的权重。这类似与丢弃掉大于阈值的pair,但是避免了后一种方法的中断。(Linear with distance)
  • 基于法线阈值的权重( [公式] ). 同时, 基于颜色的阈值的权重也有被提出来,尽管我们在这里不考虑它。(Compatibility of normals)
  • 根据扫描仪中的噪音和误差的不确定性进行一定的加权,因此应为远离相机的表面分配较高的权重。(Uncertainty)

我们首先看一下 ”Wave“ 场景中的效果(Figure. 11)。此外,为了方法不同算法之间的差异,增加了额外的噪音。我们看到,即使添加了噪音,不同的加权策略都有着相似的性能。其中 Uncertainty 和 Compatibility of normals 的表现略好于其他方法。对于”incided plane“ 场景(Figure. 12),结果是相似的,尽管在性能上有较大的差异。然而,我们在解释这一结果时必须谨慎,因为Uncertainty的加权会将更高的权重分配给模型上法线指向范围扫描仪以外的点。因此,对于此场景,不确定性加权为”incided plane“内的点指定了更高的权重,从而提高了收敛速度。我们的结论是,一般来说,加权对收敛速度的影响很小,并且高度依赖于数据,并且加权函数的选择应该基于其他因素,例如最终结果的准确性;我们希望在未来的一篇论文中探讨这一点。

在这里插入图片描述

在这里插入图片描述

3.4 Rejecting Pairs

与将权重分配给相应的配对密切相关的是完全拒绝某些配对。这样做的目的通常是消除离群值,在执行最小二乘最小化时,离群值可能会产生很大影响。提出了以下拒绝策略:

  • 拒绝相隔超过给定(用户指定)距离的对应点。
  • 基于某种度量(通常是点对点距离)拒绝最差n%的对。根据 [Pulli 99]的建议,我们拒绝10%的配 对。(Reject worst 10%)
  • 拒绝点到点距离大于距离标准差的某个倍数的对。在[Masuda 96]中,我们拒绝距离超过标准差 2.5倍的配对。(2.5 Sigma)
  • 拒绝与相邻对不一致的对,假定曲面刚性移动[Dorai 98]。该方案将两个对应关系p1、q1分类 为不一致的充要条件 ∣ Dist ⁡ ( p 1 , p 2 ) − Dist ⁡ ( q 1 , q 2 ) ∣ \left|\operatorname{Dist}\left(p_{1}, p_{2}\right)-\operatorname{Dist}\left(q_{1}, q_{2}\right)\right| Dist(p1,p2)Dist(q1,q2) 大于一个阈值。根据[Dorai 98],我 使用 0.1 max ⁡ ( Dist ⁡ ( p 1 , p 2 ) , Dist ⁡ ( q 1 , q 2 ) ) 0.1 \max \left(\operatorname{Dist}(p 1, p 2), \operatorname{Dist}\left(q_{1}, q_{2}\right)\right) 0.1max(Dist(p1,p2),Dist(q1,q2)) 作为阈值。该算法会拒绝那些与大多数其他 对应项不一致的对应项。注意,这个算法在每一次ICP的运行时间是 O ( n 2 ) O\left(n^{2}\right) O(n2). 为了减少运行时 间,我们选择将每个配对之和其他 10 的配对进行比较,如果与5个以上配对不兼容,则拒绝这个 配对。(Reject incompatible pairs)
  • 拒绝包含网格边界上的点的对

最后一个策略(排除包含网格边界上的点的配对)对于避免在扫描之间重叠不完整的情况下的错误配对(导致估计变换中的系统偏差)特别有用(Figure. 13)。由于它的成本通常很低,而且在大多数应用中使用它的缺点很少,所以我们总是推荐使用这种策略,实际上我们在本文的所有比较中都使用了它。

在这里插入图片描述
在这里插入图片描述

Figure. 14 比较了Use all pairs、Reject worst 10%、Reject incompatible pairs和2.5 Sigma 在有额外噪声和离群值的”Wave“ 场景的性能。我们看到,拒绝异常值无助于最初的收敛。事实上,当网格距离对齐相对较远时,拒绝配对最积极的算法(Reject worst 10%)往往收敛较慢。因此,我们得出结论,虽然剔除异常值可能会影响确定正确排列的准确性和稳定性,但总体上并不能提高收敛速度。

3.5 Error Metric and Minimization

我们将看到的ICP算法的最后几部分是误差度量和最小化误差度量的算法。使用了以下错误度量:

  • 相应点之间距离的平方和。对于这种形式的误差度量,存在确定使误差最小的刚体变换的闭合形式解。已经提出了基于奇异值分解[Arun 87]、四元数[Horn 87]、正交矩阵[Horn 88]和对偶四元数[Walker 91]的求解方法;Eggert et. al. [Eggert 97]中的每一种方法的数值精度和稳定性进行了评估,得出了它们之间的差别很小的结论。(Point-to-point)
  • 上面的“point-to-point”度量,同时考虑了点之间的距离和颜色差异[Johnson 97B]。
  • 从每个source中的点到target中的点且方向垂直于目标法线的平面的平方距离之和[Chen 91]。在这种“Point-to-plane”的情况下,没有封闭形式的解可用。最小二乘方程可以使用一般的非线性方法(例如Levenberg-MarQuardt)来求解,或者通过简单地将问题线性化来求解,即假设旋转量很小==> [公式] 和 [公式] (Point-to-plane)

此外,这里有几种方法来进行最小化计算:

  • 使用当前变换重复生成一组对应点,并找到最小化误差度量的新变换[Chen 91]。
  • 上述迭代最小化,结合变换空间的外推法相结合,加速收敛[BESL 92]。(extrapolation)
  • 从初始条件中的几个扰动开始执行迭代最小化,然后选择最佳结果[Simon 96]。这避免了误差函数中的虚假局部最小值,特别是在使用点对点误差度量时。
  • 使用各种随机选择的点子集执行迭代最小化,然后使用稳健(平方中值最小)度量选择最佳结果[Masuda 96]。
  • 随机搜索最佳变换,使用模拟退火[Blais 95]。

由于我们关注的是收敛速度,而且后三种方法往往很慢,所以我们的比较将集中在上面描述的前两种方法(即,使用或不使用外推的“经典”ICP迭代)。我们使用的外推算法基于BESL和McKay[BESL 92]所描述的算法,并做了两处小改动以提高效率和减少超调:

当尝试二次外推,抛物线向下开口时,我们使用最大的x截距而不是抛物线的极值。
在我们的实现中,我们将外推量乘以一个阻尼因子,该因子可任意设置为1/2。我们发现,虽然这偶尔会降低外推的益处,但它也增加了稳定性,消除了许多超调问题。
在"fractal" 场景中,我们看到,即使添加了外推,点到面误差度量的性能也明显好于点到点度量(Figure. 15)。对于“Incised plane”的场景,差别就更大了(Figure. 16)。在这里,点对点算法不能得到正确的解决方案,因为使用点对点误差度量不允许平面容易地彼此“滑过”。

在这里插入图片描述

在这里插入图片描述

4 High-Speed Variants

我们现在可以通过结合上面讨论的一些变体来构建高速ICP算法。与Blais和Levine一样,我们建议使用基于投影(Project)的算法来生成点对应。与Neugebauer一样,我们将这种匹配算法与点到面(Point-to-plane)误差度量和标准的“选择-匹配-最小化”ICP迭代相结合。ICP过程的其他阶段似乎对收敛速度影响不大,因此我们选择最简单的阶段,即随机抽样(random sample)、恒定权重(constant weight)和拒绝对的距离阈值。此外,由于存在超调的可能性,我们避免了对变换进行外推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值