3D Object Detection for Autonomous Driving: A Comprehensive Survey文献阅读

news2024/9/28 11:20:32

目录

简言

文献地址:

重要网址(该项目持续更新中)

摘要

1、介绍

2、基础概念

2.1  3D object detection 

2.2  Datasets

2.3  Evaluation metrics

2.3.1  评估指标类-1

2.3.2  评估指标类-2

2.3.3  评估指标对比

3、基于Lidar的三维目标检测

3.1  基于数据表示的 3D 检测方法

3.1.1  基于点的3D物体检测

3.1.2  基于网格的3D物体检测

持续更新中。。。。。。。。。。。。。。。。。。。。。。


简言

        最近在整理一些3D检测的算法,之前在服务器上跑了 PointPillars 和 CenterPoint ,研究了下OpenPCDet 和 mmdetection3d,但总体而言需要去看一个综述了解各不同方向的自动驾驶检测算法,例如经典的 PointNet++ 、 VoxelNet 等等。这个文献总39页,该博客不是一个简单的翻译文,而是提取主要信息结合自己的理解进行梳理和记录,工程量比较大,尤其是需要梳理其中涉及到的算法细节,如有不同理解以文献为主。

        注释:文中公式较多,大公式直接用截图代替,如果是文中对某个参数说明,存在角标的情况下为方便快速过博客,不在此浪费时间,角标直接正常输入,请对照上图公式查看

        例:\beta _{det} 用 B_det代替,“_”表明下标字符。

文献地址:

[2206.09474] 3D Object Detection for Autonomous Driving: A Comprehensive Survey (arxiv.org)

重要网址(该项目持续更新中)

PointsCoder/Awesome-3D-Object-Detection-for-Autonomous-Driving: 3D Object Detection for Autonomous Driving: A Comprehensive Survey (IJCV 2023) (github.com)

摘要

        感知系统是必不可少的组成部分,旨在准确估计周围环境的状态,并为预测和规划提供可靠的观测(物体检测,物体跟踪,行为预测)。目的是预测周围物体的位置、大小、类别。该文章从模型和感官输入方面对物体检测进行全面综述,包含基于Lidar、基于相机、多模态检测方法。并且对每类方法进行了粗略性分析。并且研究了三维物体检测的应用,检测方法性能分析。

1、介绍

        感知系统获取多模块数据(Lidar、相机、HD-MAP)作为输入,预测道路上关键元素的几何和语义信息。

        感知系统为了对驾驶环境有全面的理解(理解为真值数据的准确性),可能涉及许多视觉任务(目标检测和跟踪、车道检测、语义与实例分割)。3D目标检测旨在预测3D空间中的关键对象(例如,汽车、行人、骑自行车的人)的位置、大小和类别。2D目标检测是在图像上生成检测结果,忽略了对象与自身的实际距离信息。3D目标检测专注于在真实世界坐标系中对物体进行定位和识别,这样车辆在静态和动态情况下都可以根据识别后预测的几何信息来测量车辆与物体的距离,提供规划真值信息。

        该文献全面对自动驾驶应用的3D物体检测方法进行总结并对不同类别的方法进行分析和比较。涵盖了最新的进展:距离图像的3D检测、自/半/弱监督3D检测、端到端驾驶系统中的3D检测,以及传统的基于Lidar、Camera、多模态输入下的3D检测。

        上图是文献给出的用于自动驾驶的3D对象检测的分层结构分类。该文献主要工作内容和贡献在于:

        -从不同感官输入(Lidar、Camera、多模态检测)的检测、时间序列的检测、标签有效的检测、以及3D物体检测在驾驶系统中的应用。

        -从结构和层次总结了3D对象检测方法,并进行了系统分析,对不同类别的方法进行了一定性的评估。

        -对检测方法进行了性能和速度分析,分析处了多年来的研究趋势,并对未来方向提出了展望

        对上图 Fig1:Hierarchically-structured taxonomy of 3D object detection for autonomous driving 与文章进行详细解释:第二节中介绍3D对象检测的问题定义、数据集和评估指标。而后分析了基于 Lidar (第三节)、基于Camera(第四节)、多传感融合(第五节)、基于Transformer(第六节)、利用时态数据的检测方法(第七节)、利用较少标签的检测方法(第八节)、驾驶系统中3D物体检测的关键问题(第九节)。

2、基础概念

2.1  3D object detection 

        Problem definition: 3D检测的目的是从感官输入(后续一律称传感输入,即传感器数据)检测场景中的3D物体边界框,如下图:

