ECCV2022 | BEVFormer原文翻译

BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

BEVFormer: 通过时空变换器从多摄像头图像中学习鸟瞰图表征

Figure 1:  We propose BEVFormer, a paradigm for autonomous driving that applies both Transformer and Temporal structure to generate bird's-eye-view (BEV) features from multi-camera inputs. BEVFormer leverages queries to lookup spatial/temporal space and aggregate spatiotemporal information correspondingly, hence benefiting stronger representations for perception tasks.

图 1:我们提出的 BEVFormer 是一种自动驾驶范例,它应用变换器和时空结构从多摄像头输入生成鸟瞰图 (BEV) 特征。BEVFormer 利用查询功能查找空间/时间空间,并相应地汇总时空信息,从而为感知任务提供更强的表征。

Abstract
内容摘要
        三维视觉感知任务,包括基于多摄像头图像的三维检测和地图分割,对于自动驾驶系统至关重要。在这项工作中,我们提出了一个名为 BEVFormer 的新框架,它利用时空变换器学习统一的 BEV 表征,以支持多种自动驾驶感知任务。简而言之,BEVFormer 通过预定义的网格状 BEV 查询与空间和时间进行交互,从而利用空间和时间信息。为了聚合空间信息,我们设计了空间交叉关注,使每个 BEV 查询都能从跨摄像头视图的感兴趣区域提取空间特征。对于时间信息,我们提出了时间自关注,以反复融合历史 BEV 信息。我们的方法在 nuScenes 测试集上的 NDS 指标达到了 56.9% 的最新水平,比之前的最佳技术高出 9.0 个百分点,与基于激光雷达的基线性能相当。我们进一步表明,BEVFormer 显著提高了低能见度条件下速度估计的准确性和物体的召回率。代码见 https://github.com/zhiqi-li/BEVFormer。

1 引言Introduction
        三维空间感知对于自动驾驶、机器人等各种应用至关重要。尽管基于激光雷达的方法[43, 20, 54, 50, 8]取得了显著进展,但基于摄像头的方法[45, 32, 47, 30]近年来也引起了广泛关注。与基于激光雷达的方法相比,摄像头除了部署成本低外,还具有探测远距离物体和识别基于视觉的道路要素(如交通信号灯、停车线)的理想优势。
        在自动驾驶中,对周围场景的视觉感知有望从多个摄像头提供的二维线索中预测出三维边界框或语义图。最直接的解决方案是基于单目框架 [45, 44, 31, 35, 3] 和跨摄像头后处理。这种框架的缺点是,它分别处理不同的视图,无法捕捉跨摄像头的信息,导致性能和效率低下[32, 47]。
        作为单目框架的替代方案,一种更为统一的框架是从多摄像头图像中提取整体表征。鸟瞰图(BEV)是一种常用的周围场景表示法,因为它能清晰地显示物体的位置和比例,适用于各种自动驾驶任务,如感知和规划 [29]。虽然之前的地图分割方法证明了 BEV 的有效性 [32, 18, 29],但在三维物体检测方面,基于 BEV 的方法与其他范例相比并没有显示出明显的优势 [47, 31, 34]。其根本原因在于,三维物体检测任务需要强大的 BEV 特征来支持精确的三维边界框预测,但从二维平面生成 BEV 却不是一件容易的事。一种基于深度信息生成 BEV 特征的流行 BEV 框架 [46, 32, 34],但这种模式对深度值或深度分布的准确性很敏感。因此,基于 BEV 的方法的检测性能会受到复合误差的影响 [47],而不准确的 BEV 特征会严重影响最终性能。因此,我们设计了一种不依赖深度信息的 BEV 生成方法,它可以自适应地学习 BEV 特征,而不是严格依赖 3D 先验。Transformer 利用注意力机制动态聚合有价值的特征,从概念上满足了我们的要求。
        使用 BEV 特征执行感知任务的另一个动机是,BEV 是连接时空的理想桥梁。对于人类视觉感知系统来说,时间信息在推断物体运动状态和识别遮挡物体方面起着至关重要的作用,视觉领域的许多研究都证明了使用视频数据的有效性[2, 27, 26, 33, 19]。然而,现有的最先进的多摄像头 3D 检测方法很少利用时间信息。其面临的重大挑战是,自动驾驶对时间要求严格,场景中的物体变化迅速,因此简单地堆叠交叉时间戳的 BEV 特征会带来额外的计算成本和干扰信息,效果可能并不理想。受递归神经网络(RNN)[17, 10]的启发,我们利用 BEV 特征从过去到现在递归地传递时间信息,这与 RNN 模型的隐藏状态具有相同的精神。
        为此,我们提出了一种基于变换器的鸟瞰(BEV)编码器,称为 BEVFormer,它能有效地汇聚来自多视角摄像机的时空特征和历史 BEV 特征。由 BEVFormer 生成的 BEV 特征可同时支持多种三维感知任务,如三维物体检测和地图分割,这对自动驾驶系统非常有价值。如图 1 所示,我们的 BEVFormer 包含三个关键设计,分别是:(1)网格状 BEV 查询,通过注意力机制灵活融合空间和时间特征;(2)空间交叉注意力模块,聚合多摄像头图像的空间特征;(3)时间自注意力模块,从历史 BEV 特征中提取时间信息,有利于运动物体的速度估计和严重遮挡物体的检测,同时带来的计算开销可以忽略不计。有了 BEVFormer 生成的统一特征,该模型就能与不同的特定任务头(如可变形 DETR [56] 和掩码解码器 [22])协作,实现端到端的 3D 物体检测和地图分割。

