这里将全面解析自动驾驶系统BEV 3D 检测提升策略
众所周知,与其他传感器相比,自动驾驶汽车AV摄像头拥有最密集的信息,使其成为自动驾驶汽车中提取信息最具挑战性的传感器之一,但同时也是最有用的。为了从数学上理解这一点,需要首先看一下每个可视化数据点数量,如下图所示。实际上,视觉感知算法是将这些数据点(浮点数)作为传感器覆盖 360°视图的感知算法输入,负责为 AV 做出决策。
基于视觉的3D检测任务是自动驾驶系统感知的基础任务,也是自动驾驶当前研究的热点。然而,使用单目相机的 2D 传感器输入数据实现 3D BEV(鸟瞰图)性能并不是一件容易的事。在本文中,重点关注自动驾驶中基于3D 视觉检测的方法。基于不同视觉BEV 算法检测进行了详细分析,并将它们分为不同的子组,以便更容易理解共同趋势。此外,从行业趋势上分析了如何将3D检测任务转向基于环视图像的方法,以及介绍了这些环视方法适用到自动驾驶或自动泊车中的特殊场景。最后,基于当前方法的缺点以及前沿协同感知这类型研究方向,提出了 3D 视觉技术对未来研究的思考。
为了涵盖理解3D BEV目标检测任务所需的基础知识,我们讨论四个方面:自动驾驶车辆 (AV) 上的传感器设置;经常使用的数据集;自动驾驶检测任务的常见评估指标,以及为什么鸟瞰图 (BEV) 对于 AV 摄像头感知很重要?
因此,本文将基于环视视觉的3D对象检测的进行全面调研,提供了对最近基于深度学习的方法和架构的全面回顾。首先,基于单视图检测器基线进行了深入分析,激发了使用相机进行 3D 物体检测任务中的环视检测器研究。其次,进一步分析了计算机视觉界目前正在开发的主要环视探测器趋势,从而对它们进行分类。最后,对遗留问题进行了详细分析,并介绍了BEV 3D图像目标检测器的几个潜在研究方向,从而为未来的检测研究打开了可能的大门。
AV系统利用不同视角感知视图的特征来了解自动驾驶车辆周围场景的整体表示。多相机组合都需要事先进行与固定传感器安装及其校准相关的基础设施工作。相机的标定简单来说就是提取两个相机之间的外参变换矩阵。该相机矩阵使我们能够将一个相机中的像素一对一映射到另一个相机中的像素,从而在多个相机之间创建关系以实现它们之间的推理。自动驾驶汽车需要保持这种长距离的高视场重叠,以最大限度地减少短距离的盲点。通过回归每个对象的深度或使用基于启发式的方法(逆透视映射),通过估计地平面高度,可以有效的将透视图检测提升到 BEV 空间。
3D 物体检测器使用多个标准来衡量检测器的性能,即精度和召回率。精度是检索到的待检测案例中相关实例的比例,召回率是检索到的相关实例的比例。如下公式:
Precision=TP/(TP + FP) (1)
Recall=TP/(TP + FN) (2)
然而,平均精度 (mAP) 是最常见的评估指标。可根据上述方程,分别计算每个类别的平均精度。为了比较不同检测器之间的性能(mAP)。需要基于每个类别的基本事实数量计算加权平均值。并集交集(IoU)是预测框与真实框之间重叠面积与并集面积的比率,IoU 阈值(通常为 0.5)用于判断预测框是否与任何特定的真实框匹配。如果 IoU 大于阈值,则该预测被视为真阳性 (TP),否则为假阳性 (FP)。如果无法用任何预测框检测到的真实对象将被视为假阴性 (FN)。
另外,定义如下公式所示的F1 分数作为第二个最常见的检测指标,它表示为精度和召回率的加权平均值。当模型在不同的配置下部署时,更高的 AP 检测器可以提供更好的性能。然而,当模型要以已知的固定最佳置信度阈值部署时,会使用更高的 max-F1 分数检测器。
F1=2∗Precision∗Recall/(Precision+Recall) (3) 此外,还有一些数据集特定的指标,即 KITTI 引入的平均方向相似度(AOS),它评估地平面上盒子的方向估计的质量。mAP度量仅考虑对象的3D位置,但是忽略尺寸和方向的影响。与此相关的是,nuScenes 引入了 TP 指标,即平均平移误差 (ATE)、平均尺度误差 (ASE) 和平均方向误差 (AOE)。WOD 引入了按航向加权的平均精度 (APH) 作为其主要指标,将航向/方向信息纳入评估体系。考虑到相机等 2D 传感器的深度混乱,WOD 引入了纵向误差容错 3D 平均精度 (LET-3D-AP),在预测中更强调横向误差而不是纵向误差。
为什么要在 AV 中采用环视技术构建多相机检测视图算法呢?因为在很多时候,很难将整个对象放入单个帧中以对其进行准确检测和分类,这是长型车辆类别中特别常见的问题。通过如下图所示可以很直观地了解整个多相机检测的优势。
图 周视图像在 3D 物体检测中的使用
如上图所示,顶部表示构建的整个BEV 视图;底部表示右前、右、右后摄像头的周视图像。假设只使用一个或两个摄像头,我们可以将物体分类为汽车,但如果没有所有三个图像,我们将无法对其位姿和运动状态进行完美定位,因为考虑跟踪而言,我们最后的目的是要在黑色豪华轿车上安装准确的边界框。因此,由多V构建在3D坐标系下的鸟瞰图是非常必要的。并且,在鸟瞰图中使用 3D 代理的表示形式对于自动驾驶更具有实际意义。
1、传感器融合
首先,BEV代理表示形式使得所有AV车辆相关的全场景感知传感器(即Camera、LiDAR 和RADAR)的融合更加自然。比如,基于激光雷达本身也可以在 BEV 空间中运行。
2、时间一致性
其次,如果处理算法都在BEV 中进行操作,就可以更好地对动态场景的时间一致性进行建模。与透视图(相机视图)相比,BEV 代理中的运动补偿(即平移和旋转建模)要简单得多。例如,在 BEV 视图中:姿势变化仅取决于主体的运动,而在透视视图中,姿势变化取决于深度以及主体的运动。
3、空间一致性
由于感知对象的比例在BEV 空间中是一致的,但在透视图中则不太一致。在透视图中,物体离物体越近就会显得越大。因此,BEV 空间使得学习与范围无关的尺度特征变得更容易。在自动驾驶中,感知之后的下游任务(例如运动预测和运动规划)本身也可以在 BEV 空间上运行。因此,所有软件堆栈在车载域控平台上很自然的就会利用BEV下的通用坐标视图进行计算和转化。
4、协同感知
基于单V图像的目标检测主要是基于如下三类方法:两级、单级和基于集合的检测器。其中,两级探测器分为两个阶段。第一阶段是预测任意数量的对象提案,然后在第二阶段通过对这些对象提案进行分类和本地化来生成预测框。然而,这些建议存在推理时间慢、缺乏全局上下文(即使在单个图像内)和复杂架构等固有问题。因此,采用多V图像的BEV代理架构构成的两阶段方法可以很好的解决如上问题。
最近的创新研究领域---“协同感知”,也正是利用了 BEV 形式来表示公共坐标系中的所有代理。这些协同感知中视觉算法主要基于 R-CNN工作线构建区域的全卷积网络(R-FCN)、特征金字塔网络(FPN)和 Mask R-CNN。此外,还有激光算法围绕伪 LiDAR 的并行工作流,在第一阶段预测密集深度,从而将像素转换为伪点云,然后将类似 LiDAR 的检测头应用于 3D Point-pillars 中完成的对象检测。
周视检测可以大致分为两个子组,即基于几何的视图变换器和基于交叉注意力的视觉变换器。其过程是将每个图像单独提升到 BEV 特征的截锥体中,然后将所有截锥体放到光栅化的 BEV 网格上。给定 n 张图像 Xk ∈ R3xHxWn,每个都有一个外参矩阵 Ek ∈ R3x4 和一个内参矩阵 Ik ∈ R3x3,可以在 BEV 坐标系中找到特征的栅格化 BEV 图为 y ∈ RCxXxY,其中 C、X 和 Y 是通道深度BEV 地图 、高度和宽度。外参矩阵和内参矩阵共同定义了每个摄像机从参考坐标 (x, y, z) 到局部像素坐标 (h, w, d) 的映射。这种方法不需要在训练或测试期间访问任何深度传感器,只需 3D 框注释就足够了。该架构如下图所示,它改进了预处理和后处理技术。
Lift-splat-shoot (LSS)架构
如上图所示,顶图表示的整个BEV算法的提升步骤如下:
每个图像平截头体的像素定义了上下文向量,并投影到 BEV 坐标空间中生成离散深度,底图则通过接收 n 个图像并返回 BEV 语义图。
与基于雷达这类传感器相比,基于单帧视觉的探测器通常具有更高的速度误差,因为 LiDAR 探测器通常使用在点云中嵌入时间信息的多次扫描数据,而RADAR 固有的点云包括使用多普勒效应的速度属性。基于此,在视觉检测器中添加时间帧则能够学习道路上动态代理的时间线索。最新的BEVDet4D网络架构整体上添加了时间维度,使BEV的问题升级成为 4 维问题,这种方法试图解决基于视觉的探测器中高速误差的固有问题。
作为进一步的扩展,BEVDepth方法添加了相机感知深度估计模块,这有助于实现对象深度预测能力。整体假设是:增强深度是 nuScenes 基准上高性能相机 3D 检测的关键,将 LSS 中的普通分割头替换为用于3D 检测的 CenterPoint头。对于辅助深度头基线,则仅使用检测损失的监督。然而,由于单目深度估计的困难,单独的检测损失远远不足以监督深度模块。因此,通过使用校准的 LiDAR 数据将相机变换矩阵点云投影到图像上,从而形成 2.5D 图像坐标 P imgi(u, v, d),其中 u 和 v 表示图像坐标中的坐标,d 表示相应 LiDAR 点云的深度,实现了单摄像头检测深度的缺陷损失。
当然,为了减少内存使用,进一步开发的M2BEV可以很好减少可学习参数,并在推理速度和内存使用方面提高效率。优化的检测器包括四个组件:
1. 图像编码器,用于提取透视图中的图像特征;
2. 深度模块,用于生成深度和上下文,然后将它们进行外积以获得点特征;
3. 视图转换器,将透视图转换为 BEV 视图;
4. 3D 检测头提出最终的 3D 边界框;
5. BEV三维重建模块引入动态时间立体方法来增强计算成本预算内的深度预测。
视觉 Transformer (Vision Transformer,ViT)可以根据 Transformer 解码器中查询(对象建议)的粒度进行划分,即基于稀疏查询的方法和基于密集查询的方法。基于稀疏查询的 ViT假设测试数据对象代表训练数据对象,其处理过程则是尝试从代表性训练数据中学习要在场景中查找的对象建议,然后使用这些学习到的对象建议在测试时进行查询。
单图像(透视视图)DETR通过 DETR3D 扩展到 BEV 空间中的环视图像。这里给定 n 个环视图像 I ∈ R H’×W’×3,分别通过主干网BackBone、特征提取网FPN 后由Transformers 编码器产生 n 个编码图像特征 F ∈ RHxWxd。其中 d 是特征维度,H'、W' 和 H,W 分别表示图像和特征的空间尺寸。然后,将这 n 个编码特征和一小组对象查询 Q ∈ R Nxd 馈送到Transformer 解码器中以产生检测结果。这里 N 是对象查询的数量,表示 BEV 地图上不同位置的潜在对象,对于整个 360°场景,通常为 300 ∼900个查询对象。作为元数据,相机变换矩阵也用作输入。需要这些矩阵来创建映射到 2D 坐标空间的 3D 参考点,并对每个查询的相应 2D 特征进行采样。
在 Transformers 解码器中,对象查询依次由自注意力模块、交叉注意力模块和前馈网络 (FFN) 处理,最后由多层感知器 (MLP) 生成 3D BEV 检测的最终输出。这里的自注意力模块在不同对象查询之间执行消息传递;在交叉注意力模块中,对象查询首先搜索相应的区域/视图进行匹配,然后从匹配的区域中提取相关特征以进行后续预测。
另外值得注意的是,基于变压器的编码器是这里的可选附加组件,但这些检测器的核心部分是基于变压器的解码器。这种方法的工作流程可以很容易地理解,如下图所示。
DETR3D 合并了重叠区域中两个相邻视图的多个特征,同时也合并了重叠区域中两个相邻视图的多个特征,每个图像的边界区域可能导致特征截断,这也是阻碍 DETR3D 性能的主要瓶颈。因此,DETR3D仍然存在特征聚合不足的问题,从而错过了充分提升检测性能的机会。
为了优化 DETR3D算法瓶颈,可以由如下不同的算法优化策略:
1)通过图结构学习(GSL)聚合环视图像信息。
它在每个对象查询和 2D 特征图之间构建动态 3D 图,以增强对象表示,尤其是在图像边界区域。这类方法可以表述为PETR,即在PETR的位置编码开发工作中,通过对摄像机变换矩阵中的 3D 坐标进行编码,将环绕视图特征变换到 3D 域。随后,通过与 3D 位置感知功能交互来更新对象查询并生成 3D 预测,从而使过程更简单。增强型PETRv2则在PETR基础上其添加了时间维度,以获得时间感知的更密集特征。
2)Polar DETR在极坐标中参数化 3D 检测。
这重新表述了位置参数化,极坐标系(r,θ)中的速度分解、感知范围、标签分配和损失函数。这种基于 Graph-DETR3D的检测方法,量化了位于不同区域的对象,可以简化并支持中心上下文特征聚合以增强特征交互。
3)基于密集查询的 ViT。
假设有一个基于 BEV 表示中感兴趣区域的密集查询,每个查询都预先分配了 3D 空间中的空间位置。因为仍然能够检测到某些类型的对象,这些对象不是通过稀疏查询在训练数据中进行学习的。换句话说,当训练数据不能完美代表测试数据时,这种方法更加稳健。
BEVFormer通过预定义的网格状 BEV 查询与空间和时间空间进行交互,从而可以很好的利用空间和时间信息。为了聚合空间信息,设计了空间交叉注意力,每个 BEV 从相机视图的空间特征中提取信息进行查询。对于时间信息,他们使用时间自注意力来循环融合历史 BEV 信息,如下图所示。
BEVFormer 的总体架构
如上图所示,整体架构上(a) BEVFormer 的编码器层包含网格状 BEV 查询、时间自注意力和空间交叉注意力。(b)在空间交叉注意力中,每个 BEV 查询仅与感兴趣区域中的图像特征进行交互。(c)在时间自注意力中,每个 BEV 查询与两个特征交互:当前时间戳的 BEV 查询和前一个时间戳的 BEV 特征。
由于利用了密集查询,这种方法已经超越了基于稀疏查询的 Vision Transformers 方法,获得了更高的召回值。然而,密集查询是以高计算要求为代价的。因此,使用可变形 DETR 来解决这个问题的K点围绕参考点采样策略,即BEVFormer 可完全基于变压器的结构使其 BEV 功能比其他方法更加通用,从而轻松支持非均匀和不规则的采样网格。
4)优化BEVFormer的方法策略。
后续优化策略中,BEVFormerV2添加了透视监督,这有助于收敛并以更好的方式利用基于图像的主干网。其中包括两级检测器,其中来自透视头的建议被输入鸟瞰图并进行最终预测。除了透视头提案之外,还使用了 DETR3D 风格的学习查询。对于辅助透视损失,使用 FCOS3D head,用于预测 3D 边界框的中心位置、大小、方向和投影中心度。
该头的辅助检测损失,表示为透视损失Lpers,作为BEV损失Lbev的补充,促进骨干网的优化。整个模型的训练有一个总体目标:
PolarFormer主张在 BEVFormer 之上利用极坐标系,这样可以很好的解释自车视角的本质,因为每个车载摄像头都以具有根(非垂直)轴的成像几何固有的楔形形状感知世界。