MMdetection3d  Demo demo/data/kitti/000008.bin  pointpillars模型检测示例图片

         3D检测的一般公式可以表示为:

         其中 β = \left \{ B_{1},\cdot \cdot \cdot ,B_{N}\right \} 是环境中 N 个3D对象的集合,\int _{det} 是3D检测模型,以函数形式表示,\mathcal{I}_{sensor} 是一个或多个传感输入数据。3D对象的表示也就是3D检测的物体具有哪些信息,在上述示例图片中就i是经典的一个信息展示,表示为:

         其中\left ( x_c,y_c,z_c \right ) 表示该物体的中心坐标,即长方体的中心点,l,w,h 表示这个长方体的长、宽、高,\theta 表示该物体的航向角,即朝向, class 表示该物体的类别。而有些检测模型直接输出的还包含该物体的速度,如总量速度 \underset{V}{\rightarrow} 或者是分量速度 V_{x} , V_{y}

        Sensory inputs: 数据输入亦或是传感器的输入有许多,Lidar、Radar、Camera,测距雷达等等都是常用传感。其中Radar探测距离较远并且在不同的天气条件都很稳定。由于多普勒效应,雷达可以提供额外的速度测量。

        摄像机价格便宜,易于使用,对于理解语义(例如交通标志的类型)至关重要。相机的数据可以表示为: 

\mathcal{I}_{cam} \in R^{W\times H \times 3 }

        W、H 代表图像的宽、高、每个像素具有 3 个RGB通道,相机在3D检测中具有局限性:(1)相机本身不获取3D结构信息(2)图像估计的深度不准确(3)容易受到极端天气和时间影响尤其是夜间和雾天。

        作为替代解决方案,LiDAR传感器可以通过发射激光束然后测量其反射信息来获得场景的细粒度3D结构。发射m个光束并在一个扫描周期中进行n次测量的LiDAR传感器可以产生距离图像Irange ∈ Rm×n×3,其中距离图像的每个像素包含球面坐标系中的距离r、方位角α和倾角φ,以及反射强度。距离图像是由LiDAR传感器获得的原始数据格式,并且可以通过将球坐标转换为笛卡尔坐标来进一步转换为点云。点云可以表示为Ipoint ∈ RN×3,其中N表示场景中的点的数量,并且每个点具有3个xyz坐标通道。

速腾聚创 Helios 产品坐标转换说明

        Lidar相比相机更适合检测3D物体,因其不易受时间天气干扰,但硬件成本昂贵。

        上述 2.1 总结如图 Fig2 An illustration of 3D object detection in autonomous driving scenarios 所示。

        Analysis: comparisons with 2D object detection:2D与3D的对比区别还是比较大,二维物体检测是计算机视觉中的一个基本问题,其目的是在图像上生成二维边界框。3D对象检测方法从2D对象检测方法中借鉴了许多设计范例:(翻译还存在问题,理解为二维图像识别中的检测生产、量化、锁定、判别)建议生成和细化、锚点、非最大抑制等(proposals generation and refinement, anchors,non maximum suppression, etc.)。

        从很多方面看,3D 检测与 2D检测并不是等同的适应。(1)3D目标检测方法必须处理异构数据表示。点云检测需要新的算子和网络来处理不规则的点数据,点云和图像的检测需要特殊的融合机制。(2)3D对象检测方法通常利用不同的投影视图来生成对象预测。与从透视图检测对象的2D对象检测方法相反,3D方法必须考虑不同的视图来检测3D对象,例如从鸟瞰图、点视图和圆柱视图。(3)三维物体检测对物体在三维空间中的精确定位有很高的要求。分米级的定位误差可能导致行人和骑自行车者等小物体的检测失败,而在2D物体检测中,几个像素的定位误差仍然可以保持预测和地面实况边界框之间的高交集(IoU)。因此,准确的三维几何信息是不可缺少的三维物体检测从点云或图像。

        Analysis: comparisons with indoor 3D object detection:与室内 3D 目标检测相比。(1)来自LiDAR和RGB-D传感器的点云分布是不同的。在室内场景中,点相对均匀地分布在扫描表面上,并且大多数3D对象在其表面上接收足够数量的点。然而,在驾驶场景中,大多数点都落在LiDAR传感器附近,而那些远离传感器的3D对象将只接收到几个点。因此,在驾驶场景中的方法,特别需要处理各种点云密度的三维物体,并准确地检测那些遥远的和稀疏的目标。(2)驾驶场景中的检测对推理延迟有特殊的要求。驾驶场景中的感知必须是实时的,以避免事故。因此,这些方法需要计算效率高。

