Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法

文章目录

  • Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法
    • 摘要
    • 1. 介绍
    • 2. 以前的研究
      • 2.1 RANSAC
    • 3. 概述
    • 4. 我们的方法
      • 4.1 形状评估
      • 4.2 复杂度
        • 4.2.1 可能性
      • 4.3 采样策略
        • 4.3.1 局部采样
          • 4.3.1.1 水平加权
        • 4.3.2 候选的数量
      • 4.4 得分
        • 4.4.1 连通部分
      • 4.5 得分评估
        • 4.5.1 随机子集
        • 4.5.2 OCtree八叉树
      • 4.6 修整
    • 5. 结果
      • 5.1 噪声
      • 5.2 比较
    • 6. 总结
    • 致谢

Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法

  • 原论文PDF
  • 论文项目GitHub地址

摘要

  • 对于无序点云基础形状检测的自动算法
  • 将点云分解为简明的固有混合结构的形状和一系列剩下的点
  • 每一个被检测到的形状都代表了一系列相应的点
  • 方式是基于随机采样来检测平面,球体,圆柱体,圆锥以及圆环
  • 对于仅由这些基础形状组成的模型例如CAD模型,自动获得仅由形状组成的代表
  • 我们证实了这个算法即使是在存在很多的外点和很大程度的噪声的情况下也具备鲁棒性
  • 该方法在输入点云的大小数量以及数据内的形状的大小有很好的尺度性
  • 即使具有上百万个样本的点集,依然能够在一分钟以内鲁棒的分解
  • 此外这个方法概念简单,也很容易实现
  • 应用领域包括物理参数的测量、扫描配准、表面压缩、混合渲染、形状分类、网格划分、简化、近似和逆向工程

1. 介绍

  • 由于几何数据集数量和复杂度增加,对数据的简化以及有意义的提取的需求也在增加。尤其是在处理数字几何,例如用激光雷达获取的数据,除了数字化点本身以外,用户不能修改数据的句柄。然而,为了有效地使用这些数据,基础的数字数据需通过提取信息和可能的语义信息来丰富,为用户提供更高水平的互动的可能性。只有这样的句柄才能给用户提供参与编辑项目的交互需求,例如删除,移动或者调整确定部分的尺寸,因此可以让数据更容易用于建模。当然,传统的逆向工程设计方法可以提供一些我们寻找的提取概念,但是通常来说逆向工程专注于寻找底层几何图形的重建并且通常涉及相当乏味的用户交互。这在一个完全不需要完整和详细重建或者只能对数据进行一些基础的编辑后才能进行操作的设置来说是不合理的。另一方面,从点云数据样本中检测一组基础的几何形状实例,是一种更快的获取更高提取水平信息的方法。例如图1基础点云部分点提供的几何粗略值可以用来高效地压缩点云。
  • 出现的另一个问题是处理数字几何时数据集的规模往往很庞大。因此数据提取算法的效率也至关重要,尤其是在交互设置中。因此,这篇论文中我们尤其专注于寻找点云形状检测的高效算法,为了有能力处理很大的点云。我们的工作是一个高性能的RANSAC算法,它有能力提取各种不同类型的基础形状,同时保留了RANSAC模型的良好性质例如鲁棒性,普遍性和简明性。我们算法的核心是一个新颖有着层次结构的候选形状生成的采样策略同时也是一个新颖的懒惰的成本函数评估方案,它显著的减少了整体的计算成本。我们的方法可以检测平面,球面,圆柱,圆锥和圆环,但是另外的基础形状也是可能的。我们算法的目标是从数据中可靠的提取这些形状,即使是在不利条件下例如很大的噪声点。
  • 如上所述,我们的方法特别适合应用于当几何数据是自动获取和用户避免应用表面重建方法的情形,两者的原因是数据的质量太低或者处理时间的限制。这些限制在需要高级别模型交互领域是典型的,例如在测量物理参数或者在交互式半自动分割和后处理的情况。
  • 更深远的应用例如,对一个物体多次扫描的配准,在多次扫描中检测相应的基础形状可以提供很好的初始匹配。如果可以用基础形状来表示具有少量参数的大量点,就可以实现对点云的高压缩率。另一个受益于基础形状信息的领域包括混合渲染和形状分类。另外,我们提供的快速形状提取的方法可以当作网格化,简化,近似和逆向工程应用的基石,并且具有显著提高速度的潜力。
  • 图1:在唱诗班屏幕上检测到的372个形状定义了表面的粗糙近似

