CVPR 2020 | RandLA-Net:大场景三维点云语义分割新框架(已开源)
论文链接: https://arxiv.org/abs/1911.11236
TensorFlow代码: https://github.com/QingyongHu/RandLA-Net
效果图:
Authors
(一) Abstract
- 研究了大规模3D点云的有效语义分割问题。通过依赖昂贵的采样技术或计算繁琐的预处理/后处理步骤,大多数现有方法只能在小规模的点云上进行训练和操作。
- 介绍了RandLA-Net,这是一种高效且轻量级的神经体系结构,可以直接推断大规模点云的每点语义。
- 方法的关键是使用随机点采样而不是更复杂的点选择方法。尽管计算和存储效率显着提高,但随机采样可能会偶然丢弃关键特征。为了克服这个问题,引入了一种新颖的局部特征聚合模块,以逐步增加每个3D点的接收场,从而有效保留几何细节。
- RandLA-Net可以单遍处理100万个点,其速度比现有方法快200倍。
- RandLA-Net在两个大型基准Semantic3D和SemanticKITTI上明显超越了最新的语义分割方法。
(二) Introduction
- 大规模3D点云的有效语义分割是实时智能系统(如自动驾驶和增强现实)的基本和必不可少的功能。
- 一个关键的挑战是,深度传感器获取的原始点云通常是不规则采样,无结构且无序的。尽管深度卷积网络在结构化2D计算机视觉任务中显示出出色的性能,但它们不能直接应用于这种类型的非结构化数据。
- 最近,开拓性的工作PointNet成为直接处理3D点云的有前途的方法。它使用共享的多层感知器(MLP),这是计算有效的方法,但无法捕获每个点的更广泛的上下文信息。
- 为了学习更丰富的局部结构,随后又迅速引入了许多专用的神经模块。这些模块通常可归类为:1)neighbouring feature pooling,2)graph message passing,3)kernel-based convolution,以及4) attention-based aggregation。
- 尽管这些方法在对象识别和语义分割方面取得了令人印象深刻的结果,但几乎所有方法都限于极小的3D点云(例如4k点或1×1米块),并且不能直接扩展到较大的点云(例如数百万)点和最大200×200米)。
此限制的原因有三点:
- 1)这些网络中常用的点采样方法在计算上或内存效率低下。例如,最广泛使用的最远点采样[38]花费200秒以上的时间对100万个点中的10%进行采样。
- 2)大多数现有的本地特征学习者通常依靠计算昂贵的内核化或图形构造,从而无法处理大量点。
- 3)对于通常由数百个对象组成的大规模点云,由于其有限的接收场大小,现有的局部特征学习器要么无法捕获复杂结构,要么效率低下。
近期的一些工作已开始解决直接处理大规模点云的任务:
- SPG [23]在应用神经网络学习每个超点语义之前,将大点云作为超图进行了预处理。
- FCPN [39]和PCT [7]都结合了体素化和点级网络来处理大量点云。尽管它们实现了不错的分割精度,但预处理和体素化步骤的计算量太大,无法部署在实时应用程序中。
- 在本文中,设计了一种内存有效且计算效率高的神经体系结构,该体系结构能够在一次通过中直接处理大规模3D点云,而无需任何前/后处理步骤,例如体素化,块划分或图形处理加工。
但是,此任务极具挑战性,因为它需要:
- 1)一种内存和计算效率高的采样方法,以逐步对大规模点云进行下采样,以适应当前GPU的限制;
- 2)一个有效的局部特征学习器,以逐步提高接收能力保留复杂几何结构的字段大小。
为此,这篇论文首先系统地证明了随机采样是深度神经网络有效处理大规模点云的关键因素。
- 但是,随机采样会丢弃关键的语义信息,尤其是对于具有低点密度的对象而言。
- 为了应对随机采样的潜在有害影响,提出了一种新的高效的局部特征聚合模块,以在逐渐变小的点集上捕获复杂的局部结构。
- 在现有的采样方法中,最远的点采样和逆密度采样是小规模点云最常用的方法。由于点采样是这些网络中的基本步骤,将在4.2节中研究不同方法的相对优点,既可以通过检查它们的计算复杂度,也可以通过经验来测量它们的内存消耗和处理时间。
- 由此可见,常用的采样方法限制了向大点云的扩展,并成为实时处理的重要瓶颈。但是,我们认为随机抽样是大规模点云处理的最合适组件,因为它快速且可有效扩展。
- 随机抽样并不是没有代价的,因为突出的点特征可能会被偶然丢弃,而且它不能直接用于现有的网络而不会导致性能损失。
- 为了解决这个问题,在第4.3节中设计了一个新的本地特征聚合模块,通过逐步增加每个神经层的接受场大小,能够有效地学习复杂的局部结构。
- 对于每个3D点,首先引入局部空间编码(LocSE)单元以显式保留局部几何结构。
- 其次,利用attentive pooling来自动保留有用的本地功能。
- 第三,将多个LocSE单元和attentive pooling堆叠为膨胀的残差块,从而大大增加了每个点的有效接收场。
- 请注意,所有这些神经组件都实现为共享MLP,因此具有显着的内存和计算效率。
总的来说,基于简单随机抽样和有效的局部特征聚合器的原理,称为RandLA-Net的高效神经体系结构不仅比大规模点云上的现有方法快200倍,而且还超越了传统方法。 Semantic3D [16]和SemanticKITTI [3]基准上的最新语义分割方法。图1显示了方法的定性结果。
论文主要贡献是:
- 分析和比较现有的采样方法,将随机采样确定为在大规模点云上高效学习的最合适组件。
- 提出了一个有效的局部特征聚合模块,通过逐步增加每个点的接收场来自动保留复杂的局部结构。
- 证明了在基线之上的显着内存和计算增益,并且在多个大型基准上都超过了最新的语义分割方法。
(三) Related Work
为了从3D点云中提取特征,传统方法通常是手动 hand-craft 特征。最近的基于学习的方法主要包括此处概述的基于投影的,基于体素的和基于点的方案。
(1)基于投影和体素的网络。 为了利用2D CNNs的成功,许多工作将3D点云投影/展平到2D图像上,以解决对象检测的任务。但是,在投影过程中会丢失许多几何细节。或者,可以将点云体素化为3D网格,然后应用强大的3D CNNs。尽管它们在语义分割和对象检测方面取得了领先的成果,但它们的主要局限性是计算量大,特别是在处理大规模点云时。
(2)基于点的网络。 受PointNet / PointNet ++ 的启发,许多最新著作引入了复杂的神经模块来学习每点的局部特征。这些模块通常可分类为1)neighbouring feature pooling,2)graph message passing,3)kernel-based convolution 和 4) attention-based aggregation。尽管这些网络在小点云上已显示出令人鼓舞的结果,但是由于它们的高计算和内存成本,它们中的大多数不能直接扩展到大型方案。
(3)学习大规模点云。 SPG 将大点云作为超级图进行预处理,以学习每个超点语义。最近的FCPN 和PCT 将基于体素的网络和基于点的网络都应用于处理大量的点云。但是,图分区和体素化在计算上都是昂贵的。相反,我们高效的RandLA-Net可进行端到端的训练,而无需任何其他的前/后处理步骤。
与它们相比,RandLA-Net在四种方面有所区别:
- 1)它仅依赖于网络内的随机采样,因此需要更少的内存和计算量;
- 2)所提出的局部特征聚合器可以通过明确考虑局部空间关系和点特征来获得连续更大的接收场,从而对于学习复杂的局部模式更加有效和健壮;
- 3)整个网络仅由共享的MLP组成,而不依赖于任何昂贵的操作(如图形构建和内核化),因此对于大规模点云而言,效率极高。
- 4)RandLA-Net可进行端到端的培训,而无需任何其他的前/后处理步骤。
(四) RandLA-Net
4.1. Overview
- 如图2所示,给定一个大规模的点云,其中有数百万个跨度达数百米的点,要使用深度神经网络对其进行处理,不可避免地需要在每个神经层中逐步有效地对这些点进行降采样,而又不会丢失有用的点功能。
- 在RandLA-Net中,使用简单快速的随机抽样方法来大大降低点密度,同时应用经过设计的本地功能聚合器以保留突出的功能。这使整个网络都能在效率和有效性之间取得良好的平衡。
4.2. The quest for efficient sampling
现有的点采样方法可以大致分为启发式方法和基于学习的方法。但是,仍然没有适合大型点云的标准采样策略。因此,分析和比较它们的相对优缺点和复杂性如下。
4.2.1 Heuristic Sampling
Farthest Point Sampling(FPS):
为了从具有 N N N个点的大规模点云 P P P中采样 K K K个点,FPS返回度量空间 ( p 1 . . . p k . . . p K ) \left ( p_{1}...p_{k}...p_{K}\right ) (p1...pk...pK)的重新排序,使得每个 p k p_{k} pk离第一个 k − 1 k-1 k−1点最远的点。 FPS被广泛用于小点集的语义分割。
- 尽管它可以很好地覆盖整个点集,但其计算复杂度为 O ( N 2 ) O(N^{2}) O(N2)。
- 对于大规模点云 ( N ∼ 1 0 6 ) (N\sim 10^{6}) (N∼106),FPS最多需要200秒才能在单个GPU上处理。这表明FPS不适合大规模点云。
Inverse Density Importance Sampling (IDIS):
要从 N N N个点中采样 K K K个点,IDIS根据每个点的密度对所有 N N N个点重新排序,然后选择顶部的 K K K个点[15]。
- 它的计算复杂度约为 O ( N ) O(N) O(N)。
- 根据经验,处理 1 0 6 10^{6} 106点需要10秒。与FPS相比,IDIS效率更高,但对异常值也更敏感。但是,对于在实时系统中使用它仍然太慢。
Random Sampling(RS):
随机采样从原始N个点中统一选择K个点。它的计算复杂度为 O ( 1 ) O(1) O(1),与输入点的总数无关,即它是恒定时间的,因此具有固有的可扩展性。与FPS和IDIS相比,无论输入点云的规模如何,随机抽样都具有最高的计算效率。处理 1 0 6 10^{6} 106点仅需0.004s。
4.2.2 Learning-based Sampling
Generator-based Sampling (GS):
GS学会生成一小组小点,以近似表示原始的大小组。但是,通常使用FPS以便在推理阶段将生成的子集与原始集进行匹配,从而导致额外的计算。最多需要1200秒才能采样 1 0 6 10^{6} 106点的10%。
Continuous Relaxation based Sampling (CRS):
CRS方法使用重新参数化技巧将采样操作放宽到连续域以进行端到端训练。特别地,基于整个点云的加权和来学习每个采样点。当对所有新点同时进行一次矩阵乘法采样时,会产生一个较大的权值矩阵,导致无法负担的内存开销。估计需要超过300GB的内存占用来采样 1 0 6 10^{6} 106个点中的10%。
Policy Gradient based Sampling (PGS):
PGS将采样操作表述为马尔可夫决策过程。它依次学习对每个点进行采样的概率。但是,由于大规模点云的探索空间很大,因此学习概率具有较高的方差。要对 1 0 6 10^6 106个点中的10%进行采样,勘探空间为 C 1 0 6 1 0 5 C_{10^{6}}^{10^{5}} C