BEV感知:DETR3D

news2025/2/27 7:25:15

3D检测:DETR3D

  • 前言
  • Method
    • Image Feature Extracting
    • 2D-to-3D Feature Transformation
    • Loss
  • 实验结果

前言

在这篇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方法相当。在相机视野的重叠区域, 我们方法明显优于其它方法。

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

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. 把 3 ,4 步结果相加获得下一层 object queries的input。

  6. 经过attention更新后的object query通过两个MLP网络来分别预测对应物体的class和bounding box的参数。

Loss

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

实验结果

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

性能测试学习和性能瓶颈分析路线

很多企业招聘都只写性能测试,会使用LR,jmeter工具。其实会使用jmeter和LR进行性能测试还只是性能测试的第一步,离真正的性能测试工程师还很远,笔者也还在路上 .。 性能测试,都是要求测试系统性能,系统自然…

面试中经常被问到的【宏定义】,改变你对【C\C++】中宏定义的认识。

最近遇到挺多宏定义的代码,其实挺烦的,每次看复杂的宏定义看到一半就懵了,今天盘一盘它。本篇设计宏定义的原理、使用方法、使用技巧。 目录 一、宏定义原理 二、宏定义定义复杂功能函数 2.1 定义注册函数 三、宏定义实现条件编译 四、宏…

【OpenCV学习笔记01】- 初步使用OpenCV实现人脸识别

想要使用opencv实现人脸识别,我们需要做这样几步: 1.opencv-python的安装 这里我们使用的python的opencv-python库,在安装opencv-python库之前,我们需要安装numpy, matplotlib。 # 安装指令 # 安装 numpy pip install numpy # …

Chirp-Z变换(线性调频Z变换)原理

Chirp-Z变换(Chirp-Z Transform,CZT) 采用FFT算法可以很快地计算出全部DFT值,即Z变换在单位圆上的全部等间隔采样值。 在实际情况中,并不需要对整个单位圆的频谱进行分析,例如,对于窄带信号&am…

运动型蓝牙耳机推荐哪款、最新运动蓝牙耳机推荐

提起运动耳机,如今很多运动爱好者和职业教练员们,都会向萌新推荐骨传导运动耳机。骨传导耳机解决了入耳式蓝牙耳机掉落的问题,佩戴相当舒服。骨传导耳机在佩戴过程中解放了双耳,不会因为耳机堵住耳朵,听不到环境音&…

【Spring6】| Spring启示录、Spring概述

目录 一:Spring启示录 1. OCP开闭原则 2. 依赖倒置原则DIP 3. 控制反转IoC 二:Spring概述 1. Spring简介 2. Spring8大模块 3. Spring特点 一:Spring启示录 引言:前面我们已经学习了三层架构:表示层、业务层、…

【工作笔记】syslog,kern.log大量写入invalid cookie错误信息问题

任务描述 错误出现出现过四五次,应该是诊断单元tf卡读写出问题导致下面这条告警一直高频写入到/var/log/下的syslog、kern.log、messages中 Nov 23 06:25:12 embest kernel: omap_hsmmc 48060000.mmc: [omap_hsmmc_pre_dma_transfer] invalid cookie: data->hos…

将maven项目打包成可执行的jar(加入外部依赖)

在有些场景下我们需要将编写的Java工程编译打包成为一个完整的jar包,如果你的项目是使用maven构建的话可以通过以下方法来完成这个打包的过程。添加maven打包插件。在项目的pom.xml配置文件的build标签中添加以下代码,其中 mainClass 属性需要替换成你项…

多种调度模式下的光储电站经济性最优储能容量配置分析(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?

MQTT是基于发布/订阅的轻量级即时通讯协议,很适合用于低带宽、不稳定的网络中进行远程传感器和控制设备通讯等操作中。在我们的软件研发中,也经常使用MQTT协议进行消息通信等。今天来和大家分享一些关于在安装MQTT Server中遇到的疑难问题及解决思路。当…

为什么阳康后,感觉自己变傻了?

不少人在阳康后出现脑力下降的情况,好像脑子里被雾笼罩。脑雾并不是新名词,已经存在了十几年。以前慢性疲劳综合征患者和脑震荡患者会用它来形容自己的症状。脑雾其实是认知障碍,它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…

Semi-supervised(半监督)布料缺陷检测实战

数据及源码链接见文末 1.任务目标和流程概述 对于常规的缺陷检测,常常需要我们准备好数据,使用分割或者检测的方法选择模型,进行训练。但是有一个问题。在日常生产中,我们接触到的往往都是正常的,缺陷数据往往很难收集,更何况我们还要打标签。我们能不能通过训练正常数据…

独立搭建 handle server

本节主要介绍,如何搭建一个与 GHR隔离的 handle sever,不与外界有任何连通。 下载文件 访问地址下载最新版:http://www.handle.net/download_hnr.html 这里以 9.3.0 版本作为讲解 解压服务端,解压客户端 # 解压 tar -xzvf handle-9.3.0-distribution.tar.gz# 到目录下 …

NestJS学习:图片上传、下载

参考 大神的这两篇文章讲的很详细,这里自己也来试一下 小满nestjs(第十三章 nestjs 上传图片-静态目录) 小满nestjs(第十四章 nestjs 下载图片) 上传图片 安装包 需要:multer 和 nestjs/platform-expre…

深入理解Java的Lambda原理

1、前言 Lambda函数的概念其实有很久远的历史了,在Lisa,C#中早有实现。且近年来,开发者对语言的表现力有了更高的要求,Java也在JDK 1.8 中引入了Lambda函数这一概念。虽然截止到写下这段文字的一刻已经过去七年之久,但…

Mybatis框架详解(全)

目录 MyBatis简介 MyBatis整体架构及运行流程 1.数据源配置文件 2.Sql映射文件 3.会话工厂与会话 4.运行流程 mybatis实现增删改查 Mybatis的获取参数的方式 mapper中自定义映射 mybatis注解开发 mybatis缓存 mybatis分页插件 MyBatis简介 MyBatis 是一款优秀的持久…

程序员如何向架构师转型?看完就明白该怎么做了

软件行业技术开发从业人员众多,但具备若干年开发经验的普通的开发人员往往面临个人发展的瓶颈,即如何从普通开发人员转型成高层次的系统架构师和技术管理人员。想成为一名架构师,应当具备全面的知识体系,需要进行系统的学习和实践…

数组(一)-- LeetCode[26][80] 删除有序数组中的重复元素

1 删除有序数组中的重复项 1.1 题目描述 给你一个 升序排列 的数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次,返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。 由于在某些语言中不能改变数组的长度&#xff0c…

FreeRTOS与UCOSIII任务状态对比

FreeRTOS任务状态 1、运行态 正在运行的任务,正在使用处理器的任务。 单核处理器中任何时候都有且只有一个任务处于运行态。 2、就绪态 已经准备就绪(非阻塞或挂起),可以立即运行但还没有运行的任务。 正在等待比自己高优先级…

Kafka——消息队列学习总结

定义 Kafka是一个分布式的基于发布/订阅模式的消息队列(MQ),主要应用于大数据实时处理领域。 模式 点对点模式 一对一,消费者主动拉取数据,消费收到后消息清除。 发布/订阅模式 一对多,消费者消费数据后不会清除消息…