无人驾驶领域的3D目标检测综述

论文阅读笔记《3D Object Detection for Autonomous Driving: A Review and New Outlooks》
github链接:https://github.com/PointsCoder/Awesome-3D-Object-Detection-for-Autonomous-Driving

文章目录

论文精读

摘要(Abstract)

本文的主要工作: 应用于 自动驾驶领域的3D目标检测的进展

  • 背景&挑战:3D目标检测的背景以及面临的挑战
  • 方法&分析:从模型和传感器输入方面对3D目标检测的方法进行探讨。
  • 应用:研究了3D目标检测在驾驶系统中的应用
  • 性能分析&未来展望:对3D目标检测方法进行了性能分析,并进一步总结了多年来的研究趋势,展望了该领域的未来方向。

简介(Introduction)

自动驾驶,通过传感器感知周围的环境

输入:多模态数据(来自摄像头的图像数据、来自LiDAR的点云、高精地图)

输出:预测道路上关键要素的几何和语义信息

视觉任务:目标检测和跟踪、语义分割和实例分割

3D目标检测:预测位置、大小和类别

本文的主要贡献:

  • 我们从不同的角度全面回顾了3D目标检测方法,包括来自不同传感器输入的检测(基于LiDAR、基于摄像头和多模态)、时间序列检测、标签高效检测、以及3D目标检测在驾驶系统中的应用。
  • 我们从结构和层次上总结了3D目标检测方法,对这些方法进行了系统分析,并为不同类别方法的潜力和挑战提供了有价值的见解。
  • 对3D目标检测方法的综合性能和速度进行分析,确定多年来的研究趋势,并为3D目标检测的未来方向提供深刻的见解。

无人驾驶领域的3D目标检测综述

; 背景(Background)

什么是3D目标检测?(What is 3D object detection?)

  1. 定义(Problem definition)

  2. 3D目标检测是通过输入传感器数据,预测3D目标的属性信息的任务。

  3. 如何表示3D目标属性:
  4. (x,y,z)是立方体的中心坐标
  5. l,w,h是长宽高信息
  6. delta是航向角
  7. class是3D目标的类别
  8. vx、vy描述3D目标在地面上沿x轴和y轴方向的速度

  9. 传感器输入(Sensory inputs)

  10. 相机

  11. 图像特点:捕捉W×H×3大小的图像。其中W和H是一幅图像的宽高,每个像素有3个RGB通道
  12. 优点:便宜且容易使用
  13. 缺点:无法捕捉深度信息,鲁棒性低
  14. LiDAR传感器(激光雷达)
  15. 原理:通过发射一束激光束,然后测量其反射信息来获得场景的细粒度3D结构信息。
  16. 图像特点:产生深度图像,每个像素有3个通道,分别为球坐标系中的深度r、方位角α和倾角φ。
    • 球坐标系转换成笛卡尔坐标系,生成点云。一个点云可以表示为N×3,其中N表示一个场景中的点数,每个点有3个xyz坐标通道。
  17. 优点:适合3D目标检测
  18. 缺点:价格贵,不适合大规模应用

无人驾驶领域的3D目标检测综述
  1. 分析:和2D目标检测的比较(Analysis: comparisons with 2D object detection)

  2. 继承和借鉴

  3. proposal generation and refinement、anchors、NMS
  4. 不同之处
  5. 处理多样化的数据:点云检测需要新的算子和网络来处理不规则的点数据,而点云和图像的检测需要特殊的融合机制。
  6. 利用不同的投影视图来生成目标预测结果:如鸟瞰图、点视图、柱面视图等。
  7. 对目标在3D空间的准确定位有很高的要求。

  8. 分析:和室内3D目标检测的比较(Analysis: comparisons with indoor 3D object detection)

  9. 与室内场景相比,驾驶场景的独特挑战

  10. 更大的检测范围
  11. 点云分布不同
    • 室内场景:点在扫描面上分布相对均匀
    • 驾驶场景:近密远疏,导致遥远的和点分布稀疏的目标难以检测
  12. 实时性要求高

; 数据集(datasets)

  • 增加数据集的角度
  • 更大规模的数据集
  • 增加数据的多样性
  • 增加标注的类别
  • 增加多模态数据
  • 分析和展望(Analysis: future prospects of driving datasets)
  • 包括感知、预测、规划、建图等一整套数据

评价标准(Evaluation metrics)

  • 将2D任务的AP指标扩展到3D
  • 类似2D任务,也是计算AP值。不同之处在于计算准确率和召回率时的匹配准则
  • 应用
    • KITTI提出 AP-3D、AP-BEV指标
    • AP-3D: 立方体的3D交并比
    • AP-BEV: 两个立方体在鸟瞰图上的交并比
    • 其它的,比如基于中心距离的匹配,或者匈牙利匹配等。
  • 通过下游任务来衡量
  • 特点:只有对下游任务(运动规划)有帮助的检测方法,才能在实际应用中确保驾驶安全。需要一个预先训练的运动规划器来评估检测性能。
  • 应用
    • PKL利用KL-divergence来衡量检测质量
    • SDE利用目标边界和车辆的最小距离
  • 优缺点分析
  • 基于AP的评价指标继承了2D检测的优势,但是在实际应用中,近处的目标漏检实质上比远处的目标漏检更危险。
  • PKL需要一个预先训练的运动规划器来评估检测性能,但预先训练的规划器也有固有误差,可能会使评估过程不准确。
  • SDE需要重构目标边界,这是复杂和具有挑战性的。

