经典文献阅读之--WidthFormer(基于Transformer的BEV方案量产方案)

news2025/1/9 19:43:40

0. 简介

《WidthFormer: Toward Efficient Transformer-based BEV View Transformation》提出了WidthFormer,这是一种基于Transformer的新颖鸟瞰视角(Bird's-Eye-View, BEV)三维检测方法,专为实时自动驾驶应用而设计。WidthFormer在计算上高效、稳健,且无需特殊的工程努力即可部署。我们提出了一种新颖的三维位置编码机制,能够准确地封装三维几何信息,使得我们的模型仅通过一个Transformer解码层就能生成高质量的BEV表示。这种机制对现有的稀疏三维对象检测器也是有益的。受到最近提出的工作的启发,我们进一步通过垂直压缩图像特征(作为注意力键和值)来提高模型的效率。我们还引入了两个模块,以补偿由于特征压缩而可能导致的信息损失。在广泛使用的nuScenes三维对象检测基准上的实验评估表明,我们的方法在不同的三维检测架构上均优于以往的方法。更重要的是,我们的模型高度高效。例如,在使用256×704输入图像时,它在NVIDIA 3090 GPU和Horizon Journey-5计算解决方案上实现了1.5毫秒和2.8毫秒的延迟。此外,WidthFormer还展示了对不同程度的摄像机扰动的强大鲁棒性。我们的研究为BEV变换方法在真实世界复杂道路环境中的部署提供了宝贵的见解。代码可在 GitHub - ChenhongyiYang/WidthFormer: [IROS 2024 Oral Presentation] WidthFormer: Toward Efficient Transformer-based BEV View Transformation 获取。

1. 主要贡献

本文提出了以下四个贡献:

  1. 我们引入了WidthFormer,这是一种轻量级且适合部署的BEV转换方法,它使用一个Transformer解码器层来计算BEV表示。
  2. 我们提出了参考位置编码(RefPE),这是一种新的位置编码机制,用于3D物体检测,可以帮助WidthFormer辅助WidthFormer的视角转换。它还可以以即插即用的方式提高稀疏3D物体检测器的性能。
  3. 我们在广泛使用的nuScenes 3D物体检测数据集上评估了所提出的模块。结果显示,RefPE可以显著提高稀疏物体检测器的性能。
  4. 此外,WidthFormer在一系列3D检测架构中在性能和效率上均优于先前的BEV转换方法。

<br/>

2. 主要方法

在这一节中,我们将详细介绍我们的方法。首先,在第3节中,我们引入了新的3D位置编码机制。接着,在第4节中,我们介绍了我们的BEV转换模块。在第5节中,我们描述了如何对潜在的信息损失进行压缩特征的优化处理。

3. 参考位置编码(RefPE)

在这项工作中,我们为基于Transformer的3D物体检测器(例如PETR [20])以及我们的BEV视图转换模块设计了一种新的3D位置编码机制。直观地说,对于每个在Transformer中作为键和值的视觉特征,我们的目标是通过参考一系列参考点来学习其位置编码;因此,我们将我们的方法称为参考位置编码(RefPE)。给定多视角图像特征FI∈RNc×HI×WI×CFI∈RNc​×HI​×WI​×C,其中NcNc​是摄像头数量;HIHI​,WIWI​和CC分别是高度、宽度和通道维度,计算得到的位置编码与输入特征具有相同的形状。具体来说,对于一个特征像素,其在图像平面上的坐标为Pi,j=[ui,j,vi,j]⊤Pi,j​=[ui,j​,vi,j​]⊤,我们首先将该像素与DD 个离散深度分档关联起来,从而产生DD个参考点,其齐次坐标为{P^i,j,k=[ui,j×dk,vi,j×dk,dk]⊤∣k∈∣D∣}{P^i,j,k​=[ui,j​×dk​,vi,j​×dk​,dk​]⊤∣k∈∣D∣},然后我们通过投影将所有这些D个点映射到一个统一的3D空间中:

给定三维点的笛卡尔坐标Ci,j,k=[xi,j,k,yi,j,k,zi,j,k]⊤Ci,j,k​=[xi,j,k​,yi,j,k​,zi,j,k​]⊤;矩阵I∈R3×3I∈R3×3为相机内参矩阵;矩阵Rn∈R3×3Rn∈R3×3和向量Tn∈R3×1Tn∈R3×1是将第n个视角中的坐标变换到统一的激光雷达坐标系的旋转矩阵和平移向量 [1, 7]。

然后,我们使用极坐标来计算位置编码,其中自车位于原点:每个三维点的位置信息被编码为三个部分的组合:1) 相对于BEV平面上的自车的距离,2) 相对于BEV平面上的自车的旋转角度,以及3) 相对于地面的高度。具体地,对于二维点Pi,jPi,j​和其参考点集合{Ci,j,k∣k∈∣D∣}{Ci,j,k​∣k∈∣D∣},我们首先计算了所有参考点{ψˉi,j,k}{ψˉ​i,j,k​}的位置编码:

