3D检测:DETR3D

简介: 3D检测:DETR3D

前言

在这篇paper,作者提出了一个更优雅的2D与3D之间转换的算法在自动驾驶领域,它不依赖于深度信息的预测,这个框架被称之为DETR3D。这个方法主要是为了葱多视角获取 scene-specific information,作者把首先生成3D的query,生成3d reference point,通过相机参数矩阵投影到2D拿到相应的2D feature。

主要贡献:

  1. 我们提出了一个基于RGB图像进行3D目标检测的改进模型。与现有的那些在最后阶段融合不同相机图像的目标预测的工作不同,我们的方法在每一层计算中都融合了所有相机的信息。据我们所知,这是将多相机检测转换为3D set-to-set预测问题的首次尝试。
  2. 我们提出了一种通过逆几何投影将提取的2D特征和3D包络框预测连接在一起的模块。它不受二阶段网络不准确的深度预测的影响,并且通过将3D信息反投影到所有可用帧上来无缝使用多个相机的信息。

和Object DGCNN类似,我们的方法不需要后处理,比如融合每个图像或全局NMS,并且性能和现有基于NMS方法相当。在相机视野的重叠区域, 我们方法明显优于其它方法。

  1. 我们发布了代码来促进复现性和未来的研究。

Method

在这里插入图片描述

Image Feature Extracting

输入图像经过ResNet + FPN后生成了多尺度的特征图。

2D-to-3D Feature Transformation

目前已经存在的自底向上的方法会为每张image预测dense的 bounding box,并且需要一个post- processing 去处理,这种方法存在两个缺点:

  1. 依赖于depth 预测。
  2. NMS-based 方法不支持并行化。

作者为了解决上述问题,提出了自顶向下的方法,它的Decoder部分与Detr类似需要迭代六次,也可以理解为一共有6层,每一层的step如下:

  1. 随机生成 N个 object queries 并与 bounding box centre 关联。
  2. 把这些 centre point 通过 全连接层 生成BEV空间的 reference point,然后通过相机参数矩阵投影到2D 坐标。
  3. 获取从多尺度PV feature,这些2d坐标可能存在一些小数或者超过图像范围的值,前者利用bilinear interpolation ,后者通过二进制参数判断,越界置0,然后对同一个query映射到不同相机不同level的feature求和取均值。在这里插入图片描述
  4. 第一步的另一个分支,把 N个object queries 通过 Self- Multi-head-Attention内部交互,避免不同的queries 预测同一个bounding box。
  5. 把 self attention输出的 query 与 2d image feature cross attention。
  6. 把 3 ,4 步结果相加获得下一层 object queries的input。
  7. 经过attention更新后的object query通过两个MLP网络来分别预测对应物体的class和bounding box的参数。

Loss

损失函数的设计也主要受DETR的启发,我们在所有object queries预测出来的检测框和所有的ground-truth bounding box之间利用匈牙利算法进行二分图匹配,找到使得loss最小的最优匹配,并计算classification focal loss和L1 regression loss。

实验结果

在这里插入图片描述

在这里插入图片描述

目录
相关文章
|
机器学习/深度学习 算法 计算机视觉
3D目标检测框架 MMDetection3D环境搭建 docker篇
本文介绍如何搭建3D目标检测框架,使用docker快速搭建MMDetection3D的开发环境,实现视觉3D目标检测、点云3D目标检测、多模态3D目标检测等等。
1871 0
|
机器学习/深度学习 自动驾驶 机器人
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
【论文速递】BEVFormer: 通过时空变换器从多相机图像中学习BEV表示
|
SQL 安全 NoSQL
|
机器学习/深度学习 编解码 算法
MMDetection系列 | 4. MMDetection模型代码训练及测试过程的详细解析
MMDetection系列 | 4. MMDetection模型代码训练及测试过程的详细解析
1381 0
MMDetection系列 | 4. MMDetection模型代码训练及测试过程的详细解析
|
传感器 自动驾驶 测试技术
【论文速递】CoRL2021 - DETR3D:通过 3D 到 2D 查询从多视图图像中检测 3D 对象
【论文速递】CoRL2021 - DETR3D:通过 3D 到 2D 查询从多视图图像中检测 3D 对象
|
数据采集 数据挖掘 数据处理
Pandas实践:南京地铁数据处理分析
Pandas实践:南京地铁数据处理分析
406 2
|
图形学 C#
超实用!深度解析Unity引擎,手把手教你从零开始构建精美的2D平面冒险游戏,涵盖资源导入、角色控制与动画、碰撞检测等核心技巧,打造沉浸式游戏体验完全指南
【8月更文挑战第31天】本文是 Unity 2D 游戏开发的全面指南,手把手教你从零开始构建精美的平面冒险游戏。首先,通过 Unity Hub 创建 2D 项目并导入游戏资源。接着,编写 `PlayerController` 脚本来实现角色移动,并添加动画以增强视觉效果。最后,通过 Collider 2D 组件实现碰撞检测等游戏机制。每一步均展示 Unity 在 2D 游戏开发中的强大功能。
1303 6
|
存储 监控 安全
Android
Android
|
NoSQL Redis 缓存
Redis 加持下的 Spring 应用性能革命:见证毫秒级响应速度,打造极致用户体验!
【8月更文挑战第31天】Redis 是一个高性能键值存储系统,常用于数据库、缓存及消息中间件。与 Spring 框架集成后,可显著提升应用性能,特别是在高并发场景下。本文通过电子商务网站商品详情页的例子,展示了如何配置 Redis 并使用 `RedisTemplate` 进行数据操作,通过缓存策略优化应用性能,减轻数据库压力。例如,在 `ProductService` 类中,先从 Redis 获取商品信息,若未命中则从数据库获取并缓存至 Redis。此外,还介绍了如何通过 REST 控制器模拟 HTTP 请求进行测试。在实际项目中,结合 Spring Cache 注解可更便捷地管理缓存策略。
277 0

热门文章

最新文章