PETR: Position Embedding Transformation for Multi-View 3D Object Detection
作者单位
旷视
目的
DETR3D 中 2D->3D过程 存在的问题:
- 预测的参考点坐标可能不准确,在采样图片特征时可能拿不到对应的特征。
- 只有参考点 投影位置的图像特征被使用,无法学到全局的特征。
- 采样图像特征的过程过于复杂,难于应用
本文的目标是 在 DETR 的基础上,提出一个 简单优雅的 3D 目标检测框架
本文的贡献总结:
- 提出了一个简单优雅的框架,PETR,用于多视角的 3D 目标检测。
- 提出了一个新的 3D position-aware 表示
- 在 nuScenes 数据集上达到了 sota
方法
网络结构
网络整体结构:
- N 个 view 的图片,送入到 backbone(resnet50) 中提取 特征
- 3D坐标生成器:先将图像视锥空间离散化到成 3D 的 网格,然后使用 相机的参数,变换网格的坐标,并生成 3D 空间的坐标。
- 3D的坐标 和 2D feature 一起送入到 3D 位置编码器中,生成 3D position-aware 特征(每个 view 对应一个 特征图)。
- 3D position-aware 特征 会送入到 transformer decoder 中 并且与 来自 query 生成器 的 object queries 交互
- 更新后的 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特征 经过 1x1 卷积降维,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。文章来源:https://www.toymoban.com/news/detail-570484.html
Decoder
使用的 DETR 中标准的 decoder文章来源地址https://www.toymoban.com/news/detail-570484.html
到了这里,关于PETR: Position Embedding Transformation for Multi-View 3D Object Detection的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!