我们的主要贡献如下:

  1. 我们提出的 BEVFormer 是一种时空变换编码器,可将多摄像头和/或时间戳输入投射到 BEV 表示中。利用统一的 BEV 特征,我们的模型可以同时支持多种自动驾驶感知任务,包括三维检测和地图分割。
  2. 我们设计了可学习的 BEV 查询以及空间交叉注意层和时间自我注意层,以分别查找来自交叉摄像头的空间特征和来自历史 BEV 的时间特征,然后将它们汇总为统一的 BEV 特征。
  3.  我们在多个具有挑战性的基准(包括 nuScenes [4] 和 Waymo [40])上对所提出的 BEVFormer 进行了评估。与之前的技术相比,我们的 BEVFormer 不断提高性能。例如,在参数和计算开销相当的情况下,BEVFormer 在 nuScenes 测试集上实现了 56.9% 的 NDS,比之前的最佳检测方法 DETR3D [47] 高出 9.0 个百分点(56.9% vs. 47.9%)。在地图分割任务中,我们也取得了最先进的性能,在最具挑战性的车道分割上比 Lift-Splat [32] 高出 5.0 个百分点。我们希望这个简单而强大的框架能成为后续三维感知任务的新基准。

2 相关工作
2.1  基于变换器的二维感知 Transformer-based 2D perception

        最近,一种新的趋势是使用变换器来重新制定检测和分割任务 [7,56,22]。DETR [7] 使用一组对象查询,通过交叉注意力解码器直接生成检测结果。然而,DETR 的主要缺点是训练时间较长。可变形 DETR [56] 通过提出可变形注意力解决了这一问题。与 DETR 中的 vanilla 全局注意力不同,可变形注意力与局部感兴趣区域交互,只对每个参考点附近的 K 个点进行采样并计算注意力结果,因此效率高,大大缩短了训练时间。可变形注意力机制的计算方法如下:

        其中,q、p、x 分别代表查询特征、参考点特征和输入特征。i 表示注意力头,Nhead 表示注意力头总数。Wi∈RC×(C/Hhead) 和 Wi0∈R(C/Hhead)×C 是可学习权重,其中 C 是特征维度。Aij ∈[0,1] 是预测的注意力权重,并通过 P Nkey j=1 Aij = 1 进行归一化。在这项工作中,我们将可变形注意力扩展到三维感知任务中,以有效聚合空间和时间信息。

2.2 基于摄像头的三维感知Camera-based 3D Perception
        以往的三维感知方法通常独立执行三维物体检测或地图分割任务。对于三维物体检测任务,早期的方法与二维检测方法类似[1, 28, 49, 39, 53],通常根据二维边界框预测三维边界框。Wang 等人[45]沿用了先进的二维检测器 FCOS [41],直接预测每个物体的三维边界框。DETR3D [47] 将可学习的 3D 查询投射到 2D 图像中,然后采样相应的特征,进行端到端的 3D 边框预测,而无需 NMS 后处理。另一种解决方案是将图像特征转换为 BEV 特征,然后从自上而下的视图预测三维边界框。将图像特征转化为 BEV 特征的方法有:利用深度估算[46]或分类深度分布[34]中的深度信息。OFT [36] 和 ImVoxelNet [37] 将预定义的体素投射到图像特征上,生成场景的体素表示。最近,M2BEV[48] 进一步探索了基于 BEV 特征同时执行多个感知任务的可行性。

        实际上,从多摄像头特征生成 BEV 特征的研究在地图分割任务中更为广泛[32, 30]。一种直接的方法是通过反透视映射(IPM)将透视图转换成 BEV [35, 5]。此外,Lift-Splat [32] 还能根据深度分布生成 BEV 特征。方法 [30, 16, 9] 利用多层感知器学习从透视图到 BEV 的转换。PYVA[51]提出了一种跨视角转换器,可将前视角单目图像转换成 BEV,但由于全局注意力(global attention mechinism)的计算成本较高[42],这种模式并不适合融合多摄像头特征。除了空间信息外,之前的研究[18, 38, 6]还通过堆叠多个时间戳的 BEV 特征来考虑时间信息。堆叠 BEV 特征会限制固定时间内可用的时间信息,并带来额外的计算成本。在这项工作中,所提出的时空变换器通过同时考虑空间和时间线索生成当前时间的 BEV 特征,而时间信息则通过 RNN 方式从之前的 BEV 特征中获取,这只会带来很少的计算成本。


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

