DETR3D: 3D Object Detectionfrom Multi-view Images via 3D-to-2D Queries

news2024/9/23 23:24:15

本文的主要贡献如下:

  • 我们提出了一种基于RGB图像的简化3D物体检测模型。与现有工作在最终阶段结合来自不同相机视角的物体预测不同,我们的方法在每一层计算中融合所有相机视角的信息。据我们所知,这是首次尝试将多摄像头检测视为3D集合到集合的预测。

  • 我们引入了一个模块,通过几何反向投影将2D特征提取和3D边界框预测连接起来。该方法不会受到次级网络中不准确深度预测的影响,并通过反投影3D信息到所有可用帧上,无缝利用多个摄像头的信息。

  • 类似于Object DGCNN [11],我们的方法不需要后处理步骤,例如每张图像或全局的非极大值抑制(NMS),并且在性能上与现有基于NMS的方法相当。在相机重叠区域,我们的方法相比其他方法有显著的优势。

  • 我们公开了代码,以促进可重复性和未来的研究。

模型包含三个关键组件,如图1所示。

  1. 输入编码

    • 多视角图像:模型接受从多个摄像头捕获的一组图像。
    • 特征提取:使用ResNet骨干网络和特征金字塔网络(FPN)对这些图像进行编码,以生成多尺度特征图。
  2. 物体查询初始化

    • 稀疏物体查询:初始化一组稀疏的物体query,每个查询表示一个潜在的3D物体位置。
  3. 3D参考点解码

    • 参考点:每个物体查询被解码为一个3D参考点,作为边界框中心的假设。
  4. 特征转换与精化

    • 投影:通过相机变换矩阵,将3D参考点投影到所有相机视图的图像平面上。
    • 特征采样:从多尺度特征图中通过双线性插值采样与投影参考点对应的图像特征。
    • 查询精化:通过迭代处理,使用采样的特征来精化物体查询。
  5. 预测与损失计算

    • 边界框和分类:对于每个精化后的物体查询,模型预测3D边界框和物体类别。
    • 集合损失:采用集合对集合损失函数来评估预测结果与真实值之间的差异,指导模型训练。

整体结构

特征提取

 Detection Head

现有的基于相机输入的物体检测方法通常采用自下而上的方法,(即预测每张图像上的密集边界框,过滤图像间的冗余框,并在后处理阶段汇总来自不同相机的预测)。这种范式存在两个关键缺点:

  • 密集的边界框预测需要准确的深度感知,而深度感知本身就是一个具有挑战性的问题;
  • 而基于NMS的冗余移除和汇总操作是不可并行的,导致显著的推理开销。

自上而下:

它使用 L 层的集合计算从2D特征图中生成边界框估计。每一层包括以下步骤:

  1. 预测与物体查询相关联的一组边界框中心;
  2. 使用相机变换矩阵将这些中心投影到所有特征图中
  3. 通过双线性插值采样特征,并将其融入物体查询中;
  4. 使用多头注意力描述物体之间的交互。

具体来说:

首先生成一个Q作为查询集(可学习参数),这个查询集经过训练会更新。

利用Q生成一个3D参考点:这个参考点假设为目标的bbox的中心

 

将这个点利用相机投影矩阵投影到对应相机的2D图像中

通过双线性插值提取图像特征

由于生成的3D参考点并不一定在所有相机中都可以找到,定义一个值来判断这个点是否可以投影到2D图像中

 在训练过程中,不断计算每一层损失,推理时,使用最后一层的输出。

Loss

损失函数与DETR相同,使用set-to-set损失,损失函数包括分类标签的focal_loss ,和边界框的L1损失。 通过匈牙利算法匹配建立真实标签和预测标签之间的对应关系。

 实验结果

在与先前的最先进方法 CenterNet [1] 和 FCOS3D [2] 进行比较时,我们发现:

  • CenterNet 是一种无锚的 2D 检测方法,在高分辨率特征图上进行密集预测。
  • FCOS3D 采用 FCOS [3] 管道进行每像素预测。这些方法将 3D 目标检测转化为 2D 问题,因此忽略了场景几何和传感器配置。