基于LiDAR的3D目标检测(LiDAR-based 3D Object Detection)

激光雷达数据主要包括点云、深度图数据等,以下时间轴将较为经典的算法做了个列举。

无人驾驶领域的3D目标检测综述

; 3D目标检测的数据表示(Data representations for 3D object detection)

  • 点云和深度图像
  • 点云是稀疏、不规则的,需要设计特殊模型提取特征
  • 深度图是密集紧凑,深度像素存的是3D信息,而不是RGB值。
  • 常规卷积网络无法使用,而且要保证实时性。因此需要设计一个在点云和深度图上推理更快的模型。

  • 基于点的3D目标检测(Point-based 3D object detection)

  • 总体框架(General Framework)
    • 基于深度学习方法,提出系列框架,可以直接从原始点来预测3D目标
    • 将点云通过基于点的主干网络,通过点云算子来提取点云特征,基于下采样的点和特征预测3D框。
    • 基于点的3D目标检测器主要组成部分为:点云采样和特征学习
  • 点云采样(Point Cloud Sampling)
    • PointNet++ 中的Furthest Point Sampling (FPS)
    • 从原始点集中依次选择最远处的点
    • PointRCNN
    • 采用FPS逐步下采样输入的点云,并从下采样点中生成3D候选。
  • 点云特征学习(Point Cloud Feature Learning)
    • 上下文点首先用一个预定义的查询球半径进行选择,然后上下文点和特征经过多层感知机和max-pooling,得到新的特征。
    • 其它点云操作,包括图操作、注意力操作、Transformer等
  • 分析:点云特征学习和采样的挑战和潜力(Analysis: potentials and challenges on point cloud feature learning and sampling)
    • 检测精度的限制因素:特征学习中采用的上下文参数
    • 上下文点数量:增加上下文点数量可以获得更强的表达能力,但会增加内存
    • 上下文半径:在球查询中,上下文半径太小,会造成上下文信息不足,半径太大,造成3D细粒度信息丢失。
    • 推理速度的限制因素:点云采样方式
    • 随机均匀采样
      • 优点:可以并行,效率最高
      • 缺点:扫描点分布不均匀,远疏近密
    • 最远点采样
      • 优点:从已有的点集中依次选择最远点获得更加均匀的采样结果
      • 缺点:不能并行,实时性低