2. 以前的研究

  • 基础形状的检测是计算机几何科学许多领域中遇到的普遍问题。这些年来有很多被提议的方法,这些方法不可能都在这里深入展开。相反的,我们在这里对不同领域中开发的最重要的算法进行简短概述。我们将RANSAC算法以前的研究单独放到了2.1小节,因为它与我们的研究特别相关。
  • 视觉 在计算机视觉中,两个最广为人知的形状提取方法论就是RANSAC模型和霍夫变换。他们在2D和3D中都能非常成功的检测出形状。RANSAC和霍夫变换即使在高比例外点的场景下也很可靠,但是缺乏效率和高内存消耗仍是他们的主要缺陷。对于这两种方案已经提出了许多加速技术,但没有人或者团队表明能够提供一个和我们一样有效的3D 原始形状算法。
  • 霍夫变换映射,通过输入一组原始参数,数据中每个点都是参数空间的流形。流形描述了包含原始点的基元的所有可能的变体,在实践中每个点为离散化参数空间中的很多单元投票。通过选取那些已经得到大量投票的参数向量来提取形状。如果参数空间使用的是简单的离散化网格,对于内存的需求很快就会过高即使基元只有适量数目的参数。例如,比如说圆锥。尽管已经提出了很多用来减轻这个问题的方法,它的最主要应用领域仍然是参数数量相当小的2D领域。一个值得注意的例外是XXX,在这里霍夫变换被用于检测3D数据集中的平面,因为3D平面仍然只有很小数目的参数。他们还提出了一个数据点中使用法线的基于霍夫变换检测圆柱的双阶段检测算法。
  • 在视觉社区中已经提出了很多利用深度图像对基本形状进行分割的方法。当在深度图像上进行处理时,这些算法通常可以通过某些程度上的区域生长和区域合并步骤来高效的利用图像网格上的隐含连续信息。这就是和我们的方法的一个根本的不同点,我们的方法只使用了一个点之间缺乏明确连通信息的无序点云。在XXX和XXX里通过同时生长从MDL标准中选出合适子集的不同种子基元来找到形状(创造了恢复和选择标准)。XXX通过使用基因算法最优化一个鲁棒的MSAC拟合函数来检测形状。XXX介绍了一种关于原始形状的非线性拟合函数,它能够在恢复和选择分割的背景下解决几何退化问题。
  • 在视觉社区另一个被频繁的使用的鲁棒的方法是张量投票框架,它已经很成功的被应用于从极端混乱的场景中进行几何表面重建。在鲁棒性方面,张量投票法可以和RANSAC相比,然而张量投票法本质是无模型的因此不能够应用于检测预定义类型的形状基元。
  • 逆向工程 在逆向工程中,表面恢复技术通常是基于一个独立的分割步骤或者各种各样的区域生长算法。大多数方法都要求有各种不同的连通信息并且都不能很好的具备处理较多数量异常值的情况。这些方法尝试从已处理表面的的每一部分找到一个形状代表来达到将重建几何形信息导入到CAD应用中的目的。XXX描述了一种可以从无序点云中重建边界代表并且可以导入到CAD应用中的系统。然而,他们的方法是基于从点集中找到三角形分量,尽管在他们的研究中展示的是可以直接对输入点进行操作的方法。这是十分有利的,因为计算一个合适的密集点集是十分耗费时间的,当数据中有严重的噪声时还会变得非常错综复杂或者界限模糊。然而,我们不打算去展示实现一个典型逆向工程处理的所有阶段的方法。
  • 图像学在就计算机图形学中,XXX最近提出了一种通过平面来近似曲面的通用可变框架,它已经由XXX扩展到一系列更多的复杂形状代理。他们的目的不仅仅是从数据中提取确定的确定的形状,而且还通过给定数量的基元来找到目标的全局最优化代表。然而他们的方法需要信息的连通性,由于他们独用了最小二乘法拟合,容易受到异常值影响产生错误。同时最优化程序的计算开销太大,这使这种方法不适用于较大的数据集。我们算法的输出,可以通过使用他们的方法来初始化一系列的形状代理,潜在的加速了最优化过程的收敛。虽然霍夫变换和RANSAC范式主要应用在计算机视觉领域,他们的一些应用也同样被用在计算机图形学领域。XXX使用霍夫变换来确定三角形广告牌点云的平面。他们提出了一个包含紧密性准则的标准霍夫变换的扩展,但是由于霍夫变换的计算要求太高,这个方法在较大或者复杂的几何结构上展示的效能不好。XXX提出了一种基于RANSAC用鸟瞰图来渲染的点云检测平面的方法。为了促进高效的平面检测,平面只在层次分解空间的单元里检测因此表面上一个基本的平面是由几个平面部分近似得到的。同时这也是他们的鸟瞰渲染技术所能接受的,我们的方法找到最大表面部分为了产生一个更加简洁的目标代表。同时,他们的方法没有考虑高阶基元。XXX检测的所谓平滑形状只不过是用我们的方法识别出的形状的超集。他们使用从点和法线中获得的对称矩阵的特征值来确定点集的滑动性。他们的检测是一个自底向上的方法,通过合并小的初始滑动表面来获得模型的全局构图。然而对于较大的模型而言特征值的计算开销很大,这种方法对噪声敏感并且很难确定初始表面部分的正确大小。XXX是一个相关的方法。他们同样也使用了从线性几何元素矩阵的特征值来对表面进行分类。基于RANSAC的分割算法被用来检测点云中的几个形状。他们的方法主要用于包含少数量点和形状的模型因为对于普通RANSAC框架的没有最优化和扩展而被弃用。

