阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

Abstract

  • 研究了大规模三维点云的有效语义分割问题。
  • 由于依赖昂贵的采样技术和繁重的预处理/后处理步骤,大多数现有方法只能在小规模的点云上进行训练和操作。
  • 本文提出了RandLA-Net,一个高效和轻量级的神经体系结构,用于直接推断大规模点云的点语义。
  • 方法的关键是使用随机点采样,而不是更复杂的点选择方法,并且为了克服随机点采样可能会丢失一些关键特征的问题,文中引入了一种新的局部特征聚合模块,逐步增加每个三维点的接受场,从而有效地保留几何细节。

Introduction

motivation

  • 大规模三维点云有效语义分割的一个关键挑战是深度传感器获取的原始点云通常是不规则采样的、非结构化的和无序的。尽管深度卷积网络在结构化2D计算机视觉任务中表现出优异的性能,但是它们并不能直接应用于这种非结构化类型的数据。

  • PointNet已经成为直接处理3D点云的一种有前途的方法,它使用共享MLPs学习每点特征,这是在计算上是有效的,但是不能为每个点捕获更广泛的上下文信息。

  • 为了学习更丰富的局部结构,许多专门的神经模块随后被引入,这些模块通常可分为:(1) neighbouring feature pooling. (2) graph message passing. (3) kernel-based convolution. (4) attention-based aggregation。虽然这些方法在对象识别和语义分割方面取得了令人印象深刻的结果,但几乎所有这些方法都局限于极小的3D点云(例如,4k个点或1×1米的块),并且在没有诸如块分割的预处理步骤的情况下,不能直接扩展到更大的点云。

    这种限制的原因有三个方面:① 这些网络中常用的点采样要么计算量大,要么内存效率低(例如FPS)。② 大多数现有的局部特征学习者通常依赖于计算代价昂贵的核化或图构造,因此无法处理大量的点。③ 对于由数百个对象组成的大规模点云,现有的局部特征学习者要么无法捕捉复杂结构,要么由于接受域的大小有限而效率低下。

  • 最近的一些工作已经开始着手直接处理大规模点云的任务。如:SPG对大型点云进行超图预处理,然后应用神经网络对每个超点语义进行学习;FCPN和PCT都结合了体素化和点级网络来处理大量的点云。虽然它们能达到不错的分割精度,但预处理和体素化步骤的计算量太大,无法部署在实时应用中。

introduction

  • 在本文中,作者设计了一种内存和计算效率高的神经结构,它能够直接处理大规模的3D点云,无需任何如体素化,块划分或图构造的预处理/后处理步骤。然而这个任务极具挑战性,因为他需要:(1) 一种内存和计算效率高的采样方法,以逐步下采样大规模点云来适应当前GPU的限制。(2) 一个有效的局部特征学习器,以逐步增加感受野大小,保持复杂的几何结构。
  • 为此,论文首先系统地证明随机采样是深度神经网络高效处理大规模点云的关键使能器。为了克服随机采样可能带来的不利影响 (丢失关键性息),提出了一种新的有效的局部特征聚合模块,用于在渐变较小的点集上捕获复杂的局部结构。
  • 常用的采样方法 (FPS和反向密度采样等) 限制了向大型点云的扩展,并成为实时处理的一个重要瓶颈。由此,作者认为随机抽样是目前最适合大规模点云处理的组件,因为它速度快,扩展效率高。
  • 随机抽样不是没有代价的,因为显著的点特征可能会被偶然丢弃,而且它不能在现有的网络中直接使用而不引起性能损失。为了克服这个问题,设计了一个新的局部特征聚合模块,该模块可以通过逐步增加每个神经层的接受域大小来有效学习复杂的局部结构。
  • 具体地,对于每个三维点,首先引入局部空间编码(LocSE)单元来显式地保留局部几何结构。其次,利用注意池(attentive pooling)来自动保留有用的局部特性。第三,堆叠多个LocSE单元和注意池(attentive pooling)作为一个扩展的残差块,大大增加了每个点的有效接受场。因为所有这些神经组件都实现为共享mlp,因此具有显著的内存和计算效率。
  • 总的来说,基于简单随机采样和有效的局部特征聚合器的原则,高效的RandLA-Net神经结构,不仅比现有的大规模点云方法快200倍,而且在Semantic3D和SemanticKITTI基准上也超过了最先进的语义分割方法。

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

