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

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时,并附带200G的免费磁盘空间。通过链接注册并联系客服,可以获得20元代金券(相当于6-7H的免费GPU资源)。欢迎大家体验一下~

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变换方法在真实世界复杂道路环境中的部署提供了宝贵的见解。代码可在 https://github.com/ChenhongyiYang/WidthFormer 获取。

1. 主要贡献

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

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

2. 主要方法

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

3. 参考位置编码(RefPE)

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

在这里插入图片描述

给定三维点的笛卡尔坐标 C i , j , k = [ x i , j , k , y i , j , k , z i , j , k ] ⊤ C_{i,j,k} = [x_{i,j,k}, y_{i,j,k}, z_{i,j,k}]^⊤ Ci,j,k=[xi,j,k,yi,j,k,zi,j,k];矩阵 I ∈ R 3 × 3 I ∈ \mathbb{R}^{3×3} IR3×3为相机内参矩阵;矩阵 R n ∈ R 3 × 3 R^n ∈ \mathbb{R}^{3×3} RnR3×3和向量 T n ∈ R 3 × 1 T^n ∈ \mathbb{R}^{3×1} TnR3×1是将第n个视角中的坐标变换到统一的激光雷达坐标系的旋转矩阵和平移向量 [1, 7]。

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

在这里插入图片描述

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

在这里插入图片描述

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

3.2 对于稀疏的3D检测器

在这里插入图片描述

图2. 参考位置编码(RefPE):RefPE包括旋转部分和距离部分。对于稀疏的3D检测器,它还包括高度部分。旋转编码是通过在BEV平面上计算相机光线的旋转角度来实现的。为了计算点对点的距离编码和高度编码,我们利用从视觉特征中预测的参考系数来汇总相机光线上参考点的距离和高度编码。对于宽度特征,我们去除了高度编码,并通过使用预测的高度分布来汇总图像列上所有点对点的距离编码


正如图2所示,RefPE可以轻松地嵌入到任何PETR风格的检测器中[20, 21]。我们唯一需要进行的修改是以类似于计算RefPE的方式来计算查询向量的位置编码。具体来说,给定LIDAR坐标系中的3D查询锚点 [ x q , y q , z q ] ⊤ [x_q, y_q, z_q]^⊤ [xq,yq,zq],我们通过以下方式计算其位置编码:

在这里插入图片描述

4. 利用WidthFormer进行BEV转换

在提出的RefPE的支持下,我们设计了一个新的高效的基于Transformer的BEV(鸟瞰图)视图转换模块,名为WidthFormer。形式上,WidthFormer的输入是多视图图像特征 F I F^I FI,输出是一个统一的BEV表示 F B ∈ R H B × W B × C F^B ∈ \mathbb{R}^{H_B×W_B×C} FBRHB×WB×C,其中 H B H_B HB W B W_B WB分别是BEV特征的高度和宽度。WidthFormer的概览如图3所示。

在这里插入图片描述

…详情请参照古月居

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

“剪切走的文件救星:详解两大高效恢复策略“

深入剖析剪切走的文件 在日常的计算机操作中,剪切操作是文件管理的常用手段,但一旦操作不当或意外中断,文件就可能“剪切走”,消失在用户的视野中。这些文件并未真正从硬盘上消失,而是因为文件系统的索引被修改&#…

三菱A系列网络连接

寄存器名 读写 寄存器类型 变量类型 寄存器范围 说明 X##1 R/W BIT I/O离散 0-7FF Input Y##1 R/W BIT I/O离散 0-7FF Output M##1 R/W BIT I/O离散 0-9255 Internal relay B##1 R/W BIT I/O离散 0-3FF Link relay F##1 R/W BIT I…

vue为啥监听不了@scroll

哈喽 大家好 我在vue中写了一个滚动scroll监听事件 然后滚动鼠标 发现进不来我的方法断点 原因: 事件绑定错误:确保你使用scroll正确绑定到了可滚动容器上。 事件冒泡:滚动事件可能被封装在某些组件内部,导致不会冒泡到父元素上…

HarmonyOS ArkUi 官网踩坑:单独隐藏导航条无效

环境: 手机:Mate 60 Next版本: NEXT.0.0.26 导航条介绍 导航条官网设计指南 setSpecificSystemBarEnabled 设置实际效果: navigationIndicator:隐藏导航条无效status:会把导航条和状态栏都隐藏 官方…

【udp报文】udp报文未自动分片,报文过长被拦截问题定位

问题现象 某局点出现一个奇怪的现象,客户端给服务端发送消息,服务端仅能收到小部分消息,大部分消息从客户端发出后,服务端都未收到。 问题定位 初步分析 根据现象初步分析,有可能是网络原因导致消息到服务端不可达&a…

AVR晶体管测试仪开源制作与验证

AVR晶体管测试仪开源制作与验证 📍原项目地址:https://www.mikrocontroller.net/articles/AVR_Transistortester github地址:https://github.com/Mikrocontroller-net/transistortester 🎈EasyEDA项目地址:https://osh…

