我们急需三维激光数据的语义分割吗?
2020-09-08 16:50 计算机视觉life 阅读(659) 评论(0) 编辑 收藏 举报我们急需三维激光数据的语义分割吗?
今天给大家分享一篇论文,论文名称: 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/
本文的核心思想
三维激光雷达的语义分割在自动驾驶、机器人等领域都有着广泛的应用,近年来,基于深度学习的 方法已经在三维计算雷达语义分割的研究中取得了巨大的进步。然而,这类研究方法严重依赖于数 据集的精确标注,大部分三维激光雷达数据集无法满足这类要求,同时标注费用也比较昂贵。
本文 的主要目的是探讨我们是否需要以及如何对三维激光雷达数据进行语义分割。文章首先回顾了现有的三 维点云的语义分割方法。然后对三个有代表性的数据集进行了深入的分析,从不同角度分析了数据集不足所引发的问题。总结了聚焦在三维激光雷达的方法和一些通用的方法在解决数据集不足的方面所做出的努力。最后对数据集不足问题和一些开放性的问题进行了深入的探讨。
I.研究背景介绍
今天激光雷达已经成为了机器人、测绘和自动驾驶系统中主流的传感器。从真实环境中捕获的三维雷达数据通常以三维点云或者二维栅格来表示。语义分割是理解真实场景的一种基本的方法,它可以根据现实世界中的意义分类,将整个输入数据划分为语义上可解释的不同类别。
语义分割算法已经进行了多年的研究。在2014年之前的方法,我们称之为传统方法。其特点是使用手工的标记的特征和自下而上的处理顺序,其中的很多灵感都来源于深度学习技术。近年来的方法都是通过深度网络来提取丰富的几何特征。然而这类方法在训练阶段会需要大量的标注好的标签。训练数据的数量、质量和密度都对网络模型有很大的影响。
由数据集不足所引起的性能的限制称之为数据匮乏效应。对于三维语义分割任务, 需要具有逐点注释的三维激光雷达数据。S3DIS、Semantic3D、SemanticKITTI是目前最受欢迎的数据集。由于这些困难,与二维图像(数据集)相比,用于三维语义分割的公开数据集在数据大小和场景种类上都非常有限。
本文中我们将会寻找以下问题的答案: 我们急需三维激光数据的语义分割吗?如果我们真的需要,那么我们有多么紧迫,又怎样解决这个问题呢?为了回答上述的问题,本文将会按照以下步骤进行展开:
- 回顾使用最广泛的三维激光雷达数据集
- 回顾基于深度学习的语义分割方法
- 使用上述方法对数据集进行验证
- 回顾在解决数据集不足方面所做出的努力
- 讨论未来的发展方向,以得出问题的答案。现有的文献综述都集中在总结和分类已经存在的问题,并没有分析数据集不足所引起的匮乏效应。
本文是首先使用深度学习技术来分析三维语义分割数据集不足。文章的主要贡献有以下几点:
- 对现有的三维数据集和三维语义分割方法进行了广泛有条理的综述。其中深度学习的方法是研究的重点,因为它们面临着数据集不足的更多挑战。
- 对三个有代表性的数据集进行了深入的分析,交叉验证它们的大小和场景的多样性。利用三种最新的语义分割方法设计了多个实验,用于跨场景和跨数据集数据匮乏效应的评估。提出了一些新的发现,为今后的研究提供了指导。
- 从语义分割方法对精细标注数据依赖较少和数据标注方法的劳动强度较低两个方面总结了解决数据匮乏问题所做出的的努力。综述了三维激光雷达数据处理中结合特定领域知识的方法和一般用途。
- 从方法论和数据集两个角度对解决数据匮乏问题的未来潜在的主题进行了深入的讨论,随后提出了一些开放性的问题,这些问题导致了一些重要的主题,但是迄今未止尚未得到充分的研究。
II. 三维激光雷达数据集及统计分析
A. 三维激光雷达数据集
根据数据采集方法和主要应用,可以将数据集分成三组:
-
1.静态数据集,由扫描仪从静态视角收集数据,该系统主要用于捕获静态场景对象,用于街景、三维建模和虚拟现实等应用。
-
2.序列数据集,从车辆平台采集的用于ADAS(高级驾驶辅助系统)或自动驾驶应用程序的帧序列数据,可进一步分为点式或包围框标注的数据集。
-
3.合成数据集,通过模拟上述任何一种数据采集系统在虚拟世界中采集的数据。
表1几类数据集的比较
*图1展示了不同数据集的采集设备
B.数据集的统计分析
这里分析了三个有代表性的数据集:
- 1). Semantic3D: 最大并且最流行的静态数据集
- 2). SemanticKITTI: 最大并且最流行的序列数据集
- 3). SemanticPOSS:描述了城市动态场景带有丰富的汽车、人车和自行车的全新数据集。
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点云数据集中是非常常见的现象。因此统计点数量和比例对于解决数据匮乏问题可能没有意义。因此我们重新对点云数据进行了体素化表达。将三维空间均匀地细化为体素,将激光点云投影到体素当中,得到一组有效的体素$ V={V_i} \(, 每个体素\)V={v_i}\(中至少包含一个激光雷达点,其中\)v_i\(是一个\)K\(维的向量。每列\)vK_i$表示$k$标签在体素$i$中所占据的比列。在本文中,体素大小为$(0.5m)3$。
随后在体素上定义了很多度量来分析数据集的统计信息。\(C^k\)表示体素中类别\(k\)所占的比列,描述符\(H\)是一个\(K\)维的向量,用来表示不同类别的占比。给定场景的体素集合\(V\),
描述符\(H = (C^0, C^1, ..., K^{K-1})\),\(C^k = \sum_{v_i \in V} v^k_i\)。由于场景中动态物体如:车辆、行人和自行车比静态物体:建筑物、树和地面要多。因此定义一个向量来表达动态场景描述子$ O\(每一列表示每一帧数据每一个类别的数量。使用场景距离\)D\(来度量不同场景描述符之间的不同。 为了平衡不同场景的描述符,对其进行了归一化处理。最终给定两个场景\)S_i\(和\)S_j\(,描述符距离定义为\)D(S_i, S_j) = \parallel \widetilde{H}_i - \widetilde{H}_j \parallel_2/K \(, 类似地可以定义动态场景的距离\)D_0(S_i, S_j) = \parallel \widetilde{O}_i - \widetilde{O}_j \parallel_2/K$。
每个数据集都有自己的标签和类别的定义。这些定义大不相同。为了比较对一些标签进行了合并。Level 2定义用于场景多样性距离分析或者数据集的交叉比较,Level1用于分析每个数据集的特殊性。
图4不同数据集类别之间的比较
2).Semantic3D: Semantic3D在训练集中包含15个场景。每一帧都是使用地面激光扫描仪从固定位置测量的单个帧。在图5中,将整个数据集场景描述符\(H\)绘制为直方图。与其他两个数据集相比,Semantic3D主要描述静态场景,其中地面、植被和建筑物是主要的类别,建筑物所占比列明显高于其他类别。除了一些停车场内的车辆,几乎没有移动的物体。
根据数据测量的地理位置,将语义三维场景分为城市、农村和郊区三类。由于只有一个郊区场景,即\(S_9\),被单独隔离开来,如图6所示。将场景描述符\(H_S\)表达成直方图的形式,可以看出同一场景下的描述符差别很大,如\(S_8\)和\(S_13\)。不同场景下的描述符却很相似,如\(S_8\)和\(S_{13}\)。
无论场景是在同一组还是在不同组中,场景对象的类别比列差异很大。如,\(S_7\)是一个铁路场景。这里是自然环境中的地形,几乎没有建筑物。\(S3-5\)则相反。这些都是大多数教堂的场景,到处都是建筑物,但是几乎没有植被。由于其场景中没有动态物体,因此也就不适合动态场景描述符\(O\).
虽然包含了非常多样化的场景。但是由于每个场景只有一帧数据。这可能会给训练多个场景带来困难。
**图5不同数据集的种类分布
3).SemanticKITTI: SemanticKITTI包含有11个激光帧序列,是从欧洲街道上行驶的车辆上连续测量得到的。将每一序列视为一个场景。本文一共分析11个场景。在图5(b)中有某个场景的可视化。将场景描述符\(H\)以直方图的形式展示,和Semantic3D相比,SemanticKITTI描述了更大的街道场景,其中植被和地面是占比最高的两个类别。与其他数据集相比,建筑物所占的比例较低。数据集中有动态对象,但是人、骑手和自行车或摩托车的比例小于0.1%。
SemanticKITTI提供了动态对象的实例标签。动态对象的数目是描述动态场景的复杂度的索引,在图5中通过计算每帧实例数目来分析该索引。可以发现SemanticKITTI具有良好的车辆分布多样性,例如,每帧平均车辆实例分布在0到33之间。然而,人和骑手却很少。很少有场景超过8个人或者4个骑手。这个结果也可以通过图6中的动态场景描述符\(O_S\)来证明,从图6中的11个场景描述符可以发现,主要有两种模式类似于\(S_0\)和\(S_2\)中的分布情况,类别的分布并没有Semantic3D那么多样化。
SemanticKITTI以43552帧激光雷达数据11个序列描述移动车辆的街道场景。数据量大,有利于深度学习模型的训练。然而,场景并不像语义3d那样多样化,并且具有有限数量的动态对象。
4).SemanticKITTI:SemanticPOSS包含了6个激光雷达帧序列,这些序列是从北京大学校园内的移动车辆上连续测量的,数据格式类似于KITTI。相比于其他数据集,SemanticPOSS描述了大量的动态对象、混合交通和不受规则严格控制的交通场景。
将每一个序列当做一个场景来对待,因此本文一共分析了6个场景。从图6的场景描述符\(H\)构成的直方图可以看出其包括了更多的动态场景。可以发现它的类别比例分配类似于SemanticKITTI,但是它们都和Semantic3D有很大的不同。一个原因是数据的测量方法,另一个是街道场景由静态对象(如建筑物、植被和地面)所占据,这些静态对象的数据比例远高于动态对象。由于动态对象上的数据比例很小,如果将它们同静态对象进行分析,动态对象之间的差异很容易被忽略。
图5(e)分析了动态对象的数量。与SemanticKITTI相比,这三种动态对象车辆、行人和骑手分布的更为广泛,平均每个序列每帧数据包含车辆大约0~32辆,24个行人和12个骑手。在图6的动态场景描述符\(O_S\)同样证明了结果。SemanticPOSS描述了不同种类的动态对象和不同拥挤程度的场景。从图6中的6个动态场景描述符\(H_S\)可以看出其描述的静态场景也不相同。
SemanticPOSS在总共2998个激光雷达数据帧中以6个序列描述移动车辆的街道场景。尽管这个数据集的大小对于深度学习模型的训练时有限的,但它描述了丰富的动态场景,这是其他数据集比不上的。
图6不同数据集的类别分布情况
5).Cross-dataset Analysis:所有数据集的场景的混淆矩阵如图7(a)所示,每个值\(D(S_i,S_j)\)表示场景对多样性的分布距离,越白表示多样性越小,越暗表示多样性越多。
*图7不同数据集场景多样性的交叉分析
III.语义分割方法
在这一部分中,本文对三维语义分割的代表性方法进行了全面而系统的综述。
A.传统和深度学习的方法
三维语义分割方法已经被广泛研究了几十年。如图9所示,根据特征表示形式和处理流程,它们被分为传统和深度学习方法。
传统的三维语义分割方法通常采用手工特征来提取点的几何信息,并从支持向量机(SVM)或随机森林(RF)等分类器中输出类别的标签。
传统方法的一个常见过程是:
- 1)点云分割
- 2)计算分割后的每一部分的特征向量
- 3)使用分类器给每一部分赋予语义标签。
Anand 等人提取了可用于捕获各种特征和邻域关系的图,然后使用基于最大边距的方法进行分类。Wolf等人提取了一种有效的框架,捕捉每个片段的几何特征,并通过预先训练好的RF和CRF来标记它们。
另外一个常见的过程是直接设计每个点的特征向量,无需事先经过分割。RF-MSSF引入了多尺度领域的新定义,以提取一致的几何意义。Weinmann等人提取了一个包含四个独立部分的框架: 领域选择、特征提取、特征选择和分类。他们为每个组件尝试了各种现有的方法,并找到了最佳组合。
深度学习方法使用深度神经网络来学习特征表示,并通过端到端的过程将输入数据直接映射到语义标签。近年来,利用深度神经网络对三维激光雷达进行了大量的语义分割方面的研究,大致可以分为四类,如图9所示: - 1). 基于点的方法
- 2). 基于图像(Image-based)的方法
- 3). 基于体素的方法
- 4). 基于图形(Graph-based)的方法
B.Point-based Methods 基于点的方法
基于点的方法直接将原始点云作为输入,输出逐点标签。这些方法可以处理任意的非结构化的点云。原始点云处理的主要难点是如何从非结构化的点云中提取局部上下文特征。
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近邻点,这被称为点卷积的$ χ-Conv\(算子。由于\) χ-Conv$的可微性,使得其可以通过反向传播来进行训练。为了避免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本文进行实验的网络结果
C.基于图像的方法
基于图像的方法将三维激光雷达数据投影到曲面上,生成二维图像作为深度模型输入。这些方法通常来源于图像的语义分割模型,如完全卷积网络(FCN),输出预测的像素级别的标签重新投影到原始的三维激光雷达数据点上。
1)Multi-view Segmentation:基于多视角投影的方法。一个简单的策略就是选择几个不同的角度将点云投影到图像中。Felix等人将虚拟相机绕固定的垂直轴旋转以生成多视图合成图像,这些图像由基于FCN的多流体系结构处理。将像素级预测得分相加,然后重新投影到三维激光雷达点云中。
2)Range Image Segmentation:深度图像的分割。深度图像通常是通过将一帧三维激光雷达数据投影到球面上生成的。SqueezeSeg是一种典型的基于SqueezeNet和CRF的端到端的图像语义分割网络。其结构如图10(b)所示的SqueezeSegV2在模型结构、损失函数和稳健性方面进行了改进。
D.基于体素的方法
基于体素的方法将三维激光雷达数据转换为体素进行结构化数据表示。这些方法通常以体素作为输入,使用一个语义标签预测每个体素。
许多基于体素的方法都是基于三维卷积神经网络。Huang和You提出了一个典型的基于三维点云的卷积网络框架。SEGCloud是基于3D全卷积神经网络,该网络用于提出每个类别的体素概率。然后,在保持空间一致性的前提下,使用三线性插值和CRF将预测出来的概率值传递回原始的三维点。
基于体素的方法很难找到一个合适的体素大小来平衡精度和计算效率。一些方法有助于减少稀疏数据三维卷积的计算成本,同时保持较高的精度。Zhang等人将重力轴作为特征通道,利用二维卷积处理体素化后的点云,降低了三维卷积的计算成本。ScanComplete是一个基于三维CNN的模型,具有从粗到系的预测策略,可以动态选择体素大小并聚合多尺度局部特征。
E.基于图的方法
基于图的方法从三维激光雷达数据中构造一个图。顶点通常表示一个点或者一组点,边表示顶点之间的邻接关系。图构造和图卷积是这些方法的两个关键操作。
如图10(c)所示,超点图(SPG)是一个具有代表性的工作。该网络使用PointNet网络来对顶点的特征进行编码,并使用图卷积来提取邻接层的信息。GACNet提出了一种新的图卷积运算,即图注意力机制卷积(GAC)。在图的构造中,每个顶点代表一个点的信息,并且在每个顶点与其最邻近之间添加12条边。标准图卷积忽略了同一个对象点之间的结构关系。GAC动态地将注意权重分配给不同的相邻点以克服这一限制。
IV.实验和数据集匮乏效应分析
在实验阶段,本文基于三个典型的数据集进行了统计分析。我们设计了三个实验来回答以下三个问题:
-
1). 数据集场景的多样性如何影响模型的性能?
-
2). 训练数据集的大小如何影响模型的性能?
-
3). 三维激光雷达数据集在场景多样性和数据集大小方面是够存在数据集匮乏问题
本文选择了三个有代表性的方法来进行实验。这些方法是: -
PointNet++ 典型的基于点的作为输入的方法。
-
SqueezeSegV2 典型的基于图像的方法,以深度图像作为输入。
-
SPG 典型的基于图卷积的方法,以超点图作为输入。
表4列出了实验部分的关键信息
表5列出了不同方法的实验结果IOU数值
图11不同方法的mIOU数值
图12为第一个问题的实验结果
实验结果表明在乡村场景中训练的模型通常比在城市场景中训练的模型在高值被(HV)表现的更好。在混合场景中训练的模型在所有的场景中都表现的更加健壮。
图13为不同场景所训练出来的模型差异
表7给出了第二个问题的实验结果
数据集的大小对于语义分割结果的影响
作者通过大量的实验数据总结了第三个问题的结果
通常单个数据集没有足够的场景多样性来获得一个很好的广义模型,混合数据集中的训练模型可能会导致场景的多样性得到一些改善。然而,简单地合并更多的数据集以获得更好的场景多样性将面临着很大的阻力,甚至导致模型的性能出现下降。因此,场景多样性中的数据匮乏问题对于3D激光雷达的语义分割模型来说,提高其泛化能力仍然是一个挑战。
数据匮乏问题目前是深度学习领域的一个普遍问题,在这方面,已经在机器学习领域(包括计算机视觉、智能车辆和机器人技术)的解决方案进行了大量的研究。这些工作大致可以分成两组:
- 1). 开发人员不需要大量精细标注数据的方法
- 2). 开发不需要人力的新数据集标注方法。
图17解决数据集匮乏效应的方法
VI. 未来工作与总结
“数据匮乏”问题被认为是三维激光雷达语义分割中一个严重而普遍的问题。然后,与计算机视觉和机器学习的研究相比,三维激光雷达中数据匮乏问题的解决方案仍然是一个未被充分探索的领域。开发减少对精细标注的三维激光雷达数据集的新方法和开发更加多样化的三维激光雷达数据集课程成为未来两个主要的关注方向。本文通过方法论层面、数据集、以及一些公开的问题作为基于今后的研究课题提供了指导。
图18 方法论、数据集以及一些公开的问题
欢迎加入公众号读者群一起和同行交流,目前有SLAM、检测分割识别、三维视觉、医学影像、GAN、自动驾驶、计算摄影、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
投稿、合作也欢迎联系:simiter@126.com
长按关注计算机视觉life