论文阅读:RGB and LiDAR fusion based 3D Semantic Segmentationfor Autonomous Driving

题目:RGB and LiDAR fusion based 3D Semantic Segmentation for Autonomous Driving

基于 RGB 和 LiDAR 融合的自动驾驶 3D 语义分割

来源:2019 IEEE Intelligent Transportation Systems Conference (ITSC)

链接:https://arxiv.org/pdf/1906.00208.pdf

0、摘要

        LiDAR 已成为自动驾驶应用的标准传感器,因为它们可提供高精度的 3D 点云。 LiDAR 还适用于夜间的弱光场景或由于相机性能下降的阴影。 LiDAR 感知对于包括目标检测和 SLAM 在内的算法正在逐渐成熟。然而,语义分割算法仍然相对较少被探索。受语义分割是一种成熟的图像数据算法这一事实的启发,我们探索了基于传感器融合的 3D 分割。我们的主要贡献是将 RGB 图像转换为用于 LiDAR 的极坐标网格映射表示,并设计早期和中期融合架构。此外,我们设计了一种结合了两种融合算法的混合融合架构。我们在 KITTI 数据集上评估我们的算法,该数据集为汽车、行人和骑自行车的人提供分割注释。我们评估了两种最先进的架构,即 SqueezeSeg 和 PointSeg,并在这两种情况下相对于仅 LiDAR 基线将 mIoU 分数提高了 10%。

1、引言

        自动驾驶是一项复杂的任务,机器人汽车有望在高度动态的环境中以完全自主的方式导航。为了完成这样的任务,自动驾驶汽车必须配备多个传感器和健壮的算法,以实时方式高精度感知周围环境。感知管道的第一步是从背景检测对象。仅靠对象检测不足以使机器人导航,必须进行可靠的分类,以确定规划交互的每个对象的类型,特别是对于诸如停车场[9][11]这样的复杂场景。这是一项至关重要的任务,因为一辆自动驾驶汽车对被遮挡后突然出现的行人的反应,会与一辆突然出现的车辆(例如)完全不同。此外,算法必须估计外部对象在后续帧中的位置,才能采取适当的行动。

        从这个角度来看,3D 语义分割是自动驾驶的一项关键任务,因为它同时执行对象的 3D 定位和分类,如图 1 所示。点云分割已在 [4] [10] [23] 中进行了研究。经典方法使用管道,包括从前景对象中分割地面、将对象点聚类在一起并根据手工制作的特征执行分类。由于连续任务中错误的累积,此类方法容易出现低性能。此外,它们不能很好地概括不同的驾驶环境。由于其强大的自动特征提取功能,深度学习最近在包括语义分割在内的多项任务中获得了广泛关注,它能够发现不同领域之间有时无法被人类解释的模糊关系。在本文中,我们采用执行 3D 语义分割的端到端卷积神经网络 (CNN)。我们的方法利用来自两个互补传感器的信息,即摄像头和 LiDAR,它们正在部署在最近的商用汽车中。相机传感器提供颜色,而激光雷达提供深度信息。 [22][21] 中的最新工作提供了仅从 LiDAR 理解语义的算法。我们通过将颜色信息与 LiDAR 数据融合用于 3D 语义分割任务来构建这项工作。我们实施了两种融合算法来研究添加颜色信息的影响。第一种方法是早期融合,我们在特征提取之前将信息融合为原始数据。第二种方法是中间融合,我们使用 CNN 从两种不同的模态中提取特征,然后执行融合特征级别。

        本文的主要贡献如下:

         1 )构建基于CNN的早期和中期融合架构,系统研究颜色信息对3D语义分割的影响;

        2 )对SqueezeSeg和PointSeg两种最先进算法的评估,通过与相机数据的融合实现显著改进;

         3 )设计RGB融合表示和混合融合策略,以提高性能。

         本文件编排如下。 第二节回顾了语义分割和点云分割的相关工作。 第三节讨论了我们算法的架构。 第四节详细介绍了使用的数据集、实验设置并讨论了获得的结果。 最后,第五节提出结论意见和今后的工作。

2、相关工作

