【多视图感知】BEVFormer: Learning Bird’s-Eye-View Representation

2024-06-17 23:12

本文主要是介绍【多视图感知】BEVFormer: Learning Bird’s-Eye-View Representation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

论文链接:http://arxiv.org/abs/2203.17270

代码链接:https://github.com/fundamentalvision/BEVFormer

一、摘要

  本文提出了一种名为BEVFormer的新框架,通过时空transformer学习统一的鸟瞰图表征,以支持多个自动驾驶感知任务。BEVFormer通过预定义的网格状BEV查询与空间和时间空间进行交互,从而利用空间和时间信息。为了聚合空间信息,设计了空间交叉注意力,每个BEV查询从不同摄像头视图中提取感兴趣区域的空间特征。对于时间信息,提出了时间自注意力,以循环地融合历史BEV信息。所提方法在nuScenes的test数据集上以NDS指标达到了新的最优56.9%,比之前最佳结果高出9.0个百分点,并且与基于LiDAR的基线模型性能相当。
在这里插入图片描述

文章目录

  • BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers
    • 一、摘要
    • 二、创新点
    • 三、原理
      • 1、Overall Architecture
      • 2、BEV Queries
      • 3、Spatial Cross-Attention
      • 4、Temporal Self-Attention
      • 5、Applications of BEV Features
      • 6、Implementation Details
    • 四、实验
      • 1、Datasets
      • 2、Experimental Settings
      • 3、3D Object Detection Results
      • 4、Multi-tasks Perception Results
      • 5、Ablation Study
      • 6、Visualization Results
    • 五、总结

二、创新点

关键问题:在自动驾驶中,通过多个相机给出的二维线索,预测周围场景的三维边界框或语义地图是一种期望的视觉感知。最直接的解决方案是基于单目框架[45,44, 31, 35, 3]和跨相机后处理。这种框架的缺点是它单独处理不同视图,无法捕捉相机间的信息,导致性能和效率低[32, 47]。

  BEVFormer包含三个关键设计,分别是:

  • (1)网格状的BEV查询,通过注意机制灵活地融合空间和时间特征;

  • (2)空间交叉注意模块,用于聚合来自多视角摄像头的空间特征;

  • (3)时间自注意模块,用于从历史BEV特征中提取时间信息,有助于移动物体的速度估计和严重遮挡物体的检测,同时带来可忽略的计算开销。

  通过BEVFormer生成的统一特征,模型可以与不同的任务特定头部(如Deformable DETR [56]和mask decoder[22])协同工作,实现端到端的3D物体检测和地图分割。

创新点

  • 提出了BEVFormer,一种时空transformer编码器,将多视角和/或时间戳输入投影到BEV表征中。通过统一的BEV特征,我们的模型可以同时支持多个自动驾驶感知任务,包括3D检测和地图分割。

  • 设计了可学习的BEV查询,以及一个空间交叉注意层和一个时间自注意层,分别用于从交叉摄像头中查找空间特征和从历史BEV中查找时间特征,然后将它们聚合成统一的BEV特征。

  • 在多个具有挑战性的基准测试中评估了提出的BEVFormer,包括nuScenes [4]和Waymo[40]。BEVFormer始终比先前的方法表现更好。例如,在可比的参数和计算开销下,BEVFormer在nuScenes的test集上达到了56.9%的NDS,比之前最好的检测方法DETR3D[47]高出9.0个百分点(56.9% vs. 47.9%)。地图分割任务实现了最先进的性能,比最具挑战的车道分割方法Lift-Splat [32]高出5.0个百分点以上。
    在这里插入图片描述

三、原理

  文中提出了一种基于transformer的新框架用于BEV生成,该框架可以通过注意机制有效地聚合多视角摄像头历史BEV特征的时空特征