2.1 RANSAC

  • RANSAC通过从点云数据中随机的抽取极小点集和重建相应的形状基元来提取形状。极小点集是指独特地定义一个给定几何基元所需的最小数目的点。这些生成的候选形状在数据中的所有点中测试来确定有多少点可以很好的被基元近似(也叫形状的得分)。通过一定数量的测试,近似点数最多的形状被提取而算法则在剩余点中继续(运行)。RANSA展示了以下理想的特性:
    • 概念上很简单,很容易扩展而且可以很直接被实现
    • 具有通过性,允许在广泛的设定中应用
    • 即使包含的外点数目大于50%也能够鲁棒地处理
  • 它主要的缺陷是如果没有进一步的优化的话需要大量的计算需求。
  • XXX应用RANSAC来提取深度数据中的圆柱,xxx使用RANSAC和高斯图像来寻找3D点云中的圆柱。但是两种方法都没有考虑大量不同类别的形状基元。XX描述了一种利用RANSAC来检测一系列不同类型简单形状的算法。然而他们的方法只适用于图像和深度图领域,并且他们对加工大型未重建3D数据集没有提供必要的优化。
  • 已经够有巨大数量的普遍RANSAC扩展方法被提出。在最近的进展中,MLESAC和MSAC通改良的分数函数来改善了RANSAC的鲁棒性,但是在算法的性能上没有任何增强,这也是我们的方法所聚焦的点。尽管如此整合MLESAC得分函数仍是我们未来工作的主要方向。Xx对于预先固定候选点数量的情况提出了一种加速技术。因为我们设定的一个基本特性是在一个巨大的点云数据中检测一个不知道多大数量而且有可能很小的形状,因此必要候选点的数量不能被提前指定。

3. 概述

  • 我们的算法通过输入:给定点云 P = { p 1 , P 2 , . . . P N } P=\{p_1,P_2,...P_N\} P={p1,P2,...PN} 相应法线: { n 1 , n 2 , . . . n N } \{n_1,n_2,...n_N\} {n1,n2,...nN} ,来输出:一组基本形状 Ψ = { Ψ 1 , . . . , Ψ n } \Psi=\{\Psi_1,...,\Psi_n \} Ψ={Ψ1,...,Ψn}以及对应点集 P Ψ 1 ⊂ P , . . . , P Ψ n ⊂ P P_{\Psi1}\subset P,...,P_{\Psi n}\subset P PΨ1P,...,PΨnP和一组剩余点 R = p ∖ P Ψ 1 ⊂ P , . . . , P Ψ n ⊂ P R=p \setminus P_{\Psi1}\subset P,...,P_{\Psi n}\subset P R=pPΨ1P,...,PΨnP。与[RL93]和[DDSD03]类似,我们通过由得分函数定义的最优化问题来架构形状提取问题。我们方法的整体结构由下图的伪代码来概述。在算法的每次迭代中,基元的最大的分由RANSAC范式搜索得到。新的形状候选通过使用我们新颖的采样策略从P的最小子集中随机采样产生。所有被考虑的候选形状类型都由最小点集产生并且所有的候选都被包含在集合C中。因此在检测不同类型的形状没有强制的特殊要求。在新的候选产生后,最高得分m通过使用4.5中展示的高效懒人分数评估方案计算得到。假设候选点|m|占所有被提及的候选的候选|c|的比例为P(|m|,|c|),在采样次数已经足够高并且没有更好的候选被疏漏的情况下,最佳候选才得到认可。我们提供我们采样策略的分析来推导出一个合适的概率计算公式。如果候选被认可,那么它对应的点 P m P_m Pm将从点云P中移除,从点 P m P_m Pm产生的候选 C m C_m Cm也要从C中删除。当用户定义的最小形状的点数τ的P(τ,|c|)足够大时算法终止。
  • 在我们的实施中我们使用一个标准的的得分函数来计算形状候选的相邻点的数目。这个函数有两个自由参数,ε指定相邻点的最大距离,而α用来限制形状上的点的法线夹角。我们也确保了只有当点在表面上产生相关的部分时才被考虑。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第1张图片

4. 我们的方法

4.1 形状评估

  • 正如上方提及到的,我们研究中考虑的形状例如平面,球,圆柱,圆锥和圆环都有3-7个参数。每一个3D点 P i P_i Pi样本只定义形状上的一个参数。为了减少需求点的数量我们计算了每个点的表面近似法线 n i n_i ni,因此定位给每个样本两个以上的参数。这种方法可以从从一到两个点样本中估算出每个被考虑的基本形状。然而最好使用一个附加样本,因为剩余点可以立即被用来验证候选,因此可以消除评估许多相当低分的形状的需求。

  • 平面 对于平面当没有考虑点上的法线时 p 1 , p 2 , p 3 {p_1,p_2,p_3} p1,p2,p3构成了最小点集,为了证实生成平面的合理性,平面法线与 n 1 , n 2 , n 3 n_1,n_2,n_3 n1,n2,n3的偏角应当是确定的,并且只有当所有的偏角都小于预定义角度α时候选平面才得到认可。

  • 一个球由两个点以及对应的法线向量来充分定义。我们通过使用点 p 1 , p 2 {p_1,p_2} p1,p2 和他们的法线 n 1 , n 2 n_1,n_2 n1,n2得到的两条线的最短线段的中点来定义球c的中心。以 r = ∥ p 1 − c ∥ + ∥ p 2 − c ∥ 2 r=\frac{\Vert p_1-c \Vert +\Vert p_2-c \Vert }{2} r=2p1c+p2c作为球的半径。只有当三个点都在与球的距离ε以内,并且他们的法线夹角不比α大时,这个球才被认可为球形候选。

  • 圆柱 通过两个点以及法线来来生成圆柱,我们第一步是利用 a = n 1 ✖ n 2 a=n_1✖n_2 a=n1n2来建立坐标轴的方向。然后我们沿着坐标轴 a ⋅ x = 0 a·x=0 ax=0的方向将两条参数化直线 p 1 + t n 1 , p 2 + t n 2 p_1+tn_1,p_2+tn_2 p1+tn1,p2+tn2投影到平面上,并且取他们的中心点为中心c。我们将半径设置为平面上c到 p 1 p_1 p1的距离。圆柱通过样本的距离阈值ε和法线的角度阈值α再次得到证实。

  • 圆锥 尽管圆锥体也是由两个点和相应的法线完全定义的,但为了简单起见,我们在其生成过程中使用所有三个点和法线。为了得出顶点c的位置,我们由点和法线对定义的三个平面相交。然后,由三点 { c + p 1 − c ‖ p 1 − c ‖ , . . . , c + p 3 − c ‖ p 3 − c ‖ } \{c +\frac {p1-c }{‖p1-c‖},...,c +\frac {p3-c}{‖p3-c‖}\} {c+p1cp1c,...,c+p3cp3c}定义的平面的法线给出了轴a的方向。现在开放角度$ ω= \frac {\sum_{i=1}^n arccos((p_i-c)·a)}{3} $。之后,与上面类似,圆锥体在成为候选形状之前要进行验证。

  • 圆环 就像圆锥的情况我们使用比理论上需求更多一个的点来减轻评估的计算需求,所以这里就用了4个点以及法线对。圆环的旋转坐标系取决四个点法线的相交的两条直线之一 p i + λ n i p_i+λn_i pi+λni。为了在两个可能的坐标轴之间做出选择,一个完整的圆环由两个选择和那个在四个点间产生最小误差的将会被挑选。为了找到最小的半径,平面上环绕在坐系的点将会被选择。然后就可以用平面上的三个点计算得到一个圆。主要的半径就由圆心到轴线的距离得到。