3 BEVFormer
        将多摄像头图像特征转换为鸟瞰图(BEV)特征可为各种自动驾驶感知任务提供统一的周围环境表示。在这项工作中,我们提出了一种新的基于变换器的 BEV 生成框架,它能有效聚合来自多视角摄像头的时空特征,并通过注意机制生成 BEV 特征。

3.1 总体架构 Overall Architecture
        如图 2 所示,BEVFormer 有 6 个编码器层,每个编码器层都遵循传统的变换器结构[42],但有三个量身定制的设计,即 BEV 查询、空间交叉注意和时间自注意。具体来说,BEV 查询是网格状的可学习参数,旨在通过注意机制从多摄像头视图中查询 BEV 空间中的特征。空间交叉注意和时间自我注意是与 BEV 查询协同工作的注意层,用于根据 BEV 查询查找和汇总多摄像头图像中的空间特征以及历史 BEV 中的时间特征。
        在推理过程中,在时间戳 t,我们将多摄像头图像输入主干网络(如 ResNet-101 [15]),并获得不同摄像头视图的特征 Ft ={Fti}Nview i=1,其中 Fti 是第 i 个视图的特征,Nview 是摄像头视图的总数。同时,我们保留了之前时间戳 t-1 的 BEV 特征 Bt-1。在每个编码器层中,我们首先使用 BEV 查询 Q,通过时间自关注从之前的 BEV 特征 Bt-1 中查询时间信息。然后,我们使用 BEV 查询 Q,通过空间交叉注意从多摄像头特征 Ft 中查询空间信息。经过前馈网络[42]后,编码器层输出精炼的 BEV 特征,作为下一个编码器层的输入。经过 6 层编码器堆叠后,生成当前时间戳 t 的统一 BEV 特征 Bt。三维检测头和地图分割头以 BEV 特征 Bt 为输入,预测三维边界框和语义地图等感知结果。

3.2 BEV 查询  BEV Queries
        我们预先定义了一组网格状可学习参数 Q∈RH×W×C 作为 BEVFormer 的查询,其中 H 和 W 是 BEV 平面的空间形状。具体来说,位于 Q 的 p = (x, y) 处的查询 Qp∈R1×C 负责 BEV 平面上相应的网格单元区域。BEV 平面上的每个网格单元对应现实世界中 s 米的大小。默认情况下,BEV 特征的中心对应于小汽车的位置。按照通常的做法[14],我们在将 BEV 查询 Q 输入 BEVFormer 之前,为其添加可学习的位置嵌入。

3.3 空间交叉关注 Spatial Cross-Attention
        由于多摄像头三维感知的输入规模很大(包含 Nview 个摄像头视图),香草多头注意力[42]的计算成本极高。因此,我们开发了基于可变形注意力(deformable attention)的空间交叉注意力[56],这是一种资源节约型注意力层,其中每个 BEV 查询 Qp 只与其感兴趣的区域进行跨摄像机视图交互。然而,可变形注意力最初是为二维感知设计的,因此需要针对三维场景进行一些调整。
如图 2 (b)所示,我们首先将 BEV 平面上的每个查询提升为类似于支柱的查询 [20],从支柱上采样 Nref 3D 参考点,然后将这些点投射到 2D 视图上。对于一个 BEV 查询,投影出的 2D 点只能落在某些视图上,而其他视图则不会命中。在此,我们将命中的视图称为 Vhit。然后,我们将这些二维点视为查询 Qp 的参考点,并围绕这些参考点对命中视图 Vhit 中的特征进行采样。最后,我们对采样特征进行加权求和,作为空间交叉注意力的输出。空间交叉注意(SCA)过程可表述为:

其中,i 表示摄像机视图,j 表示参考点,Nref 是每个 BEV 查询的参考点总数。Fti 是第 i 个相机视图的特征。对于每个 BEV 查询 Qp,我们使用项目函数 P(p,i,j)来获取第 i 个视图图像上的第 j 个参考点。接下来,我们将介绍如何从投影函数 P 中获取视图上的参考点。首先,我们计算 Qp 的 p = (x, y) 处的查询所对应的真实世界位置(x0 , y0 ),如公式 3 所示。