无人驾驶领域的3D目标检测综述
  1. 基于网格的3D目标检测(Grid-based representations)
  2. 总体框架(General Framework)
    • 将点云栅格化为离散的网格表示,即体素、柱体和鸟瞰视图(BEV)特征图。
    • 应用传统的2D卷积神经网络或3D稀疏神经网络提取特征。
    • 检测出3D目标
  3. 基于网格的表示类型(Grid-based representations)
    • 体素(Voxels)
    • 体素是3D立方体,体素细胞内包含点。
    • 通过体素化,点云可以转换为体素
      • 只有那些包含点的体素才会被存储,并用在特征提取的过程中。
    • 体素特征提取
      • VoxelNet是一项利用稀疏体素网格的开创性工作,提出了一种新的体素特征编码(VFE)层,从体素细胞内的点提取特征
    • 两类方法试图改进用于3D目标检测的体素表示
      • 多视图体素
      • 从不同的视角提出了一种动态体素化和融合方案,例如从鸟瞰图和透视图,从圆柱形和球形视图,从深度视图等。
      • 多尺度体素
      • 生成不同尺度的体素或使用可重构体素
    • 柱体(Pillars)
    • 柱体可以被视为特殊的体素,其中体素的大小在垂直方向上是无限的。
    • 通过PointNet将点聚集成柱状特征,再将其分散回去,构建二维BEV图像进行特征提取。
    • BEV特征图(BEV feature maps)
    • 鸟瞰特征图是一种密集的二维表示,其中每个像素对应一个特定的区域,并对该区域内的点信息进行编码。
    • BEV特征图可以由体素和柱体投影到鸟瞰图中获得,也可以通过汇总像素区域内的点统计数据,直接从原始点云中获得。
      无人驾驶领域的3D目标检测综述
  4. 基于网格的神经网络(Grid-based neural networks)
    • 用于BEV特征图和柱体的2D卷积神经网络
    • 传统的2D卷积神经网络可以应用在BEV特征图上,例如ResNet、RPN、FPN、空间注意力
    • 用于体素的3D稀疏神经网络
    • 基于两种特殊的3D卷积算子,可以在非空的体素上有效的提取特征
      • 稀疏卷积(sparse convolutions)
      • 子流形的卷积(submanifold convolutions)
    • 改进稀疏算子的工作
      • 拓展成双阶段的检测
      • 在基于体素的检测中引入Transformer机制
  5. 分析:不同网格表示类型的优缺点(Analysis: pros and cons of different grid representations)
    • 基于体素的检测方法:
    • 优点:体素包含更多结构化的3D信息,可以通过3D稀疏网络学习深度体素特征。
    • 缺点:额外的时间和内存成本
    • 基于BEV特征图的检测方法
    • 优点:高效率和实时推理速度(它直接将点云投影到2D伪图像中,而无需专门的3D算子)
    • 缺点:检测结果不太准确(简单地汇总像素区域内的点统计信息会丢失太多的3D信息)
    • 基于柱体的检测方法
    • 利用PointNet对柱体单元内的3D点信息进行编码,然后将特征分散回2D伪图像中进行有效检测,从而平衡3D目标检测的效果和效率。
  6. 分析:不同网格表示类型面临的挑战(Analysis: challenges of the grid-based detection methods)
    • 选择合适大小的网格单元
    • 网格小:分辨率高,准确度高
    • 网格大:内存开销大,效率低
  7. 基于Point-Voxel的3D目标检测方法(Point-voxel based 3D object detection) 基于点-体素的方法采用了一种混合架构,利用点和体素进行3D目标检测。
  8. 检测框架
    • 单阶段的检测框架(Single-stage point-voxel detection frameworks)
    • 方法: 通过骨干网络中的点-体素和体素-点的变换来连接点和体素的特征。
    • 点包含细粒度的几何信息,体素计算效率高,在特征提取阶段将它们结合在一起更加有利。
    • 代表性工作:PVCNN、SPVNAS、SA-SSD、PVGNet
    • 双阶段的检测框架(Two-stage point-voxel detection frameworks)
    • 方法:在不同的检测阶段采用不同的数据表示方式。第一阶段,使用基于体素的检测器来生成一组3D候选目标。在第二阶段,首先从输入点云中采样关键点,然后通过新的点算子对关键点进行进一步细化。
    • 代表性工作:PV-RCNN、LiDAR R-CNN、Pyramid R-CNN、CT3D
      无人驾驶领域的3D目标检测综述
  9. 优缺点
    • 缺点:推理时间增加
    • 优点:可以获得更好的检测精度。
  10. 基于Range的3D目标检测(Range-based 3D object detection)
  11. Range图像
    • Range图像是一种2D表示,每个像素包含的是3D的深度信息
  12. 基于Range的检测模型(Range-based detection models)
    • 借鉴2D目标检测方法
    • LaserNet、U-Net、RPN、R-CNN、FCN、FPN等
  13. 基于Range的算子(Range-based operators.)
    • 传统的2D标准卷积算子无法完全适用,滑动窗口中的像素在3D空间中可能会相距很远
    • 采用新算子从Range像素中提取信息
    • 深度扩张卷积(range dilated convolutions)
    • 图算子(graph operators)
      无人驾驶领域的3D目标检测综述
  14. 基于Range的视图(Views for range-based detection.)
    • Range视图(RangeView)是点云的球面投影,Range图是从Range视图中获取
    • Range视图进行检测的局限性:球面投影所带来的遮挡和尺度变化问题
    • 其他视图:圆柱形视图(CYV)、Range视图和鸟瞰视图(BEV)、点视图(PV)的组合
  15. Range图面临的机遇和挑战(Analysis: potentials and challenges of the range-based methods.)
    • 优点:可以借鉴2D卷积的优点,做特征提取比较好
    • 缺点:由于遮挡和尺度问题,直接在上面做检测效果不好,需要结合BEV来做检测,所以现在一般是Range图做特征提取,BEV上做检测。

3D目标检测的学习目标(Learning objectives for 3D object detection)

  • 存在的问题和挑战(Problem and Challenge.)
  • 3D小目标的定位
  • 由于点云的稀疏性以及不完整的形状,如何准确估计其目标的中心和尺寸

  • 基于锚框的3D目标检测(Anchor-based 3D object detection)

  • 前提要求(Prerequisites)
    • [ x , y , z , l , w , h , θ ] [x,y,z,l,w,h,\theta][x ,y ,z ,l ,w ,h ,θ] 和预测类别的置信度p 来表示预测的3D目标
  • 锚框设置(Anchor configurations)
    • 将3D anchor放置在BEV特征图的每个网格单元上进行
    • 对于每一个类都有一个固定的Anchor大小
  • 损失函数(Loss functions)
    • 分类损失:分辨正锚框和负锚框
    • 回归损失:基于正锚框的基础上,学习物体的大小和位置
    • 偏航角损失:学习偏航角的大小

