论文精读

摘要(Abstract)


背景:

三维视觉感知任务,包括基于多摄像机图像的三维检测和地图分割,是自动驾驶系统必不可少的任务。


本文工作:

在这项工作中,我们提出了一个新的框架Bevformer,它通过时空转换器(spatiotemporal transformer)学习统一的BEV表示来支持多个自动驾驶感知任务。 简而言之,Bevformer通过预先定义的网格状BEV查询与空间和时间空间进行交互,从而利用空间和时间信息。 为了聚合空间信息,我们设计了空间交叉注意力机制(spatial cross-attention),每个BEV查询从摄像机视图中的感兴趣区域提取空间特征。 对于时间信息,我们提出了时态自注意力机制(temporal self-attention)来递归地融合BEV的历史信息。


实验结果:
我们的方法在Nuscenes测试集上获得了新的最先进的56.9%的NDS度量,比以前的最佳性能高9个点,与基于激光雷达的基线的性能持平。 在低能见度条件下,BEVFormer能显著提高目标的速度估计精度和查全率。


1. 介绍(Introduction)

背景介绍:3维空间感知

基于摄像机的感知

三维空间中的感知对于自动驾驶、机器人等各种应用至关重要。尽管基于激光雷达的方法取得了显著进展、以相机为基础的方法近年来引起了广泛的关注。 除了部署成本低之外,与基于激光雷达的同行相比,摄像机在检测远距离目标和识别基于视觉的道路元素(如交通灯、红绿灯)方面具有理想的优势。


传统方法1: 基于单目框架和跨相机后处理
在自动驾驶中,通过对周围场景的视觉感知,可以从多个摄像头给出的二维线索中预测出三维约束盒或语义图。 最简单的解决方案是基于单目框架和跨相机后处理(LSS, Detr)。 这个框架的缺点是,它单独处理不同的视图,不能跨摄像机捕捉信息,导致性能和效率低下。


传统方法2:基于BEV的检测框架
作为单目框架的替代方案,一个更统一的框架是从多摄像机图像中提取整体的表示。 鸟瞰(Bird’s-Eye-View,BEV)是一种常用的环境场景表示,因为它清晰地显示了物体的位置和规模,适合于各种自动驾驶任务,如感知和规划。 虽然以前的地图分割方法证明了BEV的有效性, 在三维物体检测中,基于BEV的方法并没有显示出比其他范式更大的优势。 其根本原因是三维目标检测任务需要很强的BEV特征来支持精确的三维包围盒预测,而从二维平面生成BEV是不适合的。 生成BEV特征的流行的BEV框架是基于深度信息,但这种范式对深度值或深度分布的准确性很敏感。 因此,基于BEV的方法的检测性能受到复合误差的影响,而不准确的BEV特征会严重损害最终性能。


研究动机:设计一种不依赖深度信息,自适应学习BEV特征的BEV生成方法

因此,我们的动机是设计一种不依赖深度信息,自适应学习BEV特征而不是严格依赖三维先验的BEV生成方法。 Transformer通过注意力机制动态聚合有价值的特征,从概念上满足了我们的需求。使用BEV特征执行感知任务的另一个动机是,BEV是连接时空空间的理想桥梁。 对于人类视觉感知系统来说,时间信息在推断物体运动状态和识别被遮挡物体方面起着至关重要的作用,视觉领域的许多工作已经证明了利用视频数据的有效性。 然而,现有的多摄像机三维检测方法很少利用时间信息。 目前自动驾驶面临的主要挑战是时间紧迫,场景中的物体变化迅速,因此简单地叠加交叉时间戳的BEV特征会带来额外的计算成本和干扰信息,这可能并不理想。 受递归神经网络启发, 我们利用BEV特征递归地传递过去到现在的时间信息,这与RNN模型的隐藏状态具有相同的精神。


解决方案:提出基于Transfromer的BEV 编码器——BEVformer。 优点:有效聚合时空信息,支持多种3维感知任务。

为此,我们提出了一种基于transformer的鸟瞰图(BEV)编码器,称为Bevformer,它可以有效地聚合来自多视角摄像机的时空特征和BEV的历史特征。 由Bevformer生成的BEV特征可以同时支持三维物体检测、地图分割等多个三维感知任务,对自动驾驶系统具有一定的应用价值。


关键设计:



图1:我们提出了Bevformer,这是一个自动驾驶的范例,它应用转换器和时间结构从多摄像机输入中生成鸟瞰(BEV)特征。 BEV-Former利用查询来查找空间/时间空间,并相应地聚合时空信息,从而有利于感知任务的更强表征。


如图1所示 该Bevformer包括三个关键设计:


(1)网格状的BEV查询(grid-shaped BEV queries),通过注意机制灵活地融合时空特征;


(2)空间交叉注意模块(spatial cross-attention module),从多摄像机图像中聚合空间特征;


(3)时间自注意模块(temporal self-attention module),从历史BEV特征中提取时间信息,有利于运动目标的速度估计和严重遮挡目标的检测,同时计算开销可以忽略不计。


利用Bevformer生成的统一特征,该模型可以与不同的任务特定头协同工作,如Deformable DETR和mask decoder,用于端到端的三维物体检测和地图分割。


