来源:自动驾驶之心 作者:汽车人
近两年,基于纯视觉BEV方案的3D目标检测备受关注,all in one方式,确实能将基于camera的3D检测算法性能提升一大截,甚至直逼激光雷达方案,这次整理了领域中一些备受关注的multi-camera bev纯视觉感知方案,包括DETR3D、BEVDet、ImVoxelNet、PETR、BEVFormer、BEVDepth、BEVDet4D、BEVerse等!
1 DETR3D(CoRL 2021)
DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries
在自动驾驶的环视相机图像中做3D目标检测是一个棘手的问题,比如怎么去从单目相机2D的信息中预测3D的物体、物体形状大小随离相机远近而变化、怎么融合各个不同相机之间的信息、怎么去处理被相邻相机截断的物体等等。
将Perspective View转化为BEV表征是一个很好的解决方案,主要体现在以下几个方面:
1.BEV是一个统一完整的全局场景的表示,物体的大小和朝向都能直接得到表达;
2.BEV的形式更容易去做时序多帧融合和多传感器融合;
3.BEV更有利于目标跟踪、轨迹预测等下游任务。
DETR3D是21年非常经典的多视角图像3D目标检测工作,论文介绍了一种多camera三维目标检测框架。与直接从单目图像估计3D box或使用深度预测网络从2D信息生成3D目标检测输入数据的现有工作不同,论文的方法直接在3D空间中操纵预测。DETR3D从多个camera图像中提取2D特征,然后使用稀疏的3D对象查询集索引到这些2D特征,使用相机变换矩阵将3D位置链接到多视图图像。最后,模型对每个对象查询进行边界框预测,使用一个set-to-set的损失来计算GT和预测之间的差异。这种自顶向下的方法优于自底向上的方法,其中对象边界框预测遵循逐个像素深度估计,因为它不受深度预测模型引入的复合误差的影响。此外,DETR3D不需要后处理,如非最大值抑制,大大提高了推理速度,在nuScenes基准上实现了SOTA!
如上图所示,object queries是类似DETR那样,即先随机生成 M个bounding box,类似先生成一堆anchor box,只不过这里的box是会被最后的loss梯度回传的。(蓝线)然后通过一个子网络,来对query预测一个三维空间中的参考点 cℓi (实际上就是3D bbox的中心)。通过角标我们可以看出,这个操作是layer-wise、query-wise的。绿线利用相机参数,将这个3D参考点反投影回图像中,找到其在原始图像中对应的位置。黄线从图像中的位置出发,找到其在每个layer中对应的特征映射中的部分。红线利用多头注意力机制,将找出的特征映射部分对queries进行refine。这种refine过程是逐层进行的,理论上,更靠后的layer应该会吸纳更多的特征信息。(黑色虚线框之后)得到新的queries之后,再通过两个子网络分别预测bounding box和类别,然后就进入loss部分,性能提升如下图所示:
2 BEVDet(2021)
High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View
自主驾驶感知周围环境进行决策,这是视觉感知中最复杂的场景之一。在解决2D目标检测任务方面的成功创新激励领域寻求一种优雅、可行和可扩展的范式,从根本上推动该领域的性能边界。为此,论文贡献了BEVDet范式,BEVDet在鸟瞰图(BEV)中执行3D对象检测,其中定义了大多数目标值,并且可以方便地执行路线规划。论文仅仅重用现有的模块来构建其框架,但通过构建独占数据增强策略和升级非最大抑制策略来大幅提高其性能。在实验中,BEVDet在精度和时间效率之间提供了一个很好的平衡。
作为一个fast版本,BEVDet Tiny在nuScenes val集上的mAP和NDS得分分别为31.2%和39.2%。它与FCOS3D相当,但只需要11%的计算预算,即215.3 GFLOPs,并以15.6 FPS的速度运行(9.2倍)。另一个被称为BEVDet的高精度版本的基础分数为39.3%的mAP和47.2%的NDS,大大超过了所有公布的结果。在相当的推理速度下,它大大超过FCOS3D, 9.8%的mAP和 10.0%的NDS。BEVDet整体结构如下所示:
如上所示,BEVDet采用模块化设计,由四个模块组成:图像视图编码器,包括主干(Resnet swin-transformer)和neck(FPN-LSS),首先用于图像特征提取,视图转换器将特征从图像视图转换为BEV(网络将图像视图特征作为输入,并通过分类方式密集预测深度。然后,分类分数和导出的图像视图特征用于渲染预定义的点云。最后,可以通过沿垂直方向(即,如上图示的Z坐标轴)应用汇集操作来生成BEV特征)。BEV编码器进一步编码BEV特征。最后,基于BVE特征构建任务特定头部,并预测3D对象的目标值。下图为各个模块的详细参数!
BEVDet在nuscenes上的性能对比如下:
3 ImVoxelNet(WACV 2022)
Image to Voxels Projection for Monocular and Multi-View General-Purpose 3D Object Detection
论文基于多视图RGB的3D对象检测任务引入端到端优化问题,为了解决这个问题,提出了ImVoxelNet,这是一种新的基于单视点或多视点RGB图像的三维目标检测的全卷积方法。在训练和推理期间,每个多视图输入中的单目图像的数量可以变化;实际上,对于每个多视图输入,这个数字可能是唯一的。ImVoxelNet成功地处理了室内和室外场景,这使其具有通用性。在RGB图像的所有方法中,它在KITTI(单目)和nuScenes(多视图)基准上实现了最先进的机动车检测结果。而且,在SUN RGB-D数据集上优于现有的基于RGB的3D对象检测方法。在ScanNet上,ImVoxelNet为多视图3D对象检测设定了新的基准。ImVoxelNet网络结构如下所示:
论文的方法接受一组任意大小的RGB输入以及相机姿态。首先使用2D卷积主干从给定图像中提取特征,然后将获得的图像特征投影到三维体素体。对于每个体素,来自多个图像的投影特征通过简单的元素平均聚合。接下来,将具有指定特征的体素体积传递到称为颈部的3D卷积网络。颈部的输出用作最后几个卷积层(头部)的输入,预测每个锚的边界框特征。生成的边界框被参数化为(x,y,z,w,h,l,θ),其中(x,y,z)是中心坐标,w,h,l表示宽度、高度和长度,θ是围绕z轴的旋转角。
针对户外场景,论文将3D目标检测重新表述为BEV平面中的2D对象检测,遵循常规做法。使用了在KITTI和nuScenes数据集上似乎有效的2D anhcor-head。由于室外3D检测方法是在汽车上评估的,因此所有物体都具有相似的尺度,属于同一类别。对于单尺度和单类检测,Head由两个平行的二维卷积层组成。一层估计类概率,而另一层回归边界框的七个参数。
针对室内场景:论文提出现代室内3D对象检测方法都对稀疏点云表示执行深度霍夫投票,相反,论文使用中间特征的密集体素表示。据我们所知,没有用于3D对象检测的密集3D多尺度头部。受二维检测方法FCOS的启发,论文构建了这样的头部。原始FCOS头部接受来自FPN的2D特征,并通过2D卷积层估计2D边界框,为了使FCOS适用于3D检测,将2D卷积替换为3D卷积来处理3D输入。遵循FCOS和ATSS,应用中心采样来选择候选对象位置。在这些工作中,选择了9名(3×3)候选目标;由于论文在3D空间中操作,将每个对象的候选位置限制为27个(3×3×3)。生成的头部由三个三维卷积层组成,分别用于分类、定位和中心度,权重在所有对象尺度上共享。
室外性能对比分析:
室内性能对比分析:
4 PETR(ECCV2022)
Position Embedding Transformation for Multi-View 3D Object Detection
PETR开发了用于多视图3D对象检测的位置嵌入变换(PETR)。PETR将3D坐标的位置信息编码为图像特征,产生3D位置感知特征,对象查询可以感知3D位置感知特征并执行端到端对象检测。PETR在标准nuScenes数据集上实现了最先进的性能(50.4%的NDS和44.1%的mAP),并在基准测试中排名第一。它可以作为未来研究的简单而有力的基线。整体结构如下所示:
PETR中多视图图像被输入到主干网络(ResNet)以提取多视图2D图像特征。在3D坐标生成器中,所有视图共享的相机截头体空间被离散化为3D网格。网格坐标由不同的摄像机参数变换,从而生成三维世界空间中的坐标。然后将2D图像特征和3D坐标注入所提出的3D位置编码器以生成3D位置感知特征。从查询生成器生成的对象查询通过与transformer解码器中的3D位置感知特征交互来更新,更新的查询还用于预测3D边界框和对象类。Nuscenes上结果对比如下所示:
5 BEVFormer(ECCV 2022 )
BEVFormer: Learning Bird's-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers
3D视觉感知任务,包括基于多摄像机图像的3D检测和地图分割,对于自动驾驶系统至关重要。BEVFormer提出了一个新的框架,它使用时空transformer学习统一的BEV表示,以支持多个自主驾驶感知任务。BEVFormer通过预定义的网格形状的BEV查询与空间和时间空间交互,利用空间和时间信息。为了聚合空间信息,论文设计了空间cross-attention,每个BEV查询从摄像机视图的感兴趣区域提取空间特征。对于时间信息,提出了时间self-attention来递归地融合历史BEV信息。BEVFormer在nuScenes测试集上实现了新的最先进的NDS度量56.9%,比以前的最佳技术高9.0个点,与基于激光雷达的基线性能相当。论文进一步表明,在低能见度条件下,BEVFormer显著提高了速度估计的准确性和目标的召回率。BEVFormer网络结构如下:
其中:(a) BEVFormer的编码器层包含网格形状的BEV查询、时间self-attention和空间cross-attention。(b) 在空间cross-attention中,每个BEV查询仅与感兴趣区域中的图像特征交互。(c) 在时间self-attention中,每个BEV查询与两个特征交互:当前时间戳的BEV查询并且BEV特征在先前的时间戳。
因为BEV具有Bt∈ H×W×C的通用2D特征图,可用于各种自动驾驶感知任务,3D目标检测和地图分割任务头可基于2D感知方法开发,只需稍加修改。对于3D目标检测,论文设计了基于2D检测器可变形DETR的端到端3D检测头。修改包括使用单尺度BEV特征Bt作为解码器的输入,预测3D边界框和速度,使用L1损失来监督3D边界框回归。除此之外,该检测头可以端到端预测3D边界框和速度,而无需NMS后处理。对于地图分割,论文设计了基于二维分割方法全景分割器的地图分割头。由于基于BEV的地图分割与普通语义分割基本相同,论文利用掩码解码器和类固定查询来针对每个语义类别,包括汽车、车辆、道路(可驾驶区域)和车道。
nuscenes测试集上性能对比:
6 BEVDepth(arxiv2022)
BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection
BEVDepth提出了一种新的具有可信深度估计的3D对象检测器,称为BEVDepth,用于基于camera的鸟瞰视图(BEV)3D目标检测。通过对最近方法的深入分析,论文发现深度估计是在没有摄像机信息的情况下隐式学习的。BEVDepth利用编码的内在和外在参数获得显式深度监控,进一步引入深度校正子网络,以抵消深度地面真相中的投影诱导干扰。为了减少使用估计深度将特征从图像视图投影到BEV时的速度瓶颈,论文提出了一种快速视图变换操作。此外,BEVDepth可以很容易地扩展多帧输入。BEVDeph在具有挑战性的nuScenes测试集上实现了最新的60.0%NDS,同时保持了高效率。camera和激光雷达之间的性能差距首次在10%的NDS内大幅缩小!!模型网络结构如下所示:
上一次划时代的性能增长来自于BEVDet4D和BEVFormer提出的时序建模,在mAP和mAVE指标上取得显著突破。这次BEVDepth通过优化深度估计,在mAP上取得了显著突破!整体精度已经逼近基于点云算法,但由于大家用的高分辨率和大模型,在推理速度方面还有很大的提升空间!论文的创新点主要有以下几个部分:
论文利用LiDAR对深度估计进行监督,使得深度估计结果接近LiDAR精度,下图显示了优化前后depth性能对比:
深度的预测和context分离,并使用使用额外的Resnet block增加区分度,如下如图所示:
引入相机参数作为深度估计的先验,通过类SE的方式对输入特征进行调整,如上图所示!除此之外,还优化了Voxel Pooling,论文将多个视角的feature集成到最终的BEV feature上。一般就是把Bev Feature分成多个grid,然后把落在相应位置上的截头圆锥体feature累加起来。论文把每个feature放到CUDA的一个线程上来加速。
BEVDepth还可以应用到sequence modeling上,如下图所示:
BEVdepth在nuscene上的性能对比:
7 BEVDet4D(2022)
BEVDet4D: Exploit Temporal Cues in Multi-camera 3D Object Detection
单帧数据包含有限的信息,这限制了现有基于视觉的多camera 3D目标检测范式的性能。为了从根本上推动这一领域的性能边界,论文提出了一种称为BEVDet4D的新范式,将可伸缩BEVDet范式从仅3D空间提升到时空4D空间。论文升级了朴素BEVDet框架,只做了一些修改,将前一帧中的特征与当前帧中的相应特征融合。这样,在可忽略的额外计算预算的情况下,使BEVDet4D能够通过查询和比较两个候选特征来访问时间线索。
除此之外,通过去除学习目标中的ego-motion和时间因素来简化速度预测任务。因此,具有鲁棒泛化性能的BEVDet4D将速度误差降低了高达-62.9%。这使得基于视觉的方法首次在这方面与依赖激光雷达或雷达的方法相比较。在基准nuScenes上,论文报告了54.5%的NDS的新记录,其高性能配置被称为BEVDet4D Base,超过了之前领先的方法BEVDet Base 7.3%的NDS。BEVDet4D网络结构如下图所示:
BEVDet4D 在BEVDet基础上添加了少量的改动,以最大限度地保持原有范式的优雅性,主要的目的是完成两帧BEV特征的融合。具体而言就是把前一帧的BEV特征根据自车的运动信息进行特征在世界坐标系中的对齐,融合时使用的是最简单的特征Concat。这里其实是把真正的特征融合推理过程留给BEV Encoder来完成。下图为Nuscenes验证集上的性能:速度和精度权衡!
8 BEVerse
BEVerse: Unified Perception and Prediction in Birds-Eye-View for Vision-Centric Autonomous Driving
论文提出了一个基于多camera系统的三维感知和预测的统一框架BEVerse。与专注于改进单任务方法的现有研究不同,BEVerse在从多camera视频中生成时空鸟瞰图(BEV)表示以及联合推理以视觉为中心的自动驾驶的多任务方面具有优势。BEVerse首先执行共享特征提取和提升,以从多时间戳和多视图图像生成4D BEV表示。在自运动对准之后,空间-时间编码器被用于BEV中的进一步特征提取。最后,附加多个任务解码器用于联合推理和预测。
在解码器中,论文提出了网格采样器,用于为不同任务生成具有不同范围和粒度的BEV特征。此外,还设计了用于记忆有效未来预测的迭代流方法。论文表明,时间信息改善了3D对象检测和语义图构建,而多任务学习可以隐式地有利于运动预测。通过在nuScenes数据集上的大量实验,多任务BEVerse在3D目标检测、语义地图构建和运动预测方面优于现有的单任务方法。模型整体结构如下图所示:
相比于其它SOTA方法,BEVerse在nuscenes上的表现:
,