contribution

  • 分析并比较了现有的采样方法,确定随机采样是在大规模点云上有效学习的最合适的组件。
  • 提出了一种有效的局部特征聚合模块,通过逐步增加每个点的接收域来保留复杂的局部结构。
  • 证明了在基线之上的显着内存和计算增益,并且在多个大型基准上都超过了最新的语义分割方法。

Related Work

为了从3D点云中提取特征,传统方法通常依赖手工制作的特征。最近的基于学习的方法主要包括基于投影、基于体素和基于点的方法。

  • 基于投影和体素的网络。为了利用2D CNNS的成功,许多作品将3D点云投影/展平到2D图像上,以解决对象检测的任务。但是,几何细节可能会在投影过程中丢失。或者,可以将点云体素化为3D网格,然后应用强大的3D CNNs。尽管它们在语义分割和对象检测方面取得了领先的成果,但它们的主要局限性是计算量大,特别是在处理大规模点云时。
  • 基于点的网络。受PointNet / PointNet ++ 的启发,许多最新著作引入了复杂的神经模块来学习每点的局部特征。这些模块通常可分类为:(1) neighbouring feature pooling. (2) graph message passing. (3) kernel-based convolution. (4) attention-based aggregation。尽管这些网络在小点云上已显示出令人鼓舞的结果,但是由于它们的高计算和内存成本,它们中的大多数不能直接扩展到大型场景。
  • 大规模的点云学习。SPG将大点云作为超点图进行预处理,以学习每个超点的语义。最近的FCPN和PCT应用基于体素和基于点的网络来处理海量点云。然而,图形分割和体素化在计算上都很昂贵。

相比之下,提出的RandLA-Net在四个个方面有所不同:(1) 它只依赖于网络内的随机采样,因此需要更少的内存和计算;(2) 通过明确地考虑局部空间关系和点特征,所提出的局部特征聚集器可以获得连续更大的感受野,因此对于学习复杂的局部模式更有效和鲁棒;(3) 整个网络仅由共享的MLP组成,不依赖于任何昂贵的操作,如图形构建和核化,因此对于大规模点云非常有效。(4) 提出的RandLA-Net是端到端可培训的,不需要额外的预处理/后处理步骤。

RandLA-Net

Overview

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

​ 如上图所示,给定一个大规模的点云,其中数百万个点跨越数百米,要用深度神经网络处理它,不可避免地需要在每个神经层中对这些点进行逐步有效的下采样,而不会丢失有用的点特征。在RandLA-Net中,使用简单快速的随机采样方法来降低点密度,同时应用局部特征聚合器来保留突出的特征,这使整个网络能够在效率和效力之间取得良好的平衡

The quest for efficient sampling

现有的点采样方法大致可以分为启发式方法和基于学习的方法,但是目前还没有适用于大规模点云的标准采样策略。

Heuristic Sampling(启发式采样)

  • Farthest Point Sampling (FPS):为了从一个有N个点的大规模点云P中采样K个点,FPS返回一个度量空间的重新排序\({p_1···p_k··p_K}\),使每个\(p_k\)是距离前k−1个点最远的点。FPS被广泛用于小点集的语义分割,虽然它对整个点集有很好的覆盖,但其计算复杂度为\(O(N^2)\)。对于大规模的点云(N~\(10^6\)), FPS在单个GPU上的处理时间高达200秒。这说明FPS不适用于大规模点云。
  • Inverse Density Importance Sampling (IDIS):从N个点中抽取K个点,IDIS根据每个点的密度对所有N个点进行重新排序,然后选取最上面的K个点。其计算复杂度近似为O(N),根据经验,处理\(10^6\)点需要10秒。与FPS相比,IDIS的效率更高,但对离群值更敏感。但是,在实时系统中使用它还是太慢了。
  • Random Sampling (RS):随机抽样均匀地从原始的N个点中选取K个点。它的计算复杂度为O(1),与输入点的总数无关,也就是说,它是常数时间的,因此具有内在的可伸缩性。与FPS和IDIS相比,无论输入点云的尺度如何,随机采样具有最高的计算效率。处理\(10^6\)个点只需要0.004秒。

