深度学习3D目标检测综述文献

本文主要参考以下几篇综述文献,对3D目标检测相关方法有个大致的了解,3D目标检测输出结果包含7维,\([x_c, y_c, z_c, l, w, h, \theta]\),其中\([x_c, y_c, z_c]\)表示框的中心点位置,\([l, w, h]\)分别表示框的长宽高,\(\theta\)表示框的角度。以下几篇参考文献中第一篇将点云目标检测分成了七大类,是比较全面的,后续也会参照这一篇进行展开。第二篇将常用的3D目标检测分为一阶段和二阶段两种类型。第三篇是介绍深度学习在点云中的应用,包含分类、目标检测和分割三大块。第四篇主要介绍以图片进行3D目标检测的方法。
1、《3D Object Detection for Autonomous Driving: A Comprehensive Survey》

2、《A Survey of Robust LiDAR-based 3D Object Detection Methods for Autonomous Driving》

3、《Deep Learning for 3D Point Clouds: A Survey》

4、《3D Object Detection from Images for Autonomous Driving: A Survey》

这里主要介绍第一篇文献的前面六种划分方式,这里不包括文献中最后一种介绍的是自动驾驶系统中的3D目标检测,感兴趣的可以自己阅读下原文。

一、基于激光雷达的3D目标检测

文中将其划分为两类,第一类是参考数据表示,第二类是参考学习方式,进一步的第一类可以细分为基于点、基于网格、基于点和体素以及基于深度图像四小类,第二类可以细分为Anchor_based、Anchor_free和其他辅助检测三小类。

1.1 按照数据表示划分

按照数据表示划分为基于点、基于网格、基于点和体素以及基于深度图像四小类。其依据时间顺序相关的模型如下:

  • 基于点的3D目标检测
    检测框架大体如下所示,点云输入进来后,先进行采样操作(最远点采样FPS,基于分割采样,基于体素采样),然后进行特征提取(采用PointNet++里面的SA层,或者图神经网络,注意力机制),最后再经过一个预测网络输出3D检测框。作为一种主流的检测方式,主要有输入点云数量如何确定以及采样时的半径如何选择两个问题对其有所限制。

    其主要方法可以参考以下表格

  • 基于网格的3D目标检测
    该方法首先将输入点云按照划分好的网格进行归类,将点云数据转换成体素或者柱子或者鸟瞰图(BEV)特征,然后再进行目标检测。主要限制是网格划分时的大小不好确定

  • 基于点和体素的3D目标检测
    采用点和体素混合的方式,按照方式文中又划分成一阶段和二阶段两个类别,这种方式比纯基于点或者体素的方式可以获得更好的准确度,但同时也在体素-点和点-体素的转换中增加了推理时间

  • 基于深度图像的3D目标检测
    深度图像每个像素包含3D距离信息而不是RGB值。其从两个方面解决检测问题:设计针对深度图像量身定制的新模型和算子,以及选择合适的视图进行检测。其代表模型有LaserNet等。

1.2 按照学习方式划分

文中将其分为Anchor-based、Anchor-free和其他辅助三小类。

  • Anchor-based
    需要事先指定3D框,后续依据预测结果和指定框的Iou值来确定正负样本,相关模型按照损失函数的不同进行了汇总。这种的难点在于Anchor的大小不太好确定

  • Anchor-free
    Anchor-free和Anchor-based的主要区别在于正负样本分配的不同(感兴趣的可以参考ATSS这篇论文),主要介绍了基于网格(PIXOR等)、基于点(PointRCNN等)、基于深度图(LaserNet等)和集合到集合(DETR等)四种。

  • 其他辅助检测
    采用其他辅助方法来加强特征提取和提高目标检测的精度,如语义分割、Iou预测,形状计算和部件估计等。

二、基于相机种类进行划分

依据相机类型可以划分为单目、双目和多目三大类,其中单目又包含单张图片、深度信息辅助和先验知识辅助三小类,双目也可划分为基于2D检测、基于虚拟激光雷达和基于体素的三类方法。

按时间顺序相关网络如下:

2.1 基于单目的3D目标检测

2.1.1 基于单张图片的3D目标检测

参考2D目标检测,将其划分为单阶段/两阶段以及anchor-based和anchor-free。

  • 单阶段Anchor-based方法
    Anchor-based的单目检测方法依赖于放置在每个图像像素处的一组2D-3D锚点框,并使用2D卷积神经网络从锚点回归出对象参数,代表网络有M3D-RPN

  • 单阶段Anchor-free方法
    没有事先定义Anchor,而是采用多个预测分支,如:category分支预测目标的类别信息,keypoint分支预测目标的中心,offset分支预测中心点偏移量,depth分支预测深度信息,size分支预测目标的大小,orientation分支预测出目标的旋转角度等。代表网络有CenterNet。

  • 两阶段方法
    首先依据2D检测方法从图片中识别出物体的2D包围框,然后通过2D RoI来预测3D对象参数,将2D框提升到3D空间,代表网络有ROI-10D。

