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

### DETR 模型概述 DETR (Detection Transformer) 是一种基于变压器架构的目标检测方法,它通过将目标检测视为集合预测问题来简化传统的两阶段管道[^3]。该模型的核心思想在于使用编码器-解码器结构,其中自注意力机制能够显式建模序列中所有成对交互关系,这使得其特别适合处理诸如消除重复预测之类的集合预测约束。 #### 编码器-解码器架构 DETR 使用了一种基于变压器的编码器-解码器架构。输入图像被划分为固定数量的 patches,并传递到 CNN 提取特征图。随后,这些特征图被展平并送入变压器编码器部分进行全局上下文建模。接着,在解码器端引入一组可学习的位置嵌入(称为查询),用于表示潜在的对象位置和属性。最终,解码器输出一系列边界框坐标以及对应的类别标签。 以下是实现 DETR 的基本代码框架: ```python import torch from torchvision.models.detection import detr_resnet50 # 加载预训练的 DETR 模型 model = detr_resnet50(pretrained=True) # 设置为评估模式 model.eval() # 输入张量形状 (batch_size, channels, height, width) input_tensor = torch.rand(1, 3, 800, 800) # 进行推理 outputs = model(input_tensor) print(outputs) ``` 此代码片段展示了如何加载一个预先训练好的 DETR 模型,并对其进行简单的前向传播操作以获取预测结果。 #### 训练流程优化 为了进一步提升性能,研究者们还提出了一些改进措施。例如,在小样本场景下,可以通过迁移学习技术增强泛化能力;或者设计专门针对稀有类别的损失函数来缓解数据不平衡现象[^4]。 ### 应用实例:全景分割 除了常规的目标检测任务外,DETR 同样可以扩展至更复杂的视觉理解领域——比如全景分割。具体而言,只需稍作调整即可让同一套网络同时完成语义分割与实例分割两项子任务。下面给出一段展示如何利用官方 Colab 笔记本运行 DEMO 的链接说明[^1]: [Panoptic Colab Notebook](https://github.com/facebookresearch/detr/blob/main/notebooks/panoptic.ipynb).
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值