PETR: Position Embedding Transformation for Multi-View 3D Object Detection

  • Post author:
  • Post category:其他


PETR: Position Embedding Transformation for Multi-View 3D Object Detection



作者单位

旷视



目的

DETR3D 中 2D->3D过程 存在的问题:

  1. 预测的参考点坐标可能不准确,在采样图片特征时可能拿不到对应的特征。
  2. 只有参考点 投影位置的图像特征被使用,无法学到全局的特征。
  3. 采样图像特征的过程过于复杂,难于应用

本文的目标是 在 DETR 的基础上,提出一个 简单优雅的 3D 目标检测框架

本文的贡献总结:

  1. 提出了一个简单优雅的框架,PETR,用于多视角的 3D 目标检测。
  2. 提出了一个新的 3D position-aware 表示
  3. 在 nuScenes 数据集上达到了 sota



方法



网络结构



网络整体结构:

  1. N 个 view 的图片,送入到 backbone(resnet50) 中提取 特征
  2. 3D坐标生成器:先将图像视锥空间离散化到成 3D 的 网格,然后使用 相机的参数,变换网格的坐标,并生成 3D 空间的坐标。
  3. 3D的坐标 和 2D feature 一起送入到 3D 位置编码器中,生成 3D position-aware 特征(每个 view 对应一个 特征图)。
  4. 3D position-aware 特征 会送入到 transformer decoder 中 并且与 来自 query 生成器 的 object queries 交互
  5. 更新后的 object queries 被用于生成 目标类别 和 3D 的 bounding boxes



3D 坐标生成器:

为了建立起 2D 图像 和 3D 空间的联系,将 相机视锥空间的点 投影到 3D 空间,因为这两个空间的点 是 一一对应的。

和 DGSN 论文相同,首先 离散 相机视锥空间 生成一个 网格(shape : W_F, H_F, d),然后可以用一个 变换矩阵 将 坐标 转换到 3D 坐标,3D 空间的 是 所有 view 的相机共享的。

然后再对 3D 空间下的坐标做归一化

归一化之后的坐标 在经过一次 transposed



3D 位置编码器

3D 位置编码器的目的 是 通过 联系 2D 图像特征 与 3D 位置信息 来 获得 3D 的特征

3D 位置编码器的结构:

2D特征 经过 1×1 卷积降维,3D坐标 使用 mlp 生成 embedding,然后将两者 add ,再 使用 flatten ,生成 向量(3D position-aware feature, shape, NxHxW)



Query 生成器 和 Decoder


Query Generator:


(网络学习的是基于 最初的 object queries 的 offset ,这样有利于网络收敛。以及该网络生成的是 3D 空间下的坐标点,这样可以保证网络的收敛,本文尝试了 DETR 中的设置,或者生成 BEV 下的 anchor poitns 都不能保证收敛



首先 初始化一组可学习的 3D 世界空间的 anchor poins 服从 0到1 的均匀分布,

然后输出 两层的 mlp 中 生成 最初的object queries。


Decoder


使用的 DETR 中标准的 decoder



版权声明:本文为SugerOO原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。