前言
自动驾驶的主要任务3D目标检测和地图重建(即鸟瞰图(BEV)语义分割)
在nuScenes [1]基准测试中,基于图像视角的方法如FCOS3D [49]和PGD [50]在多摄像头3D目标检测项目中表现领先,而BEV语义分割项目则由BEV为基础的方法如PON [39]、Lift-Splat-Shoot [33]和VPN [31]主导。
能否在一个统一的框架中处理这些任务???
本文中,作者想要证明用BEV做3D目标检测也会获得很好的结果。
(与基于图像视角的方法相比,显式编码BEV空间中的特征使得BEVDet在感知目标的平移、尺度、方向和速度方面具有优势)
于是作者进行了如下尝试:
先看网络图:
提出的BEVDet与最新的BEV语义分割算法[33, 39, 54]框架相似。它采用模块化设计,包括图像视角编码器用于在图像视角中编码特征、视角转换器用于将特征从图像视角转换到BEV视角、BEV编码器用于进一步在BEV视角中编码特征,以及一个特定任务的头部用于在BEV空间中执行3D目标检测。
似乎BEVDet的结构很简单,也没有什么大的创新性(真要是真么简单,就不会只有大佬能发论文了)作者在验证效果时,发现了以下问题:
过拟合问题
在验证BEVDet的可行性时,为了获得合理的性能,数据处理策略和BEVDet的参数数量被设置得接近于基于图像视角的3D目标检测器,如FCOS3D [49]和PGD [50]。出乎意料的是,在训练过程中观察到了严重的过拟合问题。有些线索显示,问题出在BEV空间中BEVDet的过度拟合能力上。
问题分析:
- 过拟合现象促使我们在图像视角空间中应用复杂的数据增强策略(如Lift-Splat-Shoot [33])以达到正则化效果。然而,这种修改只有在没有BEV编码器时才有正向效果,否则甚至会降低性能。(下文解释原因)
- 图像视角编码器的批次大小是后续模块的N倍(即nuScenes [1]中的相机数量,如6台),这也在某种程度上导致了BEV空间学习中的训练数据不足,从而产生过拟合问题。
- 我们观察到视角转换器以逐像素的方式将图像视角空间与BEV空间连接起来,从数据增强的角度看,它们是解耦的。这使得图像视角中的数据增强对后续模块(即BEV编码器和3D目标检测头)没有正则化效果。
作者给出解决方案:
在BEV空间中进行了额外的数据增强操作,如翻转、缩放和旋转,以增强模型在这些方面的鲁棒性。这在防止BEVDet过拟合方面效果显著。
此外,我们升级了经典的非极大值抑制(NMS)策略,以提高其在3D目标检测场景中的适应性。通过去除顺序执行的操作,推理过程得到了进一步加速。通过这些修改,BEVDet在现有范式中提供了卓越的准确性和推理延迟之间的平衡
网络结构
如图1所示,BEVDet采用模块化设计,由四种模块组成:图像视图编码器、视图变换器、BEV编码器和任务特定头部。我们通过构建几种不同结构的衍生版本来研究BEVDet的可行性,如表1所示。
-
图像视图编码器(Image-view Encoder): 负责从原始图像中提取特征,通常使用卷积神经网络(CNN)或变换器(Transformer)架构进行处理。
-
视图变换器(View Transformer): 将图像视图特征转换为BEV视图特征。此模块负责将2D特征映射到3D BEV空间中,以便进行进一步处理。
-
BEV编码器(BEV Encoder): 在BEV视图中进一步编码特征,以捕捉目标的空间关系和其他3D信息。这一模块通常使用深层网络结构来处理BEV视图中的数据。
-
任务特定头部(Task-Specific Head): 负责执行具体任务,如3D目标检测。在BEV空间中对目标进行定位和分类,并生成最终的检测结果。
图像视图编码器(Image-view Encoder)
图像视图编码器负责将输入图像编码为高级特征。为了利用多分辨率特征的优势,图像视图编码器包括一个用于高级特征提取的主干网络(backbone)和一个用于多分辨率特征融合的颈部(neck)。具体细节如下:
-
主干网络(Backbone): 主要用于提取图像中的高级特征。默认情况下,我们使用经典的 ResNet [14] 和最新的基于注意力机制的 Swin Transformer [26] 作为主干网络进行原型研究。其他替代主干网络包括 DenseNet [16] 和 HRNet [43] 等。
-
颈部模块(Neck Module): 用于融合多分辨率特征。默认使用经典的 FPN [22] 和 [33] 中提出的颈部结构,该结构在下文中称为 FPN-LSS。FPN-LSS 通过将分辨率为 1/32 的特征上采样至 1/16 分辨率,并与主干网络生成的特征进行拼接来实现特征融合。至今尚未探索更复杂的颈部模块,如 PAFPN [25]、NAS-FPN [10] 等。
视图变换器(View Transformer)
视图变换器负责将图像视图中的特征转换为 BEV 特征。我们采用了LSS 中提出的视图变换器来构建 BEVDet 原型。具体过程如下:
-
深度预测: 视图变换器接收图像视图特征作为输入,通过分类方式密集预测深度。这个过程将图像视图特征映射到深度信息上。
-
点云渲染: 使用分类分数和衍生的图像视图特征来渲染预定义的点云。
-
生成 BEV 特征: 通过沿垂直方向(即 Z 坐标轴)应用池化操作来生成 BEV 特征。这一过程将图像视图中的特征聚合成 BEV 空间中的特征表示。
在实际应用中,我们将深度预测的默认范围扩展到 [1, 60] 米,间隔为 1.25 × r,其中 r 表示输出特征的分辨率。
BEV编码器(BEV Encoder)
BEV 编码器在 BEV 空间中进一步编码特征。尽管其结构类似于图像视图编码器,包括一个主干网络和一个颈部模块,但 BEV 编码器具有更高的精度来感知一些关键线索,如尺度、方向和速度,因为这些特征在 BEV 空间中定义。
-
主干网络: 使用带有经典残差块的 ResNet [14] 作为主干网络。ResNet 在处理特征时能够有效捕捉多层次的信息,从而增强 BEV 编码器的能力。
-
特征融合: 与图像视图编码器类似,我们应用 FPN-LSS 来结合不同分辨率的特征。FPN-LSS 通过上采样 1/32 输入分辨率的特征到 1/16 输入分辨率,并将其与主干网络生成的特征进行拼接。这种方法能够更好地融合来自不同尺度的信息。
BEV 编码器的设计目的是为了更精确地提取 BEV 空间中的关键信息,从而提升 3D 物体检测的性能。
任务特定头部(Task-Specific Head)
-
目标: 3D 物体检测头部负责预测目标的 3D 边界框,包括位置、尺度、方向和速度。它以 BEV 特征作为输入,并通过特定的网络层进行处理,以输出这些物体的相关信息。
-
使用: 在 BEVDet 中,我们使用了 CenterPoint [56] 的第一阶段头部结构,这是为了确保与现有 LiDAR 基础的检测方法进行公平对比。CenterPoint 的这种头部结构已被证明在多种 3D 物体检测任务中有效。
-
不包括的部分: 由于目标是在 BEV 空间中进行 3D 物体检测,因此没有应用 CenterPoint 的第二阶段精炼阶段,这一阶段通常用于进一步提高检测精度,但在 BEVDet 的上下文中并不需要。
CenterPoint提出了一个基于中心的框架来表示、检测和跟踪对象。 以前的基于anchor的方法使用相对于车辆自身坐标轴对齐anchor。 当车辆在笔直的道路上行驶时,基于anchor的方法和我们的基于中心的方法都能够准确地检测到物体。 然而,在左转(底部)期间,基于anchor的方法难以将轴对齐的边界框拟合到旋转对象。 我们的基于中心的模型通过旋转不变的点准确地检测对象。
原文链接:https://blog.csdn.net/weixin_42905141/article/details/126510847
图像增强策略(解决过拟合问题)
前文提到了直接使用上述结构出现了过拟合问题,而常规的在2D图像的数据增强无法改善效果,作者给出了原因:
解决方法:
增强操作: 参考最新的 LiDAR 基于方法 [34, 55, 56, 63],我们在 2D 空间中采用常见的数据增强操作,包括翻转、缩放和旋转。这些操作不仅在视图变换器的输出特征上进行,也在 3D 目标检测目标上进行,以保持空间一致性。
Scale-NMS
简单说:
BEV空间分辨率较大(每个小格代表真实空间0.8m的距离),而行人或者小的交通锥等物体肯定小于0.8m,也就是小于分辨率。这样也就带来了在较高分辨率空间内,本身重合的物体却没有重合:
解决方案:
为了克服上述问题,我们在本文中提出了 Scale-NMS。Scale-NMS 在执行经典 NMS 算法之前,根据物体类别缩放每个物体的尺寸。通过这种方式,正样本和冗余结果之间的 IOU 分布被调整,以匹配经典 NMS。
原理与应用
-
缩放策略: 如图所示,在预测小物体时,Scale-NMS 通过放大物体尺寸来建立结果之间的空间关系,这使得经典 NMS 能根据 IOU 指标去除冗余的预测结果。
-
实践中应用: 在实际应用中,我们将 Scale-NMS 应用于除障碍物外的所有类别,因为障碍物的尺寸各异。缩放因子是基于类别的,通过在验证集上进行超参数搜索生成。