2.1 图像语义分割

        [19] 中介绍了自动驾驶图像语义分割的详细调查,[2] [20] 中讨论了有效的设计技术。我们简要总结了逐像素分类的主要方法。在 [8] 中,patchwise 训练用于分类,而在 [6] 中,输入图像被送入拉普拉斯金字塔以提取层次特征。 [8]中使用了深度网络以避免进一步的后处理。 SegNet [1] 中采用端到端方法进行语义分割。在 [14] 中,网络学习了热图,这些热图被上采样以生成分类输出。在编码器和解码器之间引入了多个跳过连接以避免丢失分辨率。与 patch-wise 方法不同,这种方法使用完整图像来生成密集的语义分割输出。 SegNet [1] 提议部署一个编码器-解码器网络,其中利用来自相应编码器层的保留索引的信息对特征图进行上采样。基于颜色的分割已经有了一些改进,但通常它们不使用深度信息。

2.2 点云的语义分割Semantic Segmentation For Point Clouds

        相对于图像分割,关于点云语义分割的文献非常少。大多数 3D 对象检测文献都侧重于 3D 边界框检测,但它并不是许多场景中对象的最佳表示。这类似于 2D 分割,它提供了比图像中的 2D 边界框更好的表示。一般来说,LiDAR 感知的主要挑战是点云数据的稀疏性。它大大增加了外观的复杂性。因此,有许多不同的方法可以简化这种表示,包括体素、鸟瞰图和极地网格图。体素是聚类点云数据,它们仍然存在稀疏性。鸟瞰图是将点云简化为平面的最简单表示。然而,这会丢失高度信息,从而丢失检测物体所需的重要外观特征。

        鸟瞰激光雷达语义分割在[5]中执行,其中LiDAR点投影到xy平面网格上,并在每个网格上应用语义分类。其他方法将空间划分为具有预定义分辨率的体素[24],投影这些体素内的点云,并执行体素级分类。但是,体素化的主要问题是内存和处理能力所需的资源,以表示激光雷达传感器所覆盖的巨大体积,因为考虑到被占用和非占用的体素。[18]利用高清地图探讨了移动对象分割的有效实现。另一方面,还有其他方法使用3D点云执行语义分割,如PointNet [15]、PointNet++[15],这些方法将点云视为一组无序点。这种方法提供了任意观点的不变性,但在自动驱动中,特定观点是重要的。它也没有考虑到LiDAR扫描的结构。最近,Squeezeseg [22]在第III A节中详细讨论了极化图的问题。它使用激光雷达点云的球面表示,明确地模拟了扫描过程,并提供了一个相对密集的二维平面。这提供了利用基于图像的语义分割体系结构的机会。

3. 我们的算法PROPOSED ALGORITHM

3.1 激光雷达和摄像头极坐标网格图表示 

        LiDAR 传感器可以建模为一组排序的点,其中瞬间捕获 n 条射线的测量值,每条射线代表一层中的一个扫描点。这是在某个偏航角下执行的,然后 LiDAR 旋转到下一个偏航角以进行另一次测量。这将继续获得对车辆周围场景的完整 360° 感知。点云由大量点组成 N =(层数)×(每层点数),其中每层点数 =(偏航 FOV)\(发射角的偏航分辨率)。这种稀疏的 3D 数据可以重新整形为 2D 极坐标网格,其中高度是层数,宽度是每层检测到的点数,如图 2 所示。前视图是驾驶最重要的部分,用于前视的完整 LiDAR 扫描的子集是针对 90° 的视场 (FOV) 和 0.175° 的偏航分辨率、64 层和 5 个特征(X、Y、Z、I、D)构建的如图1所示,X、Y、Z为激光雷达传感器的直角坐标,I为扫描点强度,D为其深度。这种表示称为极坐标网格图 (PGM),该张量的大小为 64x512x5。

        相机二维图像是通过将光线投射到图像平面上获得的。通常,与 LiDAR 相比,相机可能具有不同的 FOV。例如,LiDAR 无法查看车辆的近场。相机的理想针孔投影模型也被现代镜头打破,这在鱼眼镜头的情况下非常明显。 LiDAR 通常投射到相机图像平面上 [13]。然而,这会导致 LiDAR 的稀疏表示,从而可能导致次优模型。在本文中,我们探索了一种将像素重新投影到密集的 LiDAR 极坐标网格地图平面上的替代方法。我们使用相对校准信息将 LiDAR 点云投影到 RGB 图像上。这在 LiDAR 扫描点和 RGB 像素之间建立了映射。通过使用此映射,我们将三个附加特征 (RGB) 增加到现有的点云特征张量 (XYZID),创建一个大小为 64x512x8 的张量,如图 3 所示,而大小为 64x512x1 的张量中相应的基本事实显示在图 3 的底部。该表示还可以扩展以映射汽车周围的多个摄像头,可以覆盖整个 360°。然而,它的缺点是不能利用没有映射到 LiDAR 点的彩色像素。(把图像投影到激光点云上)

