一、论文
- 研究领域: 城市级3D语义分割
- 论文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection
- 清华大学,新疆大学
- 2021.9.19
- 论文github
- 论文链接
二、论文概要
2.1主要思路
提出了城市级3D语义分割新的方法,将3D点云语义分割任务转移到2D鸟瞰图分割问题。 分为以下三步:3D到BEV投影、稀疏BEV图像分割和BEV到3D重新映射。
注: BEV: Bird's Eye View
BEV投影是指鸟瞰视角(Bird's Eye View,简称BEV)的一种从上方观看对象或场景的视角,就像鸟在空中俯视地面一样。在自动驾驶和机器人领域,通过传感器(如LiDAR和摄像头)获取的数据通常会被转换成BEV表示,以便更好地进行物体检测、路径规划等 。
2.1.1 实现步骤
- 3D到BEV投影
1、城市规模的点云地图被预先划分成边长小于400米的网格。
2、我们进一步生成了25× 25 m2的正方形,放大倍数为20倍。
使用滑动窗口来得到BEV投影,伪代码如下:
- 稀疏BEV图像分割
考虑到BEV图像上投影点云的显著稀疏性,这将在标记和模型学习中引入严重的噪声,因此有必要对投影进行像素级完成,特别是对于不同类点周围的内部区域和边缘。在我们的实验中,我们迭代地对每个图像中的每个通道进行三次2D最大池化。标签的渐进变化如图4所示。
对于从左到右,我们呈现原始BEV标签和具有一次/两次/三次最大池化完成的标签。
BEV投影生成的图像,设计了一个基于注意力的多模态融合网络,有效地融合了RGB和几何细节。与单模态网络相比,分割效果取得了一定的提高,进一步验证了RGB颜色对分割的意义。
- BEV到3D重新映射
对于3D重映射,我们存储每个投影窗口的绝对x/y坐标,并使用主题查询原始大规模点云中的提取位置以获得2D分割输出。对应于相同像素的点将被赋值为与像素相同的类。之后,我们能够评估3D语义分割性能。
2.2 主要贡献
1、针对大规模无人机点云数据稀疏、处理负担重的问题,设计了一种大规模无人机点云数据预处理方法,即将三维点云投影到密集的鸟瞰图上。
2、对于BEV投影生成的图像,设计了一个基于注意力的多模态融合网络,有效地融合了RGB和几何细节。与单模态网络相比,分割效果取得了一定的提高,进一步验证了RGB颜色对分割的意义。
提出了一种新的方法,并设计了一种新的图像分割网络。
2.3 实验表现
与其他已发表方法的比较结果。我们使用ResNet-34和HRNet实现了我们的模型,这两个模型都在SensatUrban数据集上实现了具有竞争力的平均IoU和整体准确性。
三、论文全文
基于BEV投影的城市尺度点云高效分割
摘要:近年来,点云分析已经吸引了研究人员的目光,而3D语义分割仍然是一个问题。大多数深度点云模型直接在3D点云上进行学习,这将受到城市规模数据严重稀疏和极端数据处理负载的影响。为了解决这一挑战,我们建议将三维点云转移到密集的鸟瞰图投影。在这种情况下,由于类不平衡减少和利用各种2D分割方法的可行性,分割任务被简化。我们进一步设计了一个基于注意力的融合网络,可以对投影图像进行多模态学习。最后,2D输出被重新映射以生成3D语义分割结果。为了证明我们的方法的好处,我们在SensatUrban数据集上进行了各种实验,其中我们的模型呈现出竞争力的评估结果(61.17% mIoU和91.37% OverallAccuracy)。我们希望我们的工作可以启发进一步探索点云分析。
- 介绍
3D语义分割是点云学习的关键技术,其目的是为每个单独的点数据分配语义标签,已广泛应用于自动驾驶[1],虚拟现实[2],3D重建[3]等。虽然深度学习在2D语义分割任务中表现突出,但它无法直接处理不规则,无序和非结构化的点数据[4]。因此,目前有几种方法[5]-[11]将非结构化点转换为某些有效的中间表示,例如体素[7],[12]和多视图[10],[13],[14],以利用经典CNN模型处理点云。随着对三维场景理解需求的不断增加,提出了越来越多的三维点云数据集。从室内数据集(例如,S3DIS [15]和ScanNet [16])到道路级数据集(例如,SemanticKITTI [17]),数据集的空间大小也更大。最近的工作[3],[18]提出了城市级数据集,为大规模数据集的语义分割带来了一些新的挑战。
- 室内数据集(例如,S3DIS [15]和ScanNet [16])
- 道路级数据集(例如,SemanticKITTI [17]),数据集的空间大小也更大
- [3],[18]提出了城市级数据集
与基于LiDAR的数据集不同,这些城市规模的点云大多是从无人机摄影测量中获得的,这可能导致数据集中的以下特征。首先,无人机摄影测量的扫描不均匀,扫描区域不集中,捕获的图像边缘有散乱的区域。其次,重建的点云部分缺失。我们在SensatUrban [3]数据集中观察到这种现象,一个典型的例子是,在对点云进行可视化后,屋顶下没有对应的墙点,这使得屋顶似乎悬浮在空中。有趣的是,我们发现基于无人机的点云中垂直点的类别重叠率较低,例如,SensatUrban为2.3%,这意味着鸟瞰图是一种合适的投影方法,它更简单,更有效,并且能够最大限度地保留点细节。
此外,对于投影图像,具有更丰富标记的2D像素级数据集可以用于预训练。因此,在本文中,我们提出了一个BEV投影分割方法来处理城市规模的三维分割问题。
我们的主要贡献是:
1)对城市规模的点云进行点级分析;
2)提出了一种基于BEV投影算法的多模态融合分割模型;
3)我们在SensatUrban数据集上对我们的方法进行了评估,我们的竞争结果证明了我们设计的有效性。
- 相关工作
A.语义分割
通常,根据输入网络的点云数据的形式,现有的大多数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]利用球面投影方法将三维点云转换为图像,利用SqueezeSeg网络进行分割,并应用条件随机场(CRF)对分割结果进行优化。[11]提出了基于SqueezeSeg的上下文聚合模块(CAM)来扩展感受野,并且[4]引入了空间自适应卷积(SAC)来进一步提高分割精度。
基于投影的方法包括几个特定的类别:
- 多视图方法[10],[13],[14]将点云投影到多个虚拟相机视图中。
- 利用球面投影方法将三维点云转换为图像
B 大规模场景的语义分割
在最近的工作中,已经提出了几个由无人机拍摄的城市尺度3D点云数据集[3],[18],[25],其中最大的是SensatUrban [3]数据集,其覆盖面积为7.64×106 m2,具有30亿个注释点。然而,这些大而密集的数据集给语义分割带来了新的挑战。
城市尺度3D点云数据集:
- 最大的是SensatUrban
首先,面对海量数据,预处理方法的选择,例如,数据分区、下采样等。意义重大。其次,城市规模点云存在类分布不均衡的问题。第三,基于无人机的数据集和基于激光雷达的数据集之间的一个显着差异是,前者包含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点的上下文结构。需要提出更多的大规模点云分割算法。
- 方法:
A 问题陈述
3D点云语义分割的目的是为每个单独的点分配语义标签,而2D分割是为每个像素分配特定的标签。在某种程度上,这两种类型的任务具有相似的目的和解决方案。根据我们上面的陈述,可以将3D点云语义分割任务转移到2D鸟瞰图分割问题。主要过程包括鸟瞰图映射和2D多模态分割。
B 鸟瞰投影为什么合理
当我们将一个任务转移到另一个任务时,它要求输入数据和预期输出的一致性。为了评估我们的想法,我们在构建模型之前进行点级分析。我们首先将3D点投影到BEV图上(将在下文中详细描述)并计算重叠率。在投影中以0.04m为单位进行坐标缩放时,约有25.44%的点会丢失。对于那些点密集的地方,比例将提高到50%或更多。然而,我们发现大多数重叠点属于与顶部点相同的类别。类重叠率低于2.3%,mIoU可达93.7%。在这种情况下,可以将3D分割任务转移到2D BEV分割。我们的目标是在BEV图像上进行精确识别。
C 鸟瞰图
为了优化这种大型点云的数据处理负载,我们将整个工作分为三个部分:3D到BEV投影、稀疏BEV图像完成和BEV到3D重新映射。 前两个部分的处理在下面的算法1中被呈现为伪代码。
我们设置一个滑动窗口来处理点并生成BEV图像。在投影之前,我们需要初始化参数gscale,gsize ,gstep,它控制滑动窗口的缩放,大小和移动步骤。对于每个滑动步骤,我们通过x/y坐标对点进行排序,并从当前BEV投影窗口开始/结束坐标中查询点,之后将删除处理过的点以减少后续数据处理量。为了获得最佳的参数,我们测试了不同的投影尺度从0.01到0.04的空间重叠率,如图3所示。当我们将点云的尺度设置在[0.01,0.03]时,会导致点云不同部分的重叠分布非常接近,即城市尺度点云中的点的最小间距在[0.03,0.05](m)以内。此外,根据我们的投影图像数量估计,合适的窗口长度在[20,50](m)以内。因此,我们将参数设置为gscale = 0.05,gsize = gstep = 25。然而,我们也建议多尺度,多尺寸和多步采样,以便在未来的工作或其他类似的任务中更好地训练。
对于单个滑动窗口中的点,我们通过积分x/y坐标将点映射到像素。这将不可避免地带来值量化的损失,但是,如果我们在3D重映射中进行相同的过程,它不会影响标签检索过程。BEV图使用顶部的点进行更新,生成具有颜色和z坐标值的RGB和海拔(Alt)图像。考虑到BEV图像上投影点云的显著稀疏性,这将在标记和模型学习中引入严重的噪声,因此有必要对投影进行像素级完成,特别是对于不同类点周围的内部区域和边缘。在我们的实验中,我们迭代地对每个图像中的每个通道进行三次2D最大池化。标签的渐进变化如图4所示。
对于从左到右,我们呈现原始BEV标签和具有一次/两次/三次最大池化完成的标签。
对于3D重映射,我们存储每个投影窗口的绝对x/y坐标,并使用主题查询原始大规模点云中的提取位置以获得2D分割输出。对应于相同像素的点将被赋值为与像素相同的类。之后,我们能够评估3D语义分割性能。
1、初始化参数gscale,gsize ,gstep,它控制滑动窗口的缩放,大小和移动步骤
- 合适的窗口长度在[20,50](m)以内
- 参数设置为gscale = 0.05,gsize = gstep = 25
2、通过x/y坐标对点进行排序,并从当前BEV投影窗口开始/结束坐标中查询点,之后将删除处理过的点以减少后续数据处理量
3、单个滑动窗口中的点,我们通过积分x/y坐标将点映射到像素
3D重映射,我们存储每个投影窗口的绝对x/y坐标,并使用主题查询原始大规模点云中的提取位置以获得2D分割输出。对应于相同像素的点将被赋值为与像素相同的类
D.最大值多模态分割
通过BEV投影的高度和RGB图像,我们可以利用多模态网络从数据的不同方面进行学习。为了快速开发一个合适的模型,我们考虑一个编码器-解码器网络UNet作为我们的基线,不仅因为它的流行模型架构,而且因为它在修改,训练和推理方面的效率。它包括编码器中的4个块和解码器中的5个块,其中两个是ResNet-34块,最后四层使用转置卷积,其余是卷积块。所有卷积块都有一个批量归一化层和一个ReLU层,所有内核大小都是3x 3。编码器中的每个块都用虚线链接到解码器中的相应块,该虚线将它们的输出连接起来以检索低级特征。
通常,多模态融合依赖于各层中的特征通信。在此基础上,提出了一种灵活的多级融合网络,支持不同时间、不同地点的多管道数据融合。熔合层包括若干恒定形状的熔合块。每个块接受来自两个管道的两个相等形状的张量,并采用注意力层从连接的特征图中选择关键通道。以这种方式,熔合块倾向于丢弃不相关的特征,并且熔合在随后的层中容易被激活的那些特征。对于注意力块,我们参考我们以前的工作??,提出了一种用于语义分割的跨通道多模态融合注意块。之后,我们添加1x1卷积以降低维度,并针对图像特征和融合特征、海拔特征和融合特征重复这样的融合块。重要的是外块保持特征图的恒定形状,这意味着我们可以根据需要堆叠具有各种网络形状的无限块。
- 实验
A setup
数据集:SensatUrban [3]在英国3个大城市采集,包含2847M个点,覆盖真实的世界7.64× 106m2的面积,是目前最大的3D点云数据集。在获得无人机拍摄的区域图像序列后,从这些图像重建SensatUrban点云数据集。它包含13个语义类,包括地面、建筑物、交通道路等大类和自行车、铁路、桥梁等小类。在实验中,37个点云用于训练,6个点云用于测试。每个点包含三维坐标、RGB颜色和语义类的特征。请注意,由于缺乏测试集标签,我们将训练集随机分为4:1,使用80%的数据进行训练,使用20%的数据进行测试。所有测试数据都不用于训练。
度量:我们将我们的模型与几个使用不同方法(例如,基于点的方法、基于投影的方法等)并且最近出版。选择平均IoU(mIoU)和总体准确度(OA)作为评价指标。
实施情况:我们在训练中使用交叉熵作为损失函数。考虑到不同类间的不平衡性,我们使用对数倒数权值来调整学习中的损失。我们将批处理大小设置为8,将输入大小设置为投影大小500 x500。我们的模型在两个GPU上训练,RTX 3090具有24 G RAM和E5- 2678 v3 CPU。此外,我们使用以下软件设置:Ubuntu 16.04 64位操作系统,Python 3.6,gcc5.4.0,PyTorch 1.7与CUDA 11.0硬件加速。
B. Results
我们使用三个主干实现了我们的模型,UNet和ResNet34,Deeplabv3和ResNet101,OCRNet和HRNet。最后两个模型被训练以探索在我们的BEV分割框架下的潜在性能。我们在表I中展示了分割结果(重新映射到3D点云并在3D中进行评估)。与现有的模型相比,我们的模型可以实现相当有竞争力的结果,在大多数classed和整体performancee在OA,mAcc,和mIoU。缺点是我们的BEV分割仍然无法识别一些小物体,如自行车,因为它们在投影图像中占用的像素也非常有限。在未来的工作中,融合3D和我们的BEV模型可能会解决这个问题。可视化如图5所示。
- CONCLUSION
针对大规模无人机点云数据稀疏、处理负担重的问题,设计了一种大规模无人机点云数据预处理方法,即将三维点云投影到密集的鸟瞰图上。此外,我们还提出了一种基于注意力的多模态融合网络来分割生成的二维图像,充分利用RGB颜色和几何信息。我们在SensatUrban数据集上获得了61.17%的mIoU和91.37%的OverallAccuracy测试结果。我们希望我们的工作可以启发大规模的点云语义分割任务。