2.2  Datasets

        目前数据集非常丰富,我这边常用的是KITTI,Waymo,Table 1: Datasets for 3D object detection in driving scenarios.中列出了在驾驶场景中收集的数据以及3D物体注释的数据集。KITTI [82]是一项开创性的工作,提出了一种标准的数据收集和注释范例:为车辆配备摄像头和LiDAR传感器,在道路上驾驶车辆进行数据收集,并从收集的数据中注释3D对象。以下工作主要从四个方面进行了改进。(1)增加数据的规模。与[82]相比,最近的大规模数据集[268,15,186]具有超过10倍的点云,图像和注释。(2)提高数据的多样性。[82]仅包含在白天和良好天气下获得的驾驶数据,而最近的数据集[51,30,218,15,268,321,186,315]提供了在夜间或雨天捕获的数据。(3)提供更多注释的类别。一些数据集[154,321,84,315,15]可以提供更细粒度的对象类,包括动物,障碍物,交通锥等。它们还提供现有类的细粒度子类别,例如[15]中现有行人类的成人和儿童类别。(4)提供更多模态的数据。除了图像和点云,最近的数据集提供了更多的数据类型,包括高清地图[114,30,268,315],雷达数据[15],远程LiDAR数据[313,307],热图像[51]。

       Analysis: future prospects of driving datasets: 建议未来的数据集将包括自动驾驶中的所有重要任务:感知,预测,规划和映射,作为一个整体,以端到端的方式,以便从整体和系统的角度考虑3D物体检测方法的开发和评估。有一些数据集[268,15,352]正在努力实现这一目标。

        注释:上述文中未提到的数据集请参考文章参考文献部分。

2.3  Evaluation metrics

        目前有许多评估指标用来衡量3D检测方法的性能,这些评价指标可分为两类。

2.3.1  评估指标类-1

        第一类尝试将2D对象检测中的平均精度(AP)度量[155]扩展到3D空间:

AP=\int_0^1max\{p(r'|r'\ge r)\}dr,

        p(r)  是与[155]相同的精确度-召回率曲线。与2D AP度量的主要区别在于计算精度和召回率时地面实况和预测之间的匹配标准。KITTI [82]提出了两个广泛使用的AP度量:AP 3D和APBEV,其中如果两个长方体的3D交集超过并集(3D IoU)高于某个阈值,则AP 3D将预测的对象与相应的地面真值相匹配,而APBEV基于鸟瞰图中两个长方体的IoU(BEV IoU)。NuScenes [15]提出了AP_{center},其中如果预测对象的中心位置的距离低于某个阈值,则将预测对象与地面真实对象相匹配,并且进一步提出了NuScenes检测分数(NDS)以考虑AP_{center}和其他参数的误差,即大小,航向,速度。Waymo [268]提出了AP_{hungarian},该算法应用匈牙利算法来匹配地面实况和预测,并提出了AP加权航向(APH),以将航向误差作为系数纳入AP计算。

2.3.2  评估指标类-2

        第二类直接从实际角度解决评估问题。3D 物体检测直接影响的是后续的规划控制人物,因此最好的方法是直接将预测和实际情况进行对比以检测车辆在未来规划状态中的 KL-devergence,如下图中所示(PKL【220】)。

PKL 220文献:PKL for 3D ob ject detection Figure 2

        而 SDE[56]利用从物体边界到自我车辆的最小距离作为支撑距离,并测量支撑距离误差。

2.3.3  评估指标对比

        Analysis: pros and cons of different evaluation metrics:基于AP的评估指标[82,15,268]可以自然继承2D检测的优势。但是这些指标忽略了检测对安全问题的影响,在AP计算中,本车辆附近和远离本车辆的物体的误检测可以接收类似的惩罚水平,但是在实际应用中,附近物体的误检测比远处物体的误检测实质上更危险。因此,从安全驾驶的角度来看,基于AP的指标可能不是最佳解决方案。PKL [220]和RISK [56]通过考虑下游任务中检测的影响部分解决了这个问题,但在建模这些影响时会引入额外的挑战。PKL [220]需要预先训练的运动规划器来评估检测性能,但预先训练的规划器也有可能使评估过程不准确的固有错误。[56]需要重建对象边界,这通常是复杂和具有挑战性的。