3.2 . LiDAR 基线架构LiDAR baseline architecture

        我们的基线架构基于 SqueezeSeg [22],这是一种轻量级架构,仅使用 LiDAR 点云执行 3D 语义分割。网络架构如图 4(a)所示。它建立在 SqueezeNet [12] 之上,其中使用编码器直到 fire9 层从输入点云中提取特征。 Fire 单元包括 1x1 conv 层,它将输入张量压缩到其原始深度的四分之一。两个平行的卷积层后面是一个连接层,用于扩展压缩的张量。输出被传递到 fireDeconv 模块以进行上采样,其中在压缩层和扩展层之间插入反卷积层。跳跃连接用于连接深层和浅层,以保持高分辨率特征图并避免精度损失。最后,输出概率是通过最终卷积层之后的 softmax 层生成的。该架构的输入是一个 5 通道张量,其中包括用于 X、Y、Z 的三个层,用于描述点云中每个点的空间位置。第四层是深度图,显示了 LiDAR 传感器与目标点之间的极距。最后,第五层编码 LiDAR 光束的反射强度。我们将此输入称为 XYZDI。我们还使用 PointSeg [21] 实现了另一个基线架构,它改进了 SqueezeSeg。

 3.3 早期融合架构 Early-fusion architecture

        在这种架构中,我们的目标是将输入数据融合为原始值,这些值将由 CNN 进行处理以进行联合特征提取。使用了基线网络架构中描述的相同方法,但是本例中的输入张量由 8 个通道组成,除了 3 个 RGB 层外,这些通道是原始 XYZDI。这种架构的优点是网络有可能学习数据之间的关系并将它们有效地组合起来。然而,由于输入层的数量不同,这种架构不能直接利用像 ImageNet [3] 这样的大型数据集的预训练模型。我们将这种架构称为 XYZDIRGB,我们获得了比基线架构更好的结果,计算复杂度的增加可以忽略不计。

3.4中期融合架构 Mid-Fusion architecture

        我们构建了一个中间融合架构,其中融合发生在 CNN 编码器特征级别,如图 4(b)所示。在这种情况下,为每个输入模态构建了两个独立的编码器。对每个输入分别进行特征提取,然后使用连接层将处理后的特征图融合在一起。该模型在计算上比早期融合模型更复杂,因为编码器参数的数量增加了一倍。但是,当从系统级别来看时,可以利用单独的编码器来完成各自模态中的其他任务。与早期融合 [17] [16] 相比,该模型通常提供更好的性能。我们将此架构称为 XYZDI + DIRGB。实验发现,这种架构无法有效地融合模态,并且准确性的提高可以忽略不计。我们构建了一个早期融合和中期融合网络的混合网络,我们将 RGB 通道连接到 LiDAR 深度和强度通道。我们使用这种方法获得了比基线更好的改进。(这里看的有点乱,也不知道到底哪种效果好,后边有对比)

4.实验 EXPERIMENTS

在本节中,我们提供有关所用数据集和实验设置的详细信息。

4.1 数据集Datasets

        我们使用包含 12,919 帧的 KITTI raw [7] 数据集,其中 10128 帧被选为训练数据,2,791 帧被用作验证数据。我们出于多种原因选择此数据集。首先,它基于自动驾驶场景,这是我们工作的主要重点。此外,它还为多个类提供 3D 边界框注释。在 [22] 之后,我们将类别分为三组,即“汽车”、“行人”、“骑自行车的人”和“背景”。 “汽车”类别包括汽车、货车和卡车。我们关注这些类别,因为它们具有自动驾驶汽车的主要碰撞风险。每个 3D 边界框内的点都标有数据集提供的类,可用作 3D 语义分割的注释。我们利用 [22] 提供的数据拆分,以便对其进行有效比较。