在这里,ξ代表的是傅里叶位置编码 [30]。接下来,通过使用一系列的参考系数和多层感知器(MLP),我们来计算Pi,jPi,j​的值,将{ψˉi,j,k}{ψˉ​i,j,k​}进行聚合:

在这里,参考系数{s∗,∗,k}{s∗,∗,k​}是由一个轻量级卷积头部预测的。

点击经典文献阅读之--WidthFormer(基于Transformer的BEV方案量产方案) ——古月居可查看全文

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

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

相关文章

网络安全 day5 --- 反弹SHELL不回显带外正反向连接防火墙出入站文件下载

免责声明 本免责声明适用于作者所有文章内容。使用者需明确&#xff0c;网络安全技术仅供学习和合法研究使用&#xff0c;不得用于任何非法活动&#xff0c;如未经授权的入侵、攻击或数据窃取&#xff0c;所有相关法律责任由使用者自行承担。由于网络安全操作可能带来系统崩溃、…

程序中的零值比较

前言&#xff1a;什么是零值&#xff1f; 在C/C中&#xff0c;“零值”通常指的是数值类型的零&#xff08;0&#xff09;&#xff0c;对于指针来说则是空指针&#xff08;nullptr 或 NULL&#xff09;。下面我们将分别讨论如何比较整型、字符、浮点数和指针与“零值”的比较。…

顺序表与链表练习

目录 1.在长度为n(n > 1)的单链表上&#xff0c;设有头和尾两个引用&#xff0c;执行( )操作与链表的长度有关。 2.下列关于链表的说法那个是正确的( ) 3. 关于链表和顺序表间的区别&#xff0c;叙述错误的是&#xff08; &#xff09; 4.在长度为 n 的顺序表下标为 i…

oatpp apiclient 客户端get,post请求python fastapi demo

最新用fastapi搞了个服务端,python功能太强了,就是环境不好弄,弄好后,不要轻易换python版本,不要装多个python版本 前面搞了个oatpp webapi服务端,现在要用客户端,为什么用opatpp客户端,因为他不再带其他库了 demo: 我的请求比较简单,就是向python 的 fastapi服务端…

CSP-J基础之常见的竞赛题库

文章目录 CSP-J基础之常见的竞赛题库1. 可达 (KEDA)2. 洛谷 (Luogu)3. Codeforces 洛谷账号的注册总结 CSP-J基础之常见的竞赛题库 在备战CSP-J&#xff08;Certified Software Professional Junior&#xff09;及其他信息学竞赛时&#xff0c;选手们常需要借助在线题库来进行…

GIS圈大事件!Cesium被收购了,是好是坏?

大家好&#xff0c;我是日拱一卒的攻城师不浪&#xff0c;致力于技术与艺术的融合。这是2024年输出的第34/100篇文章。 Cesium开发交流群V&#xff1a;brown_7778&#xff08;备注来意&#xff09; 一觉醒来&#xff0c;突然看到Cesium官方发的消息&#xff0c;宣布通过收购的方…

第十三届山东省ICPC

vp链接&#xff1a;https://codeforces.com/gym/104417 A. Orders 根据题意模拟&#xff0c;分别按照 a&#xff0c;b 排序&#xff0c;排序后再判断该订单是否能完成。 #include <bits/stdc.h> using namespace std;#define int long longconst int N 105; int n, k…

C#索引器(Indexer)

