当前位置: 首页 > news >正文

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection

原文链接:https://arxiv.org/pdf/2312.01696

简介:最近,在摄像头3D目标检测任务中,基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力,能全面精确地描绘3D场景。本文通过引入增强组件来解决现有密集BEV方法的缺点,包括条件随机场(CRF)调制的深度估计模块(保证物体级别的一致性),带有扩展感受野的长期时间聚合模块,以及两阶段目标解码器(将透视技术与CRF调制的深度嵌入组合)。上述增强带来了现代化密集BEV框架BEVNeXt。实验表明,BEVNeXt能超过基于密集BEV的或基于查询的方法,在NuScenes数据集上达到SotA性能。

对于目前的密集BEV方法弱于基于查询的方法,本文将原因总结如下:

  • 2D建模不足。基于稀疏查询的方法证明了2D建模对检测性能的影响。现有的提高2D建模能力的方法包括引入激光雷达监督的深度估计辅助任务,但激光雷达分辨率较低,会导致不精确的深度感知。
  • 时间建模不合适。由于自车与目标运动,增大时间融合时的感受野很关键。基于查询的方法可以通过全局注意力提高时间融合时的感受野,而密集BEV方法受限于卷积的局部性。
  • 提升时的特征失真。基于稀疏查询的方法从2D空间采样图像特征,避免了视图变换时带来的特征失真。

0. 概述

在这里插入图片描述
本文的BEVNeXt基于LSS框架,关键组件有三:

  • BEV生成:给定多视图图像 { I i } i = 1 6 \{I^i\}_{i=1}^6 {Ii}i=16,主干提取多尺度特征 { F 1 / n i } n = 4 , 8 , 16 , 32 \{F^i_{1/n}\}_{n=4,8,16,32} {F1/ni}n=4,8,16,32并用深度网络预测深度概率 { d i } i = 1 6 \{d^i\}_{i=1}^6 {di}i=16。CRF层利用颜色信息 { I i } i = 1 6 \{I^i\}_{i=1}^6 {Ii}i=16调制 { d i } i = 1 6 \{d^i\}_{i=1}^6 {di}i=16,得到物体级别一致的深度概率 { d ~ i } i = 1 6 \{\tilde d^i\}_{i=1}^6 {d~i}i=16
  • BEV编码器:BEV编码器用于融合历史 k k k帧的BEV特征,得到统一BEV表达 B ~ \tilde B B~。Res2Fusion满足了聚合过程中充足的感受野需求。
  • 检测头:基于中心的3D检测头处理BEV编码器的输出 B ~ \tilde B B~,解码为3D物体。CRF调制的深度概率 { d ~ i } i = 1 6 \{\tilde d^i\}_{i=1}^6 {d~i}i=16被用于嵌入,帮助检测头关注有判别力的2D特征。

1. CRF调制的深度估计

密集BEV方法中,深度估计作为2D辅助任务,可提高2D建模能力并减小视图变换时的失真。由于深度估计可视为分割任务(类别表示特定深度范围),本文使用条件随机场(CRF)增强深度估计质量。CRF调制通过利用色彩平滑性先验,保证物体级别的深度一致性。令 { X 1 , ⋯ , X N } \{X_1,\cdots,X_N\} {X1,,XN}表示降采样特征图 F 1 / n i F^i_{1/n} F1/ni中的 N N N个像素, { D 1 , ⋯ , D k } \{D_1,\cdots,D_k\} {D1,,Dk}表示 k k k个离散深度区间。深度网络的目标是为每个像素分配一个深度区间: d = { x 1 , ⋯ , x N ∣ x i ∈ { D 1 , ⋯ , D k } } d=\{x_1,\cdots,x_N|x_i\in\{D_1,\cdots,D_k\}\} d={x1,,xNxi{D1,,Dk}}。给定分配 d d d,目标是最小化相应的能量代价 E ( d ∣ I ) E(d|I) E(dI)
E ( d ∣ I ) = ∑ i ψ u ( x i ) + ∑ i ≠ j ψ p ( x i , x j ) E(d|I)=\sum_i\psi_u(x_i)+\sum_{i\neq j}\psi_p(x_i,x_j) E(dI)=iψu(xi)+i=jψp(xi,xj)

其中 ∑ i ψ u ( x i ) \sum_i\psi_u(x_i) iψu(xi)为一元势,测量深度网络初始输出的代价。成对势定义为:
ψ p ( x i , x j ) = ∑ w w exp ⁡ ( − ∣ I ˉ i − I ˉ j ∣ 2 2 θ ) ∣ x i − x j ∣ \psi_p(x_i,x_j)=\sum_ww\exp(-\frac{|\bar I_i-\bar I_j|^2}{2\theta})|x_i-x_j| ψp(xi,xj)=wwexp(2θIˉiIˉj2)xixj

