BEV感知经验性的评估和可能改进的方法


BEV感知经验性的评估和可能改进的方法

总结了在各种基准上实现最佳结果的技巧和最有用的实践。建立在BEVFormer之上的BEVFormer++,用于仅用于相机检测,以及从SPVCNN派生的Voxel-SPVCNN用于LiDAR分割。这些实践经验可以作为无缝集成到其他BEV感知模型和评估效果的参考。基于Camera和基于LiDAR的环境下的数据增强,高效的BEV编码器设计,感知头和损失函数族,有用的测试时间增强(TTA)和集成策略等。

数据增强

数据增强在增强感知模型的稳健性和泛化能力方面起着至关重要的作用。通过综合扩展训练数据集的多样性,可以提高模型处理真实场景变化的能力。某些非仿射变换很难应用于图像或BEV空间的数据增强。例如,copy-paste和Mosaic等方法存在问题,因为它们可能会导致图像语义和3D空间信息之间的不一致。

BEVCamera (Camera-only) Detection

用于二维识别任务的常见图像数据增强适用于基于相机的Bev感知任务。一般来说,可以将增强分为仅涉及颜色变化的静态增强和移动像素的空间变换。

  • 基于颜色变化的增强效果可以直接应用。
  • 对于涉及空间变换的增强,除了相应地变换ground truth之外,相机参数的校准也是必要的。最近仅使用相机的方法中采用的常见增强方法有颜色抖动、翻转、调整大小、旋转、裁剪和栅格蒙版。

在Bev感知中有两种翻转图像的方法,称之为ImageLevel翻转和Bev-Level翻转。在图像级翻转期间,翻转图像并调整相机内部参数,而相机外部参数和GT框保持不变。这将保留3D到2D的投影关系。请注意,图像级翻转仅增强了2D特征提取,不会对与BEV关联的后续模块产生任何影响。

  • 在Bev级翻转中,翻转图像并对称地重新排列多视角图像,例如将左前摄像头切换到右前。保留了重叠区域的相干性。在调整外部参数时,摄影机内部参数保持不变,并且翻转Bev平面上的GT长方体。Bev级翻转提升了整个Bev感知模型。

在BEVFormer++中,使用了颜色抖动、翻转、多尺度调整和网格掩码。输入图像按0.5到1.2之间的系数缩放,按0.5的比率翻转;使用正方形蒙版随机遮罩总面积的最大30%。值得注意的是,BEVFormer++采用BEV级翻转。相关的见表4 ID6实验,表明数据增强对提高3D模型的性能起着至关重要的作用。由于BEVFormer使用序列输入,因此它确保输入增强后序列的每一帧的转换是一致的。

LiDAR Segmentaion

与检测任务不同,重数据增强可以应用于分割任务,包括随机旋转、缩放、翻转和点平移。

  • 对于随机旋转,从[0,2π)的范围中拾取一个角度,将旋转应用于x-y平面上的每个点。
  • 缩放从[0.9,1.1]的范围中选择比例因子,然后在点云坐标上相乘。
  • 随机翻转沿X轴、Y轴或同时沿X和Y轴进行。
  • 对于随机平移,每个轴的偏移与正态分布分开采样,平均值为0,标准差为0.1。

除了坐标和反射率之外,还可以利用额外的信息来提高模型的性能。

  • Painting[PointPainting,PointAugmenting]是利用图像信息增强点云数据的常用技术。对于未标注的图像数据,通过将点云标签投影到相应的图像上并对稀疏标注进行加密化,从带标注的点云数据中获得图像上的语义标签。训练图像模型以提供2D语义分割结果。然后,将预测的语义标签绘制为一个热点向量来指向云数据,作为表示图像语义信息的附加通道。
  • 此外,还可以使用时间信息,因为自动驾驶中的数据集通常是按顺序收集的。过去的连续帧与当前帧串联。附加一个通道来表示不同帧的相对时间信息。为了减少点数,应用了一个小的体素化网络。然后,将体素作为点作为的模型的输入。

BEV Encoder

BEVCamera: BEVFormer++

BEVFormer++有多个编码层,每个编码层都遵循传统的transformers结构,除了三个定制设计,即BEV查询、空间交叉注意和时间自我注意(BEV queries, spatial cross-attention, and temporal self-attention)。具体来说,BEV查询是网格形状的可学习参数,旨在通过注意机制从多camera视图查询BEV空间中的特征。空间交叉注意和时间自我注意是与BEV查询一起工作的关注层,用于从多camera图像中查找和聚集空间特征,以及从历史BEV特征中查找和聚集时间特征。

  • 在推断过程中,在时间戳t,将多个摄像头图像馈送到骨干网络(例如,ResNet-101),并获得不同摄像头视图的特征Ft。同时,保留了之前时间戳t−1处的BEV特征Bt−1。
    • 在每个编码层中,首先使用BEV查询Q通过时间自注意从先前的BEV特征Bt−1中查询时间信息。
    • 然后,使用BEV查询Q通过空间交叉注意从多camera特征Ft中查询空间信息。
    • 在前馈网络[transformer]之后,编码层生成精细化的BEV特征作为下一个编码层的输入。
    • 在六个堆叠编码层之后,生成当前时间戳t处的统一BEV特征Bt。
    • 3D检测头和地图分割头以BEV特征Bt为输入,对3D包围盒和语义地图等感知结果进行预测。