无人驾驶领域的3D目标检测综述
  • 机遇和风险(Analysis: potentials and challenges of the anchor-based approaches.)
  • 优点:由于相同类别的物体通常有类似的大小,因此通过先验知识可以较为准确的预测目标
  • 缺点:3D目标太小,检测框太多。

  • 无锚框的3D目标检测(Anchor-free 3D object detection)

  • 无锚框的方法不需要设计复杂的锚框,以及可以灵活的应用在不同的视图中,例如鸟瞰图,点云图、深度图等。

无人驾驶领域的3D目标检测综述
  • 有锚框和无锚框的主要区别在于正负样本分配策略。无锚框的分配策略如下:
  • 基于网格分配(Grid-based assignment)
    • 基于一些网格(BEV网格单元、体素、柱体)进行分配正负样本,比如PIXOR、CenterPoint等
  • 基于点分配(Point-based assignment)
    • 先将前景点分割出来,在3D目标内或附近的作为正样本,并学习这些前景点。
  • 基于Range分配(Range-based assignment.)
    • 将Range像素在3D目标内的作为正样本,并且回归的时候不是以整个3D坐标系统为基础,而是以目标为中心的回归坐标系
  • 集合到集合分配(Set-to-set assignment.)
    • 利用匈牙利算法预测结果自动分配到对应的GT。
  • 机遇和风险(Analysis: potentials and challenges of the anchor-free approaches.)
  • 优点:不需要引入先验知识,学习过程简化
  • 缺点:能会选到一些不好的正样本,造成预测结果出现偏差。

  • 利用辅助任务的3D目标检测(3D object detection with auxiliary tasks) 利用辅助任务来增强3D目标的空间特征,并能对3D目标检测提供一些隐性的指导。常见的辅助任务如下:

  • 语义分割(Semantic segmentation)
    • 前景分割可以提供目标的位置隐含信息;利用语义上下文知识可以增强空间特征;语义分割可以作为预处理方法,过滤背景样本,提升3D检测效率。
  • IOU预测(IoU prediction)
    • 可以辅助校正目标的置信度,比如预测置信度可以用分类置信度和IoU值的乘积来表示。经过IoU分支的校正,更容易选择高质量的3D目标作为最终预测结果。
  • 目标形状补全(Object shape completion)
    • 因为点云具有稀疏性,远处的目标只能接收几个点,因此从稀疏点云中补全目标形状可以为后面的检测提供帮助。
  • 零部件识别(Object part estimation)
    • 有助于3D目标检测,部件可以揭示细粒度3D信息。

; 基于相机的3D目标检测(Camera-based 3D Object Detection)

主要的基于相机的3D目标检测方案分为:单目3D、双目、多相机3D等

无人驾驶领域的3D目标检测综述

单目3D目标检测(Monocular 3D object detection)

单目无法提供足够的3D信息,很多方法利用几何约束和形状先验从图像中推断深度信息,检测性能比激光雷达相比较差。

  1. 纯图像单目3D检测(Image-only monocular 3D object detection)
  2. 检测方法:直接回归法,通过卷积神经网络从图像中直接回归3D框参数,端到端训练
  3. 方法分类:
    • 基于anchor的方法
    • 预先设置好3D-anchor、2D-anchor、深度anchor,然后图像经过卷积网络后得到2D和3D的预测偏置
    • anchor-free的方法
    • 通过2D卷积对图像进行处理,利用多个头去预测3D目标。
    • 具体包括一个分类头、一个关键点头预测粗粒度中心点、一个预测基于粗粒度中心点的偏置的头、预测深度的头、预测目标尺寸的头以及预测观测角的头。
    • 两阶段单目检测方法
    • 第一阶段利用2D检测器从输入图像生成2D目标框。
    • 第二阶段,通过从2D ROI中预测3D目标参数,将2D框提升到3D空间。

无人驾驶领域的3D目标检测综述
  • 优缺点分析
  • 优点:基于纯图像的方法可以直接使用2D目标检测的最新进展,而且价格便宜,可以端到端训练,效率也很高。
  • 缺点:只是从单张图像预测深度比较困难

  • 深度辅助的单目3D检测(Depth-assisted monocular 3D object detection)

  • 深度估计
    • 首先通过预训练的深度估计器,如MonoDepth或DORN,生成深度图像
    • 然后两类方法处理深度图像和单目图像
    • 基于深度图像的方法:将图像和深度映射与专门的神经网络融合,生成深度感知特征,可以提高检测性能
    • 基于伪激光雷达的方法:将深度图像转换为伪激光雷达点云,然后在点云上应用基于激光雷达的3D检测器来检测3D目标。

无人驾驶领域的3D目标检测综述
  • 优缺点分析
  • 优点:通过使用预训练的深度估计网络,可以提升检测的性能
  • 缺点:需要额外的像素级别的深度标注,成本高。而且泛化能力差。

  • 先验引导的单目3D检测(Prior-guided monocular 3D object detection)

  • 通过引入预训练的子网络或辅助任务来学习先验知识,这些子网络或辅助任务可以提供额外的信息或约束来帮助精确定位3D目标。

  • 广泛采用的先验知识
  • 几何形状(Object shapes)
  • 几何一致性(Geometric consistency)
  • 时间约束(Temporal constraints)
  • 图像分割(Segmentation)

