CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection

文章目录

论文精读

摘要(Abstract)

  • 研究动机:单目3D目标检测难以预测物体的深度
    单目 3D 目标检测是自动驾驶领域的一个关键问题,因为它与典型的多传感器系统相比配置比较简单。单目 3D 检测的主要挑战在于准确预测物体深度,由于缺乏直接的距离测量,因此必须从物体和场景线索推断出物体深度。许多方法试图直接估计深度以辅助 3D 检测,但性能有限,深度估计不准确。

  • 主要工作: 提出CaDDN
    我们提出的 Categorical Depth Distribution Network(CaDDN)使用每个像素的预测分类深度分布,将丰富的上下文特征信息投影到 3D 空间中的适当深度间隔。然后,我们使用计算效率高的鸟瞰投影和单级检测器来产生最终的输出检测。我们将 CaDDN 设计为一种完全可微的端到端方法,用于联合深度估计和目标检测

  • 实验结果
    我们在 KITTI 3D 目标检测基准上验证了我们的方法,我们在已发表的单目方法中排名第一。我们还提供了最新发布的 Waymo 开放数据集上的第一个单目 3D 检测结果。

1. 介绍(Introduction)

  • 3D感知任务背景 :基于激光雷达和双目相机的检测算法效果更好
    3D 空间中的感知是自动车辆和机器人等领域的关键组成部分,使系统能够了解其环境并做出相应反应。激光雷达和双目相机在 3D 感知任务中有着悠久的使用历史,由于其能够生成精确的 3D 测量,因此在 KITTI 3D 物体检测基准等3D 物体检测基准上显示出优异的结果。

  • 基于单目视觉3D感知技术背景:
    基于单目视觉的 3D 感知技术也在同步发展,其动机是一种低成本、易于部署的单摄像头解决方案。但在相同的 3D 目标检测基准上的性能表现,落后于以上两种方法,主要是因为场景信息投影到图像平面上时会丢失深度信息。

  • 方法1: 使用一个单目深度估计网络来单独预测深度信息以及它们的二大局限性
    为了消除这种影响,单目目标检测方法通常通过在单独阶段训练单目深度估计网络来学习深度。
    (1)然而,深度估计在 3D 目标检测阶段直接使用,而不了解深度置信度,导致网络在深度预测方面往往过于自信。深度上的过度自信是一个长期问题,这会导致实际应用效果不佳。
    (2)此外,在训练阶段,深度估计与三维检测分离,阻止了深度图估计针对检测任务进行优化

  • 方法2:隐式学习容易收到特征涂抹的影响
    图像数据中的深度信息也可以通过直接将特征从图像转换到三维空间,最终转换到鸟瞰(BEV)网格隐式学习。然而,隐式方法往往会受到特征涂抹(feature smearing)的影响,其中相似的特征可存在在投影空间中的多个位置。特征涂抹增加了在场景中定位对象的难度。

  • 解决方案:提出CaDDN方法及其三大特性
    为了解决这些问题,我们提出了一种单目 3D 目标检测方法 CaDDN,该方法通过学习分类深度分布来实现精确的 3D 检测。通过利用概率深度估计,CaDDN 能够以端到端的方式从图像生成高质量的鸟瞰特征表示。我们用三个方面来总结我们的方法。

(1) Categorical Depth Distributions
为了进行三维检测,我们预测像素级分类深度分布(pixel-wise categorical depth distributions),以便在三维空间中准确定位图像信息。每个预测分布描述了一个像素属于一组预定义深度单元(depth bins)的概率