其中 I ˉ i \bar I_i Iˉi为相应于降采样特征图像素的图像patch内的平均RGB值, ∣ x i − x j ∣ |x_i-x_j| xixj为两个深度区间的标签相容性(即中心距离)。CRF位于深度网络后,输出记为 d ~ \tilde d d~

使用激光雷达点云作为深度监督的方法通常在低分辨率图像特征图上进行深度估计以保证标签覆盖率。实验证明当图像特征图的分辨率增加时,CRF调制的性能明显更优。

2. Res2Fusion

在这里插入图片描述
时间融合时,扩大卷积的感受野会带来额外计算量且容易导致过拟合。本文提出Res2Fusion,采用Res2Net中的多尺度卷积块增大感受野,如图©所示。给定 k k k帧历史BEV特征 { B t − k + 1 , ⋯ , B t } \{B_{t-k+1},\cdots,B_t\} {Btk+1,,Bt},首先将BEV特征分为 g = k / w g=k/w g=k/w组,其中 w w w为固定的窗口大小。对每个组分别使用 1 × 1 1\times1 1×1卷积 { K i 1 × 1 } i = 1 g \{K_i^{1\times1}\}_{i=1}^g {Ki1×1}i=1g,减小通道维度:
B i ′ = K i 1 × 1 ( [ B t − ( i + 1 ) × w ; ⋯ ; B t − i × w ] ) B'_i=K_i^{1\times1}([B_{t-(i+1)\times w};\cdots;B_{t-i\times w}]) Bi=Ki1×1([Bt(i+1)×w;;Bti×w])