4.2 复杂度

  • RANSAC的复杂度由两个主要的因素控制:选出的最小点集的数目和为每个候选形状评估得分的开销。由于我们需要提取每个达到得分最高的形状,候选形状的数量需要在最好结果的形状已经被检测的基础上才会被考虑,定义这个形状的最小点集才被选择。

4.2.1 可能性

  • 考虑一个大小为N的点云P和其中由n个点组成的形状ψ。设k表示定义候选形状所需的最小集的大小。如果我们假设形状的任何k个点将产生适当的候选形状,那么在单次中检测到ψ的概率为: P ( n ) = ( n k ) / ( N k ) ≈ ( n N ) 2 P(n)=\begin{pmatrix} n \\ k \end{pmatrix}/\begin{pmatrix} N \\ k \end{pmatrix}≈\begin{pmatrix} n \\ N \end{pmatrix}^2 P(n)=(nk)/(Nk)(nN)2
    在绘制s个候选项后,成功检测的P(n,s)的概率与s个连续失败的结果互斥: P ( n , s ) = 1 − ( 1 − p ( n ) ) s P(n,s)=1-(1-p(n))^s P(n,s)=1(1p(n))s
    求解s可得我们检测大小为n的形状所需的候选T的概率为 P ( n , T ) ≥ p t P(n,T)≥p_t PnTpt T ≥ l n ( 1 − p t ) l n ( 1 − p ( n ) ) T≥ \frac {ln(1-p_t)}{ln(1-p(n))} Tln(1p(n))ln(1pt)
    对于较小的P(n),分母中的对数可以用它的Taylor级数ln(1−P(n))=−P(n)+O(P(n)2)来近似,因此:
    T ≈ − l n ( 1 − p t ) p ( n ) T≈ \frac {-ln(1-p_t)}{p(n)} Tp(n)ln(1pt)
    给定评估代价函数的成本C,RANSAC方法的渐近复杂度为 O ( T C ) = O ( 1 P ( 1 n ) C ) O(TC)=O(\frac {1}{P(1n)}C) O(TC)=O(P(1n)1C)
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第2张图片
  • 图2:用我们的方法检测到的一个小圆柱体。该形状由1066个点组成,在341,587个点中被检测到。这相当于相对大小为1/3000

4.3 采样策略

  • 从上一个公式中可以看出,运行时的复杂性与找到好的样本集的成功率直接相关联。因此,我们现在将详细讨论如何进行采样。