3、基于Lidar的三维目标检测

        在本节中,我们将介绍基于LiDAR数据(即点云或距离图像)的3D目标检测方法。在第3.1节中,我们回顾和分析了基于不同数据表示的基于LiDAR的3D目标检测模型,包括基于点的方法,基于网格的方法,基于点体素的方法和基于范围的方法。在第3.2节中,我们研究了3D对象检测器的学习目标,包括基于锚和无锚框架,以及基于LiDAR的3D对象检测中采用的辅助手段。下面图示 Fig 3 : Chronological overview of the LiDAR-based 3D object detection methods.展示了基于LiDAR的3D检测方法的时序概览:

3.1  基于数据表示的 3D 检测方法

        Problem and Challenge:  同2D图像中像素图像平面上规则分布不同,点云是稀疏且不规则的3D表示,需要专门设计的模型进行特征提取。而点云所产生的距离图像是一种密集而紧凑的表示,但距离像素包含3D信息而不是RGB值。因此,直接将常规卷积网络应用于范围图像可能不是最佳解决方案。另一方面,自动驾驶场景中的检测通常具有实时推理的要求。因此,如何开发一个模型,可以有效地处理点云或范围图像数据,同时保持高效率还是一个较大的难题。

3.1.1  基于点的3D物体检测

        基于点云的3D检测延续了深度学习技术在点云上的成功案例[224、225、300、184],并提出了直接从原始点检测3D对象的各种架构。点云首先通过基于点的骨干网络,在骨干网络中,点云被逐步采样,特征由点云算子学习。然后基于下采样的点和特征来预测3D边界框。

        图 4 An illustration of point-based 3D object detection methods.显示了一个通用的基于点的检测框架。

        表2A taxonomy of point-based detection methods based on point cloud sampling and feature learning.显示了基于点的检测器的分类。

        基于点的3D对象检测器有两个基本组件:点云采样特征学习

        Point Cloud Sampling:PointNet++ [225]中的法拉第点采样(FPS)已被广泛用于基于点的检测器,其中从原始点集中顺序地选择最远的点(这句话不理解的可以去看一下FPS采样)。PointRCNN [252]是一项开创性的工作,它采用FPS来逐步对输入点云进行下采样,并从下采样点生成 3D 方案(我理解为从下采样点检测出的物体)。类似的设计范例也被采用在许多后续工作中,如分割引导滤波[339],特征空间采样[342],随机采样[203],基于体素的采样[256]和坐标细化[208]。

        Point Cloud Feature Learning:[252、340、379、290] 一系列工作从 [224] 中的部分方法中学习点云特征。具体地,首先通过球查询(我理解是在球面坐标系中)在预定义半径内收集关键点。然后,通过多层感知器和最大池聚合关键点和特征,以获得新的特征。还有其他作品诉诸不同的点云算子,包括图算子[256,361,203,74,97],注意力算子[205]和Transformer [208]。

        Analysis: potentials and challenges on point cloud feature learning and sampling:基于点的检测器的表示能力主要受两个因素的限制:关键点的数量和特征学习中采用的搜索半径。增加关键点的数量将获得更多的表示能力,但代价是增加大量的内存消耗。球查询中合适的搜索半径也是一个重要因素:如果半径太小,关键点信息可能不足;如果半径太大,则部分细粒度的3D信息可能丢失。必须仔细确定这两个因素,以平衡检测模型的功效和效率。

        点云采样是大多数基于点的方法的推理时间的瓶颈。随机均匀采样可以并行进行,效率高。然而,考虑到LiDAR扫描中的点不是均匀分布的,随机均匀采样可能倾向于对高点云密度的那些区域进行过采样,而对那些稀疏区域进行欠采样,这通常导致与最远点采样相比性能较差。远点采样及其变体通过从已有的点集中依次选取最远点,可以获得更均匀的采样结果。然而,最远点采样本质上是一个顺序算法,不能变得高度并行。最远点采样通常是耗时的,不适用于实时检测。