其中,H、W 是 BEV 查询的空间形状,s 是 BEV 网格的分辨率大小,(x0 , y0 ) 是以小汽车位置为原点的坐标。在三维空间中,位于 (x0 , y0 ) 处的物体会出现在 Z 轴上高度为 z0 的位置。因此,我们预先定义了一组锚点高度 {z0j}Nref j=1,以确保能捕捉到出现在不同高度的线索。这样,对于每个查询 Qp,我们都会得到一个由三维参考点 (x0 , y0 , z0j )Nref j=1 组成的支柱。最后,我们通过摄像机的投影矩阵将三维参考点投影到不同的图像视图上,投影矩阵可写成:

这里,P(p, i, j) 是第 i 个视图上的二维点,由第 j 个三维点 (x0 , y0 , z0j ) 投影而来;Ti∈R3×4 是第 i 个摄像机的已知投影矩阵。

3.4 时间自我注意
除了空间信息,时间信息对于视觉系统理解周围环境也至关重要 [27]。例如,从静态图像中推断运动物体的速度或检测高度遮挡的物体,如果没有时间线索,就很难做到。为了解决这个问题,我们设计了时态自注意力,它可以通过结合历史 BEV 特征来表示当前环境。

给定当前时间戳 t 的 BEV 查询 Q 和保留在时间戳 t-1 的历史 BEV 特征 Bt-1,我们首先根据自我运动将 Bt-1 与 Q 对齐,使同一网格上的特征对应同一真实世界的位置。这里,我们将对齐后的历史 BEV 特征 Bt-1 称为 B0t-1。然而,从时间 t - 1 到 t,可移动物体会在现实世界中以不同的偏移量移动。在不同时间的 BEV 特征之间构建同一物体的精确关联具有挑战性。因此,我们通过时间自我注意层(TSA)来模拟特征之间的这种时间联系,其写法如下:


其中,Qp 表示位于 p = (x, y) 处的 BEV 查询。此外,与 vanilla 可变形注意力不同的是,时态自我注意力中的偏移量 ∆p 是通过 Q 和 B0t-1 的串联来预测的。特别地,对于每个序列的第一个样本,时间自我注意将退化为无时间信息的自我注意,我们用重复的 BEV 查询 {Q,Q} 代替 BEV 特征 {Q,B0t-1}。与 [18, 38, 6] 中简单地堆叠 BEV 相比,我们的时态自我注意能更有效地建立长时态依赖模型。BEVFormer 从之前的 BEV 特征中提取时间信息,而不是多次堆叠 BEV 特征,因此需要的计算成本更低,受到的干扰信息更少。
3.5 BEV 特征的应用
由于 BEV 特征 Bt∈RH×W×C 是一种通用的二维特征图,可用于各种自动驾驶感知任务,因此可在二维感知方法 [56, 22]的基础上稍加修改,开发三维物体检测和地图分割任务头。
在三维物体检测方面,我们在二维检测器 "可变形 DETR"[56]的基础上设计了端到端的三维检测头。这些修改包括使用单尺度 BEV 特征 Bt 作为解码器的输入,预测三维边界框和速度而非二维边界框,以及仅使用 L1 损失来监督三维边界框回归。有了检测头,我们的模型可以端到端预测三维边界框和速度,而无需进行 NMS 后处理。

在地图分割方面,我们在二维分割方法 Panoptic SegFormer [22] 的基础上设计了一个地图分割头。由于基于 BEV 的地图分割与普通的语义分割基本相同,我们利用 [22] 的掩码解码器和类固定查询来锁定每个语义类别,包括汽车、车辆、道路(可行驶区域)和车道。

3.6 实现细节
训练阶段。对于时间戳 t 的每个样本,我们从过去 2 秒的连续序列中随机抽取另外 3 个样本,这种随机抽样策略可以增强自我运动的多样性[57]。我们将这四个样本的时间戳分别记为 t-3、t-2、t-1 和 t。对于前三个时间戳的样本,它们负责循环生成 BEV 特征 {Bt-3、Bt-2、Bt-1},这一阶段不需要梯度。对于时间戳 t-3 的第一个样本,之前没有 BEV 特征,时间自注意退化为自注意。在时间 t 时,模型会根据多摄像头输入和之前的 BEV 特征 Bt-1 生成 BEV 特征 Bt,这样 Bt 就包含了跨越四个样本的时间和空间线索。最后,我们将 BEV 特征 Bt 输入检测和分割头,并计算相应的损失函数。

推理阶段。在推理阶段,我们按时间顺序评估视频序列的每一帧。上一个时间戳的 BEV 特征被保存并用于下一个时间戳,这种在线推理策略既省时又符合实际应用。虽然我们利用了时间信息,但推理速度仍可与其他方法媲美 [45, 47] 。