无人驾驶领域的3D目标检测综述

; 基于双目的3D目标检测(Stereo-based 3D object detection)

  • 基于双目的3D目标检测是指从一对图像中检测出3D物体。
  • 双目匹配和深度估计(Stereo matching and depth estimation)
  • 可以提供额外的几何约束来更加精确地推断深度信息。
  • 基于双目的3D目标检测方法分类
  • 基于2D检测的方法(2D-detection based methods)
    • 配对的双目图像分别通过Siamese主干网络,生成左右RoI
    • 将左右RoI融合到一起来估计3D目标的各个参数
  • 基于伪雷达的方法(Pseudo-LiDAR based methods)
    • 将左右图像融合生成视差容器,然后通过双目匹配网络生成视差图
    • 将视差图转换成伪雷达点云,并通过激光雷达检测网络,预测3D目标
  • 基于体积的方法(Volume-based methods)
    • 直接将3D双目容器放入3D卷积网络中。

无人驾驶领域的3D目标检测综述
  • 优缺点
  • 优点:通过立体匹配技术获得更精确的深度和视差估计,从而带来更强的目标定位能力,显著提高了3D目标检测能力。
  • 缺点:双目匹配网络会导致额外的时间和内存开销。

基于多相机的3D目标检测 (Multi-camera 3D object detection)

  • 自动驾驶汽车通常会配备多个摄像头,从多个视角获取完整的周边环境信息。
  • 关键问题:如何识别不同图像中的同一目标,并从多视角输入中聚合目标特征。
  • 当前存在的解决方法:
  • 利用跨视图几何约束或目标重识别来解决多视图目标定位问题。
  • 引入3D目标查询从不同视图裁剪图像特征或转换不同视图的特征来处理多视图特征聚合问题。

基于多模态的3D目标检测(Multi-Modal 3D Object Detection)

基于多模态的3D目标检测方法融合多种传感器输入。根据不同的感知类型,可以分为三类方法:LiDAR-相机、雷达、地图融合。

无人驾驶领域的3D目标检测综述

; 基于LiDAR-相机融合的多模态检测(Multi-modal detection with LiDAR-camera fusion)

  • 将相机和激光雷达信息进行融合来提升3D目标检测精度
  • 相机可以提供颜色信息,从中提取丰富的语义特征
  • LiDAR传感器擅长3D定位,提供丰富的3D结构信息。

  • 前融合方法(Early-fusion based 3D object detection)

  • 概述:在点云还没有进入基于LiDAR的检测器前,将图像的知识整合到点云中。
  • 具体构建方式:顺序构建
    • 首先利用2D检测或分割网络从图像中提取知识
    • 然后将图像知识传递给点云
    • 最后将增强后的点云反馈给基于LiDAR的点云3D目标检测器
  • 分类:按照融合类型的不同进行分类
    • 区域级知识融合
    • 利用图像中的知识来减少3D点云中的候选区域
    • 点级知识融合
    • 首先,将图片输入到语义分割网络中获得像素级别的语义标签
    • 然后通过点到像素的映射,把语义信息附到3D点上
    • 最后,把这些带有语义信息的3D点输入到基于激光雷达的3D检测器中,输出得到检测结果。

无人驾驶领域的3D目标检测综述
  • 优缺点分析
  • 优点:基于图像的预处理提高准确度
  • 缺点:增大的推理延时

  • 中融合方法 (Intermediate-fusion based 3D object detection)

  • 概述:在基于LiDAR的3D目标检测器的中间阶段,例如在骨干网络中,在proposal生成阶段,或在RoI细化阶段,融合图像和激光雷达特征。
  • 分类:根据融合阶段的不同
    • 在主干网络中融合(Fusion in backbone networks)
    • 通过像素-点特征融合算子,将来自LiDAR主干网络中的特征可以和来自Image主干网络中的特征进行融合
    • 特征融合算子
      • 工作在基于网格检测的主干网络的中间层
      • 例如continuous convolutions、hybrid voxel feature encoding、Transformer
      • 工作在主干网络输出的特征图上
      • 例如gated attention、unified object queries、 BEV pooling 、learnable、alignments, point-to-ray fusion、Transformer等
    • 在提议生成或者RoI头部融合(Fusion in proposal generation and RoI head.)
    • 首先通过LiDAR检测器生成3D目标的proposals
    • 然后这些3D的proposals被映射到多种视图中,例如鸟瞰图或者RGB图中。再分别从Image和LiDAR的主干网络中裁剪出特征,得到RoI Features
    • 最后将Image RoI Features 和 LiDAR RoI Features 融合,并输入到RoI 头,输出每个3D目标的参数。

