论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》

BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View

论文精读

摘要(Abstract)

  • 背景介绍:二维的目标检测算法启发我们去寻找一个高效可用的三维目标检测算法
    自动驾驶通过感知周围环境来做出决定,这是视觉领域中最复杂的场景之一。范式创新在解决二维目标检测中的成功激励着我们去寻找一个简练的、可行的、可扩展的范例,从根本上推动该领域的性能边界。
  • 主要工作:重用2D目标检测的框架,主要改进点在于 1. 构造一个专属的数据扩充策略 2. 升级NMS方法。
    为了这个目的,本文提出了BEVDet范式。BEVDet在鸟瞰图(BEV)中执行三维目标检测算法,在BEV图中大多数目标值的设定和路线规划可以方便地执行。我们只是重用现有的2D目标检测的模块来构建BECDet的框架,但实质上的改进是通过构造一个专属的数据扩充策略和升级非最大抑制。
  • 实验结果:很好的权衡了准确度和时间效率。(BEVDet-Tiny、BEVDet-Base)
    在实验中,BEVDet很好的权衡了检测准确度和时间效率。在nuScenes val集上时,作为快速版本的BEVDet-Tiny的得分为31.2% mAP和39.2% NDS。与FCOS3D相比,BEVDet只需要215.3 GFLOPs 的计算开销, 是FCOS3D11%);运行速度每秒15.6帧,比FCOS3D快9.2倍。另一个高精度版本 BEVDet-Base评分为39.3% mAP和47.2% NDS, 显著地超过所有已发表的结果。在一个相当快的推理速度下,它与FCOS3D相比,mAP 提升了9.8%, NDS 提升了10.0%。

1. 简介(Introduction)

  • 动机:针对目前对于不同的视觉任务,采用基于不同视图的方法的问题(基于图像和基于BEV的方法),作者希望提出一个统一的框架处理多任务学习。
    在过去的几年里,二维视觉感知技术得到了迅速的发展, 并出现了一些杰出的范例,如Mask R-CNN,它具有高性能、可扩展和多任务兼容的特性。
    然而,对于同时要求精度和时间效率的基于视觉的自动驾驶场景,诸如三维目标检测和地图恢复等主要任务在最新的基准测试中仍由不同的范式来完成。
    例如在nuScenes基准测试中,基于图像视图的方法,例如FCOS3D和PGD的检测性能在基于多摄像头的3D目标检测任务中,性能保持领先水平。然而在BEV语义分割领域的算法主要是基于BEV的方法 ,类似于PON、Lift-Splat-Shoot, VPN。
    在自动驾驶中,究竟上述的哪个视图空间对感知更合理,我们能否在统一的框架中处理这些任务?
    针对这些问题,本文提出了BEVDet。通过BEVDet,我们探索了在BEV中检测3D对象的优势,期望与最新的基于图像视图的方法相比,具有更好的性能,并与BEV语义分割范式保持一致。这样可以进一步验证多任务学习的可行性,对高效推理有一定的意义。

  • Framework: 基于模块化的设计思想,BEVDet的网络框架和基于BEV的语义分割算法框架类似,包括四个部分(Image-view Encoder、View Transformer、BEV Encoder、Task-specific Head)。

在这里插入图片描述BEVDet-Tiny图

BEVDet和目前最新的基于BEV的语义分割算法有着相似的框架。
BEVDet的模型包括四个部分:

  1. 图像编码器(Image-view Encoder):用来提取图像特征
  2. 视图转换器(View Transformer): 将图像特征映射到鸟瞰图坐标
  3. BEV编码器(BEV Encoder): 进一步对BEV空间的特征进行编码
  4. 检测头(Task-specific Head) : 根据所执行任务设计输出头, 预测3D物体的目标值。

得益于这种模块化设计,我们可以重用大量现有的在其他领域已被证明是有效的作品。但要升级这一特定于3D目标检测任务的范式仍有很长的一段路要走。

  • 为了提高模型的鲁棒性,下面提出了两种改进策略