4 实验
4.1 数据集

        我们在两个具有挑战性的公共自动驾驶数据集上进行了实验,即 nuScenes 数据集[4] 和 Waymo 开放数据集[40]。
        nuScenes 数据集[4] 包含 1000 个场景,每个场景持续时间约为 20 秒,关键样本的注释频率为 2Hz。每个样本由来自 6 个摄像头的 RGB 图像组成,水平视场角为 360°。在检测任务中,有来自 10 个类别的 140 万个注释三维边界框。我们按照 [32] 中的设置执行 BEV 分割任务。该数据 集还为检测任务提供了官方评估指标。nuScenes 的平均精度 (mAP) 是使用地平面上的中心距而不是三维联合交叉点 (IoU) 计算的,以便与预测结果和地面实况相匹配。nuScenes 指标还包含 5 种真阳性指标(TP 指标),包括 ATE、ASE、AOE、AVE 和 AAE,分别用于测量平移、比例、方向、速度和属性误差。nuScenes 还定义了 nuScenes 检测得分(NDS),即 NDS= 1 10 [5mAP+P mTP∈TP(1-min(1, mTP))],以捕捉 nuScenes 检测任务的各个方面。
        Waymo 开放数据集[40]是一个大规模自动驾驶数据集,包含 798 个训练序列和 202 个验证序列。需要注意的是,Waymo 提供的每帧 5 幅图像的水平视场角仅为 252°,但提供的注释标签却环绕自我汽车 360°。我们删除了这些在训练集和验证集的任何图像上都无法看到的边界框。由于 Waymo 开放数据集规模大、速率高[34],我们从训练序列中每隔 5 帧采样一次,使用训练分割子集,只检测车辆类别。我们使用 0.5 和 0.7 的 3D IoU 阈值来计算 Waymo 数据集上的 mAP。
4.2 实验设置
        根据之前的方法 [45, 47, 31],我们采用了两种骨干网: 从 FCOS3D [45] 检查点初始化的 ResNet101-DCN [15, 12] 和从 DD3D [31] 检查点初始化的 VoVnet-99 [21]。默认情况下,我们使用 FPN [23] 输出的多尺度特征,尺寸为 1/16、1/32、1/64,维度为 C = 256。在 nuScenes 的实验中,BEV 查询的默认大小为 200×200,X 轴和 Y 轴的感知范围为 [-51.2m, 51.2m],BEV 网格的分辨率 s 为 0.512m。我们对 BEV 查询采用可学习的位置嵌入。BEV 编码器包含 6 个编码层,并在每一层中不断完善 BEV 查询。每个编码器层的输入 BEV 特征 Bt-1 都是相同的,不需要梯度。对于每个局部查询,在由可变形注意力机制实现的空间交叉注意力模块中,它对应于三维空间中不同高度的 Nref = 4 个目标点,预定义的高度锚点从 -5 米到 3 米均匀采样。对于二维视图特征上的每个参考点,我们在每个头部的参考点周围使用四个采样点。默认情况下,我们使用 24 个历元对模型进行训练,学习率为 2×10-4。
        在 Waymo 上进行实验时,我们改变了一些设置。由于 Waymo 的摄像头系统无法捕捉到小我汽车周围的整个场景[40],BEV 查询的默认空间形状为 300×220,X 轴的感知范围为[-35.0m, 75.0m],Y 轴的感知范围为[-75.0m, 75.0m]。每个腰带的分辨率 s 为 0.5 米。小车位于 BEV 的(70,150)处。
        基线。为了消除任务头的影响并公平比较其他 BEV 生成方法,我们使用 VPN [30] 和 Lift-Splat [32] 替换 BEVFormer,并保持任务头和其他设置不变。我们还将 BEVFormer 调整为一个静态模型,称为 BEVFormer-S,方法是将时间自注意力调整为 vanilla 自注意力,而不使用历史 BEV 特征。

4.3 三维物体检测结果
        为了与之前最先进的 3D 物体检测方法进行公平比较,我们仅在检测任务中使用检测头训练我们的模型。在表 1 和表 2 中 表 1 和表 2 2 中,我们报告了 nuScenes 测试和 val 分割的主要结果。在测试集上,我们的方法比之前最好的方法 DETR3D [47] 高出 9.2 个百分点(51.7% NDS vs. 42.5% NDS),训练策略公平,模型规模相当。在测试集上,我们的模型在没有任何附加功能的情况下实现了 56.9% 的 NDS,比 DETR3D(47.9% NDS)高出 9.0 个百分点。我们的方法甚至可以达到与一些基于激光雷达的基线相当的性能,如 SSN(56.9% NDS)[55] 和 PointPainting(58.1% NDS)[43]。

        以往基于相机的方法 [47, 31, 45] 几乎无法估计速度,而我们的方法证明了时间信息在多相机检测的速度估计中起着至关重要的作用。在测试集上,BEVFormer 的平均速度误差(mAVE)为 0.378 m/s,远远超过其他基于摄像头的方法,接近基于激光雷达的方法 [43]。
