锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

(CVPR 2020) RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

时间:2023-02-16 01:00:00 j4k07999传感器

Abstract

我们研究了大规模3D点云的有效语义分割。大多数现有的方法只能在小规模点云上训练和操作,依靠昂贵的采样技术或计算量大的预处理/后处理步骤。本文介绍了我们RandLA-Net,这是一种高效、轻量级的神经架构,可以直接推断大规模点云的每一点语义。我们方法的关键是使用随机点采样而不是更复杂的点选择方法。虽然计算和内存效率很高,但随机抽样可能会偶然丢弃关键特征。为了克服这个问题,我们引入了一个新的局部特征聚合模块,逐渐增加每个3D从而有效保留几何细节。大量的实验表明,我们RandLA-Net一次可处理100万点,比现有方法快200倍。另外,我们的RandLA-Net两个大基准Semantic3D和SemanticKITTI显然超越了最先进的语义分割方法。

1. Introduction

大规模3D点云的有效语义分割是实时智能系统(如自动驾驶和增强现实)的基本和基本能力。一个关键挑战是,深度传感器获得的原始点云通常是不规则的采样、非结构化和无序的。虽然深度积累网络是结构化的2D在计算机视觉任务中表现出色,但不能直接应用于此类非结构化数据。

最近,开创性的工作PointNet[43]已成为有前途的直接处理3D点云的方法。它使用共享的多层感知器(MLP)学习每一个特征。这在计算上是有效的,但不能为每个点捕获更广泛的上下文信息。为了学习更丰富的局部结构,许多特殊的神经模块被迅速引入。可分为:1)相邻特征池[44, 32, 21, 70, 69], 2)图消息传递[57, 48, 55, 56, 5, 22, 34], 3)kernel-based convolution[49, 20, 60, 29, 23, 24, 54, 基于注意力的聚合[61, 68, 66, 42]。虽然这些方法在对象识别和语义分割方面取得了令人印象深刻的结果,但几乎所有这些方法都局限于非常小的3D点云(例如,4k点或1×1米块)不能直接扩展到更大的点云(例如,数百万点和最大200点×200米),无需块划分等预处理步骤。虽然这些方法在对象识别和语义分割方面取得了令人印象深刻的结果,但几乎所有这些方法都局限于非常小的3D点云(例如,4k点或1×1米块)不能直接扩展到更大的点云(例如,数百万点和最大200点×200米),不需要块划分等预处理步骤。造成这种限制的原因有三个。 1)这些网络常用的点采样方法要么计算量大,要么内存效率低。例如,广泛使用的最远点采样[44]需要200多秒才能采样100万个点中的10%。2)大多数现有的局部特征学习器通常依赖于昂贵的内核化或图形构建,因此无法处理大量的点。3)现有的局部特征学习器要么无法捕捉到复杂的结构,要么效率低下,因为它们的感觉有限。

最近的一些工作已经开始解决直接处理大规模点云的任务。SPG[26]在应用神经网络学习每个超点语义之前,将大点云预处理成超图。FCPN[45]和PCT[7]结合体素化和点级网络处理大量点云。虽然它们实现了良好的分割精度,但在实时应用中无法部署预处理和体素化步骤的计算。

在本文中,我们的目标是设计一种内存和计算效率高的神经架构,它可以直接处理大规模的3D没有任何预处理/后处理步骤,如体素化、块分割或图形结构。然而,这项任务非常具有挑战性,因为它需要:1)一种内存和计算效率高的采样方法,以便逐步采样大规模点云以适应当前GPU限制,以及一种有效的局部特征学习器,以逐渐增加接受度字段的大小,以保持复杂的几何结构。为此,我们首先系统地证明,随机抽样是深度神经网络有效处理大规模点云的关键驱动力。然而,随机采样会丢弃关键信息,特别是对于稀疏的目标。为了应对随机抽样的潜在不利影响,我们提出了一种新的高效局部特征聚合模块,以捕获复杂的局部结构。