2.1.2 基于深度信息辅助的3D目标检测

深度估计在3D目标检测中非常重要,如MonoDepth、DORN等方法先通过预训练估计出深度信息。然后主要有两类方法来处理深度图像和单目图像:基于深度图像的方法基于伪激光雷达的方法。其瓶颈主要在于预训练阶段估计深度信息时需要高清的地图进行参考。

  • 基于深度图像的方法
    大多数基于深度图像的方法分别利用RGB和深度图像的两个骨干网络。他们通过使用专门的算子融合来自两个主干的信息来获得深度感知图像特征。可以学习更准确的3D边界框。代表方法有MultiFusion。

  • 基于伪激光雷达的方法
    将深度图像转换为伪激光雷达点云,然后可以将基于激光雷达的检测器应用于点云以预测3D对象,代表网络有PatchNet。

2.1.3 基于先验知识辅助的3D目标检测

先验知识辅助的方法可以提供额外的信息来帮助提高目标检测的精度,如:物体形状、几何关系、时间限制以及分割信息等。

2.2 基于双目的3D目标检测

双目相机提供一对图像用于检测,相比于单目图片,可以提供几何对比进而更准确的估计出物体的深度信息,但双目相机需要校准和同步,通常很难在实际应用中实现。进一步的也可以划分为基于2D检测、基于虚拟激光雷达和基于体素的三大类方法。常见的网络如下:

2.2.1 基于2D检测的方法

双目视觉通常涉及到立体匹配,这一点在实际应用中通常较复杂,而2D检测通过检测出物体的位置得到ROI来解决这个问题。代表方法有Stereo R-CNN。

2.2.2 基于虚拟激光雷达的方法

根据立体图像预测的视差图可以转换为深度图像,然后转换为伪激光雷达点云进行检测。代表方法有P-LiDAR++。

2.2.3 基于体素的方法

直接在3D立体体积上执行3D对象检测的方法,代表方法有DSGN。

2.3 基于多目的3D目标检测

在自动驾驶领域,通常安装了多个摄像头,因此多目的3D检测方法也发展得很快,主要分为基于BEV空间、基于查询的多目3D目标检测。

2.3.1 基于BEV空间的多目3D目标检测

通过将多视图图像投影到鸟瞰图中来构建统一的BEV空间,然后在统一的BEV-特征图上使用基于BEV的检测器来检测3D对象。但是从相机视图到鸟瞰图的转换在没有准确深度信息的情况下是模糊的,因此图像像素及其BEV位置没有完全对齐,如何建立从相机视图到鸟瞰图的可靠转换是这些方法中的一个主要挑战。代表方法有LSS

2.3.2 基于查询的多目3D目标检测

采用从鸟瞰图生成的3D对象查询和将跨视图注意力应用于对象查询和多视图图像特征的Transformers。主要的挑战是如何在Transformers中正确生成3D对象查询并设计更有效的注意力机制。代表方法有DETR3D。

三、基于多模态的3D目标检测

基于传感器的类型,可以划分为基于激光雷达相机、基于雷达和基于地图融合的三大类方法。其中基于激光雷达相机的方法依据融合时间又可以划分为前处理阶段融合、特征提取阶段融合和后处理阶段融合三类。

代表的方法按时间和类型划分如下:

按照上述类型划分如下表所示:

3.1 基于激光雷达相机的方法

安装融合的不同阶段可以分为前处理、特征提取、后处理三个融合方式。

3.1.1 前处理阶段融合

目的是在将图像输入基于激光雷达的探测管道之前,将图像中的知识整合到点云中,可以简单的划分为基于区域融合(代表方法有F-PointNet)和基于点云融合(代表方法有PointPainting)。

3.1.2 特征提取阶段融合

在基于激光雷达的3D物体探测器的中间阶段融合图像和激光雷达特征,可以划分为在BackBone阶段融合和在候选区域阶段融合。

3.1.3 后处理阶段融合

后期在输出阶段进行融合的方法。

3.2 基于雷达数据的方法

与激光雷达传感器相比,雷达在现实应用中有四个可替代的优点:雷达比激光雷达传感器便宜得多;雷达不易受到极端天气条件的影响;雷达的探测范围更大;雷达提供额外的速度测量。然而,与产生密集点云的激光雷达传感器相比,雷达只提供稀疏和有噪声的测量。因此,如何有效地处理雷达信号仍然是一个关键的挑战。主要方法包括雷达和激光雷达的融合雷达和相机的融合

  • 雷达和激光雷达的融合
    包括基于体素的融合、基于注意力的融合、引入距离-方位-多普勒张量、利用图神经网络工作、利用动态占用图以及引入4D雷达数据。以实现雷达和激光雷达信号之间的信息传递。

  • 雷达和相机融合
    雷达相机融合与激光雷达相机融合非常相似,因为雷达和激光雷达数据都是3D点表示。大多数雷达相机方法采用现有的基于激光雷达的检测架构来处理稀疏雷达点,并采用与基于激光雷达相机的方法类似的融合策略。