1、Overall Architecture

  如图2所示,BEVFormer 模型具有6 个编码器层,每个层都遵循传统transformer 模型的结构[42],但有三个定制设计,即BEV queries空间交叉注意力时间自注意力。具体而言,BEV queries 是网格状的可学习参数,旨在通过注意力机制从多摄像头视图中查询BEV空间的特征。空间交叉注意力和时间自注意力是与BEV queries 一起工作的注意力层,用于根据BEV查询从多摄像头图像中查找和聚合空间特征以及从历史BEV中获取时间特征

  在推断过程中,在时间戳 t t t,将多摄像头图像输入到骨干网络(例如,ResNet-101 [15]),并获得不同摄像头视图的特征 F t = F t i i = 1 N v i e w F_{t} = {F^{i}_{t}}^{N_{view}}_{i=1} Ft=Ftii=1Nview,其中 F t i F^{i}_{t} Fti 是第 i i i个视图的特征, N v i e w N_{view} Nview是摄像头视图的总数。同时保留了先前时间戳 t − 1 t−1 t1的BEV 特征 B t − 1 B_{t−1} Bt1。在每个编码器层中,首先使用BEV queries Q Q Q通过时间自注意力从先前的BEV 特征 B t − 1 B_{t−1} Bt1查询时间信息。然后,使用BEV queries Q Q Q通过空间交叉注意力从多摄像头特征 F t F_{t} Ft 查询空间信息。在经过前馈网络[42]后,编码器层输出经过改进的BEV特征,这是下一个编码器层的输入。经过6个堆叠的编码器层,生成当前时间戳 t t t的统一 BEV 特征 B t B_{t} Bt。将 BEV 特征 B t B_{t} Bt 作为输入,3D检测头和地图分割头预测感知结果,如3D边界框和语义地图。

2、BEV Queries

  预定义了一组网格状可学习参数 Q ∈ R H × W × C Q \in R^{H \times W \times C} QRH×W×C作为BEVFormer的查询(queries),其中 H H H, W W W 是BEV平面的空间形状。具体而言,位于 Q Q Q p = ( x , y ) p = (x,y) p=(x,y) 处的查询 Q p ∈ R 1 × C Q_{p} \in R^{1 \times C} QpR1×C 负责BEV平面中相应的网格单元区域。BEV平面中的每个网格单元对应于实际世界中 s s s米的大小。BEV特征的中心默认对应于自车的位置。按照常见做法 [14],在输入BEV查询Q到BEVFormer之前,添加可学习的位置嵌入(positional embedding)。

3、Spatial Cross-Attention

  由于多摄像头3D感知的大输入规模(包含 N v i e w N_{view} Nview个摄像头视图),普通的多头注意力 [42]的计算成本非常高。因此,基于可变形注意力 [56]开发了基于空间交叉注意力的注意力层,这是一种资源高效的注意力层,其中每个BEV查询 Q p Q_{p} Qp只与其在摄像头视图中感兴趣的区域进行交互。然而,可变形注意力最初是为2D感知设计的,因此需要对3D场景进行一些调整。

  如图 2(b)所示,首先将BEV平面上的每个查询提升到柱状查询[20],从柱状体中采样 N r e f N_{ref} Nref个3D参考点,然后将这些点投影到2D视图上。对于一个BEV查询,投影的2D点只能落在某些视图上,其他视图没有命中。在这里,将命中的视图称为 V h i t V_{hit} Vhit。之后将这些2D点视为查询 Q p Q_{p} Qp的参考点,并从命中的视图 V h i t V_{hit} Vhit周围采样特征。最后,对采样到的特征进行加权求和,作为空间交叉注意力的输出。空间交叉注意力(SCA)的过程可以表示为:
S C A ( Q p , F t ) = 1 ∣ V h i t ∣ ∑ i ∈ V h i t ∑ j = 1 N r e f D e f o r m A t t n ( Q p , P ( p , i , j ) , F t i ) , ( 2 ) SCA(Q_{p}, F_{t}) = \frac{1}{|V_{hit}|} \sum_{i \in V_{hit}} \sum^{N_{ref}}_{j=1}DeformAttn(Q_{p}, P(p, i, j), F^{i}_{t}), \ (2) SCA(Qp,Ft)=Vhit1iVhitj=1NrefDeformAttn(Qp,P(p,i,j),Fti), (2)

其中, i i i 表示相机视角的索引, j j j表示参考点的索引, N r e f N_{ref} Nref是每个鸟瞰图查询的总参考点数。 F … … i t F……{i}_{t} F……it 是第 i i i个相机视角的特征。对于每个鸟瞰图查询 Q p Q_{p} Qp使用投影函数 P ( p , i , j ) P(p,i,j) P(p,i,j)来获取第 i i i个视角图像上的第 j j j个参考点。接下来介绍如何从投影函数 P P P中获取视角图像上的参考点。首先,根据公式3计算查询 Q p Q_{p} Qp Q Q Q的位置 p = ( x , y ) p = (x,y) p=(x,y)对应的实际世界位置 ( x ′ , y ′ ) (x′,y′) (x,y)

