最新SOTA!HeightFormer:深度估计真的必要吗?显式建模BEV空间高度也能搞定!

小白学视觉

共 26374字,需浏览 53分钟

 · 2023-10-23

点击上方小白学视觉”,选择加"星标"或“置顶

    
    
重磅干货,第一时间送达

论文作者 | Yiming Wu

编辑 | 自动驾驶之心

文章概述

大家好,很荣幸受邀在这里分享我们最新的工作。这篇文章对于推进基于单目相机的3D感知有重要意义。其创新点在于改变了解决2D到3D映射问题的思路,不再单纯追求在图像空间学习更精确的深度,而是转到BEV空间建立高度模型。

文章通过理论分析证明了高度模型与深度模型在解决2D到3D映射问题上的等价性。设计的HeightFormer可以自递归逐层细化高度,并通过query mask避免背景误导,在NuScenes数据集上达到了SOTA性能。另外,高度真值可以直接从标注的3D包围框中获得,不需要额外的深度数据或传感器。整体方法没有使用任何额外模态数据,可以仅基于单目图像实现3D检测,适用性强。而且,这种高度模型可以更好地处理不同相机配置带来的影响,对任意相机都适用,鲁棒性更强。总之,这篇文章为通过建立BEV空间的高度模型实现单相机3D目标检测研究奠定了基础。

另外,这也启发我们,有时候改变原有的思路,从一个新的角度看问题,可能获得新的突破。

原文链接:https://arxiv.org/abs/2307.13510

I. 本文摘要:

基于视觉的鸟瞰图(BEV)表示是新兴的自动驾驶感知方法。其核心挑战是利用多相机特征构建BEV空间,这是一个一对多的不确定难题。通过深入研究以往的所有BEV表示生成方法,我们发现它们大多可以分为两类:一类是在图像视图中建立深度模型,另一类是在BEV空间中建立高度模型,而且大多数采用隐式的方式。在本设计中,我们提出在BEV空间中建立显式高度模型,这无需激光雷达等设备提供额外的数据,并且与建立深度模型相比,可以适用于任意的相机配置。从理论上,本设计证明了基于高度的方法与基于深度的方法是等价的。鉴于这种等价性及建立高度模型的一些优势,本设计提出了HeightFormer,它以自递归的方式对高度及其不确定性进行建模。在不使用任何额外数据的情况下,HeightFormer可以准确估计BEV中的高度。基准测试结果表明,HeightFormer的性能达到了目前仅使用相机的方法中的SOTA。

II. 基础知识补充

基于鸟瞰图(BEV)的视觉表示是自动驾驶的新兴感知方法。它将信息从图像空间转换和映射到统一的3D BEV空间,这可以用于各种感知任务,如3D对象检测和BEV地图分割。此外,统一的BEV空间可以直接融合其他模态的数据,如激光雷达,这具有很好的可扩展性。

BEV表示的本质是从2D到3D的映射,如图1所示,这是一个一对多的不确定难题,因为图像空间中的一点对应无限多条相机光线上的共线3D点。为了解决这个问题,本设计需要添加一个额外的条件将2D到3D的映射变成从一到一的确定问题。

对于添加的额外条件,有两类方法,LSS和OFT。LSS提出预测潜在的深度作为额外的条件,通过端到端的训练隐式地估计。OFT直接以一对多的方式将2D信息映射到3D,同时需要一个BEV空间网络来隐式地选择额外的垂直或高度方向的密集映射信息,这也是通过端到端的训练实现的。这两种方法都使用额外的深度或高度条件来解决映射问题,但额外的条件是隐式地训练和使用的。以这种方式,映射的正确性得不到保证,也可能会影响BEV表示的性能。

图 1 添加了额外条件的良好的2D到3D映射。在解决方案a中,引入了图像的额外深度信息;在解决方案b中,引入了BEV中的额外高度信息。

受上述观察的启发,作者提出添加和建立显示模型作为的额外条件来实现更好的2D到3D映射。当然目前也有类似的研究,一些工作提出提出利用深度预训练或激光雷达信息直接学习图像深度作为额外条件。与上述不同,本设计提出在BEV空间中建立显式高度模型来提升模型性能。

III. 方法详析