其中 [ ⋅ ; ⋅ ] [\cdot;\cdot] [;]为拼接操作。然后使用多尺度卷积:
B i ′ ′ = { K i 3 × 3 ( B i ′ ) 若 i = g K i 3 × 3 ( B i ′ + B i + 1 ′ ) 若 0 < i < g B i ′ 若 i = 0 B''_i=\begin{cases}K_i^{3\times3}(B'_i)& 若i=g\\ K_i^{3\times3}(B'_i+B'_{i+1})&若0<i<g\\ B'_i&若i=0\end{cases} Bi′′= Ki3×3(Bi)Ki3×3(Bi+Bi+1)Bii=g0<i<gi=0

这允许模型跳过跨历史BEV的自车运动变换,从而避免运动不对齐问题。最后,Res2Fusion的输出为
B ~ = K f i n a l 1 × 1 ( [ B g ′ ′ ; ⋯ ; B 0 ′ ′ ] ) \tilde B=K^{1\times1}_{final}([B''_g;\cdots;B''_0]) B~=Kfinal1×1([Bg′′;;B0′′])

该输出会通过带步长的层并使用FPN获取多尺度信息。

3. 带透视细化的目标检测器

由于前向投影(如LSS)会导致特征失真,本文提出补偿措施。

使用CenterPoint的方法计算物体热图 H H H,并采样特征 B c e n t e r = { B ~ x , y ∣ H x , y > τ } B^{center}=\{\tilde B_{x,y}|H_{x,y}>\tau\} Bcenter={B~x,yHx,y>τ},其中 τ \tau τ为热图阈值。将 B c e n t e r B^{center} Bcenter通过考虑 7 × 7 7\times 7 7×7邻域,拓展到 B r o i B^{roi} Broi。随后, B r o i B^{roi} Broi与可学习查询 { Q x , y } \{Q_{x,y}\} {Qx,y}一起通过空间交叉注意力层,进行透视细化:
S C A ( B x , y r o i , F 1 / n ) = ∑ i = 1 N ∑ j = 1 N r e f F d ( B x , y r o i + Q x , y , P i ( x , y , z j ) , F 1 / n i ) SCA(B_{x,y}^{roi},F_{1/n})=\sum_{i=1}^N\sum_{j=1}^{N_{ref}}\mathcal F_d(B^{roi}_{x,y}+Q_{x,y},\mathcal P_i(x,y,z_j),F^i_{1/n}) SCA(Bx,yroi,F1/n)=i=1Nj=1NrefFd(Bx,yroi+Qx,y,Pi(x,y,zj),F1/ni)

其中 F d \mathcal F_d Fd为可变形注意力, P i ( x , y , z j ) \mathcal P_i(x,y,z_j) Pi(x,y,zj)为高度在 z j z_j zj处的参考点。为引入深度指导,本文为2D特征嵌入深度概率 d ~ \tilde d d~
S C A ( B x , y r o i , F 1 / n ) = ∑ i = 1 N ∑ j = 1 N r e f F d ( B x , y r o i + Q x , y , P i ( x , y , z j ) , F 1 / n i + M L P ( d ~ i ) ) SCA(B_{x,y}^{roi},F_{1/n})=\sum_{i=1}^N\sum_{j=1}^{N_{ref}}\mathcal F_d(B^{roi}_{x,y}+Q_{x,y},\mathcal P_i(x,y,z_j),F^i_{1/n}+MLP(\tilde d^i)) SCA(Bx,yroi,F1/n)=i=1Nj=1NrefFd(Bx,yroi+Qx,y,Pi(x,y,zj),F1/ni+MLP(d~i))

最后,使用CenterPoint的回归头从 B ~ r o i \tilde B^{roi} B~roi预测物体。

相关文章:

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection

原文链接&#xff1a;https://arxiv.org/pdf/2312.01696 简介&#xff1a;最近&#xff0c;在摄像头3D目标检测任务中&#xff0c;基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力&#xff0c;能全面精确地描绘3D场景。本…...

基于open-gpu-kernel-modules的p2p vram映射bar1提高通信效率

背景 bar1 Base Address Register 1 用于内存映射的寄存器&#xff0c;定义了设备的内存映射区域&#xff0c;BAR1专门分配给gpu的一部分内存区域&#xff0c;允许cpu通过pcie总线直接访问显存VRAM中的数据。但bar1的大小是有限的&#xff0c;在常规的4090上&#xff0c;bar1只…...

java之斗地主部分功能的实现

今天我们要实现斗地主中发牌和洗牌这两个功能&#xff0c;该如何去实现呢&#xff1f; 1.创建牌类&#xff1a;52张牌每一张牌包含两个属性:牌的大小和牌的花色。 故我们优先创建一个牌的类(Card)&#xff1a;包含大小和花色。 public class Card { //单张牌的大小及类型/…...

我的AI工具箱Tauri版-VideoIntroductionClipCut视频介绍混剪

本教程基于自研的AI工具箱Tauri版进行VideoIntroductionClipCut视频介绍混剪。 本项目为自研的AI工具箱Tauri版中的视频剪辑模块&#xff0c;专注于自动生成视频介绍片段。该模块名为 VideoIntroductionClipCut&#xff0c;用户可以通过该工具快速进行视频的混剪和介绍内容的生…...

【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析

【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空间进程 init 进程 第一阶段初始化过程 源码分析 系列文章汇总:《鸿蒙OH-v5.0源码分析之 Uboot+Kernel 部分】000 - 文章链接汇总》 本文链接:《【鸿蒙OH-v5.0源码分析之 Linux Kernel 部分】011 - 第一个用户空…...

MyBatis 源码解析:Mapper 文件加载与解析

引言 在 MyBatis 中&#xff0c;Mapper 文件扮演了至关重要的角色&#xff0c;它通过 SQL 映射文件来定义数据库查询操作和 Java 对象之间的映射关系。Mapper 文件通常是以 XML 格式存储的&#xff0c;包含了 SQL 语句以及与 Java 对象的对应关系。在本篇文章中&#xff0c;我…...

(11)(2.1.2) DShot ESCs(二)

文章目录 前言 3 配置伺服功能 4 检查RC横幅 5 参数说明 前言 DShot 是一种数字 ESC 协议&#xff0c;它允许快速、高分辨率的数字通信&#xff0c;可以改善飞行器控制&#xff0c;这在多旋翼和 quadplane 应用中特别有用。 3 配置伺服功能 如上所述&#xff0c;如果使用…...

yolov5/8/9模型在COCO分割数据集上的应用【代码+数据集+python环境+GUI系统】

yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 yolov5/8/9模型在COCO分割数据集上的应用【代码数据集python环境GUI系统】 1.COCO数据集介绍 COCO数据集&#xff0c;全称为Microsoft Common Objects in Context&#xff0c;是微软于2014年出资标注的…...

技术周总结 09.16~09.22 周日(架构 C# 数据库)

文章目录 一、09.16 周一1.1&#xff09;问题01&#xff1a; 软件质量属性中"质量属性场景"、"质量属性环境分析"、"质量属性效用树"、"质量属性需求用例分析"分别是什么&#xff1f;1.2&#xff09;问题02&#xff1a; 软件质量属性中…...

【java实现json转化为CSV文件】

文章目录 JSON文件中的数据格式测试文件转换的接口 JSON文件中的数据格式 单条数据展开后如下&#xff1a; {"text": "《邪少兵王》是冰火未央写的网络小说连载于旗峰天下","spo_list":[{"predicate": "作者", "objec…...

MySQL索引知识个人笔记总结(持续整理)

本篇笔记是个人整理的索引知识总结&#xff0c;刚开始有点乱&#xff0c;后续会一直边学边整理边总结 索引&#xff08;index&#xff09;是帮助MySQL高效获取数据的数据结构(有序)。就好比索引就是数据的目录 索引结构 Btree索引,Hash索引,Full-text索引&#xff0c;R-tree(空…...

ReKep——李飞飞团队提出的让机器人具备空间智能:基于视觉语言模型GPT-4o和关系关键点约束

前言 由于工厂、车厂的任务需求场景非常明确&#xff0c;加之自今年年初以来&#xff0c;我司在机器人这个方向的持续大力度投入(包括南京、长沙两地机器人开发团队的先后组建)&#xff0c;使得近期我司七月接到了不少来自车厂/工厂的订单&#xff0c;比如其中的三个例子&…...

[Java并发编程] synchronized(含与ReentrantLock的区别)

文章目录 1. synchronized与ReentrantLock的区别2. synchronized的作用3. synchronized的使用3.1 修饰实例方法&#xff0c;作用于当前实例&#xff0c;进入同步代码前需要先获取实例的锁3.2 修饰静态方法&#xff0c;作用于类的Class对象&#xff0c;进入修饰的静态方法前需要…...

spring-boot-maven-plugin插件打包和java -jar命令执行原理

文章目录 1. Maven生命周期2. jar包结构2.1 不可执jar包结构2.2 可执行jar包结构 3. spring-boot-maven-plugin插件打包4. 执行jar原理 1. Maven生命周期 Maven的生命周期有三种&#xff1a; clean&#xff1a;清除项目构建数据&#xff0c;较为简单&#xff0c;不深入探讨&a…...

Python办公自动化教程(001):PDF内容提取

1、Pdfplumber介绍 pdfplumber的github地址&#xff1a; https://github.com/jsvine/pdfplumber/【介绍】&#xff1a;pdfplumber 是一个用于处理 PDF 文件的 Python 第三方库&#xff0c;它提供了一种方便的方式来提取 PDF 文件中的文本、表格和其他信息。【功能】&#xff…...

HarmonyOS鸿蒙开发实战(5.0)自定义全局弹窗实践

鸿蒙HarmonyOS开发实战往期文章必看&#xff1a; HarmonyOS NEXT应用开发性能实践总结 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; 非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&am…...

【AI学习】了解OpenAI o1背后的self-play RL:开启新的智能道路

在ChatGPT刚刚出来的时候&#xff0c;沐神关于ChatGPT有一段视频&#xff0c;只有几分钟&#xff0c;却是讲得极其透彻的一段。大概意思就是&#xff0c;过去的AI智能水平&#xff0c;比如五年前&#xff0c;大概相当于人类5秒钟思考的程度&#xff0c;包括自动驾驶&#xff0c…...

Java项目实战II基于Java+Spring Boot+MySQL的车辆管理系统(开发文档+源码+数据库)

目录 一、前言 二、技术介绍 三、系统实现 四、论文参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 "随着…...

IPsec-VPN中文解释

网络括谱图 IPSec-VPN 配置思路 1 配置IP地址 FWA:IP地址的配置 [FW1000-A]interface GigabitEthernet 1/0/0 [FW1000-A-GigabitEthernet1/0/0]ip address 10.1.1.1 24 //配置IP地址 [FW1000-A]interface GigabitEthernet 1/0/2 [FW1000-A-GigabitEthernet1/0/2]ip a…...

Ubuntu 22.04 源码下载、编译

Kernel/BuildYourOwnKernel - Ubuntu Wikihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel 一、查询当前系统内核版本 rootubuntu22:~# uname -r 5.15.0-118-generic 二、查询本地软件包数据库中的内核源码信息 rootubuntu22:~# apt search linux-source Sorting... Do…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)

HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

PHP 8.5 即将发布:管道操作符、强力调试

前不久&#xff0c;PHP宣布了即将在 2025 年 11 月 20 日 正式发布的 PHP 8.5&#xff01;作为 PHP 语言的又一次重要迭代&#xff0c;PHP 8.5 承诺带来一系列旨在提升代码可读性、健壮性以及开发者效率的改进。而更令人兴奋的是&#xff0c;借助强大的本地开发环境 ServBay&am…...

python打卡第47天

昨天代码中注意力热图的部分顺移至今天 知识点回顾&#xff1a; 热力图 作业&#xff1a;对比不同卷积层热图可视化的结果 def visualize_attention_map(model, test_loader, device, class_names, num_samples3):"""可视化模型的注意力热力图&#xff0c;展示模…...