Learning-based Sampling(基于学习的采样)

  • Generator-based Sampling (GS):GS学习生成一个小的点集来近似表示原始的大点集。然而,通常用FPS在推理阶段将生成的子集与原始集匹配,这会招致额外的计算。对\(10^6\)个点中的10%进行采样需要1200秒。
  • Continuous Relaxation based Sampling (CRS):CRS方法使用重新参数化技巧将采样操作放宽到连续域,以进行端到端训练。特别是,每个采样点都是基于整个点云的加权和来学习的。当用一次矩阵乘法同时对所有新点进行采样时,它会产生一个大的权重矩阵,从而导致难以承受的存储成本。估计需要300GB以上的内存来采样\(10^6\)个点中的10%。
  • Policy Gradient based Sampling (PGS):PGS将抽样操作表述为马尔可夫决策过程。它依次学习概率分布来采样点。然而,当点云较大时,由于探索空间极大,学习的概率具有较高的方差。例如,对\(10^6\)个点中的10%进行采样,探索空间是\(C_{105}^{106}\),不太可能学习到有效的采样策略。我们根据经验发现,如果将PGS用于大型点云,网络很难收敛。

总体而言,FPS、IDIS和GS计算量太大,不适用于大规模点云。CRS方法的内存占用过大,PGS很难学。相比之下,随机采样有以下两个优点:

  • 它的计算效率非常高,因为它与输入点的总数无关,
  • 它不需要额外的计算内存。

因此,有把握地得出结论,与所有现有的替代方法相比,随机采样是迄今为止最适合处理大规模点云的方法。但是,随机采样可能会导致许多有用的点要素丢失。为了克服这个问题,我们提出了一个强大的局部特征聚合模块。

Local Feature Aggregation

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

如上图,局部特征聚合并行地应用于每个3D点,它由三个神经单元组成:(1) 局部空间编码(LocSE). (2) Attentive pooling. (3) Dilated Residual Block (扩张的残差块)。

Local Spatial Encoding

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

  • Finding Neighbouring Points(寻找邻近点)。对于\(i^{th}\)点,为了提高效率,首先采用简单近邻算法(KNN)来收集其邻近点。
  • Relative Point Position Encoding(相对点位置编码)。对于中心点\(p_i\)的每个最近的K个点\(\{p_i^1...p_i^k...p_i^K\}\),将相对点的位置明确地编码如下:

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

​ 其中,\(p_i\)和\(p_i^k\)是xyz坐标,\(\bigoplus\)为串联操作,\(\parallel · \parallel\)计算相邻点与中心点之间的欧氏距离。看起来\(r_i^k\)是从冗余点位置编码的。有趣的是,这有助于网络学习本地特征,并在实践中获得良好的性能。

  • Point Feature Augmentation(点特征增强)。对于每个相邻点\(p_i^k\),编码的相对点位置\(r_i^k\)与其对应的点特征\(f_i^k\)相连接,获得增强特征向量\(\hat{f}_i^k\)。

最终,LocSE单元的输出是一组新的近邻特征\(\hat{F}_i=\{\hat{f}_i^1...\hat{f}_i^k...\hat{f}_i^K\}\)。其明确地编码中心点\(p_i\)的局部几何结构。注意到,最近的工作也使用点位置来改进语义分割。然而,这些位置用于学习点得分,而LocSE明确编码了相对位置以增强相邻点的特征。

Attentive Pooling