(1) 改进策略1:为了防止模型的过拟合,在BEV的空间中进行额外的数据增强操作。
虽然构建BEVDet的框架很简单,但构建其健壮的性能却并非易事。在验证BEVDet可行性时,为了获得合理的性能,将BEVDet的数据处理策略和参数个数设置得接近于基于图像视图的三维物体检测器,如FCOS3D和PGD。
但是在训练的过程中,出现了严重的过拟合问题,线索显示导致这样的原因是BEVDet在BEV空间中的过度拟合能力。这促使我们在基于图像的视图空间中应用一个复杂的数据增强策略,例如Lift-Splat-Shoot, 以达到正则化的效果。但是这种更改只在BEV 编码器不存在时有用,否则会降低性能。
另一方面,基于图像视图编码器的批处理大小是子序列模块的N倍。训练数据的不足也是导致在基于BEV空间中学习过拟合的一部分原因。此外,我们观察到视图转换器以像素的方式将图像视图空间与BEV空间连接起来,从数据增强的角度对两者进行解耦。这使得在图像视图中的数据增强对数据没有正则化的影响子序列模块(子序列模块包括BEV Encoder 和 3D object Detection Head)。

因此,作为补充,在BEV空间中进行额外的数据增强操作,如翻转、缩放和旋转,以提高模型在这些方面的鲁棒性。这可以很好地防止BEVDet过拟合。

(2) 改进策略2:对NMS进行升级,以提高在三维场景的适应性。

此外,我们对经典的非极大值抑制策略(NMS)进行了升级,以提高其在三维目标检测场景中的适应性。通过删除按顺序执行的操作符,推理过程进一步加快。

  • 效果:很好的权衡的准确性和推理延时,且能够感知更多的3D特征。

通过这些修改,BEVDet在现有范式的准确性和推理延迟之间提供了一个出色的权衡。在nuScenes 验证集上,高速版本BEVDet-Tiny达到了很高的准确度(mAP值为31.2% ,NDS值为39.2%,图像大小是704256),这仅仅是竞争对手FCOS3D的1/8(29.5% mAP和37.2% NDS,图像大小是1600900)缩小图像大小可以减少89%的计算预算,并提供9.2倍的显著加速(例如,BEVDet具有215.3 GFLOPs和15.6 FPS,而FCOS3D具有2,008.2 GFLOPs和1.7 FPS)。通过构造另一个被称为BEVDet-Base的高精度配置,我们突破了39.3% mAP和47.2% NDS的新纪录。

此外,与现有的范例相比,在BEV空间中显式编码特征使BEVDet能够感知目标的平移、尺度、方向和速度。在消融研究中可以发现BEVDet的更多特征。

2. 相关工作(Related Works)

2.1 基于视觉的二维目标感知(Vision-based 2D Perception)

  • 图像分类
  • 目标检测

2.2 基于BEV的语义分割(Semantic Segmentation in BEV)

基于BEV的语义分割也包含了上文所说的4大部分

2.3 基于视觉的3D目标检测(Vision-based 3D Object Detection)

  • 单目摄像机的3D目标检测
  • 基于多摄像机的3D目标检测
    • FCOS3D
    • DETR3D
    • PGD
    • DD3D

3. 方法(Methodology)

3.1 网络结构(Network Structure)