首先,本设计证明了BEV空间中的高度与图像空间中的深度在解决2D到3D映射问题上的等价性。两种方式都可以提供等价的条件来实现从2D到3D的映射。通过这种方式,本设计可以实现2D和3D之间的良定义的从一到一映射。其次,BEV空间中的高度信息可以从BEV标注中检索,不需要其他数据模态如激光雷达,而深度条件需要额外的预训练或激光雷达。在本设计中,使用物体的3D包围盒的高度信息,这可以直接从ground truth中访问。第三,在高度上的建模可以适用于任意的相机配置和种类。例如,在NuScenes数据集上,后置相机的焦距与其他相机不同,导致不同的深度估计模式。换言之,需要不同的深度估计网络来处理不同的相机。而对于高度条件,无论使用哪种相机配置,它都是在BEV空间中以相同的模式进行处理的。通过这种方式,高度条件更加鲁棒和灵活。

IV. 算法详解

在本设计中,本设计首先对建立深度模型和高度建模进行理论分析,因为它们是2D到3D映射的基础。本设计将证明它们对于从图像空间映射到BEV空间是等价的。此外,本设计将介绍HeightFormer的流程。本设计提出了自递归高度预测器来估计BEV中的高度并逐层进行细化。本设计还设计了一个基于分割的query mask来过滤背景信息,以提高模型的效率和性能。

A. 深度和高度的理论等价性

在这一部分,本设计证明了建立深度模型和高度建模在2D到3D映射上的等价性,如图2所示。同时,该证明表明如果高度可以准确建模,那么在生成的BEV空间中进行检测是可行的。

图 2 两种解决二维到三维映射不适定问题的方法,它们是等价的。在(a)中,将在图像中估计每个像素的深度,并将该像素处的特征投影到对应深度处的鸟瞰视角(BEV)体素中。在(b)中,将在BEV空间中估计或定义每个网格的高度。每个锚点与一个像素相关联,并将该像素处的图像特征累积到对应网格中。

先决条件。本设计在工作中使用两个坐标系统:图像坐标系统和BEV坐标系统。在图像框架中,点表示为 ,而在BEV框架中,点表示为 。为方便起见,本设计使用 表示2D BEV特征空间中的一个点或网格。给定BEV框架中的一个物体,其在图像框架中的坐标为 ,其深度定义为 。这些变量满足:

其中 是相机的内参。 是进行坐标变换的投影矩阵。

假设。本设计假设如果一个物体的特征被放置在2D BEV特征空间中其真值附近,那么该物体将被正确检测。从数学上讲,“附近”被定义为在其真值 网格的 邻域内。这里 是特征误置的容差。也就是说,

其中 是物体BEV特征的坐标。本设计这里简单地使用曼哈顿距离来度量特征误置错误。

深度误差。给定物体的深度 ,深度误差为 。为简单起见,本设计使用绝对误差,并忽略误差与深度的关系,因为物体的深度是固定的。物体的3D位置将被建模为 ,遵循:

以这种方式,物体的特征将落在BEV特征空间中的 。求解上述等式以及不等式(2),本设计可以得到深度误差的上确界:

高度误差。给定BEV网格 ,高度误差为 。对于所有在 邻域中的 ,本设计可以计算出对应的图像空间中的采样位置集合。本设计将这个集合表示为 ,它遵循:

为确保映射的特征是正确的, 必须在 中。也就是说,

求解上述等式(6),本设计可以得到在 邻域中高度误差的上确界:

结论。根据等式(4)、(7)和假设(2),对于给定的特征误置容差 ,深度预测误差 与高度预测误差 是等价的,因为它们都与 成比例。综上所述,BEV空间中的高度估计与图像空间中的深度估计是等价的,它们都可以很好地解决2D到3D映射问题。

前面的分析显示了解决从2D到3D映射问题的两个解决方案的等价性及高度建模的可行性。然而,尽管这两种解决方案等价,但高度估计相比深度估计有一些优势。高度估计是在统一的BEV空间中完成的,而深度估计需要处理相机配置的差异。高度建模的训练过程不需要额外的数据,而学习建立深度模型需要激光雷达信息。

B. 通过高度建模构建BEV空间

构建BEV空间需要从图像特征进行精心设计的特征采样。如图2(b)所示,对于一个BEV网格,其位置和高度可以推导出几个3D参考点。为了获取这些点上的特征,首先将它们投影到图像中,这一步产生2D参考点。BEVFormer在其流程中使用空间交叉注意力,将图像特征聚合到BEV空间。

在传统的空间交叉注意力中,BEV体素中预定义了一组锚高度。关于高度的信息被隐式地编码到注意力权重中。本设计选择一个样本,并用注意力权重加权这些锚高度。如图3所示,锚高度的加权平均与真值包围盒的分布在结构上是相似的。