最远点采样和逆密度采样最常用于小尺度点云[44、60、33、70、15]。由于点采样是这些网络中的一个基本步骤,我们在第3.在第二节中,我们研究了不同方法的相对优点,其中我们看到常用的采样方法限制了大点云的缩放,成为实时处理的重要瓶颈。然而,由于其速度快、扩展有效,我们认为随机采样是迄今为止最适合大规模点云处理的组件。随机抽样并非没有成本,因为突出的点特征可能会被意外丢弃,不能直接在现有网络中使用,也不会造成性能损失。为了克服这个问题,我们在3.三节设计了一个新的局部特征聚合模块,可以通过逐渐增加每个神经层的感觉野大小,有效地学习复杂的局部结构。尤其是每个3D首先,我们引入了局部空间编码(LocSE)本单元显式地保留了局部几何结构。其次,我们利用注意力池来自动保留有用的局部特征。第三,我们会有多个LocSE单元和注意力池堆叠成扩张的残余块,大大增加了每个点的有效感觉。请注意,所有这些神经组件都被用作共享MLP因此,它具有显著的内存和计算效率。

一般来说,我们的高效神经架构基于简单随机抽样和有效局部特征聚合器的原则RandLA-Net不仅比现有的大规模点云方法快200倍,而且超过200倍Semantic3D[17]和SemanticKITTI[3]基准上最先进的语义分割方法。图1显示了我们方法的定性结果。我们的主要贡献是:

  • 通过对现有采样方法的分析和比较,将随机采样确定为最适合大规模点云有效学习的组件。

  • 通过逐步增加每个点的感觉野,提出了一个有效的局部特征聚合模块,以保留复杂的局部结构。

  • 我们在基线上显示了显著的内存和计算增益,并超越了最先进的语义分割方法。


图1.PointNet [44]、SPG和我们在一起SemanticKITTI[3]方法语义分割结果。RandLA-Net在3D直接处理空间 150 × 130 × 10 150 \times 130 \times 10 150×130×10米的 1 0 5 10^{5} 105大点云只需只需0.04秒,比SPG快200倍。红色圆圈突出了我们方法的卓越分割精度。

2. Related Work

为了从3D在点云中提取特征,传统的方法通常依赖于手工特征[11、47、25、18]。最近基于学习的方法[16, 43, 37]主要包括基于投影、基于体素和基于点的方案。

(1) Projectionand Voxel Based Networks. 为了利用2D CNN的成功,许多工作[30、8、63、27]将3D点云投影/展平到2D图像上以解决目标检测任务。但是,在投影过程中可能会丢失几何细节。或者,可以将点云体素化为3D网格,然后在[14、28、10、39、9]中应用强大的3D CNN。尽管它们在语义分割和目标检测方面取得了领先的成果,但它们的主要限制是计算成本高,尤其是在处理大规模点云时。

(2) Point Based Networks. 受PointNet/PointNet++[43, 44]的启发,许多最近的作品引入了复杂的神经模块来学习每点的局部特征。这些模块通常可以分类为1)相邻特征池[32, 21, 70, 69], 2)图消息传递[57, 48, 55, 56, 5, 22, 34, 31], 3)基于内核卷积 [49, 20, 60, 29, 23, 24, 54, 38]和4)基于注意力的聚合[61, 68, 66, 42]。尽管这些网络在小点云上显示出有希望的结果,但由于其高计算和内存成本,它们中的大多数无法直接扩展到大型场景。与它们相比,我们提出的RandLA-Net在三个方面有区别:1)它只依赖于网络内的随机采样,因此需要更少的内存和计算量; 2)所提出的局部特征聚合器可以通过明确考虑局部空间关系和点特征来获得连续更大的感受野,从而对于学习复杂的局部模式更加有效和鲁棒;3)整个网络仅由共享的MLP组成,不依赖于任何昂贵的操作,例如图构建和内核化,因此对于大规模点云非常有效。

(3) Learning for Large-scale Point Clouds. SPG[26]将大点云预处理为超点图,以学习每个超点语义。最近的FCPN[45]和PCT[7]应用基于体素和基于点的网络来处理海量点云。然而,图分割和体素化在计算上都是昂贵的。相比之下,我们的RandLA-Net是端到端可训练的,无需额外的预处理/后处理步骤。