我们还在 Waymo 上进行了实验,如表 3 所示。3. 按照文献[34],我们采用 0.7 和 0.5 的 IoU 标准来评估车辆类别。此外,我们还采用了 nuScenes 指标来评估结果,因为基于 IoU 的指标对于基于摄像头的方法来说太具有挑战性。由于只有少数基于摄像头的作品报道了在 Waymo 上的结果,因此我们也使用 DETR3D 的官方代码在 Waymo 上进行实验,以进行比较。我们可以看到,在 IoU 标准为 0.5 的情况下,BEVFormer 在 LEVEL_1 和 LEVEL_2 难度上的平均精度(Average Precision with Heading information,APH)[40] 分别为 6.0% 和 2.5%,优于 DETR3D。在 nuScenes 指标上,BEVFormer 优于 DETR3D,NDS 和 AP 分别为 3.2% 和 5.2%。我们还在前置摄像头上进行了实验,将 BEVFormer 与 CaDNN [34]进行了比较,后者是一种单目 3D 检测方法,曾在 Waymo 数据集上报告过结果。在 IoU 标准为 0.5 的 LEVEL_1 和 LEVEL_2 困难点上,BEVFormer 的 APH 分别为 13.3% 和 11.2%,优于 CaDNN。

表 1:nuScenes 测试集上的 3D 检测结果。∗ 注:VoVNet-99(V2-99)[21] 使用额外数据[31]对深度估计任务进行了预训练。"BEVFormer-S" 没有利用 BEV 编码器中的时间信息。L "和 "C "分别表示激光雷达和摄像头。

4.4 多任务感知结果
        我们用检测头和分割头对模型进行了训练,以验证模型对多重任务的学习能力,结果如表 4 所示。4. 在相同设置下比较不同的 BEV 编码器,除了道路分割结果与 BEVFormer-S 相当外,BEVFormer 在所有任务中都取得了更高的性能。例如,通过联合训练,BEVFormer 在检测任务(52.0% NDS 对 41.0% NDS)上比 Lift-Splat∗ [32] 高出 11.0 个百分点,在车道分割(23.9% 对 18.3%)上比 Lift-Splat∗ 高出 5.6 个百分点。与单独训练任务相比,多任务学习通过共享更多模块(包括主干和 BEV 编码器),节省了计算成本,缩短了推理时间。本文表明,我们的 BEV 编码器生成的 BEV 特征可以很好地适应不同的任务,而使用多任务头训练的模型在检测任务和车辆分割方面表现更好。不过,联合训练的模型在道路和车道分割方面的表现不如单独训练的模型,这是多任务学习中常见的负迁移现象[11, 13]。

表 3:根据 Waymo 评估指标和 nuScenes 评估指标对 Waymo val set 进行 3D 检测的结果。"L1 "和 "L2 "指 Waymo 的 "LEVEL_1 "和 "LEVEL_2 "难度[40]。*: 仅使用前置摄像头,且仅考虑前置摄像头视野(50.4°)内的物体标签。†: 我们通过设置 ATE 和 AAE 为 1 来计算 NDS 分数。L "和 "C "分别表示激光雷达和摄像头。

表 4:nuScenes val set 上的 3D 检测和地图分割结果。联合或不联合训练分割和检测任务的比较。*: 我们使用 VPN [30] 和 Lift-Splat [32] 代替 BEV 编码器进行比较,任务头相同。†: 来自其论文的结果。

4.5 消融研究

        为了深入研究不同模块的效果,我们在带有检测头的 nuScenes val set 上进行了消融实验。更多消融研究见附录。

空间交叉注意力的效果。为了验证空间交叉注意的效果,我们使用 BEVFormer-S 进行消融实验,以排除时间信息的干扰,结果如表 5 所示。5. 默认的空间交叉注意是基于可变形注意的。为了便于比较,我们还构建了另外两种具有不同注意机制的基线:(1)使用全局注意取代可变形注意;(2)使每个查询只与其参考点而非周围局部区域交互,这与之前的方法类似[36, 37]。为了进行更广泛的比较,我们还将 BEVFormer 替换为 VPN [30] 和 Lift-Spalt [32] 提出的 BEV 生成方法。我们可以发现,在模型规模相当的情况下,可变形注意力明显优于其他注意力机制。全局注意力会消耗过多的 GPU 内存,而点交互的感受野有限。稀疏注意力能实现更好的性能,因为它能与事先确定的感兴趣区域进行交互,从而在感受野和 GPU 消耗之间取得平衡。