无人驾驶领域的3D目标检测综述
  • 问题和挑战:相机和激光雷达的特征本质上是异构的,来自不同的视角,因此在融合机制和视角对齐方面还存在一些问题。

  • 后融合方法(Late-fusion based 3D object detection)

  • 概述:后融合就是将图像得到的2D结果和LiDAR得到的3D结果进行融合的方法。该方法采用相机与激光雷达并行进行目标检测,并将输出的2D和3D框进行融合,得到更精确的3D检测结果。

无人驾驶领域的3D目标检测综述
  • 优缺点
  • 优点:后融合方法以实例级融合为核心,仅对不同模态的输出进行多模态融合,避免了中间特征或输入点云上复杂的交互,更加高效
  • 缺点:由于不依赖于相机和激光雷达传感器的深度特征,这些方法无法整合不同模式的丰富语义信息,限制了这类方法的潜力。

基于雷达信号的多模态检测(Multi-modal detection with radar signals)

  • 雷达在实际应用中的优势
  • 便宜、不太容易受到极端天气影响、探测距离较大、提供额外的速度测量
  • 主要融合方式
  • 雷达-LiDAR融合(Radar-LiDAR fusion)
  • 雷达-相机融合(Radar-LiDAR fusion)

结合高精地图的多模态检测(Multi-modal detection with high-definition maps)

  • 高精度地图
  • 高精地图(HD maps)包含道路形状、道路标记、交通标志、障碍物等详细的道路信息。高精地图提供了丰富的周围环境语义信息,可以作为辅助3D目标检测的有力手段。
  • 将地图信息整合到3D目标检测器中
  • 高精地图可以转换为鸟瞰视图,并与栅格化BEV点云或特征图融合。
    • 融合可以通过简单地将鸟瞰图上的栅格化点云和高精地图的通道连接起来进行,或者将LiDAR点云和高精地图分成单独的主干,融合两种模式的输出特征图

时序3D目标检测(Temporal 3D Object Detection)

时序3D目标检测可以根据数据类型的不同,分为激光雷达序列检测、流输入检测、从视频中检查

无人驾驶领域的3D目标检测综述

; 激光雷达序列检测(3D object detection from LiDAR sequences)

  • 概述: 通过各种时间建模工具融合多帧特征来解决时序检测问题,也有通过将多帧目标点合并到单一帧中来获得更完整的3D形状。
  • 基于时序扫描的3D物体检测(3D object detection from sequential sweeps.)
  • 首先,将不同点云帧通过同一个3D检测器,分别生成Object Proposals
  • 然后,在不同帧对应的Object Proposals应用时序模型进行聚合

无人驾驶领域的3D目标检测综述
  • 缺点:合并帧带来额外的时间和内存成本

流输入检测(3D object detection from streaming data)

  • 概述:激光雷达数据包在扫描中顺序记录,利用流数据的方法通常在动态LiDAR数据中检测3D目标,而不用等完整扫描完成。
    无人驾驶领域的3D目标检测综述
  • 优点:与完整激光雷达扫描检测相比,基于流式的3D目标检测是一种更准确、低延迟的车辆感知解决方案

; 从视频中检测(3D object detection from videos)

  • 概述:通过跟踪和融合视频中相同目标来进行3D目标的检测

标签高效的3D目标检测(Label-Efficient 3D Object Detection)

前面的一些3D目标检测方法主要默认都是全监督学习,并且是在某个特定的域内进行。实际情况则不可避免的遇到跨域和标注数据缺少的问题。针对这些问题,主要从这方面去优化:域自适应、弱监督学习、半监督学习和自监督学习。

3D目标检测中的域自适应(Domain adaptation for 3D object detection)

  • 概述:一种能够普遍应用于3D目标检测中任何领域转移任务的域自适应方法
  • 域自适应包括跨数据集的、跨天气的、跨传感器的、以及仿真到现实的域适应

无人驾驶领域的3D目标检测综述

; 弱监督3D目标检测(Weakly-supervised 3D object detection)

  • 概述:使用弱监督信号,如更容易标的2D标注,被用来训练3D目标检测模型。
  • 弱监督包括图像2D框、预训练图像检测器、BEV目标中心和车辆实例

无人驾驶领域的3D目标检测综述

半监督3D目标检测(Semi-supervised 3D object detection)

  • 概述:利用少量标注数据和大量无标注数据,共同训练出更强的模型
  • 半监督3D目标检测方法分类
  • 伪标签
    • 首先用有标签的数据训练一个3D目标检测器,然后用这个3D检测器对未标注域的数据打上伪标签。最后,用未标注域上的伪标签重新训练3D目标检测器。
  • 教师-学生方法
    • 将Mean Teacher范式应用于3D目标检测。首先在标注域上训练教师检测器,然后教师检测器通过约束两种检测模型输出的一致性来指导学生检测器在未标记域上的训练。

无人驾驶领域的3D目标检测综述