如图1所示,模块化设计的BEVDet由四种类型组成一个图像-视图编码器,一个视图转换器,一个BEV编码器和一个任务特定的头。我们通过构建几个模型来研究BEVDet的可行性,具有不同结构的衍生品如表中所列。
在这里插入图片描述

  • 图像编码器(Image-view Encoder)
    • 作用:将输入图像编码为高级特征
    • 结构:为了实现多分辨率特征,包括一个用于高级别特征提取的主干和一个用于多分辨率特征融合的颈部
    • 主干选择:ResNet,SwinTransformer,DenseNet,HRNet等
    • 颈部选择:FPN、FPN-LSS
  • 视图转换器(View Transformer)
    • 作用:将图像特征映射到鸟瞰图坐标
    • 方法:利用了LSS中的深度估计算法
      • 把基于图像视图的特征当做输入,先对图像进行升维构造视锥,预测图像的深度
      • 然后基于预测的图像深度和图像特征生成点云
      • 最后在竖直方向上池化得到BEV特征
  • BEV编码器(BEV Encoder)
    • 作用:进一步对BEV空间的特征进行编码。
    • 结构:类似于image-view Encoder,但它可以高精度地感知一些关键线索,如比例、方向和速度。
    • 主干选择:使用ResNet来构造主干网络。
    • 特征融合:使用FPN-LSS来融合不同尺度的特征。
  • 检测头(Task-specific Head)
    • 作用:根据所执行任务设计输出头(3D物体检测旨在检测行人、车辆、障碍物等可移动物体的位置、比例、方向和速度)
    • 方法:不需要任何修改,可以直接采用3D目标检测的头部在CenterPoint的第一个阶段。在CenterPoint的第二个细化的阶段并没有采用(只是复用了CenterPoint的头部)。

3.2 定制化的数据增强策略(The Customized Data Augmentation Strategy)

问题:

  • 图像域数据增广

    证明:图像空间的数据增广与BEV特征空间是解耦的

    设图像像素坐标论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》 对应的深度是论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》, 相机的内参是论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》 (3*3的矩阵),则相应的3D坐标为论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》.

    对于图像领域的数据增广,比如翻转、裁剪、旋转都可以表达为3*3的矩阵论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》,即论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》

    注意在视图转换时,为了保证图像 pixel 和 3d 空间中对应点的一致性,需要进行逆变换,即

    论文精读《BEVDet: High-Performance Multi-Camera 3D Object Detection in Bird-Eye-View》

    因此对图像进行数据增广操作,不会对BEV特征的空间分布产生影响。

解决方法:

  • BEV空间数据增广

    由于多视图图像在BEV进行了特征融合,BEV编码器的学习数据比图像编码器的学习数据少。翻转、缩放和旋转被应用于BEV特征图的数据增广(同时对视图转换器的输出以及检测目标进行操作以保证空间一致性)。注意该增广方法需要视图转换解耦的条件,因此其余方法可能不适用。

3.3 尺度NMS (Scale-NMS)

  • 问题:

BEV空间中不同类别的空间分布与图像视图空间中的空间分布截然不同。在图像视图空间中,由于相机的透视成像机制,所有类别共享相似的空间分布。因此,对于经典的NMS策略对于不同的类别都采用相同的阈值来来筛选预测结果。(例如在2D目标检测中,任何两个实例的bounding box的IOU值总是低于0.5)

然而,在BEV空间中,各个类的占用面积本质上是不同的,实例之间的重叠应接近于零。因此,预测结果之间的IOU分布因类别而异

比如行人和锥型交通路标在接地面上占用很小的面积,这总是小于算法的输出分辨率。常见的对象检测范式冗余地生成预测。每个物体的占地面积小,可能使冗余结果与真正结果没有交集。这将使依赖正样本和负样本之间空间关系(IOU)的经典NMS失效

  • 解决方法:

Scale-NMS在执行经典NMS算法之前,**根据每个对象的类别缩放其大小。**通过这种方式,调整正样例和冗余结果之间的IOU分布,以与经典NMS匹配。缩放因子是特定于类别的。它们是通过对验证集进行超参数搜索生成的
在这里插入图片描述

4. 实验(Experiment)