华三多台交换机堆叠配置(环形组网)

组网架构 配置步骤 SW1的配置: irf member 1 priority 32 设置master的优先级为32 interfacec range Ten-GigabitEthernet1/0/49 to Ten-GigabitEthernet1/0/50 shutdown 关闭上述接口(将其加入到堆叠口之前需要关闭,否则无法加入&a…

性价比蓝牙耳机怎么选?百元高性价比蓝牙耳机推荐

在现代社会中,蓝牙耳机已经成为人们日常生活中必不可少的配件之一。对于许多消费者来说,找到一款高性价比且价格在百元左右的蓝牙耳机是非常重要的。市面上有许多价格不菲的蓝牙耳机,性价比蓝牙耳机怎么选?如何在有限预算下找到性…

数据结构 —— 二叉树

1.树的概念及结构 1.1树的概念 树是一种非线性的数据结构,它有着多分支,层次性的特点。 由于其形态类似于自然界中倒过来的数,所以我们将这种数据结构称为“树形结构” 注意: 树形结构中,子树之间不能有交集&#x…

SwiftUI 中 Grid 内多个 NavigationLink 同时发生导航之诡异问题的解决

问题现象 不知小伙伴们发现了没有?在 SwiftUI 中如果有多个 NavigationLink 视图嵌入在 Grid(包括 LazyVGrid 和 LazyHGrid)容器中,点击其中任意一个 NavigationLink 都会导致所有导航一起发生。 如上图所示,点击 Grid 中任何一个 NavigationLink,所有 NavigationLink 都…

[数据结构] --- 树

1 树的基本概念 1.1 树的定义 树是n(n>0)个结点的有限集。当 n 0 时,称为空树。在任意一棵树非空树中应满足: (1) 有且仅有一个特定的称为根 (root) 的结点; (2) 当 n > 1 时,其余结点可分为m(m>0)个互不相交的有限集…

bootloader原理介绍

bootloader解析 bootloader的引出 不知道你有没有想过这样一个问题,当你按下电源开关的那一瞬间,第一行代码是如何在芯片上运行起来的呢?我们都知道嵌入式软件代码,是需要通过一定的方式,烧录在硬件芯片中&#xff0c…

【Zotero】【国标csl调教(七)】导入专著M、学位论文D以及百度学术的问题

一、百度学术 百度学术导入的字段(期卷号、页码)等会有严重错误,不建议通过Baidu Scholar导入, 建议在文库编目字段自行查找修改 二、专著【M】以及学位论文【D】的出版地问题 国标对硕博论文【D】和专著【M】要求写上出版地 …

OpenSSL的一些使用案例

目录 一、介绍 二、基本使用 1、Shell (1)文件加解密 (2)生成密钥文件 2、API (1)md5sum (2)AES256加解密 一、介绍 本篇博客重点不是详细描述 OpenSSL 的用法,只…

昇思第7天

模型训练 模型训练一般分为四个步骤: 构建数据集。 定义神经网络模型。 定义超参、损失函数及优化器。 输入数据集进行训练与评估。 数据集加载 import mindspore from mindspore import nn # 从 MindSpore 数据集包中导入 vision 和 transforms 模块。 # visio…

使用DC/AC电源模块时需要注意的事项

BOSHIDA 使用DC/AC电源模块时需要注意的事项 1. 仔细阅读和理解产品说明书:在使用DC/AC电源模块之前,应该仔细阅读和理解产品说明书,了解其性能特点、技术要求和使用方法,以确保正确使用和避免潜在的安全风险。 2. 选择适当的电…

MySQL 9.0 发布了!

从昨晚开始,在DBA群里大家就在讨论MySQL 9.0发布的事情,但是Release Note和官方文档都没有更新,所以今天早上一上班就赶紧瞅了下具体更新了哪些内容? 整体看来,基本没什么创新。下面是9.0新增或废弃的一些特性。 &…

Power Platform功能管理实战概述

Power Platform功能管理实战概述 Microsoft Power Platform是一个强大的低代码开发平台,它使组织能够自动化商业流程、开发自定义应用程序,并加强与客户的连接。该平台由四个主要组件组成:Power Apps、Power Automate、Power BI和Power Virt…

【探索Linux】P.36(传输层 —— TCP协议段格式)

阅读导航 引言一、TCP段的基本格式二、控制位详细介绍三、16位接收窗口大小⭕窗口大小的作用⭕窗口大小的限制⭕窗口缩放选项⭕窗口大小的更新⭕窗口大小与拥塞控制 四、紧急指针温馨提示 引言 在上一篇文章中,我们深入探讨了一种无连接的UDP协议,它以其…

Searchsploit漏洞利用搜索工具的介绍及使用

目录 0x00 介绍0x01 常用参数0x02 使用1. 在线搜索2. 使用步骤3. 使用实例 0x00 介绍 kali自带的,Searchsploit会通过本地的Exploit-db查找软件漏洞信息。 Exploit Database(https://gitlab.com/exploit-database/exploitdb)存储了大量的漏洞…