BEVFormer论文地址:BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers
图1 我们提出了BEVFormer,这是一种应用Transformer和时间结构从多摄像机输入生成鸟瞰图(BEV)特征的自动驾驶的范例。BEVFormer利用queries查找空间/时间特征,并相应地聚合时空信息,因此有利于感知任务的更强表示。
3D视觉感知任务,包括基于多摄像机图像的3D检测和地图分割,对于自动驾驶系统至关重要。在这项工作中,我们提出了一个新的框架,称为BEVFormer,它使用时空变换器学习统一的BEV表示,以支持多个自主驾驶感知任务。简而言之,BEVFormer通过预定义的网格形状的BEV queries与空间和时间进行交互,从而利用空间和时间信息。为了聚集空间信息,我们设计了一个空间交叉注意力,每个BEV查询从摄像机视图中的感兴趣区域提取空间特征。对于时间信息,我们提出了一种时间自注意力来递归地融合历史BEV信息。在nuScenes测试集上,我们的方法在NDS度量方面达到了新的最先进水平(SOTA)56.9%,比以前的最佳方法高9.0个点,与基于激光雷达的baseline性能相当。我们进一步表明,BEVFormer在低能见度条件下显著提高了速度估计的准确性和物体的召回率。代码将在https://github.com/zhiqi-li/BEVFormer上发布。
3D空间中的感知对于各种应用至关重要,如自动驾驶、机器人等。尽管基于激光雷达的方法[43、20、53、49、8]取得了显著进展,但基于摄像机的方法[45、32、47、30]近年来已引起广泛关注。除了部署成本较低之外,与基于激光雷达的对应物相比,摄像机在检测远距离物体和识别基于视觉的道路元素(例如,交通灯、停车线)方面具有理想的优势。
在自动驾驶中对周围场景的视觉感知预计将根据多个摄像机给出的2D线索预测3D边界框或语义图。最直接的解决方案是基于单目框架[45、44、31、35、3]和跨摄像机后处理。该框架的缺点是,它单独处理不同的视图,无法跨摄像机捕获信息,导致性能和效率低下[32,47]。
作为单目框架的替代,更统一的框架是从多摄像机图像中提取整体表示。鸟瞰图(BEV)是周围场景的常用表示,因为它清楚地显示了物体的位置和规模,适用于各种自动驾驶任务,如感知和规划[29]。尽管之前的地图分割方法证明了BEV的有效性[32、18、29],但基于BEV的方法在3D对象检测中没有显示出比其他范式的显著优势[47、31、34]。根本原因是,3D对象检测任务需要强大的BEV特征来支持精确的3D边界框预测,但从2D平面生成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模型的隐藏状态具有相同的精神内核。
为此,我们提出了一种基于Transformer的鸟瞰图(BEV)编码器,称为BEVFormer,它可以有效地聚合来自多视点摄像机的时空特征和历史BEV特征。由BEVFormer生成的BEV特征可以同时支持多个3D感知任务,如3D对象检测和地图分割,这对于自动驾驶系统很有价值。如图1所示,我们的BEVFormer包含三个关键设计,它们是(1)网格形状的BEV查询,以通过注意力机制灵活地融合空间和时间特征,(2)空间交叉注意力模块,以聚集多摄像机图像的空间特征,以及(3)时间自注意力模块,从历史BEV特征中提取时间信息,这有利于运动物体的速度估计和严重遮挡物体的检测,同时带来可忽略的计算开销。利用BEVFormer生成的统一特征,该模型可以与不同的任务专用头(如Deformable DETR[55]和掩码解码器[22])协作,进行端到端3D对象检测和地图分割。
我们的主要贡献如下:
最近,一个新的趋势是使用transformer重新制定检测和分割任务[7,55,22]。DETR[7]使用一组对象查询直接由交叉关注解码器生成检测结果。然而,DETR的主要缺点是训练时间长。可变形注意力[55]通过提出可变形注意力解决了这个问题。与DETR中的香草全局注意力不同,变形注意力与局部感兴趣区域相互作用,仅对每个参考点附近的K个点进行采样并计算注意力结果,从而提高了效率并显著缩短了训练时间。可变形注意机制通过以下公式计算:
其中 q 、 p 、 x q、p、x q、p、x分别表示查询、参考点和输入特征。 i i i索引注意头, N h e a d N_{head} Nhead表示注意头的总数。 j j j索引采样的密钥,而 N k e y N_{key} Nkey是每个头部的总采样密钥数。 W i ∈ R C × ( C / H h e a d ) W_i∈\mathbb{R}^{C×(C/H_{head})} Wi∈RC×(C/Hhead)和 W i ′ ∈ R ( C / H h e a d ) × C W_i^{\prime}∈\mathbb{R}^{(C/H_{head}){\times}C} Wi′∈R(C/Hhead)×C是可学习权重,其中 C C C是特征维数。 A i j ∈ [ 0 , 1 ] A_{ij}∈[0,1] Aij∈[0,1]是预测的注意力权重,并通过 ∑ j = 1 N k e y A i j = 1 \sum^{N_{key}}_{j=1}A_{ij}=1 ∑j=1NkeyAij=1进行归一化。 Δ p i j ∈ R 2 \Delta p_{ij}\in\mathbb{R}^2 Δpij∈R2是到参考点 p p p的偏移量。 x ( p + ∆ p i j ) x(p+∆p_{ij}) x(p+∆pij)表示位置 p + Δ p i j p+\Delta p_{ij} p+Δpij处的特征,如Dai等人[12]所述,通过双线性插值提取。在这项工作中,我们将可变形注意力扩展到3D感知任务,以有效地聚集空间和时间信息。
先前的3D感知方法通常独立地执行3D对象检测或地图分割任务。对于3D对象检测任务,早期方法类似于2D检测方法[1、28、48、39、52],通常基于2D边界框预测3D边界框。Wang等人[45]遵循先进的2D检测器FCOS[41],并直接预测每个对象的3D边界框。DETR3D[47]在2D图像中投影可学习的3D查询,然后对相应特征进行采样,以进行端到端3D边界框预测,无需NMS后处理。另一种解决方案是将图像特征转换为BEV特征,并从自顶向下的视图预测3D边界框。方法使用来自深度估计[46]或分类深度分布[34]的深度信息将图像特征转换为BEV特征。OFT[36]和ImVoxelNet[37]将预定义体素投影到图像特征上,以生成场景的体素表示。
实际上,从多摄像机特征生成BEV特征在地图分割任务中得到了更广泛的研究[32,30]。一种直接的方法是通过反向透视映射(IPM)将透视图转换为BEV[35,5]。此外,Lift Splat[32]基于深度分布生成BEV特征。方法[30、16、9]利用多层感知器来学习从透视图到BEV的转换。PYVA[50]提出了一种将前视图单目图像转换为BEV的交叉视图transformer,但由于全局注意力机制的计算成本,该范式不适合融合多摄像机特征[42]。除了空间信息外,先前的工作[18、38、6]还通过叠加来自多个时间戳的BEV特征来考虑时间信息。叠加BEV特征限制了固定时间段内的可用时间信息,并带来额外的计算成本。在这项工作中,所提出的时空transformer通过同时考虑空间和时间线索来生成当前时间的BEV特征,并且通过RNN方式从先前BEV特征中获得时间信息,这只带来很少的计算成本。
将多摄像机图像特征转换为鸟瞰图(BEV)特征可以为各种自动驾驶感知任务提供统一的周围环境表示。在这项工作中,我们提出了一种新的基于Transformer的BEV生成框架,该框架可以通过注意力机制有效地聚集来自多视图3摄像机的时空特征和历史BEV特征。
图2:BEVFormer的总体架构。(a)BevFormor的编码器层包含网格形状的BEV查询、时间自关注和空间交叉关注。(b) 在空间交叉关注中,每个BEV查询仅与感兴趣区域中的图像特征交互。(c) 在时间自关注中,每个BEV查询与两个特征交互:当前时间戳的BEV查询和前一时间戳的BEV特征。
如图2所示,BEVFormer具有6个编码器层,每个编码器层遵循变压器的传统结构[42],除了三种定制设计,即BEV查询、空间交叉关注和时间自关注。具体而言,BEV查询是网格形状的可学习参数,旨在通过注意力机制从多摄像机视图中查询BEV空间中的特征。空间交叉注意力和时间自注意力是与BEV查询一起工作的注意力层,用于根据BEV查询查找和聚合多摄像机图像的空间特征以及历史BEV的时间特征。
在推断过程中,在时间戳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={Fti}i=1Nview,其中 F t i F^i_t Fti是第 i i i个视图的特征, N v i e w N_{view} Nview是摄像机视图的总数。同时,我们保留了在前一时间戳t-1处的BEV特征 B t − 1 B_{t−1} Bt−1。在每个编码器层中,我们首先使用BEV查询Q通过时间自注意力来查询来自先前BEV特征 B t − 1 B_{t-1} Bt−1的时间信息。然后,我们使用BEV查询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边界框和语义图等感知结果。
我们预先定义了一组网格形状的可学习参数 Q ∈ R H × W × C Q∈\mathbb{R}^{H×W×C} Q∈RH×W×C作为BEVFormer的查询,其中 H , W H, W H,W是BEV平面的空间形状。具体来说,位于Q的 p = ( x , y ) p=(x,y) p=(x,y)处的查询 Q p ∈ R 1 × C Qp∈\mathbb{R}^{1\times C} Qp∈R1×C 负责BEV平面中相应的网格单元区域。BEV平面中的每个网格单元对应于s米的真实尺寸。默认情况下,BEV特征的中心对应于ego汽车的位置。按照常见做法[14],我们在将BEV查询Q输入到BEVFormer之前,将可学习的位置嵌入添加到BEV查询。
由于多摄像机3D感知的输入规模较大(包含 N v i e w N_{view} Nview摄像机视图),普通多摄像机注意力[42]的计算成本极高。因此,我们开发了基于可变形注意力的空间交叉注意力[55],这是一个资源高效的注意力层,其中每个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 \mathcal{V}_{hit} Vhit。之后,我们将这些2D点视为查询 Q p Q_p Qp的参考点,并围绕这些参考点从命中视图 V h i t \mathcal{V}_{hit} Vhit中采样特征。最后,我们对采样特征进行加权和,作为空间交叉注意的输出。空间交叉注意力(SCA)的过程可以表述为:
其中 i i i索引摄像机视图, j j j索引参考点, N r e f N_{ref} Nref是每个BEV查询的总参考点。 F t i F^i_t Fti这是第 i i i个摄像机视图的特征。对于每个BEV查询 Q p Q_p Qp,我们使用投影函数 P ( p , i , j ) \mathcal{P}(p,i,j) P(p,i,j)来获得第 i i i个视点图像上的第 j j j个参考点。
接下来,我们介绍如何从投影函数 P \mathcal P P获得视图图像上的参考点。我们首先计算与位于 Q Q Q的 p = ( x , y ) p=(x,y) p=(x,y)处的查询 Q p Q_p Qp对应的真实世界位置 ( x ′ , y ′ ) (x^\prime,y^\prime) (x′,y′),如公式3所示。
其中, H , W H,W H,W是BEV查询的空间形状, s s s是BEV网格的分辨率大小, ( x ′ , y ′ ) (x^\prime,y^\prime) (x′,y′)是以自我车的位置为原点的坐标。在三维空间中,位于 ( x ′ , y ′ ) (x^\prime,y^\prime) (x′,y′)处的对象将出现在z轴上的 z ′ z^\prime z′高度处。因此,我们预先定义了一组锚定高度 { z j ′ } j = 1 N r e f \{z^\prime_j\}^{N_{ref}}_{j=1} {zj′}j=1Nref,以确保我们可以捕获出现在不同高度的线索。通过这种方式,对于每个查询 Q p Q_p Qp,我们获得一个3D参考点柱 ( x ′ , y ′ , z j ′ ) j = 1 N r e f (x^\prime,y^\prime,z^\prime_j)^{N_{ref}}_{j=1} (x′,y′,zj′)j=1Nref。最后,我们通过摄像机的投影矩阵将3D参考点投影到不同的图像视图,其可以写成:
这里, P ( p , i , j ) \mathcal{P}(p,i,j) P(p,i,j)是从第 j j j个3D点 ( x ′ , y ′ , z j ′ ) (x^\prime,y^\prime,z^\prime_j) (x′,y′,zj′)投影的第 i i i个视图上的2D点, T i ∈ R 3 × 4 T_i∈\mathbb{R}^{3×4} Ti∈R3×4是第 i i i个摄像机的已知投影矩阵。
除了空间信息外,时间信息对于视觉系统理解周围环境也是至关重要的[27]。例如,在没有时间线索的情况下,从静态图像中推断运动物体的速度或检测高度遮挡的物体是很有挑战性的。为了解决这个问题,我们设计了时间自我注意,它可以通过结合历史BEV特征来表示当前环境。
给定当前时间戳 t t t处的BEV查询 Q Q Q和在时间戳 t − 1 t-1 t−1处的历史BEV特征 B t − 1 B_{t−1} Bt−1、我们首先调整 B t − 1 B_{t−1} Bt−1以使相同网格处的特征对应于相同的真实世界位置。这里,我们将对齐的历史BEV特征 B t − 1 B_{t−1} Bt−1记作 B t − 1 ′ B^\prime_{t−1} Bt−1′然而,从时间 t − 1 t−1 t−1到 t t t,可移动对象以各种偏移在真实世界中移动。在不同时间的BEV特征之间构建相同对象的精确关联是一个挑战。因此,我们通过时间自我注意(TSA)层对特征之间的这种时间连接进行建模,其可以写成如下:
其中 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^\prime_{t-1} Bt−1′的串联来预测。特别地,对于每个序列的第一个样本,时间自我注意将退化为没有时间信息的自我注意,我们将BEV特征 { Q , B t − 1 ′ } \{Q,B^\prime _{t−1}\} {Q,Bt−1′} 替换为具有重复的BEV查询 { Q , Q } \{Q,Q\} {Q,Q}。
因为BEV具有 B t ∈ R H × W × C B_t∈\mathbb{R}^{H×W×C} Bt∈RH×W×C是一种通用的2D特征图,可用于各种自主驾驶感知任务,3D对象检测和地图分割任务头可基于2D感知方法开发[55,22],只需稍作修改。
对于3D对象检测。我们基于2D检测器Deformable DETR[55]设计了端到端3D检测头。修改包括使用单尺度BEV特征 B t B_t Bt作为解码器的输入,预测3D边界框和速度,而不是2D边界框,并且仅使用L1损失来监督3D边界框回归。使用检测头,我们的模型可以端到端预测3D边界框和速度,而无需NMS后处理。
对于地图分割。我们设计了一种基于二维分割方法全景分割器的地图分割头[22]。由于基于BEV的地图分割与普通语义分割基本相同,我们利用[22]的掩码解码器和类固定查询来针对每个语义类别,包括汽车、车辆、道路(可行驶区域)和车道。
训练阶段。对于时间戳 t t t处的每个样本,我们从过去2秒的连续序列中随机抽取另外3个样本,这种随机抽样策略可以增强自我运动的多样性[56]。我们将这四个样本的时间戳表示为 t − 3 , t − 2 , t − 1 t−3,t−2,t−1 t−3,t−2,t−1对于前三个时间戳的样本,它们负责循环生成BEV特征 { B t − 3 , B t − 2 , B t − 1 } \{B_{t-3},B_{t-2},B_{t-1}\} {Bt−3,Bt−2,Bt−1}并且该阶段不需要梯度。对于时间戳 t − 3 t-3 t−3处的第一个样本、没有以前的BEV特征,时间自我注意退化为自我注意。在时间 t t t,模型基于多摄像机输入和先前的BEV特征 B t − 1 B_{t-1} Bt−1生成BEV特征 B t B_t Bt,从而 B t B_t Bt包含跨越四个样本的时间和空间线索。最后,我们将BEV特征 B t B_t Bt输入检测和分割头,并计算相应的损失函数。
推理阶段。在推理阶段,我们按时间顺序评估视频序列的每个帧。前一个时间戳的BEV特征被保存并用于下一个,并且该在线推理策略具有时间效率,并且与实际应用一致。尽管我们利用了时间信息,但我们的推理速度仍与其他方法相当[45,47]。
我们在两个具有挑战性的公共自动驾驶数据集上进行了实验,即nuScenes数据集[4]和Waymo开放数据集[40]。
nuScenes数据集[4]包含1000个场景,每个场景持续时间约为20秒,关键样本以2Hz进行注释。每个样本由6个摄像机的RGB图像组成,具有360°水平视场。对于检测任务,有10个类别的1.4M带注释的3D边界框。我们按照[32]中的设置执行BEV分割任务。该数据集还提供了检测任务的官方评估指标。nuScenes的平均精度(mAP)是使用地平面上的中心距离而不是三维联合交点(IoU)来计算的,以匹配预测结果和地面实况。nuScenes度量还包含5种类型的真正度量(TP度量),包括分别用于测量平移、比例、方向、速度和属性误差的TE、ASE、AOE、VE和AAE。nuScenes还将Nuscene检测分数(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_{m{TP}∈\mathbb{TP}}(1−min(1,mTP))] NDS=101[5mAP+∑mTP∈TP(1−min(1,mTP))],以捕获nuScenes检测任务的所有方面。
Waymo开放数据集[40]是一个具有798个训练序列和202个验证序列的大规模自主驾驶数据集。请注意,Waymo提供的每一帧的五幅图像仅具有约252°的水平视场,但提供的带注释标签围绕ego汽车360°。我们删除了这些在训练和验证集的任何图像上都不可见的边界框。由于Waymo开放数据集规模大且速率高[34],我们通过从训练序列中每5帧采样一次,使用训练分割的子集,仅检测车辆类别。我们使用3D IoU的阈值0.5和0.7来计算Waymo数据集上的地图。
按照前面的方法[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,感知范围为[−51.2m、51.2m]并且BEV网格的分辨率s的大小为0.512m。我们对BEV查询采用可学习的位置嵌入。BEV编码器包含6个编码器层,并不断细化每个层中的BEV查询。每个编码器层的输入BEV特征 B t − 1 B_{t−1} Bt−1是相同的,并且不需要梯度。对于每个局部查询,在由可变形注意机制实现的空间交叉注意模块中,它对应于三维空间中具有不同高度的 N r e f = 4 N_{ref}=4 Nref=4个目标点,并且预定义的高度锚点从−5米到3米均匀采样。对于2D视图特征上的每个参考点,我们在每个头部的该参考点周围使用四个采样点。默认情况下,我们用24个时期训练模型,学习率为 2 × 1 0 − 4 2×10^{−4} 2×10−4。
对于Waymo上的实验,我们更改了一些设置。由于Waymo的摄像机系统无法捕捉ego汽车周围的整个场景[40],BEV查询的默认空间形状为300×220,感知范围为[−35.0m,75.0m]用于X轴,以及[−75.0m,75.0m]用于Y轴。每个网格的分辨率s的大小为0.5m。ego汽车位于BEV的(70,150)处 。
基线。为了消除任务头的影响并公平地比较其他BEV生成方法,我们使用VPN[30]和Lift Splat[32]来替换我们的BEVFormer,并保持任务头和其他设置相同。我们还通过在不使用历史BEV特征的情况下将时间自我注意力调整为普通自我注意力,将BEVFormer调整为称为BevFormr-S的静态模型。
我们使用检测头对我们的模型进行检测任务培训,目的是为了与之前最先进的3D对象检测方法进行公平的比较。在表1和表2中,我们报告了nuScenes测试和val拆分的主要结果。在公平训练策略和可比模型规模下,我们的方法在val集上超过9.2个点(51.7%的NDS vs.42.5%的NDS),优于之前的最佳方法DETR3D[47]。在测试集上,我们的模型在没有用太多花哨的结构(without bells and whistles)的情况下实现了56.9%的NDS,比DETR3D(47.9%NDS)高9.0个点。我们的方法甚至可以实现与一些基于激光雷达的基线相当的性能,如SSN(56.9%NDS)[54]和PointPainting(58.1%NDS)[43]。
以前基于摄像机的方法[47、31、45]几乎无法估计速度,我们的方法表明,时间信息在多摄像机检测的速度估计中起着关键作用。在测试集上,BEVFormer的平均速度误差(mAVE)为0.378 m/s,大大优于其他基于摄像机的方法,接近基于激光雷达的方法的性能[43]。
我们还对Waymo进行了实验,如表3所示。在[34]之后,我们使用0.7和0.5的IoU标准来评估车辆类别。此外,我们还采用nuScenes指标来评估结果,因为基于IoU的指标对于基于摄像机的方法来说太具挑战性。由于一些基于相机的工作报告了Waymo的结果,我们还使用DETR3D的官方代码在Waymo上进行了比较实验。我们可以观察到,在IoU标准为0.5的情况下,BEVFormer在航向信息(APH)[40]的平均精度为6.0%和2.5%的情况下优于DETR3D。在nuScenes度量上,BEVFormer优于DETR3D,其余量为3.2%NDS和5.2%AP。我们还对前摄像头进行了实验,以将Bevformr与CaDNN进行比较[34],在Waymo数据集上报告结果的单目3D检测方法。在IoU标准为0.5的情况下,BEVFormer在1级和2级困难方面的表现优于CaDNN,APH分别为13.3%和11.2%。
我们使用检测头和分割头训练模型,以验证我们的模型对多个任务的学习能力,结果如表4所示。在相同设置下比较不同的BEV编码器时,BEVFormer在所有任务中都实现了更高的性能,但道路分割除外,结果与BEVFformer-S相当。例如,在联合训练中,BEVFormer的表现在检测任务上优于Lift-Splat ∗ ^∗ ∗ [32]11.0点(52.0%NDS与41.0%NDS)以及在车道分割上5.6点的优势IoU(23.9%v.s.18.3%)。与单独训练任务相比,多任务学习通过共享更多模块(包括主干和BEV编码器)节省了计算成本并减少了推理时间。在本文中,我们证明了由我们的BEV编码器生成的BEV特征可以很好地适应不同的任务,并且使用多任务头的模型训练在检测任务和车辆分割方面表现得更好。然而,对于道路和车道分割,联合训练模型的性能不如单独训练模型,这是多任务学习中常见的负迁移现象[11,13]。
为了深入研究不同模块的影响,我们在带有检测头的nuScenes val数据集上进行了消融实验。更多消融研究见附录。
空间交叉注意力的有效性。为了验证空间交叉注意的效果,我们使用BEVFormer-S进行消融实验,以排除时间信息的干扰,结果如表5所示。默认的空间交叉注意基于可变形注意。为了比较,我们还构建了另外两条具有不同注意机制的基线:(1)使用全局注意代替变形注意;(2) 使每个查询只与其参考点交互,而不是与周围的局部区域交互,这类似于以前的方法[36,37]。为了进行更广泛的比较,我们还用VPN[30]和Lift Spalt[32]提出的BEV生成方法替换了BEV格式。我们可以观察到,在可比较的模型尺度下,变形注意显著优于其他注意机制。全局注意力消耗了太多的GPU内存,点交互的感受域有限。稀疏注意力实现了更好的性能,因为它与先验确定的感兴趣区域交互,平衡了感受野和GPU消耗。
时间自我注意的有效性。从表1和表4中,我们可以观察到,在相同的设置下,BEVFormer优于BevFormr-S,具有显著的改进,特别是在具有挑战性的检测任务上。时间信息的影响主要表现在以下几个方面:(1)时间信息的引入大大提高了速度估计的精度;(2) 利用时间信息,对象的预测位置和方向更精确;(3) 如图3所示,由于时间信息包含过去的对象线索,我们在严重遮挡的对象上获得了更高的召回率。为了评估BEVFormer在不同遮挡水平的对象上的性能,我们根据nuScenes提供的官方可见性标签将Nuscene的验证集分为四个子集。在每个子集中,我们还计算匹配期间中心距离阈值为2米的所有类别的平均召回率。为了公平地比较召回率,所有方法的最大预测框数为300。在只有0-40%的对象可见的子集上,BEVFormer的平均召回率优于BevFormr-S和DETR3D,其幅度超过6.0%。
模型规模和延迟。我们在表6中比较了不同配置的性能和延迟。我们从三个方面分析了BEVFormer的规模,包括是否使用多尺度视图功能、BEV查询的形状和层数,以验证性能和推理延迟之间的权衡。我们可以观察到,在BEVFormer中使用一个编码器层的配置C实现了50.1%的NDS,并将BEVFormer的延迟从原来的130ms减少到25ms。配置D具有单比例视图功能、较小的BEV尺寸和仅1个编码器层,在推理过程中仅消耗7ms,尽管与默认配置相比,它损失了3.9分。然而,由于多视点图像输入,限制效率的瓶颈在于主干,用于自主驾驶的高效主干值得深入研究。总体而言,我们的体系结构可以适应各种模型规模,并灵活地权衡性能和效率。
我们在图4中展示了复杂场景的检测结果。BEVFormer产生了令人印象深刻的结果,但在小型和远程对象中出现了一些错误。更多定性结果见附录。
在这项工作中,我们提出BEVFormer从多摄像机输入生成鸟瞰图特征。BEVFormer可以有效地聚集空间和时间信息,并生成强大的BEV特征,同时支持3D检测和地图分割任务。
局限性。目前,基于相机的方法在效果和效率上仍与基于激光雷达的方法存在特定差距。从2D信息精确推断3D位置对于基于相机的方法来说仍然是一个长期的挑战。
更广泛的影响。BEVFormer证明,使用来自多摄像机输入的时空信息可以显著提高视觉感知模型的性能。BEVFormer所展示的优势,如更准确的速度估计和对低可见物体的更高召回率,对于构建更好、更安全的自主驾驶系统以及其他系统至关重要。我们相信BEVFormer只是以下更强大的视觉感知方法的基线,基于视觉的感知系统仍有巨大的潜力有待探索。
在本节中,我们将提供所提出方法和实验的更多实现细节。
按照之前的方法[47,55],我们用24个时期训练所有模型,每个GPU的批量大小为1(包含6个视图图像),学习率为 2 × 1 0 − 4 2×10^{−4} 2×10−4,主干的学习率乘数为0.1,我们使用余弦退火来衰减学习率[24]。我们采用了重量衰减为 1 × 1 0 − 2 1×10^{-2} 1×10−2的AdamW[25]优化我们的模型。
在这项工作中,我们使用VPN[30]和Lift-Splat[32]作为两条基线。骨干和任务负责人与BEVFomer相同,用于公平比较。
VPN。我们在这项工作中使用官方代码1。受限于MLP的大量参数,VPN很难生成高分辨率BEV(如200×200)。为了与VPN进行比较,在本工作中,我们通过两个视图转换层将单尺度视图特征转换为50×50的低分辨率BEV。
Lift-Splat。我们使用两个额外的卷积层增强了Lift-Splat2的摄像机编码器,以便在可比较的参数数下与我们的BEVFormer进行公平比较。其他设置保持不变。
探测头。我们预测了每个3D边界框的10个参数,包括每个框的比例的3个参数(l、w、h)、中心位置的3个(xo、yo、zo)、对象偏航θ的2个参数(cos(θ)、sin(θ))、速度的2个参数(vx、vy)。在训练阶段仅使用L1损耗和L1成本。在[47]之后,我们使用900个对象查询,并在推理过程中保留300个具有最高置信度的预测框。
分割头。如图5所示,对于语义图的每一类,我们遵循[22]中的掩码解码器,使用一个可学习查询来表示该类,并基于来自普通多头部注意力的注意力图生成最终分割掩码。
全局注意力。除了可变形注意力[55],我们的空间交叉注意力还可以通过全局注意力(即原始多头注意力)[42]实现。利用全局注意力的最直接方法是使每个BEV查询与所有多摄像机特征交互,并且这种概念性实现不需要摄像机校准。然而,这种直接方法的计算成本是负担不起的。因此,我们仍然利用摄像机的内外参来决定一个BEV查询应该交互的命中视图。该策略使得一个BEV查询通常仅与一个或两个视图交互,而不是与所有视图交互,从而可以在空间交叉注意力中使用全局注意力。值得注意的是,与其他依赖于精确相机内外参的注意力机制相比,全局注意力对相机校准更为鲁棒。
附录剩余内容主要是鲁棒性研究、消融实验和可视化,详情见原文章。后续会做BEVFormer的具体讲解。