3.1.2  基于网格的3D物体检测

        General Framework:基于网格的3D对象检测器首先将点云光栅化为离散网格表示,即体素、柱和鸟瞰图(BEV)特征图。然后,通过传统的2D卷积神经网络或3D稀疏神经网络从网格中提取特征。最后,从BEV网格单元检测3D对象。

        基于网格的3D对象检测的图示如 Fig 5:An illustration of grid-based 3D object detection methods. 所示。

        基于网格的检测器的分类如 Table 3 A taxonomy of grid-based detection methods based on models and data representations.所示。

        基于网格的检测器有两个基本组成部分:基于网格表示基于网格的神经网络

        Grid-based representations:有3种主要类型的网格表示:体素、柱和BEV特征图。

        Voxels(体素):如果我们将检测空间光栅化为规则的3D网格,则体素是网格单元。如果点云落入该网格单元,则体素可以是非空的。由于点云是稀疏分布的,因此3D空间中的大多数体素单元是空的并且不包含点。在实际应用中,只有那些非空的体素被存储和用于特征提取。VoxelNet [382]是一项开创性的工作,它利用稀疏体素网格并提出了一种新的体素特征编码(VFE)层,以从体素单元内的点中提取特征。类似的体素编码策略已被一系列后续工作采用[385,81,350,297,375,129,57,254]。另外,存在两类试图改进用于3D对象检测的体素表示的方法:(1)多视图体素。一些方法从不同的视图提出动态体素化和融合方案,例如鸟瞰图和透视图[383],圆柱和球形视图[35],范围视图[59]。(2)多尺度体素。一些论文生成不同尺度的体素[344]或使用重构的体素[292]。

        Pillars(柱形):柱可以被看作是特殊的体素,其中体素大小在垂直方向上是无限的。支柱特征可以通过PointNet [224]从点聚集,然后分散回来构建2D BEV图像以进行特征提取。PointPillars [124]是一个开创性的工作,介绍了支柱表示,其次是[302,70]。

        BEV feature maps(BEV特征图):鸟瞰图是一种密集的二维表示,其中每个像素对应于一个特定的区域,并编码该区域中的点信息。BEV特征图可以通过从体素和柱中获得的3D特征投影到鸟瞰图中来,或者它们可以通过汇总像素区域内的点统计数据来直接从原始点云中获得。常用的统计量包括二进制占用率[335,334,2]和局部点云的高度和密度[41,10,364,3,263,368,8,126]。

        Grid-based neural networks:基于网格的网络有两种主要类型:用于BEV特征图和柱面的2D卷积神经网络,以及用于体素的3D稀疏神经网络。

        2D convolutional neural networks:传统的2D卷积神经网络可以应用于BEV特征图,以从鸟瞰图中检测3D对象。在大多数作品中,2D网络架构通常改编自2D对象检测中的那些成功设计,例如[335]中采用的ResNet [95],[10,8,124,119,263,129]中的区域建议网络(RPN)[238]和特征金字塔网络(FPN)[156],以及[130,167,169]中的空间注意力。346]。

        3D稀疏卷积神经网络基于两个专门的3D卷积算子:稀疏卷积和子流形卷积[86],它可以有效地只在那些非空体素上进行3D卷积。与在整个体素空间上执行标准3D卷积的[283,68,201,125]相比,稀疏卷积算子符非常高效,可以获得实时推理速度。SECOND [333]是一项开创性的工作,它使用基于GPU的哈希表实现了这两个稀疏算子,并构建了一个稀疏卷积网络来提取3D体素特征。这种网络架构已被应用于许多作品[385,350,347,297,81,36,388,333,57,375],并成为最广泛使用的骨干网络在基于体素的检测器。还有一系列的工作试图改进稀疏算子[49],将[333]扩展到两级检测器[254,57],并将Transformer [280]架构引入基于体素的检测[187,70]。

        Analysis: pros and cons of different grid representations:与BEV特征图和柱图等2D表示相比,体素包含更多结构化的3D信息。此外,可以通过3D稀疏网络学习深度体素特征。然而,3D神经网络带来了额外的时间和内存成本。BEV特征图是最有效的网格表示,它直接将点云投影到2D伪图像中,而无需专门的3D算子,如稀疏卷积或柱编码。2D检测技术也可以无缝地应用于BEV特征图,而无需太多修改。基于BEV的检测方法通常可以获得高效率和实时推理速度。然而,简单地汇总像素区域内的点统计信息会丢失太多的3D信息,这导致与基于体素的检测相比,检测结果不太准确。基于柱的检测方法利用PointNet将3D点信息编码在柱单元内,然后将特征散射回2D伪图像以进行高效检测,从而平衡了3D对象检测的有效性和效率。

        Analysis: challenges of the grid-based detection methods:选择合适的网格单元尺寸是所有基于网格的方法都必须面对的一个关键问题。网格表示基本上是通过将连续的点坐标转换为离散的网格索引离散格式的点云。量化过程不可避免地会丢失一些3D信息,其有效性在很大程度上取决于网格单元的大小:较小的网格大小会产生高分辨率的网格,从而保持更细粒度的细节,这对准确的3D对象检测至关重要。然而,减小网格单元的大小导致2D网格表示(如BEV特征图或柱)的存储器消耗的二次增加。至于像体素这样的3D网格表示,问题可能变得更加严重。因此,如何平衡较小网格尺寸带来的功效和内存增加影响的效率仍然是所有基于网格的3D目标检测方法的公开挑战。

