0. 简介
对于基于环视视觉的3D检测而言,目前已经有很多文章了。因为基于视觉的3D检测任务是自动驾驶系统感知的基本任务,然而,使用单目相机的2D传感器输入数据来实现相当好的3D BEV(鸟瞰图)性能不是一项容易的任务。这篇文章《Surround-View Vision-based 3D Detection for Autonomous Driving: A Survey》就是围绕着现有的基于视觉3D检测方法进行了文献调研,并且将它们分为不同的子组以便更容易地理解共同趋势。这对于想要入门这块领域的同学非常友好
图1. 自动驾驶中的全景图像3D检测器。在透视视图中,覆盖在全景图像上的地面真实3D框(顶部);在BEV HD地图上,覆盖着真实的3D框(底部),自车为粉色。
1. 主要贡献
本文的主要贡献如下:
1)本文对主要的单视图检测器基线进行了深入分析,这些检测器推动了使用相机的3D目标检测任务中环视检测器的研究;
2)本文进一步分析了当前计算机视觉领域中主要的环视检测器发展趋势,从而对它们进行分类以便于读者理解;
3)本文提供了用于评估和比较上述方法的评估指标和数据集的详细信息;
4)本文详细分析了有关BEV 3D图像目标检测器存在的问题,并且介绍了若干潜在的研究方向,从而为未来的研究打开新的大门。
图2. 本综述论文的结构。
2. 传感器设置
在我们查看自动驾驶车辆(AV)中如何设置摄像头之前,让我们先尝试理解为什么我们需要摄像头。相比其他传感器,摄像头具有最稠密的信息,使它们成为从AV中提取信息最具挑战性的传感器之一,但同时也是最有用的传感器之一。为了从数学上理解这一点,让我们首先看一下图3中每个可视化中的数据点数量。**将这些数据点(浮点数)作为感知算法的输入,以覆盖360◦视角的传感器,负责为AV做出决策。**让我们从多摄像头开始:
摄像头数量:8; 每个摄像头的像素数:2,000 * 3,000(图像像素分辨率:宽度*高度); 像素的表示:3(三通道RGB值)。 这将使总参数为:8 * 2000 * 3000 * 3 = 144M浮点数!
现在再与LiDAR进行类似的比较:
点云中的LiDAR点数:250,000; 每个LiDAR点的表示:4(3D坐标即x、y、z和反射)。 这将使总参数为:250,000 * 4 = 1M浮点数!
这些数字和图3中的可视化足以证明我们的观点:“摄像头在AV感知环境中发挥的关键作用”。
图3. 周围视图8个摄像头图像(顶部); LiDAR点云覆盖在高清地图上(底部)。关键词:绿色点:LiDAR点云;粉色框:自主车辆;灰色地图:预先计算的带有颜色强度的高清地图。
相比于其他基于激光的传感器,摄像头是成本最低廉的传感器之一。然而,与任何其他基于激光的传感器相比,摄像头在检测远程物体和提取基于视觉的道路提示(如交通灯状态、停车标志等)方面表现出色。在自动驾驶汽车制造商之间,环绕视图摄像头的设置可能会有所不同,但通常每辆车有6~12个摄像头。需要这么多摄像头来覆盖整个周围的3D场景。我们只能使用具有正常视场的摄像头,否则可能会出现无法修复的图像失真,例如鱼眼摄像头(广角视场),这种摄像头只适合在几十米范围内使用。在最常引用的基准数据集nuScenes(Caesar等人,2020)中,AV空间中的感知传感器设置如图4所示。
图4. nuScenes(Caesar等人,2020)基准数据集中自主驾驶车辆的传感器设置。
3. 数据集
nuScenes(Caesar等人,2020年)、KITTI(Geiger等人,2012年)和Waymo开放数据集(WOD)(Sun等人,2020年)是3D BEV物体检测任务中最常用的三个数据集。除此之外,H3D(Patil等人,2019年)、Lyft L5(Houston等人,2020年)和Argoverse(Chang等人,2019年)也可用于BEV感知任务。nuSences包含1000个场景,每个场景持续20秒。它们包含六个校准图像,覆盖了道路的360°视野。nuScenes的传感器设置如图4所示。KITTI是自主驾驶数据集的开创性工作。它的数据样本比较小,与最近的数据集相比。Waymo开放数据集(WOD)是另一个大规模的自主驾驶数据集,分别有798个序列进行训练,202个序列进行验证和150个序列进行测试。Argoverse 2还包含1000个场景,带有LiDAR、立体影像和环形相机影像,也称为环绕相机影像。这些数据集的详细信息如表1所示。
表1. 自动驾驶中使用相机进行3D BEV物体检测常用的基准数据集信息。
4. 评估指标
3D物体检测器使用多个标准来衡量检测器的性能,例如精确度和召回率。然而,平均精度均值(mAP)是最常见的评估指标。交并比(IoU)是预测框和真实框之间重叠区域和并集区域的比率。通常使用IoU阈值(通常为0.5)来判断预测框是否与任何特定的真实框匹配。如果IoU大于阈值,则该预测被视为真正的阳性(TP),否则它是假阳性(FP)。未检测到任何预测框的真实对象被视为假阴性(FN)。精确度是检索实例中相关实例的分数;而召回率是检索到的相关实例占相关实例的比例。
基于上述公式,平均精度是针对每个类别单独计算的。为了比较不同检测器的性能,使用平均精度(mAP)。它是基于每个类别的真实样本数的加权平均。另一种常见的检测度量是F1分数,它被定义为精确度和召回率的加权平均。更高的AP检测器在模型在不同置信度阈值下部署时会提供更好的性能,然而,当模型要在已知的固定最佳置信度阈值下部署时,使用更高的 m a x − F 1 max-F1 max−F1分数检测器。
此外,还有一些特定于数据集的指标,如KITTI引入了平均方向相似性(AOS)指标,用于评估地面平面上盒子的方向估计质量。mAP指标仅考虑对象的3D位置,但忽略了尺寸和方向的影响。就此而言,nuScenes引入了TP指标,即平均平移误差(ATE)、平均比例误差(ASE)和平均方向误差(AOE)。WOD引入了以航向加权的平均精度(APH)作为其主要指标。它还考虑了航向/方向信息。此外,由于相机等2D传感器的深度混淆,WOD引入了纵向误差容忍3D平均精度(LET-3D-AP),在预测中更强调横向误差而不是纵向误差。
5. 环视检测
5.1 为什么在自主驾驶中需要环绕视图
我们将只关注基于自主驾驶的计算机视觉。环绕视图系统利用来自不同视角的特征来理解自主车辆周围场景的整体表示。任意两个或多个摄像头的组合需要与固定传感器安装和它们的校准相关的先前基础设施工作。相机的校准简单地意味着提取两个相机之间的外在变换矩阵。这个相机矩阵使我们能够将一个相机中的像素映射到另一个相机中的像素,从而在多个摄像头之间创建关系以实现推理。环绕视图图像可以表示为 I ∈ R N × V × H × W × 3 I∈\mathbb{R}^{N×V×H×W×3} I∈RN×V×H×W×3。这里, N N N、 V V V、 H H H和 W W W分别是时间帧数、视图数、高度和宽度。
图5. 在三维物体检测问题中使用全景图像。鸟瞰视图(顶部);右前方、右侧、右后方摄像机的全景图像(底部)。这表明,使用一两个摄像机,我们可以将物体分类为汽车,但如果没有所有三个图像,我们将无法完美地定位即无法将黑色豪华轿车套用一个边界框。
5.2 环视检测的类型
现有技术的环视检测可以广泛地分为两个子类,即基于几何的视图变换器和基于交叉关注的视觉变换器。
5.2.1 视图变换器
先驱性工作:这个方法是一种使用 **Lift、Splat 和 Shoot **的工作,可以将每个图像分别提升到 BEV 特征的视锥体中,然后将所有视锥体喷洒到栅格化的 BEV 网格上,从而得出 BEV 坐标系中的特征图。该方法不需要访问任何深度传感器,在训练或测试期间只需要 3D 盒子标注即可。该方法的最新发展是 BEVDet,它改进了预处理和后处理技术。
BEVDet4D是一种将时间维度融入到目标检测中的方法,使其成为一个四维问题。该方法旨在解决视觉检测器中高速度误差的固有问题。与基于激光雷达的传感器相比,单帧视觉检测器通常具有更高的速度误差,因为激光雷达检测器通常使用具有时间信息嵌入的多次扫描数据;而雷达的固有点云包括使用多普勒效应的速度属性。将时间帧添加到视觉检测器中可以让我们学习道路上动态代理的时间线索。
BEVDepth是一种用于高性能相机3D检测的方法。该方法增加了一个相机感知的深度估计模块,以提高物体深度预测能力。作者使用CenterPoint头部替换了LSS中的普通分割头部,用于3D检测。他们使用检测损失对辅助深度头部进行监督,但由于单眼深度估计的困难,仅使用检测损失是不够的。因此,他们使用校准后的LiDAR数据将点云投影到图像上,形成2.5D图像坐标Pimgi(u,v,d),以监督深度模块。为了减少内存使用,M2BEV进一步开发降低了可学习参数,实现了高效的推理速度和内存使用。
这些检测器包括四个组件:1. 图像编码器,用于从透视视图中提取图像特征;2. 深度模块,用于生成深度和上下文,并将它们外积以获得点特征;3. 视图转换器,用于将特征从透视视图转换为BEV视图;最后4. 3D检测头,用于提出最终的3D边界框。BEVStereo(Li等,2022a)引入了动态时间立体方法来增强深度预测,同时控制计算成本。Simple-BEV(Harley等,2022)引入了基于LSS的RADAR点云方法。基于视图转换器,BEVPoolv2(Huang&Huang,2022b)是目前nuScenes(Caesar等,2020)视觉检测排行榜上的SOTA。他们使用基于BEVDet4D的骨干网络进行训练,具有稠密深度和时间信息。他们还展示了TensorRT运行时的加速。TensorRT通常是由Nvidia部署硬件使用的模型格式。
5.2.1 视觉变换器
根据Transformer解码器中查询(物体提议)的细粒度,可以将视觉Transformer分为稀疏查询为基础和稠密查询为基础的方法。我们将详细介绍这两个类别的代表性工作。
5.2.1.1 稀疏查询
稀疏查询 ViT是一种物体检测方法,通过学习训练数据中的物体提议,并在测试时使用这些学习到的提议进行查询。假设测试数据中的物体与训练数据中的物体相似。
该方法的先驱是单张图像(透视视角)的DETR(Carion等人,2020),后来被扩展到BEV空间的环视图像中的DETR3D(Wang等人,2021b)。该方法使用骨干网络(FPN或Transformer)编码器生成编码图像特征和物体查询,然后将它们输入Transformer解码器以产生检测结果。同时,还需要使用相机变换矩阵作为输入。这些矩阵用于在2D坐标空间中创建3D参考点映射,并对每个查询采样相应的2D特征。该方法通常使用300到900个物体查询来检测整个360°场景。
然后文中介绍了两种改进3D目标检测方法的方法:Polar DETR和Graph-DETR3D。其中,Polar DETR使用极坐标参数化3D检测,可以更轻松地优化和增强特征交互。而Graph-DETR3D则通过图结构学习(GSL)聚合周围视角的图像信息,从而增强目标表示,尤其是在图像边缘区域。作者发现,这些边缘区域是DETR3D性能不足的主要瓶颈之一。这两种方法均能有效提高3D目标检测的性能。
此外稀疏查询可以完成位置编码,由PETR(刘等人,2022年)引用了以前方法中2D特征编码存在的问题。他们通过对相机变换矩阵编码3D坐标,将全景视图特征转换为3D域。现在,可以通过与3D位置感知特征交互来更新对象查询并生成3D预测,从而使过程更简单。随后的PETRv2(刘等人,2022b)添加了时间维度,以获得时间感知更稠密的特征。
5.2.1.2 稠密查询
稠密查询的ViT,它是根据BEV表示中感兴趣区域进行的。每个查询都预先分配了在3D空间中的空间位置。这种方法相对于以往的稀疏查询更好,因为它仍然能够检测到在训练数据中没有作为对象提议学习的某些类型的对象。换句话说,这种方法更加强健,能够适应训练数据不完全代表测试数据的情况。
首先介绍了方法BEVFormer,是一种利用预定义的网格状BEV查询与空间和时间信息交互的方法。通过设计空间交叉注意力和时间自注意力,分别汇聚空间和时间信息。该方法在使用稠密查询方面表现优越,相较于稀疏查询的视觉转换器方法,具有更高的召回率值。但是,稠密查询需要高计算量,作者使用了变形DETR的K点采样策略以缓解这一问题。BEVFormer的完全基于Transformer的结构使其BEV特征比其他方法更加通用,易于支持非均匀和非规则采样网格。