x ′ = ( x − W 2 ) × s ; y ′ = ( y − H 2 ) × s , ( 3 ) x' = (x - \frac{W}{2}) \times s; \ y'=(y - \frac{H}{2}) \times s, \ (3) x=(x2W)×s; y=(y2H)×s, (3)

其中, H H H W W W是BEV查询的空间形状, s s s是BEV网格分辨率的大小, ( x ′ , y ′ ) (x′,y′) (x,y)以自车位置为原点的坐标。在3D空间中,位于 ( x ′ , y ′ ) (x′,y′) (x,y)处的物体将出现在 z z z轴上的高度 z ′ z′ z处。因此,预定义了一组锚点高度${z′{j}}^{N{ref}}_{j=1},以确保可以捕捉到出现在不同高度的线索。

  通过这种方式,对于每个查询 Q p Q_{p} Qp,获得了一个3D参考点柱 ( x ′ , y ′ , z ′ j ) j = 1 N r e f (x′,y′,z′_{j})^{N_{ref}}_{j=1} (x,y,zj)j=1Nref。最后通过相机的投影矩阵将3D参考点投影到不同的图像视图中,可以表示为:
P ( p , i , j ) = ( x i j , y i j ) w h e r e z i j ⋅ [ x i j , y i j , 1 ] T = T i ⋅ [ x ′ y ′ z j ′ 1 ] T . ( 4 ) P(p, i, j) = (x_{ij}, y_{ij}) \\ where \ z_{ij} \cdot [x_{ij}, y_{ij}, 1]^{T} = T_{i} \cdot [x' \ y' \ z'_{j} \ 1]^{T}. \ (4) P(p,i,j)=(xij,yij)where zij[xij,yij,1]T=Ti[x y zj 1]T. (4)
  这里, P ( p , i , j ) P(p,i,j) P(p,i,j) 是从第 j j j个3D 点 ( x ′ , y ′ , z ′ j ) (x′,y′,z′j ) (x,y,zj) 投影到第 i i i个视角上的2D 点, T i ∈ R 3 × 4 T_{i} \in R^{3 \times 4} TiR3×4 是第 i i i个相机的已知投影矩阵

4、Temporal Self-Attention

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

  给定当前时间戳 t t t的鸟瞰图查询 Q Q Q和保存在时间戳 t − 1 t −1 t1的历史鸟瞰图特征 B t − 1 B_{t−1} Bt1,首先根据自车运动将 B t − 1 B_{t−1} Bt1对齐到 Q Q Q,使得相同网格上的特征对应到相同的现实世界位置。将对齐后的历史鸟瞰图特征 B t − 1 B_{t−1} Bt1表示为 B ′ t − 1 B′_{t−1} Bt1。然而,从 t − 1 t −1 t1 t t t的时间段内,可移动物体在现实世界中以各种偏移量移动。在不同时间的鸟瞰图特征之间构建相同物体的精确关联是具有挑战性的。因此,我们通过时间自注意力(TSA)层来建模特征之间的时间连接,其可以表示为以下形式:
T S A ( Q p , Q , B t − 1 ′ ) = ∑ V ∈ Q , B t − 1 ′ D e f o r m A t t n ( Q p , p , V ) , ( 5 ) TSA(Q_{p},{Q, B'_{t-1}}) = \sum_{V \in {Q,B'_{t-1}}} DeformAttn(Q_{p}, p, V), \ (5) TSA(Qp,Q,Bt1)=VQ,Bt1DeformAttn(Qp,p,V), (5)

其中, Q p Q_{p} Qp 表示位于 p = ( x , y ) p = (x,y) p=(x,y)处的BEV查询。此外,与普通的可变形注意力不同,时序自注意力中的偏移量 ∆ p ∆p p 是由 Q Q Q B ′ t − 1 B′_{t−1} Bt1的串联预测得到的。特别地,在每个序列的第一个样本中,时序自注意力将退化为没有时序信息的自注意力,将BEV 特征 Q , B ′ t − 1 {Q,B′_{t−1}} Q,Bt1替换为重复的BEV查询 Q , Q {Q,Q} Q,Q

  与简单堆叠BEV的方法[18, 38, 6] 相比,时序自注意力可以更有效地建模长时序依赖关系BEVFormer 从先前的BEV特征中提取时序信息,而不是多次堆叠BEV 特征,因此需要更少的计算成本,并且受到更少的干扰信息的影响。

5、Applications of BEV Features

  由于鸟瞰视角特征 B t ∈ R H × W × C B_{t} \in R^{H \times W \times C} BtRH×W×C是一种多功能的二维特征图,可用于各种自动驾驶感知任务,基于二维感知方法[56, 22] 可以开发出3D物体检测地图分割任务头,只需进行轻微修改。

对于3D物体检测,设计了一个基于二维检测器Deformable DETR [56]的端到端3D检测头。修改包括使用单尺度的BEV特征 B t B_{t} Bt 作为解码器的输入,预测3D边界框和速度而不是2D边界框,并且仅使用L1 损失来监督3D边界框回归。通过检测头,模型可以端到端地预测3D边界框和速度,无需进行NMS后处理。

  对每个3D边界框预测10个参数,包括每个框的3个参数 ( l , w , h ) (l,w,h) (l,w,h)表示尺度,3个参数 ( x o , y o , z o ) (x_{o},y_{o},z_{o}) (xo,yo,zo)表示中心位置,2个参数 ( c o s ( θ ) , s i n ( θ ) ) (cos(θ), sin(θ)) (cos(θ),sin(θ))表示物体的偏航角 θ θ θ,2个参数 ( v x , v y ) (v_{x},v_{y}) (vx,vy)表示速度。在训练阶段只使用L1损失和L1成本。根据 [47],使用900个对象查询,在推理过程中保留300个具有最高置信度得分的预测框

对于地图分割,设计了一个基于二维分割方法Panoptic SegFormer [22]的地图分割头。由于基于BEV的地图分割基本上与常见的语义分割相同,利用 [22] 的掩码解码器固定类别查询来定位每个语义类别,包括车辆、道路(可行驶区域)和车道。
在这里插入图片描述

  如图5所示,对于语义地图的每个类别,遵循[22]中的掩码解码器,使用一个可学习的查询来表示该类别,并根据来自基本多头注意力的注意力图生成最终的分割掩码。

6、Implementation Details

训练阶段。对于每个时间戳 t t t的样本,从过去2秒的连续序列中随机选择另外3个样本,这种随机采样策略可以增加自我运动的多样性[57]。将这四个样本的时间戳表示为 t − 3 t−3 t3 t − 2 t−2 t2 t − 1 t−1 t1 t t t。对于前三个时间戳的样本,它们负责循环生成BEV特征 B t − 3 , B t − 2 , B t − 1 {B_{t−3},B_{t−2},B_{t−1}} Bt3,Bt2,Bt1,这个阶段不需要梯度。对于时间戳 t − 3 t−3 t3的第一个样本,没有先前的BEV特征,时间自注意力退化为自注意力。在时间 t t t,模型基于多摄像头输入和先前的BEV特征 B t − 1 B_{t−1} Bt1生成BEV特征 B t B_{t} Bt,使得 B t B_{t} Bt包含跨越四个样本的时间和空间线索。最后,将BEV特征 B t B_{t} Bt输入到检测和分割头部,并计算相应的损失函数

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

四、实验

1、Datasets

  在两个具有挑战性的公共自动驾驶数据集上进行实验,分别是nuScenes数据集[4]和Waymo开放数据集[40]。

nuScenes数据集[4]包含1000个大约持续20秒的场景,关键样本以2Hz的频率进行注释。每个样本由来自6个摄像头的RGB图像组成,具有360°的水平视场。对于检测任务,有来自10个类别的1.4M个注释的3D边界框。作者按照[32]中的设置进行BEV分割任务。该数据集还为检测任务提供了官方评估指标。nuScenes的平均精度均值(mAP)是使用地面平面上的中心距离而不是3D交并比(IoU)来匹配预测结果和真实值的。nuScenes指标还包含5种真正阳性指标(TP指标),包括ATE、ASE、AOE、AVE和AAE,用于测量平移、尺度、方向、速度和属性误差。nuScenes还定义了nuScenes检测得分 (NDS),即 N D S = 1 10 [ 5 m A P + ∑ m T P ∈ T P ( 1 − m i n ( 1 , m T P ) ) ] NDS = \frac{1}{10} [5mAP + \sum_{mTP \in TP}(1 −min(1,mTP))] NDS=101[5mAP+mTPTP(1min(1,mTP))],以捕捉nuScenes检测任务的所有方面。

Waymo开放数据集 [40]是一个大规模的自动驾驶数据集,包含798个训练序列和202个验证序列。需要注意的是,Waymo每帧提供的五个图像的水平视场约为252°,但提供的注释标签在自车周围360°。在训练和验证集中删除那些在任何图像上都不可见的边界框。由于Waymo开放数据集是大规模和高频率的[34],使用训练序列中每5个帧进行采样的子集,并且仅检测车辆类别。使用3D IoU的阈值0.5和0.7来计算Waymo数据集上的mAP。

2、Experimental Settings

  采用了两种类型的骨干网络:ResNet101-DCN [15, 12],它从FCOS3D [45]的检查点初始化,以及VoVnet-99 [21],它从DD3D [31]的检查点初始化。默认情况下,使用FPN [23]的多尺度特征输出,尺度为1/16、1/32、1/64,维度为C = 256。对于nuScenes的实验,默认的BEV查询大小为 200 × 200 200 \times 200 200×200,感知范围为 X X X Y Y Y轴的[−51.2m,51.2m],BEV网格的分辨率s为 0.512 m 0.512m 0.512m。为BEV查询采用可学习的位置嵌入。BEV编码器包含6个编码器层,并在每一层中不断优化BEV查询。每个编码器层的输入BEV特征 B t − 1 B_{t−1} Bt1相同且不需要梯度。对于每个局部查询,在由可变形注意力机制实现的空间交叉注意力模块中,它对应于3D空间中具有不同高度的 N r e f = 4 N_{ref} = 4 Nref=4个目标点,预定义的高度锚点均匀采样自−5米到3米。对于2D视图特征上的每个参考点,为每个头部周围的该参考点使用四个采样点

  默认情况下,使用24个轮次、学习率为 2 × 1 0 − 4 2 \times 10^{−4} 2×104来训练模型。每个GPU上的批次大小为1(包含6个视角图像)。骨干网络的学习率乘数为0.1,并且用余弦退火[24]来衰减学习率。采用AdamW [25]进行模型优化,权重衰减为 1 × 1 0 − 2 1×10^{−2} 1×102

  对于Waymo的实验,进行了一些设置更改。由于Waymo的摄像系统无法捕捉到自车周围的整个场景 [40],默认的BEV查询空间形状为 300 × 220 300 \times 220 300×220,感知范围为 X X X轴的[−35.0m, 5.0m]和 Y Y Y轴的[−75.0m, 75.0m]。每个网格的分辨率 s s s为0.5m。自车位于BEV的(70, 150)处。

3、3D Object Detection Results

  仅使用检测头在检测任务上训练所提模型,以便与先前的最先进的3D物体检测方法进行公平比较。
在这里插入图片描述

  表1和表2报告了在nuScenes的test和val数据集上的主要结果。在公平的训练策略和可比较的模型规模下,所提方法在val数据集上相对于先前最佳方法DETR3D [47]提高了9.2个百分点(51.7% NDS vs. 42.5% NDS)。在test数据集上,模型在没有任何额外技巧的情况下达到了56.9% NDS,比DETR3D (47.9% NDS)高出9.0个百分点。所提方法甚至可以达到与一些基于LiDAR的基准方法相当的性能,例如SSN(56.9% NDS)[55]和PointPainting(58.1% NDS)[43]。
在这里插入图片描述

  先前的基于相机的方法 [47, 31, 45]几乎无法估计速度,而该方法表明时间信息在多相机检测中对速度估计起着关键作用。BEVFormer在test数据集上的平均速度误差(mAVE)为0.378 m/s,远远优于其他基于相机的方法,并接近基于LiDAR的方法的性能[43]。

在这里插入图片描述

  在Waymo上进行了实验,如表3所示。根据 [34],使用IoU为0.7和0.5的标准来评估车辆类别。此外,由于很少有基于相机的工作在Waymo上报告结果,还使用DETR3D的官方代码在Waymo上进行实验进行比较。可以观察到,BEVFormer在LEVEL_1和LEVEL_2难度上,使用IoU为0.5的标准,相对于DETR3D的平均精度 (APH)[40]提高了6.0%和2.5%。在nuScenes指标上,BEVFormer相对于DETR3D的NDS提高了3.2%,AP提高了5.2%。还在前置摄像头上进行实验,将BEVFormer与CaDNN [34]进行比较,CaDNN是一种在Waymo数据集上报告结果的单目3D检测方法。BEVFormer在LEVEL_1和LEVEL_2难度上,使用IoU为0.5的标准,相对于CaDNN的APH提高了13.3%和11.2%

4、Multi-tasks Perception Results

在这里插入图片描述

  使用检测和分割头部训练所提模型,以验证模型对多任务的学习能力,并且结果如表 4 所示。在相同设置下比较不同的BEV编码器时,除了道路分割结果与BEVFormer-S相当外,BEVFormer在所有任务上都取得了更高的性能。例如,在联合训练中,BEVFormer在检测任务上的性能优于Lift-Splat∗ [32] 11.0个点(52.0% NDS v.s.41.0%NDS),在车道分割的IoU上优于5.6个点(23.9% v.s. 18.3%)。与单独训练任务相比,多任务学习通过共享更多模块(包括骨干和BEV编码器)节省了计算成本并减少了推理时间。

  本文展示了BEV编码器生成的BEV特征可以很好地适应不同的任务,并且使用多任务头部进行模型训练在检测任务和车辆分割上表现得更好。然而,联合训练的模型在道路和车道分割上的表现不如单独训练的模型,这是多任务学习中的一种常见现象,称为负迁移[11, 13]。

5、Ablation Study

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

在这里插入图片描述

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

时间自注意力的有效性。从表 1和表 4可以看出,在相同的设置下,BEVFormer相比BEVFormer-S有显著的改进,特别是在具有挑战性的检测任务上。时间信息的效果主要体现在以下几个方面:(1)引入时间信息极大地提高了速度估计的准确性;(2)有了时间信息,对象的预测位置和方向更准确;(3)由于时间信息包含过去对象的线索,对被严重遮挡的对象有更高的召回率,如图3所示。
在这里插入图片描述

  为了评估BEVFormer在不同遮挡级别的对象上的性能,根据nuScenes提供的官方可见性标签将验证集分为四个子集。在每个子集中,还计算了所有类别在中心距离阈值为2米的匹配过程中的平均召回率。为了公平比较召回率,所有方法的最大预测框数为300个。在只有0-40%的对象可见的子集上,BEVFormer的平均召回率比BEVFormer-S和DETR3D高出6.0%以上。

在这里插入图片描述

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

6、Visualization Results

在这里插入图片描述

  在图4中展示了一个复杂场景的检测结果。BEVFormer 在大部分情况下都产生了令人满意的结果,只有在一些小型和远距离物体上出现了一些错误。更多的定性结果请参见附录D。

五、总结

  本文提出了BEVFormer来从多摄像头输入中生成鸟瞰图特征。BEVFormer能够高效地聚合空间和时间信息,并生成强大的鸟瞰图特征,同时支持3D检测和地图分割任务

局限性。目前,基于摄像头的方法在效果和效率上仍然与基于LiDAR的方法存在一定差距。从2D信息准确推断3D位置仍然是基于摄像头的方法面临的长期挑战。

更广泛的影响。BEVFormer证明了利用多摄像头输入的时空信息可以显著提高视觉感知模型的性能。BEVFormer展示的优势,如更准确的速度估计和对低可见物体的更高召回率,对于构建更好、更安全的自动驾驶系统以及其他领域至关重要。

这篇关于【多视图感知】BEVFormer: Learning Bird’s-Eye-View Representation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1070670

相关文章

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

MVC(Model-View-Controller)和MVVM(Model-View-ViewModel)

1、MVC MVC(Model-View-Controller) 是一种常用的架构模式,用于分离应用程序的逻辑、数据和展示。它通过三个核心组件(模型、视图和控制器)将应用程序的业务逻辑与用户界面隔离,促进代码的可维护性、可扩展性和模块化。在 MVC 模式中,各组件可以与多种设计模式结合使用,以增强灵活性和可维护性。以下是 MVC 各组件与常见设计模式的关系和作用: 1. Model(模型)

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token android.os.B

一个bug日志 FATAL EXCEPTION: main03-25 14:24:07.724: E/AndroidRuntime(4135): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.syyx.jingubang.ky/com.anguotech.android.activity.Init

自定义view中常用到哪些方法作用分别是什么

目录 构造函数onMeasure(int widthMeasureSpec, int heightMeasureSpec)onDraw(Canvas canvas)onLayout(boolean changed, int left, int top, int right, int bottom)onTouchEvent(MotionEvent event)onSizeChanged(int

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用