3.1.3  基于点云-体素的三维目标检测

        基于点云-体素的方法诉诸于利用点和体素两者进行3D对象检测的混合架构。这些方法可以分为两类:单阶段和双阶段检测框架。、

        这两个类别的图示如图 Fig 6 :An illustration of point-voxel based 3D object detection methods.所示。

        分类法如表 Table 4: A taxonomy of point-voxel based detection methods.所示。

        Single-stage point-voxel detection frameworks:单阶段点云-体素3D目标检测器试图将点云和体素的特征与骨干网络中的点云-体素和体素-点云变换连接起来。点云包含细粒度的几何信息,体素对于计算是有效的,并且在特征提取阶段将它们组合在一起自然受益于这两种表示。在骨干中利用点云体素特征融合的想法已经被许多工作探索,其中包括点云体素卷积[165,273],基于点的辅助网络[94,131,58]和多尺度特征融合[195,204,88]。

        基于两阶段点云体素的3D物体检测器针对不同的检测阶段采用不同的数据表示。具体来说,在第一阶段,他们采用基于体素的检测框架来生成一组3D对象样本。在第二阶段中,首先从输入点云中采样关键点,然后通过新颖的点云算子从关键点进一步细化3D样本。PV-RCNN [253]是一项开创性的工作,采用[333]作为第一阶段检测器,并提出RoI-grid池化算子用于第二阶段改进。以下工作尝试使用新的模块和算子来改进第二阶段,例如RefinerNet [44],VectorPool [255],点云式注意力[285],规模感知池[144],RoI-Grid注意力[185],通道式Transformer [250]和点云密度感知细化模块[101]。

        Analysis: potentials and challenges of the point-voxel based methods:基于点云-体素的方法可以自然地受益于从点云获得的细粒度的3D形状和结构信息以及体素带来的计算效率。然而,这些方法仍然存在一些挑战。对于混合点云-体素框架,点云和体素特征的融合通常依赖于体素到点云和点云到体素的变换机制,这会带来不可忽略的时间成本。对于两阶段点云体素检测框架,一个关键的挑战是如何有效地聚合点云特征以用于3D样本,因为现有的模块和算子通常是耗时的。与单纯的基于体素的检测方法相比,基于点云体素的检测方法可以获得更好的检测精度,但代价是增加了推理时间。

3.1.4  基于距离的3D目标检测

        距离图像是一种密集而紧凑的二维表示,其中每个像素包含3D距离信息而不是RGB值。基于距离的方法从两个方面解决检测问题:设计新的模型和算子,为距离图像量身定制,并选择合适的视图进行检测。

        基于范围的3D对象检测方法的图示如图 Fig 7 An illustration of range-based 3D object detection. 所示.

        分类如表 Table 5: A taxonomy of range-based detection methods based on views, models, and operators. 所示。

        Range-based detection models:由于距离图像是像RGB图像一样的2D表示,因此基于距离的3D对象检测器可以自然地借用2D对象检测中的模型来处理距离图像。LaserNet [192]是一项开创性的工作,它利用深层聚合网络(DLA-Net)[356]来获得多尺度特征并从距离图像中检测3D对象。一些论文还采用了其他2D对象检测架构,例如[193,152,269]中应用了U-Net [242],[152,11]中采用了RPN [238]和R-CNN [239],[153]中使用了FCN [171],[69]中利用了FPN [156]。

       Range-based operators: 距离图像的像素包含3D距离信息而不是颜色值,因此常规2D网络架构中的标准卷积算子对于基于距离的检测不是最佳的,因为滑动窗口中的像素在3D空间中可能彼此远离。一些作品采用新颖的算子来有效地从范围像素中提取特征,包括范围扩张卷积[11],图形算子[27]和元核卷积[69]。

       Views for range-based detection:距离图像是从距离视图(RV)中捕获的,理想情况下,距离视图是点云的球面投影。对于许多基于距离的方法[192,11,69,27]来说,直接从距离视图中检测3D对象是一种自然的解决方案。然而,从距离视图的检测将不可避免地遭受由球面投影带来的遮挡和尺度变化的问题。为了规避这些问题,许多方法一直致力于利用其他视图来预测3D对象,例如[236]中利用的圆柱视图(CYV),[153,269,193,152]中采用的范围视图,鸟瞰视图(BEV)和/或点云视图(PV)的组合。

       Analysis: potentials and challenges of the range-based meth-ods:距离图像是一种密集而紧凑的二维表示,因此传统的或专用的二维卷积可以无缝地应用于距离图像,这使得特征提取过程非常有效。然而,与鸟瞰视图检测相比,从距离视图的检测容易受到遮挡和尺度变化的影响。因此,从距离视图的特征提取和从鸟瞰视图的对象检测成为基于距离的3D对象检测的最实用的解决方案。

