论文:https://arxiv.org/abs/2203.05625
代码 :https://github.com/megvii-research/PETR?tab=readme-ov-file
在本文中,我们开发了用于多视图 3D 对象检测的位置嵌入变换(PETR)。 PETR 将 3D 坐标的位置信息编码为图像特征,产生 3D 位置感知特征。对象查询可以感知 3D 位置感知特征并执行端到端对象检测。PETR 在标准 nuScenes 数据集上实现了最先进的性能(50.4% NDS 和44.1% mAP),并在基准测试中排名第一。它可以作为未来研究的简单而强大的基线。
Q: 这篇论文试图解决什么问题?
A: 这篇论文提出了一种名为PETR(Position Embedding Transformation for Multi-View 3D Object Detection)的新方法,旨在解决多视角3D目标检测问题。具体来说,它试图解决以下几个关键问题:
避免在线2D到3D的转换和特征采样:以往的方法如DETR3D在进行3D目标检测时,需要将3D参考点投影回2D图像空间,并从所有相机视图中采样2D特征,这个过程可能引入误差,并且计算复杂。PETR通过将2D特征转换为3D感知特征,避免了这种转换和采样。
提高3D目标检测的准确性和效率:PETR通过编码3D坐标的位置信息到图像特征中,生成3D位置感知特征,使得目标查询能够直接与这些特征交互,从而进行端到端的3D目标检测。
简化3D目标检测框架:PETR提出了一个简单而优雅的框架,它保持了原始DETR的端到端特性,同时避免了复杂的2D到3D投影和特征采样过程。
实现实际应用中的便捷性:在推理时,3D位置坐标可以离线生成,并作为额外的输入位置嵌入,这使得PETR在实际应用中更加方便。
总的来说,PETR的目标是提供一个无需复杂的2D到3D转换过程,同时能够高效、准确地进行多视角3D目标检测的解决方案。
framework
Q: 论文如何解决这个问题?
A: 论文通过提出一种名为PETR(Position Embedding Transformation for Multi-View 3D Object Detection)的方法来解决多视角3D目标检测问题。PETR的核心思想是将3D坐标的位置信息编码到2D图像特征中,生成3D位置感知特征,从而使对象查询能够在3D环境中直接更新并进行检测。具体解决方案包括以下几个关键步骤:
3D坐标生成器(3D Coordinates Generator):
将相机视锥体空间离散化成一个3D网格(meshgrid)。
通过相机参数将网格坐标转换为3D世界空间的坐标。
具体实现过程
DSGN 的方法
在计算机视觉和摄影测量中,通常使用 f x f_x fx 和 f y f_y fy 表示相机内参矩阵中的水平和垂直焦距。这些参数代表图像平面上像素单位的焦距缩放因子,是从3D世界坐标投影到2D图像坐标的关键参数。
相机内参矩阵( K )通常表示为:
K = [ f x 0 c x 0 f y c y 0 0 1 ] \ K = \begin{bmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{bmatrix} \ K=
fx000fy0cxcy1
其中:
- f x f_x fx 是水平焦距,以像素为单位。
- f y f_y fy 是垂直焦距,以像素为单位。
- c x c_x cx 和 c y c_y cy 是主点(通常是图像中心)的坐标。
详细说明
-
水平焦距 f x f_x fx:
- 决定图像在水平方向上的缩放。
- 影响水平方向的畸变校正或应用。
-
垂直焦距 f y f_y fy:
- 决定图像在垂直方向上的缩放。
- 影响垂直方向的畸变校正或应用。
相机标定中的应用
在相机标定过程中, f x f_x fx和 f y f_y fy与其他内参和外参一起被估计。准确估计这些参数对于3D重建、增强现实和机器人视觉等任务至关重要。
实际示例
假设相机的传感器尺寸为4000x3000像素,物理焦距为35mm。如果像素大小为0.01mm,则水平和垂直焦距可以计算如下:
f x = 焦距(毫米) 像素大小(毫米) = 35 0.01 = 3500 像素 f_x = \frac{\text{焦距(毫米)}}{\text{像素大小(毫米)}} = \frac{35}{0.01} = 3500 \text{ 像素} \