; 自监督3D目标检测(Self-supervised 3D object detection)

  • 自监督预训练
  • 首先以自监督的方式在大规模的无标注数据上对模型进行预训练,然后在有标注的数据集上进行微调,以获得更好的性能。
  • 自监督方法通常将对比学习技术应用到3D目标检测
  • 首先通过数据增强将输入点云转化为两个视图
  • 然后使用对比学习来约束两个点云视图中相同3D位置的特征一致性
  • 最后将这个预训练模型在有标签数据集上进行微调,得到更好性能。

无人驾驶领域的3D目标检测综述

自动驾驶中的3D目标检测(3D Object Detection in Driving Systems)

自动驾驶中端到端的学习(End-to-end learning for autonomous driving)

  • 一个完整的端到端自动驾驶系统
  • 自动驾驶车辆接受传感器输入
  • 在一个循环中依次执行感知、预测、规划和运动控制
  • 最终给驾驶系统提供转向和速度信号

无人驾驶领域的3D目标检测综述

; 3D目标检测仿真(Simulation for 3D object detection)

  • 概述:为那些罕见但关键的场景创建人造数据,解决解决长尾数据分布问题
  • 模拟分类
  • 视觉模拟
  • 激光雷达模拟
  • 驾驶模拟

3D目标检测的鲁棒性(Robustness for 3D object detection)

  • 基于学习的3D的目标检测方法容易受到攻击
  • 给传感器输入中添加一些噪声或目标
  • 防御攻击的方法
  • 在道路上添加对抗性障碍物、在车辆上放置真实的样本、在对抗性位置放置任意目标、利用对抗性纹理网格、放弃临界值,和利用被遮挡的点云模式等。

协同3D目标检测(Collaborative 3D object detection)

  • 概述:多车协同方案,本车与其它车或基础设施进行通信,根据其它代理(车或基础设施)反馈的信息提高感知精度。

无人驾驶领域的3D目标检测综述
  • 优缺点
  • 优点:克服只用单车会造成无法解决目标遮挡和远处目标的稀疏性问题。
  • 缺点:通信带宽成本较大

; 分析和展望(Analysis and Outlooks)

研究趋势(Research trends)

  1. 数据集的选择(Trends of dataset selection) 3D目标检测的评价指标从原来的2D的AP已经逐渐变为AP-3D和AP-BEV,更好的衡量3D检测效果。基于LiDAR的方法在数据集的选择上也从KITTI逐渐变为更大和更多样的nuScenes和WaymoOpen数据集。
  2. 推理时间(Trends of inference time) 部署依然很难,因为很多方法为了提高性能,并没有太在乎推理时间,造成实时性较差。
  3. 基于LiDAR的方法(Trends of the LiDAR-based methods)
  4. 基于体素和点体素的方法性能有较大提升
  5. 基于柱体的方法运行快,效率高,但性能比基于体素的差
  6. 基于Range和BEV的方法不错,推理时间也可以接受
  7. 基于点的检测器效果好,但是推理速度受采样和处理算子的影响较大
  8. 基于相机的方法(Trends of the camera-based methods) 基于相机的3D目标检测方法中,双目比单目好,多相机的研究也是前景广泛。
  9. 多模态的方法(Trends of the multi-modal methods) 多模态比单模态效果好,但引入了额外的计算开销,前融合方法更严重。现在很多方法只用了前视图和对应点云进行融合,而在nuScenes上提供了多视图图像、点云和高精地图,模型可以得到更好的结果。
  10. 系统级别比较(Systematic comparisons) 从系统级别来看,以速度和精度为主导因素,则基于LiDAR和多模态的方法是最佳解决方案;如果以成本为最重要因素,那么基于相机的方法可能是最佳选择。

未来展望(Future outlooks)

  1. 开放世界目标检测(Open-set 3D object detection) 数据集不能只用闭集,类别只有那些常见的目标,后续也应该关注一些现实世界中稀有类及未标注的类别
  2. 3D目标检测的可解释性研究(Detection with stronger interpretability) 深度学习作为黑盒,可解释性较差,但为了更加稳健的使用3D目标检测器,并知道如何避免一些意外情况,需要理解和解释现有3D目标检测器的一些行为。
  3. 硬件系统的优化设Efficient hardware design for 3D object detection) 如何让基于LiDAR和多模态的检测器高效的在移动端硬件上跑起来,需要设计新的硬件架构来方便模型部署。

总结(Conclusion)

本文全面回顾和分析了自动驾驶3D目标检测的各个方面。

  • 从3D目标检测的问题定义、数据集和评估指标
  • 介绍了基于各种传感器的3D目标检测方法,包括基于LiDAR、基于相机和多模态3D目标检测方法。
  • 进一步研究了利用时态数据的3D目标检测,具有标签高效的学习,以及它在自动驾驶系统中的应用。
  • 最后,总结了近年来的研究趋势,展望了未来3D目标检测的研究方向。

参考资料

https://github.com/PointsCoder/Awesome-3D-Object-Detection-for-Autonomous-Driving