我们让我们的深度估计分布尽可能的集中处于正确的深度单元,以便保证我们的网络在保证深度估计的精度和可信度的同时,聚焦更多的图像信息。通过这样做,我们的网络能够产生对 3D 检测有用的更清晰、更准确的特征(见图 1)另一方面,当深度估计置信度较低时,我们的网络仍能产生不高的分布。使用分类分布允许我们的特征编码捕获固有的深度估计不确定性,以减少错误深度估计的影响,这一特性在第 4.3 节中被证明是 CaDDN 改进性能的关键。我们预测的深度分布的清晰度是通过对正确的深度单元进行一次热编码(one-hot encodings)监督来激励的,该深度编码可以通过将激光雷达深度数据投影到相机帧中来生成。
(2) End-To-End Depth Reasoning
我们以端到端的方式学习深度分布,联合优化以实现精确的深度预测和精确的 3D 对象检测。我们认为,联合深度估计和 3D 检测证明针对 3D 检测任务优化深度估计可以提高性能,如第 4.3 节所示。
(3) BEV Scene Representation
我们介绍了一种利用分类深度分布和投影几何 从单个图像生成高质量鸟瞰场景表示的新方法。我们之所以选择鸟瞰场景表示法,是因为它能够以高计算效率产生出色的 3D 检测性能。生成的鸟瞰视图表示用作基于鸟瞰视图的检测器的输入,以生成最终输出。



实验结果:
在 KITTI 3D 物体检测测试基准的汽车和行人类别中,CaDDN 在之前发布的所有单目方法中排名第一,其不确定度分别为 1.69%和 1.46%AP|R40。我们是第一个在 Waymo 开放数据集上报告单目 3D 目标检测结果的公司。

2. 相关工作

单目深度估计(Monocular Depth Estimation)

通过为图像中的每个像素生成单个深度值来执行单目深度估计。因此,许多单目深度估计方法都基于在语义分割等像素到像素映射问题中使用的体系结构。

例如,全卷积网络(FCN)被引入语义分割,随后被用于单目深度估计。Atrous spatial pyramid pooling(ASPP)模块也首次在 DeepLab中提出用于语义分割,
随后在 DORN和 BTS中用于深度估计。此外,许多方法以端到端的方式联合执行深度估计和分割。我们遵循语义分割网络 DeepLabV3的设计来估计图像中每个像素的分类深度分布。

基于BEV的语义分割(BEV Semantic Segmentation)

BEV 分割方法试图从图像中预测 3D 场景的 BEV 语义图。图像可用于直接估计 BEV 语义图,或估计 BEV 特征表示,作为分割任务的中间步骤。特别是,Lift、Splat、Shot以无监督的方式预测分类深度分布,以生成中间 BEV 表示。在这项工作中,我们通过监督真值热编码来预测分类深度分布,从而为目标检测生成更准确的深度分布。

单目的3D目标检测(Monocular 3D Detection)

单目 3D 目标检测方法通常会生成中间表示,以协助完成 3D 检测任务。基于这些表示,单目检测可以分为三类:直接、基于深度和基于网格的方法。

直接方法(Direct Methods)

直接从图像中估计 3D 检测,而无需预测中间 3D 场景表示。

基于深度的方法(Depth-based Methods)

使用像素级深度图作为附加输入执行 3D 检测任务,其中深度图使用单目深度估计架构预先计算

基于网格的方法(Grid-Based Methods)

通过预测 BEV 网格表示来避免估计原始深度值,BEV 网格表示将用作 3D 检测架构的输入。

3. 方法(Methodology)

  • CaDDN 通过将图像特征投影到 3D 空间,学习从图像生成 BEV 表示。然后,使用高效的BEV 检测网络以丰富的 BEV 表示来执行 3D 对象检测。



CaDDN算法结构。 该网络由三个模块组成,分别用于生成三维特征表示和执行三维检测。使用估计的深度分布D从图像 I 生成平截头体特征G, 并将其转换成体素特征V, 体素特征折叠为鸟瞰特征B, 用于3D对象检测。

3.1 3D表示学习 (3D Representation Learning)

我们的网络学习生成非常适合 3D 对象检测任务的 BEV 表示。以一幅图像为输入,(1)我们使用估计的分类深度分布构造了一个平截头体特征网格。(2) 使用已知的相机校准参数将平截头体特征网格转换为体素网格,(3)然后折叠为鸟瞰特征网格

(1) Frustum Feature Network

