史上最全综述:3D目标检测算法汇总!(3)
时间: 2024-07-30 03:37:19 | 作者: 五星体育预告节目表今天直播
- 方案介绍
3D目标检测的学习目标主要是针对小目标(相比检验测试范围,目标太小),另一方面是由于点云的稀疏性,如何准确估计其目标的中心和尺寸也是一个长期挑战。
anchor是预定义的长方体,具有固定的形状,可放置在3D空间中。3D目标可以基于正anchor进行预测,这些正anchor与GT的IoU最大。anchor-based的3D目标检测的新方法一般是从鸟瞰图上检测3D目标,将3D anchor放置在BEV特征图的每个网格单元上进行。3D anchor通常对于每个类别都有一个固定的尺寸,因为同一类别的目标有相似的大小。
anchor-based的损失函数包括了分类损失、回归损失、偏航角损失等。分类损失常用的是二值交叉熵、Focal loss,回归则是SmoothL1,航向角必须要格外注意使用bin-based航向估计较好。除了这些单独的损失函数外,将整个3D目标作为整体去考虑,也有使用IoU loss的,再辅以corner loss,让3D目标的检测更加稳定。
anchor-free方法去掉了复杂的anchor设计阶段,可灵活应用于BEV、点视图和Range视图等。没有了anchor,就需要找其它正负样本分配方法。比如基于一些网格(BEV网格单元、体素、柱体)进行分配正负样本,比如PIXOR、CenterPoint等。
还有基于点的分配策略,大部分都是先将前景点分割出来,在3D目标内或附近的作为正样本,并学习这些前景点。基于Range的分配主要是将Range像素在3D目标内的作为正样本,并且回归的时候不是以整个3D坐标系统为基础,而是以目标为中心的回归坐标系。
DETR提出了一种集合到集合的分配的方法,利用匈牙利算法预测结果自动分配到对应的GT。
anchor-free方法设计灵活,不引入其它先验,学习过程简化了很多,其中基于中心的方法[329]对小目标检测有较大潜力可挖。
虽然优点不少,但毋庸置疑,anchor-free方法如何明智的选择合适的正样本来生成预测结果是个问题,相比于anchor-based中使用高IoU正样本,anchor-free可能会选到一些不好的正样本,造成预测结果出现偏差。
利用辅助任务来增强3D目标的空间特征,并能对3D目标检测提供一些隐性的指导。常用的辅助任务包括:语义分割、IoU分支预测、目标形状补全、部件识别。
语义分割。前景分割能够给大家提供目标的位置隐含信息;利用语义上下文知识能加强空间特征;语义分割可当作预处理方法,过滤背景样本,提升3D检测效率。
IoU预测分支可以辅助校正目标的置信度,比如预测置信度可以用分类置信度和IoU值的乘积来表示。经过IoU分支的校正,更容易选择高质量的3D目标作为最终预测结果。
形状补全,因为点云具有稀疏性,远处的目标只能接收几个点,因此从稀疏点云中补全目标形状可以为后面的检测提供帮助。
除此之外,还有一些比如场景流估计可以识别静态和动态目标,可以在点云序列中跟踪同一个3D目标,能够获得该目标更准确的估计。
主要的基于相机的3D目标检验测试方案分为:单目3D、双目、多相机3D等,具体看下图的分类:
本身从单目图像中检测3D空间的目标是一个病态问题,因为单目没办法提供足够的3D信息,很难预测3D目标准确的位置信息。
很多方法利用几何约束和形状先验从图像中推断深度信息,也是一种优化单目3D目标定位问题的思路。但是和激光雷达比,还是相差较远。
受到2D检测的新方法的启发,单目3D目标检测最直接的解决方案是通过卷积神经网络从图像中直接回归3D框参数。直接回归的方法借鉴了2D检测网络架构的设计,可以端到端训练。这一些方法可以分为单阶段、两阶段,或anchor-based/anchor-free方法。
基于anchor的方法主要预先设置好3D-anchor、2D-anchor、深度anchor,然后图像经过卷积网络后得到2D和3D的预测偏置,最终解码及转换过程如下所示:
anchor-free的方法也是通过2D卷积对图像进行处理,利用多个头去预测3D目标。具体包括一个分类头、一个关键点头预测粗粒度中心点、一个预测基于粗粒度中心点的偏置的头、预测深度的头、预测目标尺寸的头以及预测观测角的头。
两阶段单目检测方法通常将传统的两阶段2D检测体系扩展到3D目标检测。具体来说,在第一阶段利用2D检测器从输入图像生成2D目标框。然后在第二阶段,通过从2D ROI中预测3D目标参数,将2D框提升到3D空间。
基于纯图像的办法能够直接使用2D目标检测的最新进展,而且价格便宜,可以端到端训练,效率也很高。只是从单张图像预测深度比较困难。
深度估计是单目3D目标检测的关键。为了获得更准确的单目检测结果,许多论文采用预训练辅助深度估计网络的方法。
具体来说,单目图像首先通过预训练的深度估计器,如MonoDepth[83]或DORN[76],生成深度图像。然后,主要有两类方法处理深度图像和单目图像。
基于深度图像的方法将图像和深度映射与专门的神经网络融合,生成深度感知特征,可以提高检测性能。基于伪激光雷达的方法将深度图像转换为伪激光雷达点云,然后在点云上应用基于激光雷达的3D检测器来检测3D目标。具体如下表及图所示。
许多方法利用图像中目标的形状和场景几何等先验知识,解决病态的单目3D目标检测问题。
通过引入预训练的子网络或辅助任务来学习先验知识,这些子网络或辅助任务可以提供额外的信息或约束来帮助精确定位3D目标。广泛采用的先验知识包括目标形状、几何一致性、时间约束和分割信息。
通过重建目标形状,可以从图像中获得更详细的目标形状信息,有利于3D目标检测。但形状重建通常需要增加重建网络预训练模型,单目检测流程无法做到端到端训练。
而且目标的形状通常是从CAD模型而不是现实世界的实例中学习的,重建的目标形状和真实场景有较大差异。
采用几何一致性,有助于提高检测精度。然而,一些方法将几何一致性表示为一个优化问题,在后处理中优化目标参数会比较耗时,阻碍了端到端训练。
图像分割是单目3D检测中的重要信息。然而,训练分割网络需要的标注样本比较贵。用外部数据集预训练的分割模型存在泛化问题。
基于双目的3D目标检测是指从一对图像中检测出3D物体。与单目图像相比,双目提供了额外的几何约束,可用于推断更准确的深度信息。
基于双目方法通常比基于单目的方法获得更好的检测性能。当然,基于双目的方法与基于激光雷达的方法在性能上仍有很大的差距。
双目方法与单目检测的新方法相比,可以通过立体匹配技术获得更精确的深度和视差估计,从而带来更强的目标定位能力,明显提高了3D目标检验测试能力。具体方法见下图及表。
自动驾驶汽车通常会配备多个摄像头,从多个视角获取完整的旁边的环境信息。然而,如何利用多视图图像进行3D目标检测还没有正真获得广泛的研究。
多摄像头3D目标测的一个核心问题是怎么来识别不同图像中的同一目标,并从多视角输入中聚合目标特征。
一些论文通过利用跨视图几何约束[227]或目标重识别[52]来解决多视图目标定位问题。其他工作通过引入3D目标查询从不同视图裁剪图像特征[286]或转换不同视图的特征来处理多视图特征聚合问题。
*博客内容为网友个人发布,仅代表博主个人自己的观点,如有侵权请联系工作人员删除。