4.2 实验设置

        我们利用水平前视场为 90° 的 PGM 数据表示,创建 64×512×nc 的 3D 张量,其中 nc 表示输入通道的数量,具体取决于手头的实验。在基线实验中,nc 仅是 5 个编码 LiDAR 数据,而在 Early-Fusion 中,nc 是 8 个连接到 LiDAR 通道的编码 RGB 层。在 Mid-Fusion 中,nc 在 DIRGB 分支中为 5,在 LiDAR 分支中为 5。输出是一个 64x512x1 张量,代表每个极坐标的分类。我们通过随机翻转 y 轴上的帧来使用数据增强。在所有实验中,我们将学习率设置为 0.01,优化器动量设置为 0.9。 Class-wise Intersection over Union (IoU) 用作性能指标,并计算所有类的平均 IoU。我们的模型是使用 TensorFlow 库实现的。我们在 1080-ti GPU 上运行训练和推理。

4.3 结果Results

表 I(顶部)显示了我们使用 SqueezeSeg 架构 [22] 的方法的定量评估。 XYZDI 结果是通过使用未融合的 KITTI 原始数据集训练公开网络 [22] 获得的。这些结果作为我们比较目的实验的基线。 XYZDIRGB 的结果显示,性能优于基线,平均 IoU 绝对增加 3%。 XYZDI + DIRGB 指的是我们提出的算法,它提供了最好的性能,平均 IoU 绝对增加了 3.7%。平均 IoU 的相对增加约为 10%。使用 PointSeg [21] 架构的结果在表 I(底部)中报告。 Early 和 MidFusion 明显优于仅使用 LiDAR 数据的结果。然而,早期融合的结果优于中期融合的结果。该结果与之前使用 SqueezeSeg 进行的实验以及我们之前关于融合架构的经验 [17] 不一致。经过仔细的重新实验以交叉验证结果,我们假设这可能是由于 PointSeg 网络中的非典型放大层与常规卷积层特征连接所致。

        据观察,非融合方法在推断体积小的类别时存在困难。我们认为这有以下三个原因。第一个是不平衡的数据集,尤其是 [22] 提供的建议拆分,其中只有 35% 的行人类用于训练,65% 用于测试。在 Cyclist 类中,63% 用于训练,37% 用于测试。另一方面,Car 类分为 78% 用于训练,22% 用于测试。第二个原因是类别不平衡,其中 Car 类占注释数据的 96%,而 Cyclist 类仅占注释数据的 1.4%,行人类也占注释数据的 1.6% 左右。第三个原因是,与 Car 类相比,这两个类的实例数量较少,这最大限度地减少了这些类特有的强大功能。我们相信这些原因在检测问题中发挥了重要作用。然而,早期或中期融合实验都提供了比仅使用 LiDAR 的结果更高的性能。在行人类别中,我们在早期和中期融合中分别获得了 3.3% 和 5.8%。在 Cyclist 类中,两种融合方法的 mIoU 分别提高了 2.3% 和 2.5%。使用 PointSeg 架构,我们获得了 3% 和 2.8% 的改进。

        图 5 显示了使用 SqueezeSeg 架构获得的结果之间的定性比较。结果表明,我们的方法使用第二列和第三列中说明的早期和中期融合改进了对汽车、行人和骑自行车者的检测。在图 5 的第一行和第二行中,非融合方法将骑车人分类为行人,其中早期融合提供了更好的准确性,但头部部分的分类不正确。 Mid-fusion 正确地对骑车人进行了分类,但是我们注意到骑车人的边缘出现了一些误报,我们认为这是由于卷积滤波器的平滑效应造成的。第三排,Early fusion和mid fusion取得了该车的最佳分类。

 由于轻量级架构,我们算法的性能是实时的,每次扫描大约需要 10 毫秒。早期融合几乎与非融合方法所用的执行时间相同,而两种架构中的中期融合花费了 3 毫秒以上。运行时详细信息列在表 I 的最后一列中。

5.结论 CONCLUSIONS

      在本文中,我们探讨了在 LiDAR 点云之外利用颜色信息进行自动驾驶 3D 语义分割任务的问题。我们将 RGB 图像重新映射到 LiDAR 极坐标网格映射表示,并构建了早期和中期融合架构。我们在 KITTI 数据集上提供了实验结果,并在两种情况下将两种最先进的算法 SqueezeSeg 和 PointSeg 改进了 10%。在未来的工作中,我们计划使用网络架构搜索技术探索更复杂的融合架构,并利用所有可用的彩色像素。  

(整体思路比较简单,相当于多一个维度,不过PointSeg这里并没有提及,应该这篇文章还没有用到SemanticKITTI的数据集。年份比较早,但仍可以借鉴)

整理不易,求点赞~

猜你喜欢

转载自blog.csdn.net/qq_53086461/article/details/128178133
今日推荐