4.3.1 局部采样

  • 由于形状是局部现象,两个点属于同一形状的点之间距离越小的先验概率越高。在我们的抽样策略中,我们希望利用这一事实来增加选择属于相同形状的最小集的概率。[MTN∗02]已经表明,基于局部性的非均匀抽样导致选择一组外点的概率显著增加。从一个给定半径的球周围的样本中选择剩余的样本以获得一个完整的最小集。这需要提前确定一个半径,这个半径是从已知(或假设的)离群密度和分布得出的。然而,在我们的设置中,离群值的密度和分布对于不同的模型变化很大,甚至在一个单一的模型中也是如此,这使得一个固定的半径长度不足。此外,在我们的例子中,使用小直径的最小集在形状估计过程中引入了不必要的稳定性问题,这些形状本可以从分散得更远的样本中估计出来。因此,我们提出了一种新的采样策略,它能够适应能够适应最小集的直径,离群密度和形状大小。
  • 我们使用八叉树来非常有效地建立样本之间的空间接近性。当为一个新的候选点选择点时,我们在所有点中无限制地抽取第一个样本p1。然后从八叉树的任何层次中随机选择一个单元C,这样p1就包含在C里,然后,其他k-1个样本仅从单元c内提取。这种采样策略的效果可以用一个新的概率 P l o c a l ( n ) P_{local}(n) Plocal(n)来寻找大小为n的形状ψ: P l o c a l ( n ) = P ( p 1 ∈ ψ ) P ( p 2 ⋅ ⋅ ⋅ p k ∈ ψ ∣ p 2 ⋅ ⋅ ⋅ p k ∈ c ) P_{local}(n)=P(p_1∈ψ)P(p_2···p_k∈ψ|p_2···p_k∈c) Plocal(n)=P(p1ψ)P(p2⋅⋅⋅pkψp2⋅⋅⋅pkc)
  • 第一个因子的计算结果为n/N。第二个因素显然取决于C的选择,如果它包含属于ψ的点,则选择结果良好。这种单元格的存在是由这样的观察所支持的:对于一个形状上的大多数点,除了在边和角上,都存在一个邻域,使得其中的所有点都属于这个形状。虽然一般来说不能保证这个区域充满单元格的八叉树,在现实数据的情况下,形状必须采样足够的密度可靠的代表点,因此,除了很少的点,这样的邻域至少和八叉树中最小的单元格一样大。为了便于分析,我们假设每个pi∈ψ都存在一个C,这样ψ将被C中一半的点支持,这占高达50%的局部噪声和异常值。我们保守地估计通过d1找到一个好的C的概率,其中d是八叉树的深度(在实践中,从最高的好单元开始到一个好的叶子叶子节点的单元路径也将是好的)。在一个良好单元情况下,p2,p3∈ψ的条件概率然后由 ( ∣ C ∣ / 2 k − 1 ) ( ∣ C ∣ k − 1 ) ≈ ( 1 / 2 ) k − 1 \frac{\begin{pmatrix}|C|/2\\k−1\end{pmatrix}}{\begin{pmatrix}|C|\\k−1\end{pmatrix}}≈(1/2)^{k−1} (Ck1)(C∣/2k1)1/2k1来描述。替换可得:
    P l o c a l ( n ) = n N d 2 k − 1 P_{local}(n)=\frac {n}{Nd2^{k-1}} Plocal(n)=Nd2k1n
    由于大的形状可以从大单元中估计(而且这发生的概率很高),因此形状估计的稳定性不受采样策略的影响。
    最好用一个例子来说明这种抽样策略的影响。图2中描述的圆柱体由1066个点组成。当时它属于点云中最大的形状之一,最初的200万个点中仍然有341,547个点。因此,它就只包含了点云的千分之一。如果采用普通的均匀抽样策略,则必须抽取151,522,829个候选样本,才能达到99%的检测概率。在我们的策略中,以同样的概率只用生成64,929个候选。这是三个数量级的改进,即在这种情况下,这是小时和秒之间的差。
4.3.1.1 水平加权
  • 从一个适当的水平上选择C是我们的抽样方案的一个重要方面。因此,我们可以根据一个反映包含良好单元的不同级别可能性的非均匀分布中从一个级别上选择C,从而进一步提高采样效率。为此,从c中级别l里选取的可能性 p l p_l pl首先用1/d来初始化。然后对于每一个级别l,我们跟踪从l级的单元格中生成的候选项所获得的分数的总和σl。在测试了给定数量的候选项之后,将计算出该级别的新分布。能级l的新概率ˆPl为
    p l ^ = x σ l w P l + ( 1 − x ) 1 d \hat{p_l}=x\frac{σ_l}{wP_l}+(1-x)\frac{1}{d} pl^=xwPlσl+(1x)d1,此处 w = ∑ i = 1 d σ p i w=\sum_{i=1}^d\frac{σ}{p_i} w=i=1dpiσ,我们设置了x=9以确保在任何时候至少有10%的样本均匀地分布在级别上以便能够检测到,随着越来越多的点被删除,新的级别开始变得更加重要。

4.3.2 候选的数量

  • 在第4.2节中,我们给出了一个以给定概率检测大小为n的形状所需的候选对象数量的公式。然而,在我们的例子中,最大形状的大小n是事先不知道的。此外,如果最大的候选已经生成,早期过程中我们应该能够发现这个幸运的情况并且提取形状之前预先实现候选的计算,而另一方面我们应该使用额外的候选如果它仍然不能确定确实是最好的候选。因此,我们没有固定候选ψm的数量,而是反复分析少量的附加候选的数量t,并计算迄今为止每次生成的最佳ψm。由于我们想要获得一个较低的概率,即一个形状被提取,而不是真正的最大值,我们观察到概率P(|ψm|,s),我们会发现另一个与ψm相同大小的形状。一旦这个概率高于一个阈值pt(我们使用99%),我们就得出结论,我们有一个较低的可能性忽略了一个更好的候选对象并提取ψm。算法在P(τ,s)>pt时终止。