为了提高BEV编码器的特征质量,主要从以下三个方面进行了讨论。

表4

  • (A)2D Feature Extractor(2D特征抽取器)。
    • 在2D感知任务中改进主干网络特征表征质量也最有可能提高BEV任务的质量。
      • 在图像主干中,采用了在大多数2D感知任务中广泛使用的特征金字塔。如表4所示二维特征抽取器的结构设计,如最先进的图像特征抽取器[Swin transformer]、全局信息交互[Cornernet]、多层特征融合[FPN,Deformable detr]等都有助于更好地表示Bev感知的特征。除了结构设计,监督主干的辅助任务对BEV感知的性能也很重要,将在下面讨论。
  • (B)View transformation(视图变换)。
    • 该变换接受图像特征并将它们重新组织到BEV空间。超参数,包括图像特征的采样范围和频率,以及Bev分辨率,对于Bev感知的性能是至关重要的。
      • 采样范围决定图像后面的视锥的多少将被采样到Bev空间。默认情况下,此范围等于LiDAR注释的有效范围。当效率具有更高的优先级时,由于在大多数情况下它只包含不重要的信息,例如天空,所以观察锥体的上部z轴部分可能会受到损害。
      • 采样频率决定了图像特征的效用。较高的频率确保了该模型以较高的计算成本准确地对每个BEV位置的相应图像特征进行采样。
      • Bev分辨率决定了Bev特征的表示颗粒度,其中每个特征都可以精确地追溯到世界坐标中的栅格。为了更好地表示交通灯和行人等小尺度对象,需要高分辨率。相关实验在表格4 ID 2&3.
      • 在视图变换中,许多BEV感知网络中也存在特征提取操作,例如卷积块或变换器块。在BEV空间中加入更好的特征提取子网络也可以提高BEV感知性能。
  • (C)Bev时序融合(Temporal BEV fusion)。
    • 在给定Bev特征结构的情况下,Bev空间中的时间融合通常利用自我姿态信息来对齐时间Bev特征。然而,在这个对准过程中,其他代理的运动没有显式建模,需要通过模型进行额外的学习。
    • 因此,为了加强对其他运动主体特征的融合,在进行时间融合时增加交叉注意的感知范围是合理的。例如,可以在可变形的注意力模块中放大注意力偏移量的核大小,或者使用全局注意力。在表4中可以观察到相关的改进ID%1。

BEVLiDAR: Voxel-SPVCNN

由于粗体素化和激进的下采样,现有的3D感知模型对于识别小实例并不理想。

  • SPVCNN[83]在基于体素的分支中使用Minkowski UNET[119]。为了保持点云的分辨率,使用了额外的基于点的分支,而不需要进行下采样。基于点的分支和基于体素的分支的特征将在网络的不同阶段彼此传播。
  • 通过对原始SPVCNN[83]进行两个有效的修改而提出了Voxel-SPVCNN。
    • 与简单地对原始输入特征进行体素化相比,采用轻量级的3层MLP来提取点特征,然后进行体素化处理。
    • 此外,基于点的分支的输入被voxel-as-point分支所代替。该分支的网络结构仍然是MLP;但输入被替换为体素。
    • Voxel-SPVCNN的效率更高,因为基于点的分支的计算量大大减少,特别是在输入是多扫描点云的情况下。模型体系结构的改变带来了1.1Mou的改进(见表5 ID 7)。

Loss

BEVCamera-only Detection

  • BEV特征表示的一个多用途的好处是使模型能够在2D和3D目标检测中提出损失来进行训练。

    • 如表4 ID 16-20,当利用不同的检测头设计时,可以通过最小的修改来转移相应的损失,例如调整损失权重。
  • 除了3D目标的训练损失外,辅助损失在纯camera的Bev检测中也起着重要作用。

    • 一种类型的辅助损失是在2D特征提取器之上添加2D检测损失。这种监督增强了二维图像特征的局部化,进而有助于通过视觉变换在BEV感知中提供3D表示。在表4 ID 4中可以观察到利用这种辅助损耗的一个例子。
    • 另一种辅助损失是深度监督[BEVDepth]。当利用LiDAR系统产生的地面真实深度时,可以提高Bev感知的隐含深度估计能力,以获得准确的三维目标定位。
    • 这两项辅助任务都可以在训练期间应用,以提高成绩。通常采用2D检测或深度预训练骨干作为初始权重[BEVformer,DETR3D]。

LiDAR segmentation