3. RandLA-Net

3.1. Overview

如图2所示,给定一个具有数百万点跨越数百米的大规模点云,要使用深度神经网络对其进行处理,不可避免地需要在每个神经层中对这些点进行渐进有效的下采样,而不会丢失有用的点特征。在我们的RandLA-Net中,我们建议使用简单快速的随机采样方法来大大降低点密度,同时应用精心设计的局部特征聚合器来保留突出的特征。这使得整个网络在效率和有效性之间实现了极好的权衡。


图2. 在RandLA-Net的每一层中,大规模点云被显着下采样,但能够保留准确分割所需的特征。

3.2. The quest for efficient sampling

现有的点采样方法[44, 33, 15, 12, 1, 60]可以大致分为启发式和基于学习的方法。但是,仍然没有适合大规模点云的标准采样策略。因此,我们分析和比较它们的相对优点和复杂性如下。

(1) Heuristic Sampling

  • 最远点采样(FPS):为了从具有 N N N个点的大规模点云 P \boldsymbol{P} P中采样 K K K个点,FPS返回度量空间 { p 1 ⋯ ⋅ p k ⋯ p K } \left\{p_{1} \cdots \cdot p_{k} \cdots p_{K}\right\} { p1pkpK}的重新排序,使得每个 p k p_{k} pk是距离前 k − 1 k - 1 k1个点最远的点。FPS在[44, 33, 60]中广泛用于小点集的语义分割。虽然它对整个点集有很好的覆盖,但它的计算复杂度是 O ( N 2 ) \mathcal{O}\left(N^{2}\right) O(N2)。对于大规模点云 ( N ∼ 1 0 6 ) \left(N \sim 10^{6}\right) (N106),FPS在单个GPU上处理最多需要200秒。这说明FPS不适用于大规模点云。

  • 逆密度重要性采样(IDIS):为了从 N N N个点中采样 K K K个点,IDIS根据每个点的密度对所有 N N N个点进行重新排序,然后选择前 K K K个点[15]。其计算复杂度约为 O ( N ) \mathcal{O}(N) O(N)。根据经验,处理 1 0 6 10^{6} 106个点需要10秒。与FPS相比,IDIS效率更高,但对异常值也更敏感。但是,在实时系统中使用它仍然太慢。

  • 随机抽样(RS):随机抽样从原来的 N N N个点中均匀选择 K K K个点。它的计算复杂度为 O ( 1 ) \mathcal{O}(1) O(1),与输入点的总数无关,即它是恒定时间的,因此具有固有的可扩展性。与FPS和IDIS相比,随机采样具有最高的计算效率,无论输入点云的规模如何。处理 1 0 6 10^{6} 106个点仅需0.004s。

(2) Learning-based Sampling

  • 基于生成器的采样 (GS):GS[12]学习生成一小组点来近似表示原始的大点集。然而,FPS通常用于在推理阶段将生成的子集与原始集进行匹配,从而产生额外的计算。在我们的实验中,对 1 0 6 10^{6} 106个点的10%进行采样最多需要1200秒。

  • 基于连续松弛的采样(CRS):CRS方法[1, 66]使用重新参数化技巧将采样操作松弛到连续域以进行端到端训练。特别是,每个采样点都是基于整个点云上的加权和来学习的。当通过一次矩阵乘法同时对所有新点进行采样时,它会导致很大的权重矩阵,从而导致无法承受的内存成本。例如,估计需要超过300 GB的内存占用来采样 1 0 6 10^{6} 106个点的10%。


图3. 提出的局部特征聚合模块。顶部面板显示了提取特征的位置空间编码块,以及基于局部上下文和几何形状对最重要的相邻特征进行加权的注意池化机制。底部面板显示了如何将这些组件中的两个链接在一起,以增加残差块内的感受野大小。

  • 基于策略梯度的采样 (PGS):PGS将采样操作制定为马尔可夫决策过程[62]。它顺序学习概率分布以对点进行采样。然而,当点云很大时,由于极大的探索空间,学习概率具有很高的方差。例如,要对 1 0 6 10^{6} 106个点的10%进行采样,探索空间是 C 1 0 6 1 0 5 \mathrm{C}_{10^{6}}^{10^{5}} C106105,不太可能学习到有效的采样策略。我们凭经验发现,如果PGS 用于大型点云,网络很难收敛。