图 3 a) 加权高度的热力图。(b) 鸟瞰视角下的边界框的真实值。高度是通过将锚点高度与空间交叉注意力的注意力权重相乘而生成的。热力图显示了高度信息是如何编码到空间交叉注意力的注意力权重中的。

本设计并没有采用预定义的锚高度,而是引入两个变量来描述建模对象的高度信息,并生成锚高度。一个变量表示对象中心的高度 ,另一个变量表示对象沿y轴的长度 。如图4所示,锚高度将在[ ]的范围内均匀分布。

图 4 参考点。3D参考点是在的范围内以等间隔选择的。它们将被投影到多视图图像中,生成2D参考点,并将这些2D参考点周围的特征聚集到相应的BEV query中。

由于高度变化可能很大,本设计引入不确定性来高度建模分布,并联合优化高度和不确定性。为方便起见,本设计使用一个指示器 来指示网格 上是否有任何物体。高度和不确定性的联合监督如下:

其中 表示估计高度的不确定性。这个损失函数对高度采用拉普拉斯先验,其分布建模为 的损失函数 与方程(8)类似。

C. BEV中的高度真值

与需要激光雷达信息的深度监督不同,高度监督很容易获取,不需要提高额外数据。本设计将物体的包围盒投影到2D BEV空间以生成高度的真值。作为物体中心高度的 是从BEV框架中的包围盒中心坐标获得的。物体高度 是从物体的尺寸获得的。如果多个网格表示同一个物体,它们将共享相同的高度。以这种方式,每个物体在高度图中用四边形表示。高度真值的一个示例如图5所示。标记为蓝色的包围盒被投影到BEV空间,物体中心高度 以热度图的形式绘制。 的范围是从-5米到3米,在激光雷达坐标系中。

图 5 真实高度 的演示。蓝色的立方体是物体的边界框。为了显示效果,它们沿着高度维度被拉伸。

D. 网络设计

HeightFormer的架构如图6所示。本设计主要介绍两个组件:自递归高度预测器和基于分割的query mask。其他模块将简要介绍。

图 6 HeightForme的架构。

自递归高度预测器。由于BEV编码器由多个连续的层组成,本设计设计一个自递归高度预测器以逐层细化高度并使用高度嵌入来保留高度信息。预测器以前一层的高度嵌入和来自时序融合模块的BEV query为输入,输出高度嵌入,经归一化后得到最终高度和不确定性。这个过程表示为:

其中 表示第 层的高度嵌入, 表示初始高度嵌入。 表示第 层的预测器。 表示第 层时序融合模块的BEV query。初始高度嵌入设计为使初始锚高度从地面均匀分布到天空。

基于分割的query mask。经过统计分析发现,大多数query都不包含任何物体。对于这些query,高度是没有定义的。因此,在这些query中预测的高度是无意义的。为避免从背景中聚集无关的特征,本设计引入基于分割的query mask。自递归高度预测器还将预测一个额外的二值分割图,表示覆盖物体的概率。在query中如果这个概率较低,其聚集的特征将被过滤。

其他模块。时序融合模块融合来自前帧的信息,空间交叉注意力在给定高度处对图像特征进行可变形注意采样以构建BEV表示。此外,采用了DETR风格的解码器来检测基于BEV特征对象。

V. 实验

A. 实验详情

数据集。本文在NuScenes检测数据集上评估提出的方法。作为自动驾驶的有挑战的数据集,NuScenes提供了1000个场景的数据,传感套件包含6个摄像头、1个激光雷达、5个毫米波雷达、1个GPS和1个IMU。训练集包含28,130个样本,验证集包含6019个样本。

指标。主要反映性能的指标是mAP和NDS。mAP广泛用于检测任务中。NDS代表NuScenes检测得分,它由六个子指标组成:mAP、mATE、mASE、mAOE、mAVE和mAAE。NDS计算为:

其中TP是除mAP外的子指标集合。mATE、mASE和mAOE分别测量定位误差、尺度误差和方向误差。mAVE测量速度预测误差。mAAE测量物体分类误差。对于NDS和mAP,越高越好。对于其他子指标,则相反。

设置。由于本文的模型是在BEVFormer的基础上构建的,本文与BEVFormer共享大多数设置。基本设置中使用四帧,tiny设置中使用三帧。基本设置和tiny设置中,BEV空间被划分为200×200个网格,每个网格表示0.512米×0.512米的区域。本文用方程(8)中的损失函数对最后一个编码器层的高度预测器进行监督。额外的分割图用二值focal loss进行监督。本文还使用了一个与位置相关的称为BEV centerness的损失权重,它更关注远处区域,以提高远处网格的高度估计精度。

