今天给大家分享一篇论文,论文名称: Are We Hungry for 3D LiDAR Data for Semantic Segmentation?
作者: Biao Gao, Member, IEEE, Yancheng Pan, Member, IEEE, Chengkun Li, Member, IEEE, Sibo Geng, Member, IEEE, Huijing Zhao, Member, IEEE,
论文下载: https://arxiv.org/pdf/2006.04307.pdf
作者主页:https://charlieleee.github.io/tags/lidar/
三维激光雷达的语义分割在自动驾驶、机器人等领域都有着广泛的应用,近年来,基于深度学习的 方法已经在三维计算雷达语义分割的研究中取得了巨大的进步。然而,这类研究方法严重依赖于数 据集的精确标注,大部分三维激光雷达数据集无法满足这类要求,同时标注费用也比较昂贵。
本文 的主要目的是探讨我们是否需要以及如何对三维激光雷达数据进行语义分割。文章首先回顾了现有的三 维点云的语义分割方法。然后对三个有代表性的数据集进行了深入的分析,从不同角度分析了数据集不足所引发的问题。总结了聚焦在三维激光雷达的方法和一些通用的方法在解决数据集不足的方面所做出的努力。最后对数据集不足问题和一些开放性的问题进行了深入的探讨。
今天激光雷达已经成为了机器人、测绘和自动驾驶系统中主流的传感器。从真实环境中捕获的三维雷达数据通常以三维点云或者二维栅格来表示。语义分割是理解真实场景的一种基本的方法,它可以根据现实世界中的意义分类,将整个输入数据划分为语义上可解释的不同类别。语义分割算法已经进行了多年的研究。在2014年之前的方法,我们称之为传统方法。其特点是使用手工的标记的特征和自下而上的处理顺序,其中的很多灵感都来源于深度学习技术。近年来的方法都是通过深度网络来提取丰富的几何特征。然而这类方法在训练阶段会需要大量的标注好的标签。训练数据的数量、质量和密度都对网络模型有很大的影响。由数据集不足所引起的性能的限制称之为数据匮乏效应。对于三维语义分割任务, 需要具有逐点注释的三维激光雷达数据。S3DIS、Semantic3D、SemanticKITTI是目前最受欢迎的数据集。由于这些困难,与二维图像(数据集)相比,用于三维语义分割的公开数据集在数据大小和场景种类上都非常有限。本文中我们将会寻找以下问题的答案: 我们急需三维激光数据的语义分割吗?如果我们真的需要,那么我们有多么紧迫,又怎样解决这个问题呢?为了回答上述的问题,本文将会按照以下步骤进行展开:
本文是首先使用深度学习技术来分析三维语义分割数据集不足。文章的主要贡献有以下几点:
根据数据采集方法和主要应用,可以将数据集分成三组:
这里分析了三个有代表性的数据集:
1).分析提纲 激光雷达点云在近距离时具有更高的密度。如Semantic3D和SemanticKITTI在10m之内的点云密度占60%,而在[30m, 70m]点云密度却小于10%。SemanticPOSS由于使用了水平分辨率更高的传感器,在10m之内占比小于20%, 而在30m之内点云却超过78%,[30m, 70m]只占20%。
表2不同数据集点云的分布情况
图2点云数据分布不均衡示意图
图3是Semantic3D的某一帧数据,大约72%的点,总数为24,671,679的点云会落入一个15m的圆中。这在3D点云数据集中是非常常见的现象。因此统计点数量和比例对于解决数据匮乏问题可能没有意义。因此我们重新对点云数据进行了体素化表达。将三维空间均匀地细化为体素,将激光点云投影到体素当中,得到一组有效的体素, 每个体素中至少包含一个激光雷达点,其中是一个维的向量。每列表示标签在体素中所占据的比列。在本文中,体素大小为。
图3点云体素化表示
随后在体素上定义了很多度量来分析数据集的统计信息。表示体素中类别所占的比列,描述符是一个维的向量,用来表示不同类别的占比。给定场景的体素集合, 描述符,。由于场景中动态物体如:车辆、行人和自行车比静态物体:建筑物、树和地面要多。因此定义一个向量来表达动态场景描述子每一列表示每一帧数据每一个类别的数量。使用场景距离来度量不同场景描述符之间的不同。为了平衡不同场景的描述符,对其进行了归一化处理。最终给定两个场景和,描述符距离定义为, 类似地可以定义动态场景的距离。
每个数据集都有自己的标签和类别的定义。这些定义大不相同。为了比较对一些标签进行了合并。Level 2定义用于场景多样性距离分析或者数据集的交叉比较,Level1用于分析每个数据集的特殊性。
图4不同数据集类别之间的比较
2).Semantic3D: Semantic3D在训练集中包含15个场景。每一帧都是使用地面激光扫描仪从固定位置测量的单个帧。在图5中,将整个数据集场景描述符绘制为直方图。与其他两个数据集相比,Semantic3D主要描述静态场景,其中地面、植被和建筑物是主要的类别,建筑物所占比列明显高于其他类别。除了一些停车场内的车辆,几乎没有移动的物体。
根据数据测量的地理位置,将语义三维场景分为城市、农村和郊区三类。由于只有一个郊区场景,即,被单独隔离开来,如图6所示。将场景描述符表达成直方图的形式,可以看出同一场景下的描述符差别很大,如和。不同场景下的描述符却很相似,如和。
无论场景是在同一组还是在不同组中,场景对象的类别比列差异很大。如,是一个铁路场景。这里是自然环境中的地形,几乎没有建筑物。则相反。这些都是大多数教堂的场景,到处都是建筑物,但是几乎没有植被。由于其场景中没有动态物体,因此也就不适合动态场景描述符. 虽然包含了非常多样化的场景。但是由于每个场景只有一帧数据。这可能会给训练多个场景带来困难。
图5不同数据集的种类分布
3).SemanticKITTI: SemanticKITTI包含有11个激光帧序列,是从欧洲街道上行驶的车辆上连续测量得到的。将每一序列视为一个场景。本文一共分析11个场景。在图5(b)中有某个场景的可视化。将场景描述符以直方图的形式展示,和Semantic3D相比,SemanticKITTI描述了更大的街道场景,其中植被和地面是占比最高的两个类别。与其他数据集相比,建筑物所占的比例较低。数据集中有动态对象,但是人、骑手和自行车或摩托车的比例小于0.1%。
SemanticKITTI提供了动态对象的实例标签。动态对象的数目是描述动态场景的复杂度的索引,在图5中通过计算每帧实例数目来分析该索引。可以发现SemanticKITTI具有良好的车辆分布多样性,例如,每帧平均车辆实例分布在0到33之间。然而,人和骑手却很少。很少有场景超过8个人或者4个骑手。这个结果也可以通过图6中的动态场景描述符来证明,从图6中的11个场景描述符可以发现,主要有两种模式类似于和中的分布情况,类别的分布并没有Semantic3D那么多样化。SemanticKITTI以43552帧激光雷达数据11个序列描述移动车辆的街道场景。数据量大,有利于深度学习模型的训练。然而,场景并不像语义3d那样多样化,并且具有有限数量的动态对象。
4).SemanticKITTI: SemanticPOSS包含了6个激光雷达帧序列,这些序列是从北京大学校园内的移动车辆上连续测量的,数据格式类似于KITTI。相比于其他数据集,SemanticPOSS描述了大量的动态对象、混合交通和不受规则严格控制的交通场景。将每一个序列当做一个场景来对待,因此本文一共分析了6个场景。从图6的场景描述符构成的直方图可以看出其包括了更多的动态场景。可以发现它的类别比例分配类似于SemanticKITTI,但是它们都和Semantic3D有很大的不同。一个原因是数据的测量方法,另一个是街道场景由静态对象(如建筑物、植被和地面)所占据,这些静态对象的数据比例远高于动态对象。由于动态对象上的数据比例很小,如果将它们同静态对象进行分析,动态对象之间的差异很容易被忽略。
图5(e)分析了动态对象的数量。与SemanticKITTI相比,这三种动态对象车辆、行人和骑手分布的更为广泛,平均每个序列每帧数据包含车辆大约0~32辆,24个行人和12个骑手。在图6的动态场景描述符同样证明了结果。SemanticPOSS描述了不同种类的动态对象和不同拥挤程度的场景。从图6中的6个动态场景描述符可以看出其描述的静态场景也不相同。
SemanticPOSS在总共2998个激光雷达数据帧中以6个序列描述移动车辆的街道场景。尽管这个数据集的大小对于深度学习模型的训练时有限的,但它描述了丰富的动态场景,这是其他数据集比不上的。
图6不同数据集的类别分布情况
5).Cross-dataset Analysis: 所有数据集的场景的混淆矩阵如图7(a)所示,每个值表示场景对多样性的分布距离,越白表示多样性越小,越暗表示多样性越多。
图7不同数据集场景多样性的交叉分析
在这一部分中,本文对三维语义分割的代表性方法进行了全面而系统的综述。
三维语义分割方法已经被广泛研究了几十年。如图9所示,根据特征表示形式和处理流程,它们被分为传统和深度学习方法。传统的三维语义分割方法通常采用手工特征来提取点的几何信息,并从支持向量机(SVM)或随机森林(RF)等分类器中输出类别的标签。传统方法的一个常见过程是:
基于点的方法直接将原始点云作为输入,输出逐点标签。这些方法可以处理任意的非结构化的点云。原始点云处理的主要难点是如何从非结构化的点云中提取局部上下文特征。
1)Point-wise Shared MLP: 基于点的共享的全连接层。PointNet是基于深度网络处理非结构化点云的先驱。它使用共享的全连接层来提取点的特征,并且利用最大池化层拼接成全局的特征。PointNet++改进了PointNet的特征提取部分, 它使用多尺度的领域搜索来提取局部的特征。网络的整体结构如图10所示。
受到PointNet++的启发,许多方法都在尝试改进局部特征的提取。Engelmann等人提出了具有球邻域的多尺度输入块(MS),在不同尺度的球领域中聚合局部特征。PointSIFT同时考虑了各个方向的邻域信息,因此它们从8个方向上聚合当前点的局部特征,以获得更好的特征表达。Engelmann等人在学习的特征空间中引入K近邻来计算邻域的特征,在局部几何信息中引入K均值计算全局特征。采样方法是共享的全连接层体系结构的另一个改进因素,PointNet++使用最远点采样法,在每次迭代中选择距离当前点最远的点。SO-Net依赖于自组织映射进行采样,利用无监督学习对点云空间建模进行训练。RandLA-Net使用随机采样法来减小内存和计算资源的占用。
2)Point-Convolution: 卷积是二维图像语义分割任务中特征提取的核心操作,要求对于网络上下层的信息进行有序的输入。多种方法尝试从无序的三维激光雷达数据中构造有序的特征序列,然后将卷积的深度网络转化为三维激光雷达语义分割。PointCNN根据K-近邻点到中心点的空间距离来排序K近邻点,这被称为点卷积的χ算子。由于χ的可微性,使得其可以通过反向传播来进行训练。
为了避免PointNet++中多尺度邻域之间的造成覆盖,A-CNN引入了可应用于有序约束K近邻的环形卷积,这同样有助于获得更好的三维形状的几何表示。KPConv核卷积可以在没有任何中间处理过程的点云上进行操作,这使得KPConv比大多数固定网络卷积核变得更加的灵活。Engelmann等人指出每个点的感受野的大小会直接影响语义分割结果的表现。因此,他们提出了扩展点卷积(DPC)的方法,通过对K-近邻搜索的得到的点进行排序并仅计算每个点来增加卷积的尺度。在PointAtrousNet中使用了空洞卷积技术Point Atrous Convolution (PAC)来增加感受野,在不增加参数的情况下提取多尺度局部几何特征。
3)Recurrent Neural Network: 循环神经网络经常用提取序列式的上下文信息。对于三维语义分割来说循环神经网络可以通过在空间中输入有序的特征向量来提取不同网络层的信息。Engelmann等人提出的proposed Grid (G) and Recurrent Consolidation Unit (RCU)把空间分成若干个网格作为网络的输入。每2x2网络被送入到一个共享的MLP单元和RCU,以提取点的特征和局部网络层的特征。
4)Lattice Convolution: 稀疏多面体点阵适用于点云等稀疏数据处理。SPLATNet应用双边卷积层(BCL)来提供点云和稀疏格之间的转换,从而有效地执行卷积操作。网络将多个双边卷积层拼接起来用来提取局部特征。
图10本文进行实验的网络结果
基于图像的方法将三维激光雷达数据投影到曲面上,生成二维图像作为深度模型输入。这些方法通常来源于图像的语义分割模型,如完全卷积网络(FCN),输出预测的像素级别的标签重新投影到原始的三维激光雷达数据点上。
1)Multi-view Segmentation: 基于多视角投影的方法。一个简单的策略就是选择几个不同的角度将点云投影到图像中。Felix等人将虚拟相机绕固定的垂直轴旋转以生成多视图合成图像,这些图像由基于FCN的多流体系结构处理。将像素级预测得分相加,然后重新投影到三维激光雷达点云中。
2)Range Image Segmentation: 深度图像的分割。深度图像通常是通过将一帧三维激光雷达数据投影到球面上生成的。SqueezeSeg是一种典型的基于SqueezeNet和CRF的端到端的图像语义分割网络。其结构如图10(b)所示的SqueezeSegV2在模型结构、损失函数和稳健性方面进行了改进。
基于体素的方法将三维激光雷达数据转换为体素进行结构化数据表示。这些方法通常以体素作为输入,使用一个语义标签预测每个体素。许多基于体素的方法都是基于三维卷积神经网络。Huang和You提出了一个典型的基于三维点云的卷积网络框架。SEGCloud是基于3D全卷积神经网络,该网络用于提出每个类别的体素概率。然后,在保持空间一致性的前提下,使用三线性插值和CRF将预测出来的概率值传递回原始的三维点。基于体素的方法很难找到一个合适的体素大小来平衡精度和计算效率。一些方法有助于减少稀疏数据三维卷积的计算成本,同时保持较高的精度。Zhang等人将重力轴作为特征通道,利用二维卷积处理体素化后的点云,降低了三维卷积的计算成本。ScanComplete是一个基于三维CNN的模型,具有从粗到系的预测策略,可以动态选择体素大小并聚合多尺度局部特征。
基于图的方法从三维激光雷达数据中构造一个图。顶点通常表示一个点或者一组点,边表示顶点之间的邻接关系。图构造和图卷积是这些方法的两个关键操作。如图10(c)所示,超点图(SPG)是一个具有代表性的工作。该网络使用PointNet网络来对顶点的特征进行编码,并使用图卷积来提取邻接层的信息。GACNet提出了一种新的图卷积运算,即图注意力机制卷积(GAC)。在图的构造中,每个顶点代表一个点的信息,并且在每个顶点与其最邻近之间添加12条边。标准图卷积忽略了同一个对象点之间的结构关系。GAC动态地将注意权重分配给不同的相邻点以克服这一限制。
在实验阶段,本文基于三个典型的数据集进行了统计分析。我们设计了三个实验来回答以下三个问题:
表4列出了实验部分的关键信息
图11不同方法的mIOU数值
图12为第一个问题的实验结果
表7给出了第二个问题的实验结果
数据集的大小对于语义分割结果的影响
作者通过大量的实验数据总结了第三个问题的结果
通常单个数据集没有足够的场景多样性来获得一个很好的广义模型,混合数据集中的训练模型可能会导致场景的多样性得到一些改善。然而,简单地合并更多的数据集以获得更好的场景多样性将面临着很大的阻力,甚至导致模型的性能出现下降。因此,场景多样性中的数据匮乏问题对于3D激光雷达的语义分割模型来说,提高其泛化能力仍然是一个挑战。数据匮乏问题目前是深度学习领域的一个普遍问题,在这方面,已经在机器学习领域(包括计算机视觉、智能车辆和机器人技术)的解决方案进行了大量的研究。这些工作大致可以分成两组:
“数据匮乏”问题被认为是三维激光雷达语义分割中一个严重而普遍的问题。然后,与计算机视觉和机器学习的研究相比,三维激光雷达中数据匮乏问题的解决方案仍然是一个未被充分探索的领域。开发减少对精细标注的三维激光雷达数据集的新方法和开发更加多样化的三维激光雷达数据集课程成为未来两个主要的关注方向。本文通过方法论层面、数据集、以及一些公开的问题作为基于今后的研究课题提供了指导。
图18 方法论、数据集以及一些公开的问题
专辑:计算机视觉方向简介
专辑:视觉SLAM入门
专辑:最新SLAM/三维视觉论文/开源
专辑:三维视觉/SLAM公开课
专辑:深度相机原理及应用
专辑:手机双摄头技术解析与应用
专辑:相机标定
专辑:全景相机
视觉SLAM图文+视频+答疑+学习路线全规划!