与传统的交叉熵损失不同,Geo损失[139]和Lovasz损失[140]被用来训练所有模型。为了更好地区分不同类别的边界,Geo Lost对细节丰富的体素有很强的响应性。Lovasz Lost是一种可区分的联合交集(IOU)损失,以缓解阶级失衡问题。它将模型性能提高了0.6 Mou,如表5 ID 2。

展望

最大的挑战和未来的努力可能是:

  • (A)如何设计更准确的深度估计器;
  • (B)如何在一种新的融合机制中更好地对齐来自多个传感器的特征表示;
  • (C)如何设计一个无参数网络,使得算法性能可以自由地进行姿势变化或传感器位置,从而在不同的场景中实现更好的泛化能力;
  • (D)如何结合基础模型的成功知识来促进BEV感知。

下面详细分开讨论

Depth Estimation(深度估计)

基于视觉的Bev感知的核心问题在于准确的深度估计,因为该任务是在3D环境中执行的。目前解决深度预测的方法是

  • (A)伪LiDAR生成;
  • (B)将特征从2D提升到3D对应;
  • (C)LiDAR相机蒸馏;
  • (D)双目视差或时间运动。
    这些方向中的任何一个或组合都是有希望的。为了保证更好的性能,大量的监控数据也是至关重要的[80]。

另一个有趣而重要的方向是如何在训练过程中利用LiDAR信息(例如,作为深度监控),而在推理过程中只输入视觉输入。这对OEM(制造商)来说是非常有利的,因为我们经常从多个来源获得方便的大量培训数据,但出于部署考虑,发货产品上只提供摄像头输入。

Fusion Mechanism(融合机制)

根据融合模块在pipeline中的位置,到目前为止,大多数融合方法可以分为早期融合、中期融合或晚期融合。

  • 传感器融合算法最简单的设计是将来自相机和激光雷达的两组特征分别连接起来。然而,如何“对齐”来自不同来源的特性是至关重要的。
    • 这意味着:(A)相机的特征表示在3D几何空间而不是2D环境中被适当地描述;
    • (B)3D空间中的点云与2D域中的对应点云具有准确的对应关系,这意味着LiDAR和相机之间的软和/或硬同步得到了精细的保证。
  • 在上述前提条件的基础上,如何设计出优雅的融合方案需要社区更多的关注。
    • 这一部分的未来努力可能是:(A)利用自我和/或交叉注意在Transformer中整合来自各种模式的特征表示;
    • (B)从一般的多模式文献中获得的知识也可能是有利的,例如,CLIP formulation中的文本-图像对的哲学[18]可以启发自动驾驶领域不同传感器的信息集成。

Parameter-free Design to Improve Generalization(提高泛化能力的无参数设计)

BEV感知中最大的挑战之一是领域适应。一个数据集中的训练模型在另一个数据集中的表现和泛化程度。人们负担不起高昂的成本(培训、数据、注释等)在每一个数据集中的算法。

  • 由于Bev感知本质上是对物理世界的3D重建,我们认为一个好的探测器必须与相机参数捆绑在一起,例如,外参矩阵。不同的基准有不同的摄像机/传感器设置,对应于物理位置、重叠区域、视场(视场)、失真参数等。这些因素都会导致将良好性能从一个场景转移到另一个域的(极端)困难。
    • 为此,它敦促我们将网络与摄像机参数分离,使特征学习独立于外部和/或内部矩阵。学术界(extrinsic free,[190])和产业界(rectify module修正模块,[6])在这个方向上都有一些有趣的工作。尽管如此,这并不是一件微不足道的事情,作为未来的工作,最好从社区中进行更多的调查。无参数设计对于解决实际应用中由于道路颠簸和摄像机不稳定造成的检测不准确具有很强的鲁棒性。

Foundation Models to Facilitate BEV Perception(促进BEV感知的基础模型)

近年来,在一般视觉社区中,大型或基础模型[14、15、18、191、192]取得了令人印象深刻的性能,并在许多领域和任务中超越了最先进的技术。

  • 对于Bev的感知,至少有两个方面值得研究。
    • 一种是应用大型预先训练模型中的丰富知识,并提供更好的初始检查点来进行微调。然而,像上一节所暗示的那样,某些2D基础模型的直接自适应在3D BEV意义上可能不能很好地工作。如何设计和选择基础车型,以更好地适应自动驾驶任务,是我们可以接受的长期研究问题。
    • 另一个是如何发展多任务学习的想法,就像在Bev感知的基础模型(通才)中那样。在一般的视觉文献中有一些有趣的工作,其中OFA[193]、Uni-PerceiverMoE[194]、Gato[195]等将执行多个复杂的任务并获得令人满意的结果。我们能否将类似的理念应用到BEV感知中,并将多项任务统一在一个框架中?这是有意义的,因为自动驾驶中的感知和认知领域需要协作来处理复杂的场景,以实现最终的L5目标。

文章作者: oceanechy
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 oceanechy !
  目录