4.1 实验设置(Experimental Settings)

  • 数据集(dataset)

    • ncScenes基准测试,包含从6个摄像头采集的1000个场景
    • 训练集:验证集:测试集 = 700:150:150
    • 一共标注了10个类别,分别是小汽车,卡车,公共汽车,拖车,建筑车辆,行人,摩托车,自行车,路障和交通锥
  • 评价标准(Evaluation Metrics)

    使用官方预先定义的评价指标 :

    • Mean Average Precision (mAP)
    • Average Translation Error (ATE)
    • Average Scale Error (ASE)
    • Average Orientation Error (AOE)
    • Average Velocity Error (AVE)
    • Average Attribute Error (AAE)
    • NuScenes Detection Score (NDS)

    其中此处的map值和在二维目标检测中的通过准确度和查全率计算map值比较类似,但是它的定义是基于2D中心点的距离而不是IOU。

    NDS是综合判断检测结果的其他指标的综合能力。其余的指标是用来计算正样本对应的精度

  • 训练参数(Training Parameters)

    • 优化器:AdamW
    • 学习率:2e-4
    • batch size: 64
    • GPU: 8 NVIDIA GeForce RTX 3090 GPUs.
  • 数据处理(Data Processing)

    介绍了数据扩充的相关指标

  • 推理速度(Inference Speed)

4.2 基准测试结果(Benchmark Results)

在nuScenes验证集上,BEVDet在位置、尺寸、朝向和速度的估计上准确率高,但在属性的估计上相比于基于图像的3D检测准确率较低。这可能是由于属性判断依赖于外观线索,更容易在图像中感知。结合两种视图可能是一个有前途的方法。

在nuScenes测试集上,BEVDet能达到使用激光雷达预训练视觉检测模型的相当性能,且与基于激光雷达的经典3D检测方法PointPillars性能相当。

4.3 消融研究(Ablation Studies)

  • 数据增广:仅使用BEV编码器而不适用任何数据增广的方法(A)性能最差,且很早就开始过拟合。如果仅加上图像数据增广(B),能延缓过拟合出现时间,但未过拟合时的最优性能甚至不如A方法。若仅加上BEV数据增广(C),能更有效地减轻过拟合,且最优性能超过A方法。这说明BEV数据增广比图像数据增广更加有效。同时使用两种数据增广(D)的过拟合时间和性能均最大,且过拟合现象很弱。若上面四种方法(AD)均移除BEV编码器(对应方法EH):D和H比较可得BEV编码器能提高性能;比较E和F可知,图像数据增广仅在无BEV编码器时有正面效果。这表明BEV编码器有强感知能力,仅在BEV数据增广下才能避免过拟合。

  • 尺度NMS:与普通的NMS以及CenterPoint中提出的环形NMS比较,尺度NMS在小物体的检测精度上有很大提升,其余物体也有一定提升。

  • 分辨率:增大输入图像和BEV特征图的分辨率均能带来性能提升,但会带来额外的推断时间。

  • 加速:该加速是基于Lift-Splat-Shoot用图像产生的点云形状是固定的,因此每个点可以预先分配一个体素索引,用于指示其属于哪一个体素。

  • 本文的改进如下图所示,除了点的体素索引,还建立辅助索引,用于统计每个体素索引的出现次数。然后将点分配到2D矩阵上,沿辅助轴求和。
    在这里插入图片描述

    如果推断时相机的内外参不变,每个点的体素索引和辅助索引均是固定的,在初始化阶段即可预先计算;但此方法会带来额外空间需求,且该空间与体素数量和最大辅助索引值有关。本文设定一个辅助索引最大值,辅助索引值超过的点被丢弃,而几乎不会对性能产生影响。

5. 结论(conclusion)

在本文中,我们提出了一种强大的、可扩展的多摄像机三维目标检测范式BEVDet。BEVDet是参照BEVDet 15在解决BEV中语义分割的成功经验构建的,主要是通过构建一个独特的数据增强策略。在大规模基准测试nuSense中,BEVDet显著地突破了性能边界,特别擅长预测目标的平移、规模、方向和速度。未来的工作将集中在(1) 提高BEVDet的性能,特别是目标属性预测。(2)研究基于BEVDet的多任务学习。

参考

BEVDet: High-performance Multi-camera 3D Object Detection in Bird-Eye-View

https://github.com/HuangJunJie2017/BEVDet

自动驾驶感知新范式–BEV感知经典论文总结和对比(上)_苹果姐的博客-CSDN博客_bev视角

BEVDet系列源码解读

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年2月25日 下午4:30
下一篇 2023年2月25日

相关推荐