3.3 基于地图融合的方法

高清地图(HD map)包含详细的道路信息,如道路形状、道路标记、交通标志、障碍物等。高清地图提供了关于周围环境的丰富语义信息,可以作为强大的先验信息来辅助3D对象检测。
高清晰度地图可以很容易地转换为鸟瞰图,并与光栅化的BEV点云或特征图融合。融合可以通过简单地从鸟瞰图中将光栅化点云和高清地图的通道连接起来,将激光雷达点云和HD地图馈送到单独的主干网中,并融合两种模态的输出特征图来进行,或者简单地过滤掉那些不属于相关地图区域的预测。还探索了其他地图类型,例如可见性地图、矢量化地图。

四、基于注意力机制的3D目标检测

Tansformers已经应用在许多视觉任务上并取得了很好的成绩,同样在3D目标检测中也有很多尝试将Transformer融入进来。按照Transformer结构文献可以大体分为基于Transformer(查询、关键字和值的选择非常灵活,并提出了新的注意机制,代表文献有Pointformer、Voxel Transformer、CT3D)、DETR(利用一组对象查询,并使用这些查询与不同的功能进行交互,以预测3D长方体,代表文献有DETR3D、BEVFormer、TransFusion)、ViT(将输入分为多个块,并在每个块和不同的块之间应用自注意力机制,代表文献有SST、SWFormer)三种。如果按照应用来划分,又可以分为激光雷达、基于相机、多模态和时序Transformer,其相关文献见下图。

五、基于时序的3D目标检测

根据数据类型,这些方法可分为三类:激光雷达序列检测、流输入检测和视频检测

5.1 激光雷达序列检测

大多数使用多帧点云的检测方法首先通过共享检测器对点云的每一帧生成3D候选框,然后采用LSTM、Graph、Transformer等方法聚合不同帧上的对象信息。

5.2 流输入检测

将每个LiDAR分组视为独立样本来检测3D对象,并在顺序分组上应用时间模块来学习分组之间的关系。

5.3 视频检测

基于视频的检测方法通常通过在不同帧上跟踪和融合相同的对象来扩展基于图像的3D对象检测器。所提出的跟踪器包括LSTM和3D卡尔曼滤波器。

六、基于标签高效的3D目标检测

在前面的章节中,我们通常假设3D检测器是在特定数据域上的完全监督下进行训练的,并带有足够的标注数据。然而,在实际应用中数据通常缺少标注,按照监督方式,将文献分为领域自适应、弱监督、半监督和自监督四类。

6.1 领域自适应

在实际应用中不同的传感器设置和位置、不同的地理位置和不同的天气将导致完全不同的数据域,而在大多数情况下,在某个域上训练的3D对象检测器在其他域上不能很好地执(数据分布不一致)。

一些方法采用领域自适应的方式来解决上述问题。有跨传感器领域自适应、仿真到现实的自适应。在这些方法中,在源数据集上预训练的检测器将为目标数据集生成伪标签,然后用伪标签在目标数据集上重新训练检测器。

6.2 弱监督

3D目标检测依赖于大量人工标注的3D真实框,但实际很难进行标注,弱监督方式是一个有希望的解决方案,其中利用弱监督信号,例如较低成本的2D标注框来训练3D目标检测模型。

6.3 半监督

如何从大规模未标记的数据中挖掘有用的信息已成为研究界和行业面临的重大挑战。半监督学习提供了一个解决方式,他利用少量的标记数据和大量的未标记数据来联合训练更强的模型。将3D对象检测与半监督学习相结合可以提高检测性能。其主要有两种类型:虚拟标签和教师学生模型,虚拟标签的方式首先通过带标签的数据训练一个3D检测模型,然后利用这个模型对未标注的数据预测出一个标签,最后再通过这些预测出的标签和未标注数据重新训练,教师学生模型先再有标签的数据上训练教师模型,然后再指导学生模型再未标注的数据集上训练(两者输出尽可能的一致)。

6.4 自监督

自监督方法通常将对比学习技术来进行3D对象检测。首先将输入点云数据进行增强,得到两个不同视图下的点云数据,然后采用对比学习来鼓励两个视图中相同3D位置的特征一致性。最后,使用对比学习预训练的3D检测器在标记数据集集上进一步微调,以获得更好的性能。

posted @ 2024-01-23 20:48  半夜打老虎  阅读(708)  评论(0编辑  收藏  举报