4.4 得分

  • 分数函数 σ P σ_P σP负责测量给定候选形状的质量。我们在评分函数中使用了以下各个方面:
    • 为了测量候选点的支持度,我们使用位于形状周围ε波段内的点数。
    • 为了确保带内的点大致遵循给定基元的曲率模式,我们只计算带内那些法线偏离形状的角度不超过给定角度α的点
    • 此外,我们还加入了一个连接性度量:在满足前两个条件的点中才被认为构成了形状上最大的连接分量。
  • 更正式地说,给定一个保真度的形状ψ, σ P σ_P σP定义如下:
    σ P ( ψ ) = ∣ p ψ ∣ σ_P(ψ)=|p_ψ| σP(ψ)=pψ
    我们计算了Pψ中的点数。 P ψ P_ψ Pψ的定义分为以下两个步骤:
    P ^ ψ = { p ∣ p ∈ P ∧ d ( ψ , p ) < ε ∧ a r c c o s ( ∣ n ( p ) ⋅ n ( ψ , p ) ∣ ) < a } \hat P_ψ=\{p|p∈P∧d(ψ,p)<ε∧arccos(|n(p)·n(ψ,p)|)P^ψ={ppPd(ψ,p)<εarccos(n(p)n(ψ,p))<a}
    P ψ = m a x c o m p o n e n t ( ψ , P ^ ψ ) P_ψ=maxcomponent(ψ,\hat P_ψ) Pψ=maxcomponent(ψ,P^ψ)
    d(ψ,p)是点p和形状基元ψ的欧式的距离,n§是p的法线,n(ψ,p)是法线ψ在p上的投影ψ。最大组件 ( ψ , P ^ ψ ) (ψ,\hat P_ψ) (ψP^ψ)提取点 P ψ P_ψ Pψ的投影到ψ属于ψ上最大的连接部分。

4.4.1 连通部分

  • 我们在位于形状参数域的位图中找到连通分量。如果将一个点投影到位图中,则将设置为位图中的一个像素。理想情况下,位图中像素的大小β应对应于数据中相邻点之间的距离,即采样分辨率。如果数据是不规则采样的,则应选择β作为数据中处处满足的最小采样分辨率。对于平面和圆柱体来说,位图的参数化是很简单的。对于球体的情况,我们对每个半球使用一个位图。对于半球,我们使用[Sc97]给出的低失真参数化。当在锥上构造位图时,我们在两种不同的参数化中进行选择。平面锥通过到顶点的角度和距离来参数化,在平面上产生一个圆。对于极度开放的角度,如果点远离顶点,就会产生过大的位图,因此在这种情况下,我们通过到顶点的距离和弧长来参数化锥体,从而在位图中形成一个三角形域。

4.5 得分评估

  • RANSAC方案的第二个主要性能因素是分数函数评价。在我们的例子中,在一个简单的实现中,到P中所有点的距离必须与每个候选点的形状上对应位置的法线一起计算。然后必须在所有兼容点中找到最大的连接部分。

4.5.1 随机子集

  • 显然,如果没有任何优化,评估的成本将是令人望而却步的。但是由于在每次运行中,我们只对获得最高分数的候选作为感兴趣区域,所以当计算每个形状候选的 σ P ( ψ ) σ_{P(ψ)} σP(ψ)时,不用使用整个点云P。我们通过将点云P分割成一组不相交的随机子集来评估 σ P ( ψ ) σ_{P(ψ)} σP(ψ):P={S1……Sr}显著的减少了评估中需要考虑的点的数目。
  • 在生成一个候选形状并成功验证后,只对第一个子集S1进行评分,并且还没有提取出连接部分。从第一个子集 σ S 1 ( ψ ) σ_{S_1(ψ)} σS1(ψ)的得分,所有点的得分 σ P ( ψ ) σ_{P(ψ)} σP(ψ)的估计 σ ^ P ( ψ ) \hat σ_{P(ψ)} σ^P(ψ),可以使用已知的推理统计归纳推断:
    σ ^ P ( ψ ) = − 1 − f ( − 2 − ∣ s 1 ∣ , − 2 − ∣ p ∣ , − 1 − σ S 1 ( ψ ) ) \hat σ_{P(ψ)}=-1-f(-2-|s_1|,-2-|p|,-1-σ_{S_1(ψ)}) σ^P(ψ)=1f(2s1,2p,1σS1(ψ))
    其中
    f ( N , x , n ) = x n ± x n ( N − x ) ( N − x ) N − 1 N f(N,x,n)=\frac {xn±\sqrt {\frac{xn(N-x)(N-x)}{N-1}}}{N} f(N,x,n)=Nxn±N1xn(Nx)(Nx)
    是超几何分布的均值正负标准差。 σ ^ P ( ψ ) \hat σ_{P(ψ)} σ^P(ψ)是一个置信区间[a,b],它描述了真实分数 σ P ( ψ ) σ_{P(ψ)} σP(ψ)的可能值的范围。期望值E( σ P ( ψ ) σ_{P(ψ)} σP(ψ))由a+b/2给出。通过这种外推法,可以通过选择具有最高期望值的 ψ m ψ_m ψm来快速识别潜在的最佳候选 ψ m ψ_m ψm。由于估计的不确定性是在置信区间中捕获的,因此通过比较候选对象的置信区间,可以找到真正的最大候选对象。
  • 如果 ψ m ψ_m ψm和另一个候选 ψ i ψ_i ψi的置信区间重叠,则评估两个候选的附加子集的得分,并计算新的外推,现在考虑到已经计算出的所有子集的得分:
    σ ^ P ( ψ ) = − 1 − f ( − 2 − ∑ i ∣ s i ∣ , − 2 − ∣ p ∣ , − 1 − ∑ i σ S i ( ψ ) ) \hat σ_{P(ψ)}=-1-f(-2-\sum_i|s_i|,-2-|p|,-1-\sum_iσ_{S_i(ψ)}) σ^P(ψ)=1f(2isi,2p,1iσSi(ψ))
  • 考虑的子集越多,置信区间的范围就越小,因为估计中的不确定性越小。进一步的子集被包括在内,直到 ψ i ψ_i ψi ψ m ψ_m ψm的置信区间不再重叠,并且可以决定 ψ i ψ_i ψi ψ m ψ_m ψm哪个更好。
  • 为了在外推中包含连通性条件的影响,每次评估一个额外的子集时,就会在迄今为止已发现的所有相容点中找到最大的连通分量。用于查找组件的位图的分辨率必须加以适应,以反映子集的较低的采样率。如果 1 / x = ∑ i ∣ S i ∣ ∣ P ∣ 1/x=\frac{∑_i|S_i|}{|P|} 1/x=PiSi是迄今已测试的P中点的分数,则位图分辨率调整为xβ。

4.5.2 OCtree八叉树

  • 对于每个子集,都构造了一个八叉树,因此在代价函数评估过程中,只需要考虑位于距离形状ε距离内的单元格中的点。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第3张图片
  • 图3:为了生成这幅图像,我们的算法被应用于三角形的重心。三角形根据其重心的形状被着色,顶点被投影到形状上。出现锯齿状的线是因为三角测量不包含形状的边。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第4张图片
  • 图4:该图表显示了当禁用子集评估或局部采样时,在油泵模型中发现的形状的检测时间。为了进行比较,也绘制了完全优化版本的时间。没有子集的版本的总运行时间为272.5s,没有本地采样的版本为199.1s,激活两种优化的版本为12.3s。

4.6 修整

  • 当选择候选形状ψ进行提取时,在最终接受该形状之前执行改装步骤。作为基于RANSAC的算法的标准,我们使用最小二乘方法[Sha98]。这就优化了候选形状的几何误差。在重新装配和提取过程中,我们包括了距离形状3ε范围内的所有兼容点,因为这消除了点云中不必要的混乱[GBS03]。

5. 结果

  • 我们在不同的几何上对我们的算法进行了广泛的测试。结果表明,如果数据中存在基本形状,则可以可靠地检测到它们。对于与基本形状非常相似的曲面的部分,可以得到一个很好的近似表示。更复杂的区域以合理的方式被划分为基本形状,剩余点的数量反映了表面的复杂性。该算法表现出较高的性能,如表1的时间记录所示。
  • 为了说明我们的算法使用的两种主要优化的效果,我们独立禁用它们,并将结果时间与图4中的优化版本进行比较。时间是由表1中给出的参数得到。局部采样策略的增益取决于形状相对于模型的相对大小。局部采样提高了性能,特别是在过程中检测到的较小形状,因为它们的相对尺寸减小,全局采样策略需要更多的候选。相反,当点云和形状都非常大时对子集的分数评估会有更大的影响,因此必须执行对八叉树单元和点的许多距离评估。一般来说,在子集上的得分评估的增益随着模型的大小而增加。通过这种方式,这两种优化相互补充,从而在检测的所有阶段显著提高性能。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第5张图片
    • 表1:关于处理后的模型的统计数据。ε为最大边界框宽度的比值。结果已平均超过5次运行并且已经四舍五入
  • 图1中的唱诗班雕塑由一些基本形状组成,例如大的平面区域、圆柱形或圆锥形柱,以及更详细的部分,如人。该数据是通过激光范围扫描仪获得的,并包括几个注册扫描。除了一些噪声外,还有一些配准错误。平面区域和柱子被很好地探测到,但即使是人也发现良好的近似形状。请注意,最左边的两个人手中的小木桶,尽管相对于整个数据集的体积较小,但仍可以可靠地检测到。该图像是通过将所有的点投影到它们相应的基本形状上而生成的。有关参数值见表1。
  • 相比之下,图3中的扇盘表面完全由基本形状组成。正如预期的那样,我们的算法能够找到这些形状,并将表面分解成组成部分,而不留下任何剩余的点。请注意,该结果实际上与[WK05]得到的结果相同。另一方面不仅由基本形状组成的油泵可也以由我们的方法检测到。然而,如图7所示,存在的基本形状可以很好地检测到,只有混合斑块或小规模的区域详细信息被忽略。我们简要地捕捉到了该模型的主要特征。
  • 在图9中,给出了其他的结果。异常值被成功地忽略,精细的细节几何图形被很好地识别。

5.1 噪声

  • 我们做了一个简单的实验来证明我们的方法有处理噪声数据的能力。我们使用具有增加合成高斯噪声和异常值的球面的八分体点作为测试用例。通过对每个样本的邻居局部拟合最小二乘平面得到点的法线,并根据噪声比增加收集邻居的半径。请注意,在检测过程中没有任何形状类型被忽略,但我们不允许具有较主半径小于较小半径的环面,因为它们形成了一个球体的超集。在图5中,描述了一个具有10%噪声和80%异常值的示例。异常值是在边界框上以均匀的分布生成的。表2列出了其他的结果以及各自的噪声比。可以看出,即使有大量的噪声和异常值,原始的球面参数也能被可靠地检测到。当噪声度大于20%时,检测结果开始变得不稳定,算法有时会返回错误的形状类型。在2%的噪声程度下,可以容忍高达95%的异常值。
  • 图8 b)-c)显示了我们的算法在一个更复杂的模型的噪声数据上的表现。油泵模型被合成高斯噪声扭曲,σ等于边界盒对角线的1%。对于如此严重的噪音,我们观察到只有小的或非常窄的形状(例如,一些螺钉头)不能再可靠地分割,因为不能为它们收集足够的集合。另一个原因是,估计的法线对于这些形状来说太不可靠了,因为用于估计的邻居点的数量需要增加,以平滑噪声的影响。因此,属于相邻形状的点对这些小形状的估计法线有不利的影响。然而,较大的形状不受影响,因此成功和稳定的检测,尽管有噪音。在图8d)中,除了噪声外,10%的点被随机重新定位为异常值(同样是通过边界框上的均匀分布)。如预期的那样,检测成功地忽略了这些异常值,其结果与没有异常值的结果相同。
  • 图6展示了一个真实世界中的重噪声示例。我们的方法能够成功地检测到包含两个尖顶的平面,尽管有大量的异常值和噪声伪影。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第6张图片
  • 图5:被合成高斯噪声扭曲的球体的八分体上的点,其σ相对于球体直径为10%,异常值为80%。我们的算法能够稳健地检测球体,从表2的数据也可以看出。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第7张图片
  • 图6:a)教堂模型的一个包含严重噪音的部分。b)属于随机颜色的形状的点。c)按形状类型有颜色的点,如图7所示。