3.2  3D物体检测的学习目标

        Problem and Challenge:学习目标在目标检测中至关重要。由于3D对象相对于整个检测范围是相当小的,因此在3D检测中强烈需要特殊的机制来增强小对象的定位。另一方面,考虑到点云是稀疏的,物体通常具有不完整的形状,准确地估计三维物体的中心和大小是一个长期的挑战。

3.2.1  基于锚点的三维目标检测

        Anchor(锚点概念跟之前的AP(平均精度)评估一样是深度学习中的概念,后面会有专门的基础概念博客作为入门普及)

        几何体是具有固定形状的预定义长方体,可以放置在3D空间中。3D对象可以基于与地面实况具有高交集(IoU)的正锚来预测。我们将从锚点配置和损失函数的角度介绍基于锚点的三维目标检测方法。

        基于锚点的学习目标如图 Fig 8 An illustration of anchor-based learning objectives. 所示。

        分类如表 Table 6: A taxonomy of anchor-based methods based on loss functions. 所示。

持续更新中。。。。。。。。。。。。。。。。。。。。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1506804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue实现购物车功能

实现功能 CSS部分 <style>.tr {display: flex;}.th {margin: 10px;width: 20%;height: 50%;}.td {display: flex;margin: 10px;width: 20%;height: 100px;align-items: center;}.app-container .banner-box {border-radius: 20px;overflow: hidden;margin-bottom: 10px;}…

图论(三)之最小生成树(kurskal/Prim)

Minimum Spanning Tree 两大算法&#xff1a;Kruskal 与 Prim 树的含义&#xff1a; 结构中不能形成环 必须连接图结构中的全部顶带&#xff0c;任意两个顶点都是互通的 不同的生成树有不同的权值和&#xff0c;而最小生成树即为最小的那个树 如何构造最小生成树 **目标&…

OB_GINS学习

OB_GINS学习 组合导航中的杆臂测量加速度计的零偏单位转换受到经纬度以及高程影响的正常重力位的计算公式大地坐标系&#xff08;LBH&#xff09;向空间直角坐标系&#xff08;XYZ&#xff09;的转换及其逆转换导航坐标系&#xff08;n系&#xff09;到地心地固坐标系&#xff…

Error while Deploying HAP

第一个程序就遇到这么恶心的bug&#xff0c;也查了很多类似的问题是什么情况&#xff0c;后来无意中菜解决了这个bug&#xff0c;确实也是devicps下面加一个参数&#xff0c;但是找了半天 这是我遇到这个问题的解决办法。其他解决办法如下&#xff1a; https://blog.51cto.com…

STM32中断和外部中断

NVIC&#xff1a;嵌套中断向量控制器&#xff1a;用于统一分配中断优先级和管理中断 响应式优先级&#xff1a;也可以称为插队式优先级哪个优先级高优先处理哪个 抢占式优先级&#xff1a;优先级高的可以优先被处理&#xff0c;相当于CPU可以暂时中断当前处理的程序&#xff0c…

【实验报告】C语言实现猜单词的小游戏

之前帮别人写的一个简单的报告&#xff0c;无偿分享给大家~代码在后面&#xff0c;有一些图片出于懒惰没有上传。比较简单&#xff0c;喜欢的话关注我~&#xff0c;请勿商用~ 1 系统功能模块结构图 该程序主要思路&#xff1a; 头文件设计&#xff0c;存储结构设计&#xff0…

深度学习预备知识(线性代数)

介绍&#xff1a; 深度学习是一种机器学习的方法&#xff0c;涉及到大量的线性代数运算。线性代数是研究向量空间和线性映射的数学学科。在深度学习中&#xff0c;线性代数常用于表示和处理输入数据和模型参数。下面是一些深度学习中常见的线性代数概念和运算&#xff1a; 1. …

Java学习笔记之IDEA的安装与下载以及相关配置

1 IDEA概述 ​IDEA全称IntelliJ IDEA&#xff0c;是用于Java语言开发的集成环境&#xff0c;它是业界公认的目前用于Java程序开发最好的工具。 集成环境&#xff1a; ​把代码编写&#xff0c;编译&#xff0c;执行&#xff0c;调试等多种功能综合到一起的开发工具。 2 IDEA…

新IDEA电脑环境设置