主要贡献:

  • 我们提出了一种时空转换器编码器(spatiotemporal transformer encoder)Bevformer,它将多摄像机和或时间戳输入投射到BEV表示中。 借助统一的BEV特征,我们的模型可以同时支持多个自动驾驶感知任务,包括3D检测和地图分割。
  • 我们设计了一个可学习的BEV查询和一个空间交叉关注层(spatial cross-attention layer)和一个时间自关注层(temporal self-attention layer),分别从交叉摄像机中查找空间特征和从历史BEV中查找时间特征,然后将它们聚合成统一的BEV特征。
  • 我们在多个具有挑战性的基准上评估所提出的Bevformer,包括Nuscenes和Waymo。 与现有技术相比,我们的Bevformer始终在性能上有所改进。 例如,在相同的参数和计算开销下Bevformer在Nuscenes测试集上获得了56.9%的NDS,优于以前最好的检测方法Detr3D下降9.0个百分点(56.9%对47.9%)。 对于地图分割任务,我们也达到了最先进的性能,比Lift-Splat关于最具挑战性的车道分割。 我们希望这个简单而强大的框架可以作为后续3D感知任务的新基线。

2. 相关工作(Related Work)

2.1 基于Transformer的2D感知(Transformer-based 2D perception)

2.2 基于摄像机的3D感知(Camera-based 3D Perception)


3. BEVFormer

将多摄像机图像特征转换为鸟瞰(BEV)特征,可以为各种自动驾驶感知任务提供统一的周围环境表示。 本文提出了一种新的基于Transformer的BEV生成框架,该框架可以通过注意力机制有效地聚合来自多视点摄像机的时空特征和历史BEV特征。


3.1 整体结构(Overall Architecture)



图2:Bevformer的总体架构。 (a)Bevformer的编码器层包含网格状的BEV查询、时间自注意和空间交叉注意。 (b)在空间交叉注意中,每个BEV查询只与感兴趣区域中的图像特征交互。©在时间自注意中,每个BEV查询与两个特征交互:当前时间戳的BEV查询和前一个时间戳的BEV特征。


如图2所示, Bevformer有6个编码器层,每层都遵循Transformer的传统结构,除了三个定制的设计: BEV查询、空间交叉注意和时间自我注意。 具体地说,BEV查询是网格状的可学习参数,它旨在通过注意力机制从多摄像机视图查询BEV空间中的特征。 空间交叉注意和时间自注意是一种处理BEV查询的注意力机制层,用于根据BEV查询从多摄像机图像中查找和聚集空间特征以及从历史BEV中查找和聚集时间特征。


步骤:

    3.4 时间自注意力机制(Temporal Self-Attention)

    除了空间信息,时间信息对视觉系统理解周围环境也至关重要。 例如,在没有时间线索的情况下,从静态图像中推断运动物体的速度或检测高度遮挡的物体是具有挑战性的。为了解决这个问题,我们设计了时间自注意,它可以通过结合历史BEV特征来表示当前环境。

    我们的时间自我注意可以更有效地模拟长时间依赖,而不是多个叠加的BEV特征。 Bevformer从先前的BEV特征中提取时间信息,因此所需的计算量和所受的干扰信息较少。

    3.5 BEV特征的应用(Applications of BEV Features)

    • 针对三维目标检测,在二维检测器可变形检测器的基础上,设计了一种端到端的三维检测头。 改进包括使用单尺度BEV特征 B t B_t Bt​作为解码器的输入,预测3D包围盒和速度而不是2D包围盒,只使用L1损失来监督3D 包围盒回归。 利用检测头,我们的模型可以对三维边界盒
          和速度进行端到端的预测,而不需要NMS后处理。
    • 在地图分割方面,基于二维分割方法Panoption Segformer设计了一个地图分割头。 由于基于BEV的地图分割与常用的语义分割基本相同,我们使用了[22]和针对每个语义类别的固定类查询,包括汽车、车辆、道路(可驾驶区域)和车道。

    3.6 实现细节(Implementation Details)

        训练阶段:对于时间戳T处的每一个样本,我们从过去2秒的连续序列中随机抽取另外3个样本,这种随机抽样策略可以增加自我运动的多样性。 我们将这四个样本的时间戳表示为  t3、t2、t1、t 。 对于前三个时间戳的样本,它们负责循环生成BEV特征 {Bt−3​,Bt−2​,Bt−1​},并且该阶段不需要梯度。 对于时间戳  t−3 处的第一个样本,没有先前的BEV特征,时间自我注意退化为自我注意。 在时间 t 处,该模型基于多摄像机输入和先前的BEV特征Bt−1​
        生成BEV特征  Bt​,使得 Bt​ 包含跨越四个样本的时间和空间线索。 最后,我们将BEV特征 Bt​作为检测头和分割头的输入,并计算相应的损失函数。
        推断阶段: 在推理阶段,我们按照时间顺序对视频序列的每一帧进行评估。 上一个时间戳的BEV特征被保存并用于下一个时间戳,这种在线推理策略具有时间效率高和符合实际应用的特点。 虽然我们利用了时间信息,但我们的推理速度仍然可以与其他方法相媲美。

    参考


    https://github.com/zhiqi-li/BEVFormer