B. 模型分析

性能上确界。本文首先用真值高度替换高度预测器,以评估精确的高度估计是否可以提高检测性能,本文称这个方法为HeightFormer-gt。对于包含物体的BEV网格,预测高度被替换为真值高度。对于其他情况,预测高度被替换为 ,退化为BEVFormer的情况。结果如表I所示。

包含物体的BEV网格中,预测的高度被替换为真实的高度。对于其他的,预测的高度被替换为 and ,这相当于退化到了BEVFormer的情况. 结果显示在表I。

表I显示,HeightFormer-gt的NDS和mAP分别超过BEVFormer 0.208和0.374,这可以看作是性能上确界。如果高度可以准确建模,性能将有大幅提升。同时,表I中的Lift-Splat是一种通过深度建模构建BEV空间的方法,根据BEVDepth,引入真值深度可以将Lift-Splat风格检测器的mAP提高0.188。表I中的实验表明,无论在深度建模还是高度建模中,都有非常大的改进空间。

此外,应注意的是,两类方法LSS和BEVFormer不能直接比较,因为它们有不同的网络架构。本文在这里列出这些结果是为了显示在精确的深度或高度建模条件下Lift-Splat和BEVFormer的性能上确界。

显式高度建模的有效性。本文提出了原始的HeightFormer,它将固定的参考点变为自适应参考点。自适应参考点是用预测的锚高度生成的。通过这种方式,高度信息由高度预测器显式学习。为了展示显式高度建模的有效性,本文与BEVFormer进行了比较,后者以隐式方式将高度信息编码到空间交叉注意力的权重中。原始HeightFormer仅具有多层感知机作为高度预测器。结果如表II所示。显式高度建模在NDS和mAP上都带来了0.5个百分点的提升。

网络设计的有效性。在独立每层预测高度的原始HeightFormer的基础上,本文添加了高度嵌入来构建自递归预测器。对于不覆盖任何物体的BEV网格,应用query mask。为了比较,设计了两种类型的掩模。基于不确定性的掩模过滤具有高不确定性预测高度的BEV query。基于分割的掩模过滤不太可能包含物体的BEV query。结果如表III所示。

自递归地预测高度带来了0.3个百分点的NDS改进。此外,本文观察到,当独立预测时,连续预测器的输出之间存在巨大差距,而自递归地逐层细化高度可以缓解这个问题。

两种类型的掩模都可以提高NDS,而基于分割的掩模在mAP上带来了0.5个百分点的提升。改进主要来自过滤无关特征和引入分割作为辅助任务。在提出的方法中,没有适当的方法来定义不覆盖任何物体的BEV网格的高度。因此,这些网格中的预测高度是不可解释的,采样的特征来自无关的背景区域。应用掩模可以缓解这个问题。

高度建模的稳健性。如介绍中所述,尽管深度建模和高度建模都可以为2D到3D映射提供额外的条件,但高度建模具有独特的优势,即可以处理任何相机配置。这是因为在图像空间中估计深度可能会受到相机配置的影响,而由于所有信息都映射到了统一的BEV空间,所以估计高度简单且稳健。为验证这一特性,本文使用具有不同焦距的后置摄像头测试本文的方法,与其他摄像头的焦距不同。本文使用BEVDepth\cite{li2022bevdepth}作为深度建模方法。结果如表IV所示。

表IV中可以看到,尽管BEVDepth整体性能更高(因为使用了额外的激光雷达数据训练),但高度建模在后置摄像头上的性能更高。这意味着高度建模对不同的相机配置更加稳健,即使摄像头的焦距不同。

C. 激光雷达监督

为了显示引入额外的激光雷达监督可以获得多大的进一步改进,本文在本部分中介绍了激光雷达监督。

首先,激光雷达点以其高度被投影到BEV网格中,高度范围被等分为16个区间。对于每个BEV网格,其高度 是包含最多点的区间的高度。其下确界高度是该网格中最低点的高度,构成 。此外,来自激光雷达点和来自包围盒的高度被融合以构建高度真值。对于每个BEV网格,首选来自真值包围盒的高度。如图7所示的融合高度用作真值高度。

图 7 这张图展示了融合后的高度 。LiDAR点云被投影到BEV栅格中,并带有它们对应的高度:(a) 包含最多点的高度区间被用来表示 ;(b) 一个栅格内最低的点被用来表示

有了额外的激光雷达信息监督,性能提高了0.3个百分点。模型分析如表V所示。