1.设置UTF-8 2.Maven 3.JRE选对

three.js 包围盒

效果&#xff1a; 想要显示包围盒的样子&#xff1b;需要借助 Box3Helper 辅助显示&#xff1b; <template><div><el-container><el-main><div class"box-card-left"><div id"threejs"></div></div><…

【大厂AI课学习笔记NO.68】开源和开源发展情况

开源即源代码公开&#xff0c;任何人能获取源代码&#xff0c;查看、修改、分发他们认为合适的代码。 依托同行评审和社区生成&#xff0c;旨在以分散、协作的方式开发。 我们曾经很详细的讨论过开源协议的问题&#xff0c;详细可以参考我的文章&#xff1a; https://giszz.…

块设备驱动(1)-什么是块设备驱动?块设备驱动概念总结

1.块设备驱动概念 块设备驱动是针对存储设备&#xff0c;例如SD卡、EMMC、NAND FLASH、NOR FLSASH。 块设备驱动以块为单位进行访问、最小寻址单位是扇区、一个块中包含多个扇区、支持随机访问、带缓冲区&#xff0c;&#xff0c;当发生写入操作时&#xff0c;并不会立马操作硬…

P1948 [USACO08JAN] Telephone Lines S

Here 典中之典&#xff01;&#xff01; 解题思路 可选k条边代价为0如何决策&#xff1f; 将到当前位置选择了几条代价为0的边放入状态&#xff0c;即若当前状态选的边数小于&#xff0c;则可以进行决策&#xff0c;是否选择当前边&#xff0c;若选&#xff0c;则&#xff0c…

[2024-03-09 19:55:01] [42000][1067] Invalid default value for ‘create_time‘【报错】

这个错误可能是因为你的 MySQL 数据库版本不支持 CURRENT_TIMESTAMP 作为默认值。在一些早期版本中&#xff0c;MySQL 对 TIMESTAMP 类型字段的默认值设置有限制&#xff0c;只允许使用特定的常量值&#xff08;如 0000-00-00 00:00:00 或 CURRENT_TIMESTAMP()&#xff09;。如…

选修-单片机作业第1/2次

第一次作业 第二次作业 1、51 系列单片机片内由哪几个部分组成&#xff1f;各个部件的最主要功能是什么&#xff1f; 51系列单片机的内部主要由以下几个部分组成&#xff0c;每个部件的主要功能如下&#xff1a; 1. **中央处理器&#xff08;CPU&#xff09;**&#xff1a;这是…

Cisco Packet Tracer 模拟器实现一些交换机的基本配置

1. 内容 应用Cisco Packet Tracer 5.3搭建网络 应用Cisco Packet Tracer 5.3配置网络 通过不同的命令实现交换机的基本配置&#xff0c;包括交换机的各种配置模式、交换机的基本配置、交换机的端口配置。 2. 过程 2.1 打开软件 安装模拟器后打开如下&#xff1a; 图1 安装并…

Linux 之九:CentOS 上 Tomcat 安装、SpringBoot 项目打包和部署

安装 Tomcat 下载 a. 方式一&#xff1a;可以在windows 真机上下载后&#xff0c;再上传到服务器 b. 方式二&#xff1a;可以在服务器端使用 wget 下载命令来下载 登录官网https://tomcat.apache.org/download-90.cgi&#xff0c;选择 linux 版本 右键&#xff0c;获取下载链接…

【EtherCAT实践篇】九、EtherCAT增加变量示例:增加浮点数输入变量

目的&#xff1a;在EtherCAT开发板上IO程序基础上进行修改&#xff0c;将原来的16位整数型数据Analog input改为32位浮点数&#xff0c;基于STM32F405底板。 1、XML配置修改 1.1 更改数据类型 ETG1020基础数据中包括浮点数 REAL&#xff0c;可以直接使用浮点数。 这里在xml…

STM32 | 库函数与寄存器开发区别及LED等和按键源码(第三天)

STM32 | STM32F407ZE(LED寄存器开发续第二天源码)STM32 第三天 一、 库函数与寄存器开发区别 1.1 寄存器 寄存器开发优点 直接操作寄存器,运行效率高。 寄存器开发缺点 1、开发难度大,开发周期长 2、代码可阅读性差,可移植差 3、后期维护难度高 1.2库函数 库函数开…

稀碎从零算法笔记Day14-LeetCode:同构字符串

题型&#xff1a;字符串、哈希表 链接&#xff1a;205. 同构字符串 - 力扣&#xff08;LeetCode&#xff09; 来源&#xff1a;LeetCode 题目描述 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那…