表 5:使用不同 BEV 编码器的不同方法在 nuScenes val set 上的检测结果。"内存 "是指训练过程中消耗的 GPU 内存。*: 我们使用 VPN [30] 和 LiftSplat [32] 代替我们模型的 BEV 编码器进行比较。†: 我们使用空间交叉注意力中的全局注意力来训练 BEVFormer-S,模型使用 fp16 权重进行训练。此外,我们只采用骨干网的单尺度特征,并将 BEV 查询的空间形状设置为 100×100,以节省内存。‡: 我们仅通过移除预测偏移和权重,将可变形注意力的交互目标从局部区域降级为参考点。

时态自我注意力的效果。从表 1 和 Tab. 4 中可以看出,在相同设置下,BEVFormer 的性能明显优于 BEVFormer-S,尤其是在具有挑战性的检测任务中。时态信息的作用主要体现在以下几个方面:(1)时态信息的引入大大提高了速度估计的准确性;(2)有了时态信息,预测的物体位置和方向更加准确;(3)由于时态信息包含了过去物体的线索,因此我们在重度遮挡物体上获得了更高的召回率,如图 3 所示。为了评估 BEVFormer 在不同遮挡程度物体上的性能,我们根据 nuScenes 提供的官方可见度标签将 nuScenes 验证集分为四个子集。在每个子集中,我们还计算了所有类别的平均召回率,匹配时的中心距离阈值为 2 米。为了公平地比较召回率,所有方法的最大预测框数都是 300。在只有 0-40% 的对象可见的子集中,BEVFormer 的平均召回率超过 BEVFormer-S 和 DETR3D 6.0% 以上。

模型规模和延迟。我们在表 6 中比较了不同配置的性能和延迟。6. 我们从三个方面消减了 BEVFormer 的规模,包括是否使用多尺度视图特征、BEV 查询的形状和层数,以验证性能和推理延迟之间的权衡。我们可以看到,配置 C 在 BEVFormer 中使用一个编码器层,实现了 50.1 % 的 NDS,并将 BEVFormer 的延迟从原来的 130 毫秒降低到 25 毫秒。配置 D 采用了单比例视图特征、较小的 BEV 大小和仅有一个编码器层,虽然与默认配置相比损失了 3.9 个点,但在推理过程中仅消耗了 7 毫秒。然而,由于多视图图像输入,限制效率的瓶颈在于骨干网,自动驾驶的高效骨干网值得深入研究。总之,我们的架构可以适应各种模型规模,并能灵活地权衡性能和效率。

表 6: 不同模型配置在 nuScenes val set 上的延迟和性能。延迟在 V100 GPU 上测量,骨干网为 R101-DCN。输入图像形状为 900×1600。"MS "表示多尺度视图特征。

图 4:BEVFormer 在 nuScenes val set 上的可视化结果。我们展示了多摄像头图像和鸟瞰图中的 3D bboxes 预测结果。

4.6 可视化结果
        我们在图 4 中展示了复杂场景的检测结果。BEVFormer 的检测结果令人印象深刻,只是在小物体和远处物体的检测中出现了一些错误。更多定性结果见附录。

5 讨论与结论
        在这项工作中,我们提出了 BEVFormer,用于从多摄像机输入生成鸟瞰特征。BEVFormer 可以有效地聚合空间和时间信息,生成强大的 BEV 特征,同时支持三维检测和地图分割任务。局限性。目前,基于摄像头的方法在效果和效率上与基于激光雷达的方法仍有较大差距。根据二维信息准确推断三维位置仍然是基于相机的方法长期面临的挑战。
更广泛的影响。BEVFormer 证明,利用多摄像头输入的时空信息可以显著提高视觉感知模型的性能。BEVFormer 所展示的优势,如更准确的速度估计和对低可见度物体更高的召回率,对于构建更好、更安全的自动驾驶系统及其他系统至关重要。我们相信,BEVFormer 只是后续更强大视觉感知方法的一个基线,基于视觉的感知系统仍有巨大潜力可挖。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/456949.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Java探索之旅】运算符解析 算术运算符,关系运算符

🎥 屿小夏 : 个人主页 🔥个人专栏 : Java编程秘籍 🌄 莫道桑榆晚,为霞尚满天! 文章目录 📑前言一、什么是运算符二、算术运算符2.1 基本四则运算(-*/%)2.2 增…

2049.不容易系列之(4)——考新郎