该神经单元用于聚合近邻点特征\(\hat{F}_i\)的集合。现有的工作通常使用的是max/mean pooling来硬集成近邻特征,导致大部分信息丢失。相比之下,RandLA-Net使用强大的注意力机制来自动学习重要的局部特征。Attentive Pooling unit包括以下步骤:

  • Computing Attention Scores:给定局部特征集\(\hat{F}_i=\{\hat{f}_i^1...\hat{f}_i^k...\hat{f}_i^K\}\),设计了一个由共享MLP和softmax组成的共享函数\(g()\)来学习每个特征的唯一注意力得分,正式定义如下:\(s_i^k=g(\hat{f}_i^k,W)\)。其中,W是共享MLP的可学习权值。
  • Weighted Summation:学习后的注意力得分可以看作是一个自动选择重要特征的softmask(软掩膜)。形式上,这些特征加权总和如下:\(\tilde{f}_i=\sum_{k=1}^K(\hat{f}_i^k · s_i^k)\)

总的来说,给定输入点云P,对于第 i 个点\(p_i\),LocSEAttentive Pooling unit学习聚合K个最近点的几何图案和特征,最后生成一个信息特征向量。

Dilated Residual Block

  • 因为大规模的点云将被充分地下采样,所以希望显著地增加每个点的感受野,即使一些点被丢弃,输入点云的几何细节更有可能被保留。如图3所示,具有跳跃连接的多个LocSEAttentive Pooling unit堆叠为一个扩张的残差块。

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

  • 为了进一步说明扩展残差块的能力,上图显示了红色的3D点在第一次LocSE/Attentive Pooling操作后观察到的K个近邻点,然后在第二次之后能够从最多\(K^2\)个近邻点接收信息。这是一种通过特征传播来扩大感受野和扩展有效邻域的廉价方法。
  • 理论上,堆叠的单位越多,此block就越强大,因为它的作用范围越来越大。然而,更多的单元将不可避免地牺牲整体计算效率。此外,整个网络可能会过度拟合。
  • RandLA-Net中简单地将两组LocSEAttentive Pooling作为标准残差块进行堆叠,在效率和有效性之间实现了令人满意的平衡。

总体而言,局部特征聚合模块旨在通过明确考虑相邻几何形状和显著增加感受野来有效保留复杂的局部结构。此外,该模块仅由前馈MLP组成,因此计算效率高。

Implementation

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

  • 通过堆叠多个局部特征聚合模块和随机采样层来实现RandLA-Net,详细的体系结构如上图。
  • 为了并行训练RandLA-Net,从每个点云中抽取固定数量的点(~\(10^5\))作为输入,使用带有默认参数的Adam优化器。初始学习率设置为0.01,并在每个时期后降低5%。最近点K的个数设为16。
  • 在测试过程中,整个原始点云被输入到网络中,以推断每个点的语义,而不需要诸如几何或块划分等预处理/后处理。

Experiment

Efficiency of Random Sampling

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

可以看出:

  • 对于小尺度点云(~\(10^3\)),所有的采样方法往往具有相似的时间和内存消耗,不太可能招致沉重或有限的计算负担。
  • 对于大规模点云(~\(10^6\)),FPS/IDIS/GS/CRS/PGS要么极其耗时,要么内存开销大。

相比之下,随机采样总体上具有更高的时间和内存效率。

Efficiency of RandLA-Net

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

可以看出:

  • SPG 的网络参数个数最少,但由于昂贵的几何分割和超图构造步骤,处理点云的时间最长。
  • point net++ 和PointCNN 的计算量也很大,主要是因为FPS采样操作。
  • PointNet 和KPConv 由于其内存效率低的操作,无法在一次通过中获取非常大的点云(例如\(10^6\)个点)。
  • 由于简单的随机采样和高效的基于MLP的本地特征聚合器,RandLA-Net用最短的时间(185秒,平均4071帧→大约22帧/秒)来推断每个大规模点云(最多\(10^6\)点)的语义标签。

Semantic Segmentation on Benchmarks

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

Ablation Study

阅读笔记--[CVPR2020] RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

上一篇:几个CSS的简单动画


下一篇:阿里的M2Det,最强单阶段目标检测器(曾经的)