论文 Efficient Urban-scale Point Clouds Segmentation with BEV Projection
地址 https://arxiv.org/pdf/2109.09074.pdf
代码:https://github.com/zouzhenhong98/SensatUrban-BEV-Seg3D
点云分析近年来吸引了研究人员的眼球,而 3D 语义分割仍然是一个问题。 大多数深度点云模型直接对3D点云进行学习,这将受到城市规模数据的严重稀疏和极端数据处理负载的影响。 为了应对这一挑战,我们建议将 3D 点云转换为密集的鸟瞰投影。 在这种情况下,由于类不平衡减少和利用各种 2D 分割方法的可行性,分割任务被简化。
我们进一步设计了一个基于注意力的融合网络,可以对投影图像进行多模态学习。 最后,重新映射 2D 输出以生成 3D 语义分割结果。 为了证明我们方法的好处,我们在 SensatUrban 数据集上进行了各种实验,其中我们的模型展示了具有竞争力的评估结果(61.17% mIoU 和 91.37% 的总体准确度)。 我们希望我们的工作能够激发点云分析的进一步探索。
索引词——点云、语义分割、多模态学习、城市规模
3D语义分割是点云学习的关键技术,旨在为每个单独的点数据分配语义标签,已广泛应用于自动驾驶[1]、虚拟现实[2]、3D重建[3]等 . 虽然深度学习在二维语义分割任务中表现突出,但无法直接处理不规则、无序、非结构化的点数据[4]。 因此,目前有几种方法 [5]-[11] 将非结构化点转换为某些有效的中间表示,例如体素 [7]、[12] 和多视图 [10]、[13]、[14],以利用 经典的 CNN 模型。 随着对 3D 场景理解的需求不断增加,提出了越来越多的 3D 点云数据集。 从室内数据集(例如,S3DIS [15] 和 ScanNet [16])到道路级数据集(例如,SemanticKITTI [17]),数据集的空间大小也更大。 最近的工作 [3]、[18] 提出了城市级数据集,这给大规模数据集的语义分割带来了一些全新的挑战。
与基于激光雷达的数据集不同,这些城市尺度点云大多是从无人机摄影测量中获得的,这可能导致数据集中有以下特征。 首先,无人机摄影测量的扫描不均匀,扫描区域不集中,捕获的图像包括边缘散乱的区域。 其次,重建的点云部分缺失。 我们在 SensatUrban [3] 数据集中观察到这种现象,一个典型的例子是,将点云可视化后,屋顶下没有对应的墙点,这使得屋顶看起来像是悬浮在空中。 有趣的是,我们发现基于无人机的点云中垂直点的类别重叠率较低,例如 SensatUrban 为 2.3%,这意味着鸟瞰图是一种更简单、更高效、更合适的投影方法。 能够最大限度地保留点细节。 此外,对于投影图像,可以使用具有更丰富标记的 2D 像素级数据集进行预训练。 因此,在本文中,我们提出了一种 BEV 投影分割方法来处理城市规模的 3D 分割问题。 我们的主要贡献是:1)对城市规模的点云进行点级分析; 2)提出具有特定BEV投影算法的多模态融合分割模型; 3)我们在 SensatUrban 数据集中评估我们的方法,我们的竞争结果证明了我们设计的效率。
一般来说,根据点云数据进入网络的形式,现有的大部分3D语义分割方法可以分为三类:基于点的、基于3D表示的和基于投影的。
基于点的方法直接处理原始点云,其代表方法是计算开销大的PointNet。 尽管 [19]、[20] 对 PointNet 做出了一些有益的改进,但仍然很难加速,因为这些方法直接处理 sprase 数据。 最近的 RandLA-Net [2] 引入了随机采样和轻量级网络架构,极大地加速了模型。
然而,正如 [21] 中提到的,基于点的方法中一个不容忽视的问题是,由于随机内存访问效率低下,处理 sprase 数据的大量时间浪费(80%),这意味着实际上只有很少的时间是 用于提取特征。 此外,大的内存开销也是一个严重的问题。
基于 3D 表示的方法将原始点云数据转换为特定的 3D 表示(例如体素和晶格),然后利用 3D 卷积 [5]-[8]。 然而,很难平衡分辨率和内存之间的关系[21],[22]。 分辨率越低,点云的信息丢失越严重,因为同一网格中的点合并在一起。 分辨率越高,计算开销和内存使用量就越大。 此外,预处理和后处理步骤需要大量时间[23]。
代替直接处理点,基于投影的方法利用成熟的 2D 卷积模型来处理从 3D 点云投影的图像。 基于投影的方法包括几个特定的类别,例如多视图、基于球面的方法。 多视图方法 [10]、[13]、[14] 将点云投影到多重虚拟摄像机视图中。
例如,[10] 利用多流 CNN 处理从每个视图生成的图像,然后融合来自每个点的不同图像的预测分数,[13] 定义一个旋转的相机并提出 Katz 投影来选择每个相机角度的点 , [14] 在不同的相机位置生成深度图像和 RGB 图像。 [24]利用球面投影方法将3D点云转换为图像,使用SqueezeSeg网络进行分割,并应用CRF(条件随机场)优化分割结果。 [11] 提出了基于 SqueezeSeg 扩展感受野的上下文聚合模块 (CAM),[4] 引入了空间自适应卷积 (SAC) 以进一步提高分割精度。
B. 大规模场景的语义分割在最近的工作中提出了几个由无人机拍摄的城市规模 3D 点云数据集 [3]、[18]、[25],其中最大的是 SensatUrban [3] 数据集, 面积7.64×106 m2,标注点数30亿。 然而,这些庞大而密集的数据集给语义分割带来了新的挑战。
首先,面对海量数据,预处理方法的选择,如数据分区、下采样等具有重要意义。 其次,城市规模点云存在类别分布不平衡的问题。 第三,基于无人机的数据集和基于激光雷达的数据集之间的显着区别在于前者包含 RGB 特征。 对于大规模数据集,是否将 RGB 特征融入网络以及如何有效利用 RGB 特征值得考虑。 最近的工作,例如 RandLA-Net [2] 和 BAAF-Net [23] 已经利用了 RGB 颜色并取得了积极的分割结果。 对于 BEV 投影生成的图像,我们设计了一个基于注意力的多模型融合网络,有效地融合了 RGB 和几何细节。
与单模态网络相比,分割效果取得了一定的提升,进一步验证了RGB颜色对于分割的意义。
最近,已经提出了几种针对大型数据集的语义分割算法[2]、[9]、[26]、[27]。 例如,RandLA-Net [2] 引入了随机采样以提高计算和内存效率,TagentConv [9] 利用基于切线卷积的 U 型网络对大而密集的数据集进行语义分割,SPGraph [27] 提出 超点图(SPG),一种新颖的点云表示,能够捕获 3D 点的上下文结构。 需要提出更多的大规模点云分割算法。
3D 点云语义分割的目的是为每个单独的点分配一个语义标签,而 2D 分割是为每个像素分配一个特定的标签。 在某种程度上,这两种类型的任务具有相似的目的和解决方案。 根据我们上面的陈述,3D 点云语义分割任务可以转移到 2D 鸟瞰分割问题。 主要过程包括鸟瞰图映射和二维多模态分割。
当我们将一个任务转移到另一个任务时,它要求输入数据和预期输出的一致性。 为了评估我们的想法,我们在构建模型之前进行点级分析。 我们首先将 3D 点投影到 BEV 地图上(将在下面详细介绍)并计算重叠率。 当我们在投影中缩放 0.04m 处的坐标时,大约会丢失 25.44% 的点。 对于那些点密集的地方,该比例将提高到50%或更多。 但是,我们发现大多数重叠点与顶部点属于同一类别。 类别重叠率低于2.3%,
mIoU 最高可达 93.7%。 在这种情况下,可以将 3D 分割任务转移到 2D BEV 分割。 我们的目标是精确识别 BEV 图像。
为了优化如此大的点云的数据处理负载,我们将整个工作分为三个部分:3D 到 BEV 投影、稀疏 BEV 图像补全和 BEV 到 3D 重映射 . 前两部分的过程在下面的算法 1 中以伪代码的形式呈现。 我们设置了一个滑动窗口来处理点并生成 BEV 图像。 在投影之前,我们需要初始化参数gscale、gscale、gscale,控制滑动窗口的缩放、大小和移动步长。 对于每个滑动步骤,我们按 x/y 坐标对点进行排序,并从当前 BEV 投影窗口开始/结束坐标查询点,之后将删除处理过的点以减少后续数据处理量。 为了获得最佳参数,我们在 0.01 到 0.04 的不同投影尺度下测试空间重叠率,如图 3 所示。 当我们将尺度设置在[0.01,0.03]时,会导致点云不同部分的重叠分布非常接近,这意味着城市尺度点云中点的最小间隔在[0.03,0.05]之内( 米)。 此外,根据我们的投影图像数量估计,窗口的适当长度在 20,50 以内。 因此,我们将参数设置为 gscale = 0:05,gsize = gstep = 25。但是,我们也建议多尺度、多尺寸和多步采样,以便在未来的工作或其他类似任务中更好地训练。
对于单个滑动窗口中的点,我们通过积分 x/y 坐标将点映射到像素。 不可避免地会带来价值量化的损失,但是,如果我们在 3D 重映射中进行相同的过程,它不会影响标签检索过程。 BEV 地图使用顶部的点进行更新,生成 RGB 和海拔 (Alt) 图像及其颜色和 z 坐标值。 考虑到 BEV 图像上投影点云的显着稀疏性,会给标签和模型学习带来严重的噪声,因此有必要对投影进行像素级的完成,尤其是对不同类点周围的内部区域和边缘。 在我们的实验中,我们对每个图像中的每个通道迭代地进行 3 次 2D 最大池化。 标签的渐进变化如图4所示。
对于 3D 重映射,我们存储每个投影窗口的绝对 x/y 坐标,并使用主题查询原始大规模点云中的提取位置以获取 2D 分割输出。 对应于相同像素的点将被赋予与像素相同的类别。 之后,我们能够评估 3D 语义分割性能。
图 4. 完成测试。 对于从左到右,我们展示了原始 BEV 标签和具有 1/2/3 倍 maxpooling 完成的标签。
利用 BEV 投影的高度和 RGB 图像,我们可以利用多模态网络从数据的不同方面进行学习。 为了快速开发出合适的模型,我们将编码器-解码器网络 UNet 作为我们的基准,不仅因为它流行的模型架构,而且因为它在修改、训练和推理方面的效率。
它由编码器中的 4 个块和解码器中的 5 个块组成,其中两个是 ResNet-34 块,最后四层使用转置卷积,其余是卷积块。
所有卷积块在卷积层之后都有一个批归一化层和一个 ReLU 层,所有内核大小都是 3x3。 编码器中的每个块都用虚线链接到解码器中的相应块,将它们的输出连接起来以检索低级特征。
通常,多模态融合依赖于各层的特征通信。 在此驱动下,我们提出了一种灵活的多阶段融合网络,支持不同时间、不同地点的多管道数据融合。 融合层包括几个恒定形状的融合块。 每个块接受来自两个管道的两个相等形状的张量,并采用一个注意力层从连接的特征图中选择关键通道。 通过这种方式,融合块倾向于丢弃不相关的特征,并融合那些容易在后续层中激活的特征。 对于注意力块,我们参考了我们之前的工作??,它提出了一种用于语义分割的跨通道多模态融合注意力块。
之后,我们添加一个 1x1 卷积来降低维数,并对图像特征和融合特征、高度特征和融合特征重复这样的融合块。 重要的是,out block 保持特征图的恒定形状,这意味着我们可以根据需要堆叠具有各种网络形状的无限块。
B. 结果 我们使用三个主干网络实现我们的模型,UNet 和 ResNet34、Deeplabv3 和 ResNet101、OCRNet 和 HRNet。
最后两个模型经过训练以探索我们的 BEV 分割框架下的潜在性能。 我们在 Table.I 中展示了我们的分割结果(重新映射到 3D 点云并在 3D 中评估)。 与现有模型相比,我们的模型可以在大多数分类中取得相当有竞争力的结果,并且在 OA、mAcc 和 mIoU 方面的整体性能。 缺点是我们的 BEV 分割仍然无法识别一些像自行车这样的小物体,因为它们在投影图像中也占据了非常有限的像素。 在未来的工作中,融合 3D 和我们的 BEV 模型可能会解决这个问题。 可视化如图 5 所示。
五、结论在本文中,我们设计了一种大规模无人机点云的预处理方法,即将3D点云投影到密集的鸟瞰图,以解决大规模数据集数据稀疏和数据处理负担严重的问题。 此外,我们还提出了一种基于注意力的多模态融合网络来分割生成的二维图像,充分利用RGB颜色和几何信息。 我们获得了 61.17% mIoU 和 91.37%SensatUrban 数据集的整体准确度测试结果。 我们希望我们的工作能够激发大规模点云语义分割任务。