平截头体特征网络的目的是通过将图像特征与估计深度相关联, 将图像信息投影到三维空间。

平截头体特征网络的输入是图像 IRWI×HI×3, 其中 Wl,HI 分别是图像的宽和高。 输出是平截头体特征网格 GRWF×HF×D×C, 其中 WF,HF 是图像特征表示的宽和高, D 是离 散化深度单元的个数, C 是特征通道的个数。我们注意到, 平截头体网格的结构类似于立 体 3D 检测方法 DSGN中使用的平面扫描体积


每个像素特征F(u,v) 通过其属于D个离散深度单元的深度分布概率D(u,v) 进行加权,以生成平截头体特征 G(u,v)

ResNet-101主干网用于提取图像特征 F~RWF×HF×C。在 我们的实现中, 我们从 ResNet-101 主干的 Block1 中提取图像特征, 以保持较高的空间分 辨率。高空间分辨率对于有效的平截头体到体素网格转换是必要的, 这样可以在不重复特 征的情况下对平截头体网格进行精细采样。图像特征 F 用于估计像素级分类深度分布 DRWF×HF×D, 其中类别为 D 个离散化深度单元。具体来说, 我们预测了图像特征 F~ 中每个像素的 D 分布概率, 其中, 每个概率表示深度值属于指定的深度箱的置信度。深度箱的定义 取决于第 3.3 节中讨论的深度离散化方法。

    • Depth Distribution Network 的具体实现
      我们遵循语义分割网络 DeepLabV3的设计, 根据图像特征 F~ (图 2 中的深度分布网 络) 估计分类深度分布, 其中, 我们修改网络, 以产生属于深度箱的像素级概率分数, 而 不是具有下采样-上采样结构的语义类。图像特征 F~ 用 ResNet-101主干网的其余组件 (Block2、Block3 和 Block4)进行下采样。应用 Atrus spatial pyramid pooling (ASPP) 模块捕获多尺度信息, 其中输出通道数设置为 D。ASPP 模块的输出通过双线性揷值上采 样到原始特征尺寸, 以产生分类深度分布 DRWF×HF×D 。对每个像素应用 softmax 函数, 以将 D 归一化为 0 到 1 之间的概率。

    • Image Channel Reduce 的具体实现
      在估计深度分布的同时, 我们对图像特征 F~执行通道缩减 (Image Channle Reduce) 以生成最终的图像特征 F, 使用 1x1 卷积+BatchNorm+ReLU 层将通道数从 C=256 减少到 C=64 。为了减少将在 3D 平截头体网格中填充的 ResNet-101 功能的高内存占用, 需要减少通道。

    • Outer Product 的具体实现
      (u,v,c) 代表图像特征 F 中的坐标, (u,v,di) 代表分类深度分布 D 中的坐标, 其中(u,v)是特征像素的位置, c 是通道索引, di 是深度单元索引。为了生成平截头体特征网格 G, 每个特征像素 F(u,v) 通过其在 D(u,v) 中的相关深度单元概率进行加权, 以填充深度轴 , 如图 3 所示。特征像素可以使用外积按深度概率加权, 定义为:






3.4 深度分布标签的生成(Depth Distribution Label Generation)

我们需要深度分布标签 D,以监督我们预测的深度分布。深度分布标签是通过将激光雷达点云投影到图像帧中来生成的,以创建稀疏密集的地图。执行深度补全以在图像中的每个像素处生成深度值。我们需要每个图像特征像素的深度信息,因此我们将大小为WI​×HI​的深度图下采样为图像特征大小WF×HF。使用第 3.3 节所述的 LID 离散化方法将深度图转换为面元索引,然后转换为一次热编码,以生成深度分布标签。一次热编码确保深度分布标签清晰,这对于通过监督鼓励深度分布预测的清晰性至关重要。


参考

Categorical Depth Distribution Network for Monocular 3D Object Detection

https://github.com/TRAILab/CaDDN

单目三维目标检测之CaDDN论文阅读_hello689的博客-CSDN博客_单目三维目标检测