单目3D目标检测是自动驾驶的一项重要任务,因为它具有成本低的优点。由于其固有的不适定性,它比传统的2D检测更具挑战性,这主要反映在缺乏深度信息上。2D检测的最新进展为更好地解决这一问题提供了机会。然而,使通用2D检测器在3D任务中工作是非常重要的。 在本文中,在FCOS的基础上研究了这个问题,并提出了一个通用框架FCOS3D。具体来说:
所有这些都使该框架简单而有效,消除了任何2D检测或2D-3D对应先验。本文的解决方案在NeurIPS 2020的nuScenes 3D检测挑战中获得了所有仅视觉方法中的第一名。 Github: https://github.com/open-mmlab/mmdetection3d
目标检测是计算机视觉中的一个基本问题。它旨在识别图像中感兴趣的对象,并使用相应的2D边界框预测它们的类别。随着深度学习的快速发展,近年来2D检测得到了很好的探索。各种架构,如Faster R-CNN、RetinaNet和FCOS,显著促进了该领域的进步,并使自动驾驶等各种应用受益。
然而,2D信息不足以让智能代理感知3D真实世界。例如,当自动驾驶汽车需要在道路上平稳、安全地行驶时,它必须具有周围物体的准确3D信息,才能做出安全的决策。
因此,3D检测在这些机器人应用中变得越来越重要。大多数最先进的方法依赖于激光雷达点云提供的精确3D信息,但在每辆车上安装昂贵的激光雷达是一个沉重的负担。因此,单目3D目标检测作为一种简单而廉价的部署方法,成为当今一个非常有意义的研究问题。
考虑到单目2D和3D检测具有相同的输入但不同的输出,单目3D目标检测的直接解决方案是遵循2D领域中的实践,但添加额外的组件来预测目标的附加3D属性。
之前的一些工作预测2D框,并进一步回归2D中心和感兴趣区域之上的3D属性。也有工作同时预测具有与每个2D Anchor对应的3D先验的2D和3D框。另一个基于冗余3D信息的方法流,在最终预测优化结果的额外关键点。
总之,根本的问题是如何将3D目标分配到2D域,并在2D域与3D域之间建立对应关系,然后对其进行预测。
在本文中,采用了一种简单而有效的方法,使2D检测器能够预测3D定位。首先将通常定义的7-DoF 3D位置投影到2D图像上,并获得投影的中心点,与之前的2D中心相比,作者将其命名为3D中心。利用该投影,3D中心包含2.5D信息,即2D位置及其对应深度。2D位置可以进一步减少到从图像上的某一点的2D偏移,这是唯一的2D属性,可以像在2D检测中那样在不同Level的特征之间归一化。
相比之下,深度、3D大小和方向在解耦后被视为3D属性。通过这种方式,使用基于中心的范例来转换3D目标,并避免任何必要的2D检测或2D-3D对应先验。
作为一个实际的实现,在FCOS上构建了本文的方法。首先考虑目标的二维尺度,将其分布到不同的特征尺度。然后,仅根据投影的3D中心来分配每个训练样本的回归目标。与FCOS相比,FCOS表示距离边界的中心度,使用基于3D中心的2D高斯分布表示3D中心度。
本文在一个流行的大规模数据集nuScenes上评估了本文的方法,并在没有任何先验信息的情况下获得了该基准的相机跟踪的第一名。
此外,只需要0.5倍的计算资源,就可以在一天内训练出一个性能与之前最好的开源方法CenterNet相当的基线模型,速度也比它快3倍。这两者都表明本文的框架简单高效。详细的消融研究也表明了每个组件的重要性。
随着深度学习方法的突破,2D目标检测的研究取得了巨大进展。根据最初猜测的基础,现代方法可以分为两个分支:Anchor-Base和Anchor-Free。
Anchor-Base从预定义的Anchor中受益,回归更容易,同时也有许多超参数需要调整。相比之下,Anchor-Free方法不需要这些预先设置,因此更整洁,通用性更好。
为了简单起见,考虑到FCOS处理重叠GT和尺度方差问题的能力,本文以具有代表性的Anchor-Free检测器FCOS作为基线。
从另一个角度来看,单目3D检测是与2D检测密切相关的更困难的任务。但很少有研究他们之间的联系和差异的工作,这使得他们彼此孤立,无法从彼此的进步中受益。本文旨在以FCOS为例,进一步构建这两个任务之间的更紧密联系。
单目3D目标检测比传统的2D检测更为复杂。潜在的关键问题是输入的二维数据模态和输出的三维预测的不一致。
第一批工作依靠子网络来辅助3D检测。仅举几个例子,3DOP和MLFusion使用深度估计网络,而Deep3DBox使用2D检测器。它们都严重依赖于子网络的性能,甚至外部数据和预训练的模型,使得整个系统变得复杂且不方便训练。
另一类方法将输入RGB图像转换为其他3D表示,例如体素和点云。最近的工作在采用这种方法后取得了巨大进展,并表现出了良好的性能。
然而,它们仍然依赖密集的深度标签,因此不被视为纯单目的3D检测方法。不同深度传感器和激光雷达之间也存在领域差距,使得它们很难顺利推广到新的实践环境中。
此外,当将这些方法应用于现实世界场景时,很难处理大量点云。
最近的工作注意到了这些缺点,并开始设计端到端框架,如2D检测器。例如,M3D-RPN提出了一种具有端到端区域建议网络和深度感知卷积的单阶段检测器。SS3D检测2D关键点,并进一步预测具有不确定性的目标特征。MonoDIS改善了多任务学习,同时消除了混乱。这些方法遵循Anchor-Base的方式,因此需要去精细化一致的2D和3D Anchor。其中一些还需要多个训练阶段或手工制作的后期优化阶段。
相比之下,Anchor-Free方法不需要对给定数据进行统计。将它们的简单设计推广到具有更多不同类或不同内在设置的更复杂的情况更方便。因此,选择遵循这种范式。
然而,这些工作几乎没有研究将普通2D检测器应用于单目3D检测时的关键困难。在提出新框架时,很少讨论其中应保留或调整的内容。
相比之下,本文着重于这一点,这可以在将典型的2D检测器框架应用于密切相关的任务时提供参考。
目标检测是场景理解中最基本和最具挑战性的问题之一。传统2D检测的目标是预测每个感兴趣目标的2D边界框和类别标签。相比之下,单目3D检测需要预测3D边界框,而这些边界框需要解耦并转换到2D图像平面。
全卷积单阶段目标检测器通常由3个部件组成:
使用预训练的ResNet101和可变形卷积进行特征提取。在实验中,它在精度和效率之间实现了很好的权衡。这里作者固定了第一卷积块的参数,以避免更多的内存开销。
第二个模块是特征金字塔网络,它是检测不同尺度目标的主要组件。如图2所示,为了精确说明,将Level-3到Level-7的特征图表示为P3到P7。遵循原始FCOS以获得P3到P5,并用2个卷积块对P5进行下采样以获得P6和P7。所有这5个特征图都负责之后不同尺度的预测。
最后,对于共享检测头,需要处理2个关键问题:
作者遵循RetinaNet和FCOS的设计思想。每个共享Head由4个共享卷积块和用于不同目标的小头部组成。根据经验,为具有不同测量值的回归目标构建额外的解耦Head更有效,因此为每个目标设计了一个小Head(图2)。
首先,首先回顾FCOS中目标检测的Anchor-Base方式的公式。给定Backbone第
层的特征图,表示为
,需要基于该特征图上的每个点来预测目标,该特征图对应于原始输入图像上均匀分布的点。
形式上,对于特征图
上的每个位置
,假设直到第
层的总stride为s,则原始图像上的对应位置应为
。与Anchor-base的检测器通过将预定义Anchor作为参考来回归目标不同,FCOS基于这些位置可以直接预测目标。
此外,由于不依赖Anchor,判断一个点是否来自前景的标准将不再是Anchor和GT之间的IoU。相反,只要该点足够靠近GT框中心,它就可以是前景点。
在2D情况下,模型需要回归点到顶部/底部/左侧/右侧的距离,如图1中的
所示。然而,在3D情况下,将距离回归到3D边界框的6个面是非常重要的。相反,更直接的实现是将通常定义的7-DoF回归目标转换为2.5D中心和3D尺寸。2.5D中心可以通过相机固有矩阵转换回3D空间。回归2.5D中心可以进一步简化为回归从中心到特定前景点的偏移∆x、∆y及其相应深度d。
此外,为了预测目标的异中心方向,将其分为2部分:角度
和周期
,以及2方向分类。
第1个部分自然地用GT框来模拟预测的IOU,而第2个部分则侧重于2个框具有相反方向的对抗性情况。得益于这种角度编码,本文的方法在定向精度方面超过了另一个基于中心的框架CenterNet,这将在实验中进行比较。旋转编码方案如图3所示。
除了这些与目标的位置和方向相关的回归目标之外,还回归了类似FCOS的二维目标中心度c。它作为Softmax分类器来确定哪些点更接近中心,并有助于抑制那些远离目标中心的低质量预测。
总之,回归分支需要预测
,方向类别
和中心度
,而分类分支需要输出对象的类别标签及其属性标签(图2)。
对于分类和不同的回归目标,分别定义它们的损失,并将它们的加权和作为总损失。
首先,对于分类分支,将常用的Focal Loss用于分类损失:
其中p是预测框的类概率,α=0.25和γ=2。
对于属性分类,使用一个简单的Softmax分类损失,表示为
。
对于回归分支,对每个回归目标使用Smooth L1 loss,除了中心度,并考虑其尺度,使用相应的权重:
其中
误差的权重为1,
的权重为0.2,
,
的权重为0.05。
注意,尽管使用
进行深度预测,但仍然在原始深度空间而不是对数空间中计算损失。
根据经验,它最终导致更准确的深度估计。使用Softmax分类损失和BCE损失进行方向分类和中心度回归,分别表示为
和
。
最后,总损失为:
其中
为阳性预测的数量,同时
。
在推理过程中,给定一个输入图像,通过框架将其推理,并获得带有类分数、属性分数和中心度预测的边界框。将类得分和中心度相乘,作为每个预测的置信度,并在鸟瞰图中进行旋转非最大抑制(NMS),作为大多数3D检测器,以获得最终结果。
如前所述,为了训练具有金字塔网络的检测器,需要设计一种将目标分配到不同特征级别的策略。
FCOS讨论了其中的两个关键问题:
与Anchor-Base的方法相比,如何使Anchor-Free检测器实现类似的最佳可能召回(BPR)。原论文中的比较很好地解决了第一个问题。结果表明,通过FPN进行多层次预测可以提高BPR,甚至比Anchor-Base的方法获得更好的结果。同样,这个问题的结论也适用于FCOS3D的框架。
原始FCOS在不同Level的特征图中检测不同大小的目标。与Anchor-Base的方法不同,它不指定不同大小Anchor,而是直接将不同大小的GT框指定给不同Level的特征图。
形式上,它首先计算每个特征上每个位置的2D回归目标
。然后,满足
或$max(l^*r^*,t^*b^*)
相比之下,考虑到2D检测的规模与本文需要关注的区域的大小直接一致,在实现中也遵循这一标准。然而,在这一分配步骤中,仅使用2D检测来过滤无意义的目标。完成目标分配后,回归目标仅包括3D相关目标。
在这里,作者通过计算投影的3D边界框的外部矩形来生成2D边界框,因此不需要任何2D检测标注或先验。
具体来说,当一个点位于同一特征的多个GT框内时,应将哪个框分配给它?
通常的方法是根据2D边界框的面积进行选择。选择面积较小的框作为此点的目标框。作者称此方案为Area-Based的范式。该方案有一个明显的缺点:这种处理会减少对大目标的关注,这也通过实验得到了验证(图4)。
考虑到这一点,作者提出了一个Distance-Based的范式,即选择中心更近的框作为回归目标。该方案与用于定义回归目标的自适应基于中心的机制一致。此外,这也是合理的,因为更接近中心的点可以获得更全面和平衡的局部区域特征,从而容易地产生更高质量的预测。
通过简单的验证(图4)发现Distance-Based方案显著提高了大目标的最佳可能召回率(BPR)和mAP,还提高了总体mAP(约1%)。
除了基于中心的方法来处理模糊性,还使用3D中心来确定前景点,即只有足够靠近中心的点才会被视为正样本。FCOS3D作者定义了一个超参数
来测量这个中心部分。距离中心小于
的点将被视为正样本,其他均为负样本,这里在实验中
设置为1.5。
最后,将不同回归分支的每个输出
替换为6个,以区分不同Level的特征共享头。这里
是一个可训练的标量,用于调整特征的指数函数基。它在检测性能方面带来了微小的改进。
在FCOS的原始设计中,中心度
由2D回归目标
定义:
因为回归目标被改变为基于3D中心的范例,通过以投影的3D中心为原点的2D高斯分布来定义中心度。二维高斯分布简化为:
这里,
用于调整从中心到外围的强度衰减,并在实验中设置为2.5。将其作为中心度的GT,并从回归分支中预测它,以便稍后过滤低质量预测。如前所述,该中心度目标范围从0到1,因此使用BCE损失来训练该分支。
在评估目标检测器的性能时,通常使用平均精度(AP)度量。nuScenes通过地平面上的2D中心距离d来定义匹配,而不是使用3D相交于并集(IoU)来进行阈值设置,以便将检测与目标大小和方向解耦。
在此基础上,作者通过计算查全率和查准率超过10%的查全率曲线下的归一化面积来计算AP。最后,在所有匹配阈值D={0.5,1,2,4}米和所有类别C上计算mAP:
除了平均精度作者还计算了5种真正度量,即平均平移误差(ATE)、平均尺度误差(ASE)、平均方向误差(AOE)、平均速度误差(AVE)和平均属性误差(AAE)。
为了获得这些测量结果,首先定义中心距匹配GT d≤2m的预测将被视为真阳性(TP)。然后,对每一类目标单独进行匹配和评分,每个指标是在10%以上的每个召回级别的平均累积平均值。ATE是二维欧几里得中心距离(m)。ASE等于1−IOU,IOU是在对齐其平移和方向后在预测和标签之间计算的。AOE是预测和标签之间的最小偏航角差(弧度)。
请注意,与在整个
周期上测量的其他类别不同,障碍物是在
周期上测量的。AVE是二维(m/s)中绝对速度误差的l2-范数。AAE定义为1−acc,其中acc表示属性分类精度。最后,给定这些指标,计算了总体上所有类别的平均TP指标(mTP):
传统的mAP结合了对检测的位置、大小和方向的评估,也无法在这种设置中捕获某些方面,如速度和属性,因此该基准提出了一个更全面、解耦但简单的度量,即nuScenes检测分数(NDS):
其中mAP是平均精度(mAP),TP是由5个真阳性度量组成的集合。考虑到mAVE、mAOE和mATE可以大于1,应用一个界限将它们限制在0和1之间。
最后,在表3中展示了整个学习过程中的一些关键因素。可以看出,在前期过程中,将深度转换回原始空间以计算损失是提高mAP的重要因素,而基于距离的目标分配是提高整体NDS的重要因素。
首先,在表1中显示了定量分析的结果。分别比较了测试集和验证集的结果。首先比较了使用RGB图像作为测试集上的输入数据的所有方法。以mAP 0.358和NDS 0.428获得了其中最好的性能。
特别是,就mAP而言,本文的方法比之前的最佳方法超出了2%以上。使用LiDAR数据作为输入的基准包括速度更快、更轻的PointPillars和性能相对较高的CBGS(表1中的MEGVII)。
对于使用RGB图像和雷达数据输入的方法,选择CenterFusion作为基准。可以看出,尽管本文的方法和高性能CBGS有一定差距,但它在mAP上甚至超过了PointPillars和CenterFusion。这表明,本文的方法可以用足够的数据体面地解决这个不适定问题。
同时,可以看出,使用其他数据模式的方法具有相对较好的NDS,主要是因为mAVE较小。原因是其他方法引入连续多帧数据,例如来自连续帧的点云数据,以预测对象的速度。
此外,雷达可以测量速度,因此即使使用单帧图像,CenterFusion也可以实现合理的速度预测。然而,这些不能仅用单个图像来实现,因此如何从连续帧图像中挖掘速度信息将是未来可以探索的方向之一。
在验证集上,将本文的方法与最好的开源检测器CenterNet进行了比较。他们的方法不仅需要大约三天的训练时间(相比之下,FCOS3D只要一天的时间就能达到类似的性能,这可能要归功于经过预训练的Backbone),而且除了mATE之外,CenterNet的方法还不如FCOS3D方法。特别是,由于旋转编码方案,FCOS3D实现了角度预测精度的显著提高。mAP的显著提高反映了多级特征预测的优势。基于这些方面的所有改进,最终在NDS上实现了约9%的收益。
然后,在图5中显示了一些定性结果,以直观地了解模型的性能。首先,在图5中,在6个视图图像和顶部视点云中绘制了预测的3D边界框。例如,右后方摄像头中的障碍物未贴上标签,而是由模型检测到。
然而,同时也应该看到,FCOS3D方法在遮挡目标的深度估计和识别方面仍然存在明显的问题。例如,很难在左后图像中检测到被阻挡的汽车。此外,从俯视图来看,特别是在深度估计方面,结果不如图像中所示的那样好。这也符合预期,即深度估计仍然是这个不适定问题的核心挑战。
在图6中展示了一些失败案例,主要集中在大目标和遮挡目标的检测上。在相机视图和俯视图中,黄色虚线圆圈用于标记未成功检测到的被遮挡目标。红色虚线圆圈用于标记检测到的具有明显偏差的大目标。
前者主要表现为未能找到后面的目标,而后者主要表现为对目标大小和方向的不准确估计。这两种失败案例背后的原因也不同。前者是由于当前设置的固有属性,难以解决;后者可能是因为当前模型的卷积核的感受野不够大,导致大目标检测的性能低下。因此,未来的研究方向可能更侧重于后者的解决。
本文提出了一种简单而有效的单阶段框架FCOS3D,用于无任何2D检测或2D-3D对应先验的单目3D目标检测。在该框架中,首先将通常定义的7-DoF 3D目标转换到图像域,并将其解耦为2D和3D属性,以适应3D设置。
在此基础上,考虑到目标的2D比例,将目标分配到不同的特征,并仅根据3D中心进一步分配。此外,中心度用基于3D中心的2D高斯分布重新定义,以与目标公式兼容。详细消融研究的实验结果表明了方法的有效性。对于未来的工作,一个很有前途的方向是如何更好地解决这种不适定环境下的深度和方向估计的困难。
[1].FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection.