针对激光雷达(LiDAR)语义分割训练深度模型是一项挑战,这是由于点云固有的稀疏性。利用时间数据是克服稀疏性问题的自然补救措施,因为它使得输入信号变得更加密集。然而,由于内存限制,先前的多帧融合算法在利用充分的时序信息方面存在不足,并且它们还忽略了富有信息性的时序图像。
为了充分利用隐藏在长期时序点云和图像中的丰富信息,作者提出了时序聚合网络,简称
TASeg
。具体而言,作者提出了时序激光雷达聚合与蒸馏(TLAD)算法,它利用历史先验为不同的类别分配不同的聚合步骤。这可以在大大减少内存和时间开销的同时实现更高的准确度。
此外,TLAD还训练了一个注入了gt先验知识的教师模型来进行模型蒸馏,进一步提升了性能。为了充分利用时序图像,作者设计了一个时序图像聚合与融合(TIAF)模块,它能够大大扩展摄像头的视场角(FOV)并增强当前特征。摄像头视场角内的时序激光雷达点被用作媒介,将时序图像特征转换到当前坐标进行时序多模态融合。
此外,作者还开发了一个静态-移动切换增强(SMSA)算法,它利用充分的时序信息使目标能够自由切换其运动状态,从而极大地增加了静态和移动训练样本的数量。
作者的TASeg在三个具有挑战性的赛道上排名第一,即SemanticKITTI单扫描赛道、多扫描赛道和nuScenes激光雷达分割赛道,强烈证明了作者方法的优势。
代码可在https://github.com/LittlePey/TASeg获取。
1 Introduction
LiDAR分割旨在推理点云中每个点的语义信息,并在自动驾驶中发挥着不可或缺的作用[3, 21, 34, 42]。随着深度学习的兴起,大量的LiDAR分割算法[14, 19, 24, 39, 46]被提出。尽管它们取得了令人瞩目的成果,但分割性能仍然受到点云固有稀疏性的限制。为了缓解这一问题,有必要聚合时间序列数据。先前的多帧模型[4, 9, 22]由于GPU内存限制,只能融合少数LiDAR帧,这限制了它们利用长期时间点云中丰富的信息。尽管MSeg3D[20]堆叠了数十个LiDAR帧,但其内存和时间开销是无法接受的。此外,先前的研究集中在利用时间点云,而忽略了时间图像中隐藏的宝贵信息。
为了更好地利用长期时间信息,作者提出了一个“时间LiDAR聚合与蒸馏”(TLAD)算法。它能够高效地进行多帧聚合,同时实现更高的准确度。TLAD包括“灵活步长聚合”(FSA)和“ Mask 蒸馏”。FSA基于观察,模型对不同类别需要不同数量的时间点。对于自行车骑行者等困难类别,需要更多的点来产生准确的预测。然而,对于汽车和道路等容易类别,无需为它们聚合过多的点云帧。因此,作者提出为不同类别在点云序列中分配不同的聚合步长,这可以显著节省易分类别的内存和计算开销,同时为困难类别提供充足的时间点。为了识别时间点云中的类别,作者使用历史预测,考虑到时间数据是按时间顺序处理的,这与实际应用是一致的。
有趣的是,通过为不同类别分配不同步长,FSA实际上将历史先验注入到聚合的点云中。对于具有不同步长的类别,由于它们的不同密度,它们的模式可以更具辨别性。这使得由FSA积累的点云帧更有利于分割。实验结果表明,FSA不仅能够减少内存和时间成本,还能提高整体性能。为了进一步验证作者的想法,作者直接将时间点云的历史预测替换为它们的真实标签进行FSA。作者发现性能有了显著提升。这启发作者使用注入gt先验的模型来蒸馏注入历史先验的模型,作者称之为“ Mask 蒸馏”。
为了充分利用富有信息性的时间序列图像,作者设计了一个名为_Temporal Image Aggregation and Fusion_(TIAF)的模块。以往的多模态融合方法通常由于激光雷达(LiDAR)与相机之间视场(FOV)的不同而受限于图像特征。作者观察到,随着车辆前进,相机可以捕获不同的视场。通过聚合不同时间戳的图像,当前相机的视场可以得到大幅扩展。此外,时间序列图像可以为同一区域在不同时间戳提供不同的视角,从而提供更丰富的信息。作者的TIAF模块利用相应时间相机视场内的时序激光雷达点,通过姿态矩阵将历史图像特征转换到当前坐标系。在聚合所有时序图像特征之后,作者采用一系列3D稀疏卷积来融合这些特征,并将其转换为 Voxel 表示。最终,作者使用时序激光雷达点来聚集时序图像特征,以实现时序多模态融合。融合后的特征包含了时序激光雷达和时序图像信息,这有助于产生更精确的分割结果。据作者所知,作者是首个同时利用时序点云和时序图像进行激光雷达语义分割的研究。
此外,在多扫描任务中,模型需要区分移动目标(移动或静止)的运动状态,这非常具有挑战性。在本文中,作者充分利用时序信息显著提高了模型的多次扫描感知能力。具体而言,作者提出了一种名为_Static-Moving Switch Augmentation_(SMSA)的数据增强策略。它操纵移动目标的时序点云以切换其运动状态。通过这种方式,作者可以在没有静态或移动类别训练样本的情况下,显著增加静态和移动样本的数量。
总之,作者的主要贡献如下:
作者提出了一种名为“时间激光雷达聚合与蒸馏”的算法,该算法采用“灵活步长聚合”和“ Mask 蒸馏”技术,在显著降低内存和时间成本的同时,实现了更高的准确度。
-
作者设计了一个“时间图像聚合与融合”模块,该模块利用时间图像来扩大相机视场并增强当前特征。同时,它还提供了一种时间多模态融合方案。
-
作者提出了一种“静态-移动切换增强”算法,使静态和移动目标能够自由切换其运动状态。采用这项技术,作者可以大幅增加静态和移动的训练样本数量。
-
作者的时间聚合网络,名为
TASeg
,在SemanticKITTI和nuScenes基准测试上取得了令人印象深刻的结果。值得注意的是,作者的TASeg在三个挑战性赛道上排名第一。作者还提供了彻底的消融研究,以证明作者方法的有效性。
2 Related Work
激光雷达语义分割。
激光雷达语义分割的目标是为输入点云序列中的每个点分配一个唯一的类别标签。近年来,激光雷达分割算法得到了迅猛发展。例如,[26]是一项开创性工作,它使用每个点的共享多层感知机(MLP)来近似排列不变函数。[46]将传统立方体网格改为圆 Pillar 网格,并设计了一种非对称3D卷积网络。[19]通过径向窗口划分空间,这有助于平滑地增加感受野并提高性能。尽管这些方法在分割性能上表现良好,但它们仍将单一激光雷达帧作为输入,并未利用时间数据中丰富的语义和几何信息。
多帧激光雷达感知。
与单次激光雷达扫描相比,多次激光雷达扫描可以提供更充足的信息。近期,许多研究工作致力于时间序列激光雷达分割。例如,[8]利用贝叶斯滤波器探索时间一致性。[4]将历史点分入两组,以有效利用历史帧。尽管之前的多帧方法取得了成功,但由于GPU内存的限制,它们无法利用长期时间点云中隐藏的宝贵信息。[20]虽然堆叠了数十个激光雷达扫描,但内存和时间开销是无法接受的。在本文中,作者提出了一种高效的多帧聚合算法,该算法可以在实现更高性能的同时大幅节省内存和计算消耗。
多模态融合。
由于激光雷达和摄像头是三维语义分割的两个互补传感器,多模态融合近年来受到了越来越多的关注。然而,这些多模态融合方法通常由于激光雷达和摄像头的视场(FOV)不同而受到有限重叠区域的限制。[39]提出了一种跨模态知识蒸馏方法,该方法在推理时无需图像,但会导致大量RGB信息的丢失。[20]通过使用预测的伪摄像头特征来完成缺失的摄像头特征,但所使用的图像信息仍然受到当前摄像头视场的限制。在本文中,作者充分利用时间序列图像来扩大当前摄像头的视场并增强当前图像特征。
激光雷达感知的知识蒸馏。
知识蒸馏[12]被广泛应用于各个领域,因为它可以在不牺牲推理效率的情况下提高学生的性能。在激光雷达感知中,将一个笨重的教师模型压缩为轻量级的学生模型,以增强学生的表示学习,同时保持高效率。通过精心设计的跨模态知识蒸馏模块,将2D图像的先验知识蒸馏到3D点云中。利用多帧教师模型帮助单帧学生学习密集的3D特征。相比之下,作者的方法旨在将注入gt先验的多帧教师模型的知识转移到注入历史先验的多帧学生模型中。
3 Methodology
Temporal LiDAR Aggregation and Distillation
一种简单的利用连续点云序列的时间信息的解决方案是将序列中的所有点进行拼接,如下方程所示:
其中,
和
分别表示第
个点云帧及其对应的点标签。
是将第
帧坐标转换为第
帧的变换矩阵。
是时间点云的窗口大小,
表示拼接操作。
和
分别是聚合的激光雷达帧和点标签。尽管这种方法简单,但存在一些问题。一方面,直接拼接会消耗大量的GPU内存。另一方面,巨大的内存开销限制了多帧模型利用更多历史帧的能力,从而限制了最终的性能。
3.1.1 Flexible Step Aggregation
为了降低GPU内存消耗,作者可以采用间隔采样时间帧,然而这种方法同样不是最优的。较小的间隔会导致巨大的内存开销,而较大的间隔则无法利用足够的时序信息。为此,作者提出了灵活步长聚合(Flexible Step Aggregation,FSA)。作者的方法基于这样一个观察:对于不同的类别,模型需要不同数量的时序信息。对于困难类别,如自行车,需要更多的点来产生准确的预测。而对于容易的类别,如汽车和建筑物,无需为它们聚合许多点云帧。基于以上分析,作者 Proposal 根据它们的学习难度为不同的类别分配不同的步长。具体来说,作者利用历史预测将时序点云划分为几个类别组,并为每个组分配一个特定的采样步长。然后,作者用相应的步长为每个组聚合时序点。最终,将所有组的时序点与当前帧连接起来,形成一个聚合帧。
只要遵循难度更大的类别需要较小步长的原则,组的划分并不严格。例如,作者可以根据它们的分割性能将所有类别简单地划分为三个组,如[0, 80] mIoU,[80, 90] mIoU和[90, 100] mIoU。然后,作者为这三个组分配2、4和
(
表示作者不为此组聚合时序点)的步长。为了在不牺牲性能的情况下节省更多内存和计算资源,可以使用更细致的划分。正式地说,假设作者将时序点云划分为
组。作者以下面的方式为第
组聚合时序点:
这里
。
是第
类别组的采样步长,
表示向下取整操作。
是组 Mask ,表示
中的哪些点属于第
类别组。它可以从历史预测中获得。最后,作者将所有组的点与当前帧的标签连接起来:
通过这种方式,作者在保持关键时序信息的同时,丢弃了大量冗余的时序点。由于容易的类别通常较大且包含大量的点,因此可以进一步降低GPU内存开销。此外,通过为不同类别分配不同的步长,FSA实际上将历史先验注入到聚合的点云中。对于具有不同步长的类别,由于它们的不同密度(步长),它们的模式可以更具区分性,这使得分割由FSA聚合的多帧点云更加容易。表4中的实验验证了提出的FSA不仅可以节省内存和时间成本,还能实现更好的性能。
3.1.2 Mask Distillation
在作者的FSA中,作者使用历史预测来生成群体 Mask ,作者称之为伪 Mask 。由于 GT 标签比历史预测更准确,自然会产生这样的问题:如果作者使用由 GT 标签生成的gt Mask (即群体 Mask )来进行FSA会怎样?作者的实验表明,这样能大大提高性能。实际上,使用gt Mask 进行FSA可以为不同步骤的类别生成更具辨识度的模式。这激发作者去模拟一个在用gt Mask 聚合的时间点云上训练的模型特征。通过这种方式,作者的模型被引导去学习更多辨识度特征以区分不同类别。作者称这种方法为“ Mask 蒸馏”。具体来说,作者定义了学生特征图
和教师特征图
上的蒸馏损失:
由于使用伪 Mask 和gt Mask 聚合的时间点云是不同的,作者使用 Mask