表V中可以看出,与显式高度建模带来的改进相比,额外的激光雷达监督对提出方法的性能改进较小。一个潜在的原因是激光雷达点较稀疏。当它们被投影到BEV空间时,只有少数网格包含点,这不足以监督整个BEV空间。因此,其他部分的实验在没有激光雷达监督的情况下进行。

D. 泛化能力

在这部分,本文将展示提出的HeightFormer也可以用作其他类型BEV表示的插件来进行细化。流程如图8所示。

图 8 插件流程图。HeightFormer可以作为插件来改善其他类型的BEV表示。这个插件以图像特征和BEV特征为输入,输出改善后的BEV特征。

以BEVDepth为例,它使用预测的深度分布将图像特征提升到体素特征,并通过体素池化将体素特征汇聚到BEV特征。这里本文使HeightFormer成为BEVDepth的插件,通过插件改进BEVDepth的性能。结果如表VI所示。

本文首先在没有BEV数据增广的情况下训练一个BEVDepth模型20个epochs。其最佳性能为NDS 0.366。本文在BEVDepth中插入单层HeightFormer插件,并以相同设置训练新模型。新模型的最佳性能为NDS 0.369。NDS提高了0.3个百分点,这表明HeightFormer插件有效地改进了BEV表示,从而提高了性能。

E. 定性结果

高度预测误差。高度预测器的性能对特征聚集过程至关重要。为了展示高度可以被很好地估计,本文在图9中绘制了y的预测误差。图中的数据点代表所有样本的随机选择的BEV网格。对于接近的BEV网格,75%的网格误差小于0.2米。对于远处的BEV网格,75%的网格误差小于0.5米。这种程度的误差会使大多数参考点落在物体上。

图 9 预测的y的错误与BEV栅格距离的关系。高度是由HeightFormer-tiny预测的。远处的BEV栅格倾向于有更高的高度预测错误。

包围盒可视化。在这部分,本文看一下检测到的包围盒。图10展示了一个样本的HeightFormer-tiny检测结果。在这个样本中,大多数物体已经被正确检测,而一些远处或被遮挡的物体被误分类。这是因为远处物体在图像中占很少的像素,遮挡物体的特征无法被采样。

图 9 预测的边界框的可视化。前两行是预测结果,最后两行是真值。不同的边界框颜色表示不同的对象类别。

F. 基准结果

NuScenes验证集。本文在表VII中报告了NuScenes验证集上的结果,并与目前仅基于摄像头的方法进行了比较。与BEVFormer相比,HeightFormer改进了NDS 1.5个百分点。与目前SOTA的BEVDepth相比,该方法在训练中引入了激光雷达并在图像空间和BEV空间中进行了数据增广,提出的HeightFormer在mAP上提高了1个百分点,这是检测的关键指标。

经过对所有子指标的详细分析,本文发现mAP的提高主要来自于小阈值下的AP,例如AP@1.0m。同时,对稀有类的检测提高大于常见类:“公共汽车”、“拖车”和“摩托车”的AP提升大于“汽车”。一个潜在的原因是提出的query mask过滤了背景并因此减少了误报。这对稀有类的检测是有帮助的。

NuScenes测试集。本文在表VIII中报告了NuScenes测试集上的结果。列出的模型都以从DD3D初始化的VoVNet(V2-99)作为骨干网,仅使用相机数据。提出的HeightFormer改进了BEVFormer的NDS 0.4%,并达到当前SOTA。本文还注意到改进主要来自于mATE和mAVE,这意味着提出的方法改进了位置估计和速度估计。但是,与验证集上的改进相比,这一改进并不显著。本文认为这是因为普遍采用的VoVNet骨干网在深度估计任务上进行了预训练,这对高度建模没有太大帮助。

VI. 结论与局限性

在本设计中,本设计分析了在构建BEV表示时从2D到3D映射的问题,并证明了图像空间中的深度估计与BEV空间中的高度估计的等价性。在此基础上,本设计提出了HeightFormer,它可以在BEV中建立显式高度模型,不需要额外的激光雷达辅助。根据本设计的实验,提出的自递归高度预测器可以准确高度建模,基于分割的query mask可以有效提高检测性能。在NuScenes数据集上的实验表明,本设计所提出的HeightFormer达到了当前的SOTA性能。

最后,本设计存在一个局限。因为真值高度是通过投影包围盒获得的,这意味着只有少数query有定义的高度。即使引入激光雷达监督,大多数网格也没有落入的激光雷达点。因此,这些网格的高度仍然是隐式学习的。为缓解这个问题,本设计过滤这些query以避免在采样过程中引入无关的特征。

   
   
下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 127
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报