Bootstrap

DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

目的

本文提出了一个 仅使用 2D 信息的,3D 目标检测网络,并且比依赖与 密集的深度预测 或者 3D 重建的过程。该网络使用了 和 DETR 相似的 trasformer decoder ,因此也无需 NMS 等后处理操作。

长久以来 3D目标检测是一个挑战,并且 仅使用 2D 的图像信息(RGB图像),相比于 3D 信息(LiDAR)更加困难。

一些经典的方法:

  1. 使用2D 目标检测 pipeline(CenterNet,FCOS等) 预测 3D信息(目标pose,速度),并不考虑 3D场景结构 或 传感器配置。这些方法需要一些后处理来融合多个相机的信息,以及去掉冗余的 boxes。
  2. 作为这些基于2D方法的一些替代方案,一些方法将3D的计算纳入了 pipeline中:通过从图像中生成伪激光雷达,或是场景的距离。然后使用一些 3D 目标检测方法,处理这些数据,就好像我们直接获取了 3D 的数据。这种方法的问题是,对深度估计的不准确,会对3D的目标检测带来负面影响。

本文提出了一个更加优雅的 2D 观察到 3D预测的过渡,用于自动驾驶任务,该方法不依赖于 密集的深度预测模块。

方法

网络结构

![[attachments/9d61c4fc84ee4502b9076578e658b578_2_Figure_1.png]]

网络结构概述:

  1. 使用一个共享的 ResNet backbone 以及 FPN 提取特征
  2. 一个检测头,以 geometry-aware manner 连接 2D 特征 和 3D bbox 预测。检测头的每一层都 输入 从数据中学到的 目标 query 的稀疏集合。每一个 object query 都编码了 3D 位置信息,这些 object query 都被投影到了 相机平面,并被用来收集图像的特征。
  3. 与 DETR 相同,使用了 多头注意力 refine object queries,这个 layer 将重复多次
  4. 在 decoder 的最后 会使用一个 FFN 给出最后的结果
  5. 最后 使用 set-set loss 训练网络

decoder 每一个 layer 的处理步骤:

  1. 预测一组与对象查询相关的边界框中心;
  2. 使用相机变换矩阵将这些中心投影到所有特征图中;
  3. 通过双线性插值对特征进行采样并将它们合并到对象查询中;
  4. 使用多头注意力描述对象交互。

loss

类似于 DETR 的 set to set 的 loss,在 decoder 的每一个 layer 后面都有 loss 的计算。

相关资料

BEV下的纯视觉目标检测-DETR3D - 清华MARS Lab的文章 - 知乎 https://zhuanlan.zhihu.com/p/499795161

;