总体而言,FPS、IDIS和GS的计算成本太高,无法应用于大规模点云。 CRS方法具有过多的内存占用,而PGS很难学习。相比之下,随机采样具有以下两个优点:1)它具有显着的计算效率,因为它与输入点的总数无关,2)它不需要额外的计算内存。因此,我们有把握地得出结论,与所有现有的替代方案相比,随机抽样是迄今为止处理大规模点云的最合适的方法。然而,随机抽样可能会导致许多有用的点特征被丢弃。为了克服它,我们提出了一个强大的局部特征聚合模块,如下一节所述。

3.3. Local Feature Aggregation

如图3所示,我们的局部特征聚合模块并行应用于每个3D点,它由三个神经单元组成:1)局部空间编码(LocSE)、2)注意力池化和 3) 扩张残差块。

(1) Local Spatial Encoding

给定一个点云 P \boldsymbol{P} P和每个点的特征(例如,原始RGB或中间学习特征),这个局部空间编码单元显式嵌入所有相邻点的x-y-z坐标,使得对应的点特征总是知道它们的相对空间位置。这允许LocSE单元显式地观察局部几何图案,从而最终使整个网络受益于有效地学习复杂的局部结构。特别是,本单元包括以下步骤:

寻找相邻点。对于第i个点,为了提高效率,首先通过简单的最近邻(KNN)算法收集其相邻点。KNN基于逐点欧几里得距离。

相对点位置编码。对于中心点 p i p_{i} pi的每个最近的 K K K { p i 1 ⋯ p i k ⋯ p i K } \left\{p_{i}^{1} \cdots p_{i}^{k} \cdots p_{i}^{K}\right\} { pi1pikpiK},我们将相对点位置显式编码如下:

r i k = M L P ( p i ⊕ p i k ⊕ ( p i − p i k ) ⊕ ∥ p i − p i k ∥ ) ( 1 ) \mathbf{r}_{i}^{k}=M L P\left(p_{i} \oplus p_{i}^{k} \oplus\left(p_{i}-p_{i}^{k}\right) \oplus\left\|p_{i}-p_{i}^{k}\right\|\right) \quad\quad\quad\quad(1) rik=MLP(pipik(pipik)pipik)(1)

其中 p i p_{i} pi p i k p_{i}^{k} pik是点的x-y-z位置, ⊕ \oplus 是连接操作, ∥ ⋅ ∥ \|\cdot\| 计算相邻点和中心点之间的欧几里得距离。似乎 r i k \mathbf{r}_{i}^{k} rik是从冗余点位置编码的。有趣的是,这往往有助于网络学习局部特征并在实践中获得良好的性能。

点特征增强。对于每个相邻点 p i k p_{i}^{k} pik,将编码后的相对点位置 r i k \mathbf{r}_{i}^{k} rik与其对应的点特征 f i k \mathbf{f}_{i}^{k} fik连接起来,得到一个增强的特征向量 f ^ i k \hat{\mathbf{f}}_{i}^{k} f^ik

最终,LocSE单元的输出是一组新的相邻特征 F ^ i = { f ^ i 1 ⋯ f ^ i k ⋯ f ^ i K } \hat{\mathbf{F}}_{i}=\left\{\hat{\mathbf{f}}_{i}^{1} \cdots \hat{\mathbf{f}}_{i}^{k} \cdots \hat{\mathbf{f}}_{i}^{K}\right\} F^i={ f^i1f^ikf^iK},它显式地编码了中心点 p i p_{i} pi的局部几何结构。我们注意到最近的工作[36]也使用点位置来改进语义分割。然而,这些位置用于学习[36]中的点分数,而我们的LocSE显式编码相对位置以增强相邻点特征。

(2) Attentive Pooling

该神经单元用于聚合一组相邻点特征 F ^ i \hat{\mathbf{F}}_{i} F^

相关文章