2048的升级 当nm时则全排错,与上题一样 当n>m时,则有n-m个是排对的,剩下m个全错 import java.util.*;public class Main {public static void main(String[] args) {Scanner scannernew Scanner(System.in);int num scanner.nextInt()…

LeetCode2.07链表相交

2.07链表相交 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。 图示两个链表在节点 c1 开始相交: 题目数据 保证 整个链式结构中不存在环。 注意,函数返回结…

洛谷 P5018 对称二叉树

题目背景 NOIP2018 普及组 T4 题目描述 一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树: 二叉树;将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。 下图中节点内的数字为权值&#xf…

Compose UI 之 BottomAppBar 底部应用栏

BottomAppBar 底部应用栏 BottomAppBar 是一个在 Jetpack Compose 中用于创建底部应用栏的组件。它提供了一个高度可定制且功能丰富的底部导航解决方案。 它的使用方式与 TopAppBar 类似。下面的图是 BottomAppBar 的基本样式图。 常见使用场景 BottomAppBar 在应用中常用于…

【JavaScript】使用debugger语句快速开启浏览器调试代码工具

简言 有的时候我们想开启浏览器代码调试功能,这个时候应该使用debugger语句。 debugger debugger 语句调用任何可用的调试功能,例如设置断点。如果没有调试功能可用,则此语句不起作用。 debugger;可以多次使用 debugger语句,使…

蓝桥杯练习系统(算法训练)ALGO-976 P0804字符串压缩

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 编写一个函数void strcompress(char *s),输入一个字符串(只包含小写字母和空格,且长度小于1000&am…

基于springboot社团管理系统的设计与实现

互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱,出错率高,信息安全性差,劳…

leetcode代码记录(有效的括号

目录 1. 题目:2. 我的代码:小结: 1. 题目: 给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。 有效字符串需满足&…

香港理工大学主办!2024年第八届电力能源系统与应用国际会议(ICoPESA 2024)即将召开!

2024年第八届电力能源系统与应用国际会议(ICoPESA 2024) 2024年6月24日-26日 中国香港 ICoPESA 2024-Hong Kong (icpesa.org)https://icpesa.org/index.html 会议组织单位 会议出版及检索: 会议录用并注册的论文将由IEEE出版,…

Let’s Move Sui , 一起来学习吧

Let’s Move Sui是一个全新的交互式学习平台,通过SuiFrens的帮助教您如何在Sui上构建。设计供新手和经验丰富的开发者使用,Let’s Move Sui提供了一次非凡的Sui开发之旅,利用了Move在Sui上的独特之处,从基于对象的数据模型的基础知…

3、鸿蒙学习-在AGC创建HarmonyOS 项目或应用

项目和应用介绍 关于项目 项目是资源、应用的组织实体。资源包括服务器、数据库、存储,以及您的应用、终端用户的数据等。在您使用部分服务时,您是数据的控制者,数据将按照您设置的数据处理位置来存储在指定区域。 通常,您不需…

SE园区综合实验(未补齐版)

实验要求: 1.局域网存在vlan10和vlan20两个业务vlan,ip网段分别对应192.168.1.0/24和192.168.2.0/24 2.业务vlan可以在所有链路上传输数据 3.sw1和sw2之间的直连链路上配置静态链路聚合实现链路冗余,并提高链路带宽 4.sw3为某接入点二次交…

C# ListView 控件使用

1.基本设置 listView1.Columns.Add("序号", 60); //向 listView1控件中添加1列 同时设置列名称和宽度listView1.Columns.Add("温度", 100); //下同listView1.Columns.Add("偏移", 100);listView1.Columns.Add("分割", 50);listView1…

Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%

亲爱的社区小伙伴们,我们很高兴地向大家宣布,在 3 月 8 日我们引来了 Apache Doris 2.1.0 版本的正式发布,欢迎大家下载使用。 在查询性能方面, 2.1 系列版本我们着重提升了开箱盲测性能,力争不做调优的情况下取得较好…

Nacos安装遇到的问题

Windows安装nacos双击startup.cmd执行出错 改成用cmd窗口输入命令 startup.cmd -m standalone启动之后登录的问题 权限认证失败 没有 命名空间的访问权限! 把默认的登录url改成: http://127.0.0.1:8848/nacos/#/login登录之后,点击导入配置…

Postman定义全局变量和环境

Postman定义全局变量和环境 一. 问题二. 配置环境解决 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 一. 问题 问题前因:在使用postman调用elasticsearch接口的时候&…

XML 简介及用法详解

XML 是一种用于存储和传输数据的与软件和硬件无关的工具。 什么是XML? XML代表eXtensible Markup Language(可扩展标记语言)。XML是一种与HTML非常相似的标记语言。XML被设计用于存储和传输数据。XML被设计成具有自我描述性。XML不执行任何操…

VX防撤回以及多开

功能: 打破微信只能登录一个账号的局限,同时让撤回的消息不再神秘 安装步骤 获得文件后,直接双击文件就可以进入到安装界面,软件自动定位安装到D盘,可以省去更改安装位置的操作 点击确定,稍等一会安装成功即…

IDEA自定义Maven仓库

Maven 是一款广泛应用于 Java 开发的工具,其作用类似于一个全自动的 JAR 包管理器,能够方便地导入开发所需的相关 JAR 包。在使用 Maven 进行 Java 程序开发时,开发者能够极大地提高开发效率。以下是关于如何安装 Maven 以及在 IDEA 中配置自…
最新文章