为了进行多视图目标检测,这些方法必须独立处理每张图像,并使用图像级和全局 NMS 来移除每个视图和重叠区域中的冗余框。表 1 显示,即使我们的方法没有使用任何后处理步骤,我们的方法在性能上仍优于这些方法。然而,我们的方法在 mATE(平均位置误差)方面表现不如 FCOS3D。我们怀疑这是因为 FCOS3D 直接预测边界框的深度,这对目标的平移有较强的监督。此外,FCOS3D 使用了不同的头来处理不同的边界框参数,这可能提高了性能。

在重叠区域中,物体更容易被截断,这是一大挑战。我们的模型同时考虑了所有摄像头,而 FCOS3D 则是单独为每个摄像头预测边界框。为了进一步展示融合推断的优势,我们计算了落在摄像头重叠区域中的框的指标。具体来说,我们选择那些 3D 中心可以被多个摄像头看到的框进行计算。

在验证集上,共有 18,147 个这样的框,占总数的 9.7%。表 3 显示了结果;在这个设置下,我们的方法在 NDS(总体检测精度)评分方面显著优于 FCOS3D。这证明了我们的集成预测方法更为有效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

软考攻略/超详细/系统集成项目管理工程师/基础知识分享06

2.2 新一代信息技术及应用 2.2.1 物联网(掌握) 物联网:是指通过信息传感设备,按约定的协议将任何物品与互联网相连接,进行信息交换和通信,以实现只能识别、定位、跟踪、监控和管理的网络 1、技术基础 物联…

Flask框架 完整实战案例 附代码解读 【3】

Flask 是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。 前面已经写过项目从新建运行安装到测试部署的全流程,其中有写Flask框架从新建到部署全流程,但是只有部分代码。本篇主要是…

国产光耦合器在提高各行业能源效率方面的作用

随着各行业对节能解决方案的需求不断增长,国产光耦合器已成为降低能耗和提高整体系统效率的关键部件。这些由本地制造商开发的组件现在不仅因其成本效益而受到认可,而且还因其能够满足需要可靠隔离和高效电源管理的工业应用的特定需求而受到认可。 通过隔…

语义传输中单智能体语义知识库

在语义传输中涉及到的智能体包括信源数据模态、信宿智能任务以及信道传输环境。单智能体系统仅涉及一个智能体,该智能体独立完成感知、决策和执行任务,通常在不需要与其他智能体直接交互的环境中运行,能自主获取环境信息,并基于自…

PHP高效进销存管理系统智能管理库存销售与采购系统小程序源码

高效进销存管理系统 —— 智能管理,轻松驾驭库存、销售与采购 🔥 【开篇:告别繁琐,拥抱智能管理】 你还在为库存管理混乱、销售数据不清、采购计划难定而烦恼吗?是时候告别那些低效的手工账本和复杂的Excel表格了&…

传输层(TCP、UDP、RDT详解)

目录 1.无连接传输:UDP UDP:User Datagram Protocol(用户数据报协议) UDP:校验和 Internet校验和的例子 2.可靠数据传输(Rdt)的原理 可靠数据传输:问题描述 1.Rdt1.0&#xff…

【JAVA】两轮充电桩设计模式实践分享

如果说数据结构和算法是程序员构建高效代码的基石,那么设计模式则是打造高质量代码的“内功心法”。掌握并应用合适的设计模式,有助于管理项目复杂性,简化维护,并加速开发进程。 因此,深入理解并合理运用设计模式&…

HTTP 请求方法(method)介绍

目录 一、GET 二、POST 三、其他方法 3.1 PUT 3.2 DELETE 3.3 HEAD 3.4 OPTIONS 3.5 TRACE 3.6 CONNECT 3.7 PATCH 3.8 LINK 和 UNLINK(扩展方法) HTTP(超文本传输协议)定义了多种请求方法,如: …

opencv计算机视觉识别图像处理c++项目实战python网课程视频教程

