Paper2:Fast 3D Line Segment Detection From Unorganized Point Cloud

文献下载链接:https://download.csdn.net/download/m0_37957160/12543541

摘要:

        本文提出了一种非常简单有效的算法,从大规模无序点云中进行3维线段的分割检测算法。与传统的方法先提取3D边缘点,然后再拟合三维线段的算法不同,我们提出了一种基于点云分割和2维线段检测为基础的能够快速实现3D线段检测的算法。在输入无序点云的情况下,对三维线段进行三步检测。首先,通过区域生长和区域合并将点云分割成3D平面。其次,对于每一个三维平面,将其自身所属的所有点投影到自身平面上形成二维图像,然后进行二维轮廓提取和最小二乘拟合得到二维线段。然后将这些二维线段重新投影到三维平面上,以获得相应的三维线段。最后,提出了一种剔除异常点和合并相邻三维线段的后处理方法,在多个公共数据集上的实验证明了该方法的有效性和鲁棒性。更多的结果和C++源代码的公开在https://github.com/xiaohulugo/3DLineDetection

I. INTRODUCTION 

        线段可以很好地代表场景,尤其是在城市中,那里有许多规则形状的人造结构。在过去的十年中,对2D图像的线段检测进行了深入研究,并提出了几种有效的算法[1] – [3],包括广泛使用的LSD [1]。但是,解决3D线段检测的工作仍然不足,一般可分为三类:基于点,基于平面和基于图像。

        基于点的方法通常先检测最小边界点,然后通过最小二乘拟合法确定3D线段的边界点。给定输入点云,我们可以通过凸包方法[4],[5]获得边界点,或通过设计特征将整个点云分类为边界/非边界类别。原始的凸包算法可以有效地找到凸的边界点,但不适合提取凹轮廓。[6]改进了凸包,允许在提取的形状中有一些凹陷。但是,基于凸包的方法仍然“由于点云中的点分布不均匀而未被发现特别有用” [5]。另一方面,边界/非边界点云的分类具有多种特征,包括曲率或表面变化[7],高斯图[8],多尺度正态差异[9],基于特征值和特征向量[10]。在[9]的工作中,每个点的法线以不同的比例来计算,然后将法线差较大的法线归类为边界点。在最近的工作[10]中,使用二值分类器使用从该点的邻域中提取的一组特征来预测每个点的轮廓分数。给定提取的边界点,我们可以构建八叉树,然后通过区域增长和最小二乘拟合来拟合3D线段。这些基于点的方法的最大问题在于特征点本身,该特征点对噪声鲁棒性不强。

        基于平面的方法也是合理的选择,因为3D线段也可以视为两个3D平面的交点。然而,基于平面的方法更常用于机载LiDAR [11]的建筑建模中,其中点通常不是很密集。例如,在[11]的工作中,首先将平面点与非平面点区分开,然后根据其法线将其聚集成单个屋顶段,最后检测相邻的段并将其与顶点和边界线段相交。在另一项工作中[12],将通过平面相交从点云中提取的3D线段与它们的2D对应线段组合起来,用来校准距离和图像传感器的外部参数。基于平面的方法的一个常见缺点是,通常很难确定相交线的端点,此外,这种方法不适用于小平面。

        基于图像的方法首先将输入点云转换为图像,然后应用线段检测器提取图像上的2D线段,最后将这些2D线段重新投影到点云上来获得最终3D线段。将点云转换为图像是点云处理中经常使用的一种策略,例如,在最近的工作[13]中,将点云分割为多个横截面,然后将每个横截面中的点云投影到 特定平面,然后从不同的2D图像中提取特征点。在最近的工作[14]中,输入点云被转换为具有不同视点的投影图像的集合,这些具有不同视点的图像均匀地放置在围绕点云的球体上。然后,应用LSD算法[1]在这些投影图像的每一个上提取2D线段,再将其反投影到原始点云中以获得初始3D线段。这些基于图像的方法的关键问题在于图像生成策略,难以确定这些投影图像的数量,分辨率和视点。

        本文提出的方法属于基于图像的类别。为了克服传统基于图像的方法的不足,我们提出了一种简单而有效的3D线段检测方法,该方法包含以下三个步骤: 

        (1)点云分割:通过区域生成的和区域合并的方法,将输入的点云分割成三维平面。

       (2)基于平面的三维直线的检测:对于每个点云平面,所有属于该平面的点云投影到平面上形成二维图像,然后基于二维图像进行轮廓提取和最小二乘拟合,得到每个平面的二维线段。最后将这些二维线段重影映射到三维平面上,就可以获得三维线段点云数据。

       (3)通过场景的三维结构信息,去除三维平面和三维线段的异常点云,最后合并所有三维线段点云数据。

II. ALGORITHM 

A. Point Cloud Segmentation

        分割是自动处理点云的最重要的预处理步骤之一,在过去的几十年中已经进行了深入研究。通常,所提出的点云分割方法可以分为三大类:基于边缘/边界,基于区域增长和混合(请参阅[15]以进行阅读)。为了从点云中获得平面分割,像[16]这样的传统方法仅在点云水平上执行区域增长会对参数过于敏感。(新的方法)一种鲁棒性很好的方法是先提取小的紧凑区域,然后合并这些区域以获得最终结果。基于此,我们的方法分三个步骤将输入点云分割成多个平面:法线计算,区域增长和区域合并。

(明天继续)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章