索引器(Indexer)允许一个对象可以像数组一样使用下标的方式来访问. 当为类定义一个索引器时,该类的行为就会像一个虚拟数组(virtual array) 一样.可以使用数组访问运算符[]来访问该类的成员. 语法 一维索引器的语法如下: element-type this[int index] { // get 访问器 …

Minimax-秋招正式批-面经(SQL相关)

1. 谈谈对聚簇索引的理解 聚簇索引 InnoDB通过主键聚集数据&#xff0c;如果没有定义主键&#xff0c;InnoDB会选择非空的唯一索引代替。如果没有这样的索引&#xff0c;InnoDB会隐式定义一个主键来作为聚簇索引聚簇索引就是按照每张表的主键构造一颗B树&#xff0c;同时叶子…

中国书法——孙溟㠭浅析碑帖《越州石氏帖》

孙溟㠭浅析碑帖《越州石氏帖》 《越州石氏帖》 是一部汇集多本摹刻的帖&#xff0c;南宋时期的会稽石邦哲&#xff08;字熙明&#xff09;把家藏的一些法书碑帖集中一起摹刻成的&#xff0c;宋理宗时临安书商陈思《宝刻丛编》有记載这部帖的目录。现在还存有宋代时拓的残缺本…

golang hertz框架入门

两种模式新建项目 1、手动新建项目 2、使用hz工具新建项目 一、手动创建项目&#xff0c;并拉取框架 1、新建项目目录 hertz_demo_w 2、在项目跟目录新建main.go 文件 package mainimport ("context""github.com/cloudwego/hertz/pkg/app""github.…

WPS如何查看已添加到词典的单词

WPS Office&#xff08;12.1.0.17827&#xff09; ① 点击文件&#xff0c;在文件中找到选项 ② 找到拼写检查并点击自定义词典 ③ 如果要删除已添加到词典的"错词"&#xff0c;则点击修改 ④ 选择"错词", 点击删除

电工基础知识

1、电工常用的电工工具 2、PPR常用配件名称 3、铜芯导线如何选择线鼻子 4、丝锥孔径对照表 5、三相电机接线方法_星形_角型 6、内六角螺铨尺寸表 7、常用螺母规格尺寸 8、常用螺栓螺母名称 9、灭火器分类使用 10、电缆颜色使用代码 11、电缆铜铝鼻子 12、空气开关

力扣第一题:两数之和

文章目录 需求分析代码结尾 需求 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你…

Hexo博客构建记录

开学了&#xff0c;准备让休息了两个月的大脑重新活动一下筋骨&#xff0c;就尝试了一下Hexo博客的简单构建。在这里记录一下&#xff0c;方便以后使用。 以下是笔者搭建时用到的教程 简单搭建教程 简单&#xff0c;虽然个人感觉布局有点乱&#xff0c;关于上传文章的介绍略…

如何下载各个版本的tomcat-比如tomcat9

1&#xff0c;找到tomcat官网https://tomcat.apache.org/ Apache Tomcat - Welcome! 找到tomcat9&#xff0c;或者archives 1.1&#xff0c;找到对应版本 1.2&#xff0c;找到小版本 1.3&#xff0c;找到bin 2&#xff0c;Index of /dist/tomcat/tomcat-9/v9.0.39/bin 2.1&a…

七牛云存储OSS基本使用测试(超详细!!!)

首先就是注册&#xff0c;然后实名认证&#xff0c;这没什么可教的 认账成功后&#xff0c;点击对象存储Kodo 点击左侧空间管理&#xff0c;新建空间 输入一个名字&#xff0c;存储区域选择距离你地址比较近的&#xff0c;访问控制选择公开(这样别人在访问时也可以看到) 这样就…

”CSS 网格“二维布局系统(补充)——WEB开发系列32

CSS 网格布局是一种二维布局系统&#xff0c;用于网页设计。通过使用网格&#xff0c;你可以将内容以行和列的形式进行排列。此外&#xff0c;网格布局还能够简便地实现一些复杂的布局结构。 一、什么是网格布局&#xff1f; CSS网格布局是一种二维布局系统&#xff0c;它允许…

基于IMX6ULL的Cortex-A中断原理讲解,以及编写其中断向量表

首先借助STM32我们需要了解中断系统是如何构成的 会有一个中断源&#xff0c;也就是能够向CPU发出中断请求的设备或事件。中断源不分硬件和软件&#xff0c;也就是产生中断信号&#xff0c;就会执行中断服务函数 但是CPU是如何知道中断源产生后就找到对应的中断…

Redis持久化机制—RDB与AOF

Redis持久化机制 RDB&#xff08;默认&#xff09; **思想&#xff1a;**保存整个数据库的快照&#xff0c;也就是RDB文件&#xff0c;有两种保存方式&#xff0c;前台保存save和后台保存bgsave&#xff0c;前者会阻塞主进程程&#xff0c;后者则是fork一个子进程去完成备份操…