课程名称 《OpenCV计算机视觉识别图像处理C实战课程》 课程亮点 全面覆盖:从基础概念到高级技术,涵盖OpenCV的核心功能。实战导向:通过具体项目实践,帮助学员掌握图像处理的实际应用。双语言支持:虽然重点是C&#x…

使用神卓互联内网穿透开发支付宝支付回调环境(Java版)

支付宝支付功能在电商网站和其他在线服务中扮演着重要角色。对于使用Java作为开发语言的应用来说,集成支付宝支付回调功能是必不可少的一部分。为了能够在本地开发环境中测试这一功能,内网穿透技术可以让我们绕过公网IP的限制。下面将介绍如何利用神卓互…

Unity教程(十三)敌人状态机

Unity开发2D类银河恶魔城游戏学习笔记 Unity教程(零)Unity和VS的使用相关内容 Unity教程(一)开始学习状态机 Unity教程(二)角色移动的实现 Unity教程(三)角色跳跃的实现 Unity教程&…

集成电路学习:什么是I/O输入输出

I/O:输入输出 I/O,全称Input/Output,即输入输出,是信息处理系统(如计算机)与外部世界(可能是人类或另一信息处理系统)之间的通信方式。具体来说,输入是系统接收的信号或数…

shell编程--正则表达式

正则表达式 正则表达式都被置于两个正斜杠之间;如/l[oO]ve/ 示例 匹配数字的脚本,用户输入创建账号的数量 语法: [[ ^[0-9]$ ]] 表示必须输入数字 #!/bin/bashwhile : do read -p "输入数字:" numif [[ $num ~ ^[…

springboot整合logback进行日志管理(下篇)

上一篇介绍了springboot整合logback的一些项目中用到的经验,本片文章继续介绍在项目中实际用到的工程经验 1、设想一下有这样一个场景:我想把我所有service层的日志单独打印到service.log中,那应该怎么做? 有人会说了可以配置一…

高收录高权重的采集站源码——码山侠

前端预览:i5i.net——码山侠点击看看 采集非常简单,不伪原创,也不处理种种外链,也不需要什么配图,而且结构也不复杂。 后台管理: 文章发布手动发布及编辑管理后台 采集以及伪原创类工具后台: …

计算机毕业设计PyHive+Hadoop深圳共享单车预测系统 共享单车数据分析可视化大屏 共享单车爬虫 共享单车数据仓库 机器学习 深度学习 PySpark

毕业设计题目基于 Hadoop 的共享单车布局规划 二、毕业设计背景 公共交通工具的“最后一公里”是城市居民出行采用公共交通出行的主要障碍,也是建设绿色城市、低碳城市过程中面临的主要挑战。 共享单车(自行车)企业通过在校园、地铁站点、公…

光储充微电网能量管理系统控制策略研究及并网分析

引言 近年来,我国日益重视分布式能源和微电网的发展,特别是光伏系统和储能技术的应用,这些已成为确保电力供应可靠性、促进新能源利用和减少污染的关键措施。我国新能源领域的专家对光伏储能控制系统进行了深入研究,强调了其应用…

【Qt】 QComboBox | QSpinBox

文章目录 QComboBox —— 下拉框QComboBox 属性核心方法核心信号QComboBox 使用 QSpinBox —— 微调框QSpinBox 属性核心信号QSpinBox 使用 QComboBox —— 下拉框 QComboBox 属性 QComboBox —— 表示下拉框 currentText ——当前选中的文本 currentindex ——当前选中的条…

STM32 ADC采样详解

Content 0x00 前言0x01 ADC配置0x02 滤波处理 0x00 前言 在单片机开发过程中,常常涉及到ADC的使用,市面上大部分便宜的传感器都是采用的ADC来获取其数据,如MQ-2 烟雾传感器、光敏传感器等等。 此类传感器工作原理为根据所采集到的数据变化…

Axure健康助理小程序原型图70+页,医疗类高保真高交互模板

作品概况 页面数量:共 70 页 源文件格式:限 Axure RP 9/10,非app软件无源码 适用领域:医疗健康、健康助理 作品特色 本作品为健康助理小程序的Axure原型设计图,属于医疗健康项目,设计规范内容清晰&#…