5.2 比较

  • 将我们的算法与现有的其他基于三维点云的方法进行比较是困难的。大多数点云分割算法并不显式地检测原始形状的实例,而是以其他一些预定义的方式找到一致的区域。此外,几乎没有任何公开可用的实现或结果。然而,一个关于距离图像分割的基准确实存在(http://marathon.csee.usf.edu/seg-comp/SegComp.html)[PBJB98]。因此,我们利用这个基准来提供我们的方法与其他现有算法进行一些比较。但是请注意,我们的方法的初衷不是范围图像分割,因此基准只能反映我们的方法的能力的一个子集。基准提供测试图像与手动获得的地面真实分割以及自动评估的工具。由于使用的扫描仪质量低,测试图像包含严重的系统噪声。范围图像分割,是一个非常特殊和更简单的情况。我们的更通用的问题公式,将允许许多额外的优化和假设的算法。尽管如此,我们已经在基准测试提供的测试图像上测试了我们的方法。表3列出了我们的检测结果以及其他两种可获得结果的最先进的方法的结果。我们的方法能够实现类似的效果,甚至在UB片段的正确检测区域的正确率略高于[JB97]的效果,同时明显优于BJ片段者[BJ88]。结果是令人鼓舞的,因为我们的方法可以很容易地与这些本地范围的图像片段器竞争,而不需要进一步适应这种特殊情况。
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第8张图片
  • 表2:不同噪声条件下的拟合球体与地面真实情况相比的参数误差。所有的值都以球体直径的百分比来给出。从左到右,数值是高斯噪声的水平σ,异常值的百分比o,半径的平均值µr和中心偏差的平均值 µ c µ_c µc,以及中心的半径和 σ c σ_c σc的标准差 σ r σ_r σr
    Efficient RANSAC for Point-Cloud Shape Detection 点云形状检测的高效RANSAC法_第9张图片
  • 表3:分割比较项目的40个测试范围图像上正确检测区域的平均百分比。阈值控制标注框和机器分割区域之间所需重叠的比率。

6. 总结

  • 在概述了著名的RANSAC范式的潜力之后,我们开发了几个基本的扩展,并对其中涉及的概率导出了新的评估。我们能够提出一种随机形状检测算法,它不受条件不足的影响,而且非常稳健和快速,可以应用于来自不同来源和不同质量的各种数据。虽然我们的算法,与以前的计算机图形学方法相比,并没有找到表面的每个部分的形状代理,但我们强调,这在许多应用程序中并不是一个要求。该方法的速度、结果的质量以及对数据的少量要求,使我们的算法在许多领域成为形状检测的实用选择。
  • 除了明显的扩展,如识别额外的形状和包含一个更复杂的模型选择阶段(可能基于MDL原则),在未来的工作中,我们计划进一步探索用算法获得的混合形状代表的潜能。目前,我们正在研究使用形状信息进行压缩和配准,并已经取得了非常有希望的结果。未来的进一步研究方向包括表面修复、表面重建和物体识别。此外,还可以研究这种高级信息在建模、分割和分类等交互式应用中的好处。

致谢

油泵、滚动台、主缸和卡特扫描模型由INRIA和ISTI由AIM@形状存储库提供。该摇臂模型是由网络软件公司(www.cyberware.com)提供的。这项工作部分由德国科学基金会(DFG)资助,作为捆绑项目“地理信息抽象,分析和可视化”的一部分。

  • 图7:a)有着50万个点原始扫描模型。b)属于随机颜色的形状的点。c)形状的点根据它们被分配的形状的类型着色:平面是红色的,圆柱体绿色,球体黄色,锥体紫色,环面是灰色的。没有显示剩余的点。d)为连接组件计算构建的位图提供了目标的粗略重建。
  • 图8:a)具有高斯噪声和离群值的失真模型b)-c)具有高斯噪声但不添加异常值的模型的检测结果。d)除了高斯噪声外,还增加了10%的异常值(见a)。
  • 图9:第一列:原始的点云。第二列:随机着色的形状。最后一列:按类型着色的形状,如图7所示。模型从上到下,从左到右:滚动舞台,房子,主缸,摇臂,教堂和推车。参数和耗时见表1。

你可能感兴趣的:(论文,机器学习,人工智能,算法)