Original: https://blog.csdn.net/zyw2002/article/details/127304674
Author: zyw2002
Title: 无人驾驶领域的3D目标检测综述

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/681915/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 猿创征文|openGauss数据库从3.0.0升级到3.1.0操作实践

    国产数据库openGauss 9.30日新出了3.1.0版本,想必有些小伙伴已经迫不及待想尝试了吧。之前基于3.0.0版本进行了一些实践,本篇就详细介绍如何将openGauss数据…

    人工智能 2023年7月18日
    084
  • 论文浅尝 | 记忆推理:最近邻知识图谱嵌入

    笔记整理:孙硕硕,东南大学硕士,研究方向为根因溯源。Citation: Zhang N, Xie X, Chen X, et al. Reasoning Through Memor…

    人工智能 2023年6月1日
    076
  • 使用C#写一个Windows服务

    创建服务程序 可能你的VS里面没有【Windows服务】这个模板,那么你就需要通过”打开Visual Studio安装程序”,通过VisualStudio …

    人工智能 2023年7月31日
    057
  • 45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化

    45_Pandas.DataFrame计算每列之间的相关系数并用热图可视化 使用corr()方法计算pandas.DataFrame中各列之间的相关系数。 这里,将描述以下内容。 …

    人工智能 2023年7月6日
    094
  • Pytorch中dilation(Conv2d)参数详解

    目录 一、Conv2d 二、Conv2d中的dilation参数 一、Conv2d 首先我们看一下Pytorch中的Conv2d的对应函数(Tensor通道排列顺序是:[batch…

    人工智能 2023年6月17日
    081
  • 跨模态检索

    本文是我阅读跨模态检索综述后结合自己的学习总结的文章,阅读的综述如下: 【1】刘颖,郭莹莹,房杰,范九伦,郝羽,刘继明.深度学习跨模态图文检索研究综述[J/OL].计算机科学与探索…

    人工智能 2023年6月24日
    071
  • 目标检测 YOLOV5:loss介绍

    目录 1.BCEWithLogitsLoss 1.1pytorch源码中的相关代码 1.2 数学原理 2.FocalLoss 2.1 pytorch源码 2.2 数学原理 1.BC…

    人工智能 2023年7月12日
    0112
  • python pandas快速上手教程,还不赶紧收藏一波

    pandas tutorials 1 使用pandas读取数据 * 1.1 panda读取csv文件 1.2 pandas显示读取的csv文件数据的开头几行 head(n) 1.3…

    人工智能 2023年7月17日
    075
  • 遥感目标检测数据集

    遥感目标检测数据集 目标检测(Object Detection)的任务是找出图像中所有感兴趣的目标(物体),确定它们的类别和位置,是计算机视觉领域的核心问题之一。由于各类物体有不同…

    人工智能 2023年6月24日
    0124
  • RNN详解

    RNN(循环神经网络)详解 为什么要引入RNN? ​ 我们可以把一个普通的神经网络当成一个能够你和任意函数的黑盒,只要训练的数据足够多,给定特定的x,我们就可得到希望的y。结构如下…

    人工智能 2023年5月28日
    0108
  • Python图像处理之透视变换

    1 引言 如果你想对图像进行校准,那么透视变换是非常有效的变换手段。透视变换的定义为将图像投影到一个新的视平面,通常也被称之为投影映射。 ; 2 公式 一般来说,通用的图像变换公式…

    人工智能 2023年6月18日
    0113
  • 【教程】Yolov5目标跟踪检测整个流程

    这个专栏更新各种AI,以及各种有趣的教程,有兴趣的小伙伴可以订阅一下。 正题: 目标跟踪听名字顾名思义是用来检测跟踪目标物体的运动轨迹,通过其轨迹我们可以获取相应的数据。比如跟踪一…

    人工智能 2023年7月23日
    087
  • 机器学习之Python使用KNN算法对鸢尾花进行分类

    文章目录 * – 2. 编写代码,实现对iris数据集的KNN算法分类及预测 – + 要求: + 第一步:引入所需库 + 第二步:划分测试集占20% + 第…

    人工智能 2023年6月13日
    075
  • 超分辨率基础

    超分辨率综述Image Super-resolution 的深度学习方法微信二维码引擎OpenCV开源微信扫码背后的图像超分辨率技术技术解析 | 即构移动端超分辨率技术DIV2K数…

    人工智能 2023年7月22日
    090
  • 分帧,加窗和DFT

    我们知道语音信号特性是随时间变化的,是一个非平稳随机过程。但是,从另一方面来看,语音虽然具有时变的性质,在短时间内其特性可以视为是稳定的。这是因为,人的发声器官的肌肉惯性,从一个状…

    人工智能 2023年5月25日
    093
  • 协同过滤算法中的基于邻域的方法有哪些

    问题说明 这个问题涉及协同过滤算法中的基于邻域的方法。要求详细解释介绍这些方法的算法原理、公式推导、计算步骤,并提供复杂Python代码示例以及代码细节解释。本次解答将使用开源数据…

    人工智能 2024年1月2日
    037
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球