(已开源-AAAI25) RCTrans:雷达相机融合3D目标检测模型

在这里插入图片描述
在雷达相机融合三维目标检测中,雷达点云稀疏、噪声较大,在相机雷达融合过程中提出了很多挑战。为了解决这个问题,我们引入了一种新的基于query的检测方法 Radar-Camera Transformer (RCTrans)。具体来说:

  • 首先设计了一个雷达稠密编码器来丰富稀疏的有效的雷达token,然后将它们与图像token拼接起来。通过这样做可以充分挖掘每个感兴趣区域的3D信息,减少融合阶段空token的干扰。
  • 然后设计了一个剪枝顺序解码器,根据获得的token和随机初始化的query来预测 3D 框。为了缓解雷达点云中高度测量值的歧义,我们通过顺序融合结构逐步定位物体的位置。它有助于在token和query之间获得更精确和更灵活的对应关系。
  • 解码器采用剪枝训练策略,在推理过程中可以节省很多时间,抑制query失去独特性。在大规模nuScenes数据集上的大量实验表明了该方法的优越性,获得了新的SOTA的雷达相机融合3D检测结果。

项目链接:https://github.com/liyih/RCTrans


文章目录

      • Introduction
      • Method
      • Experiments

Introduction

引言和相关工作部分这里就不介绍了,在原文中作者提出了雷达传感器的两个主要缺陷:稀疏和噪声大,这也是目前量产雷达最主要的痛点。导致非空的雷达pillars数量大概是激光雷达Pillars数量的10%。图一中作者比较了RCTrans模型和目前纯视觉以及相机雷达融合模型的对比,可以看到同等配置下,RCTrans都是优于RCBEVDet,在推理速度上略慢于RCBEVDet。

在这里插入图片描述


Method

RCTrans模型框图如图2所示,首先使用两个并行分支(雷达与图像分支)提取多模态token。在雷达分支中,我们将使用雷达稠密编码器来生成稠密有效的雷达特征。然后,position embedding添加到token中。最后,随机初始化的query将被发送到 Pruning Sequential Decoder 和token一起预测 3D 框。整个训练是一个端到端的过程,不需要冻结任何参数,模型具体细节可以参考StreamPETR和FUTR3D。
在这里插入图片描述
这里介绍下雷达稠密编码器,如下图所示。我们的目标是找到一个结构简单的网络,可以自适应地填充每个BEV雷达网格和聚合多尺度信息,以促进不同大小的目标检测。自适应填充每个 BEV 网格的最简单方法是使用全局自注意力机制。然而,由于BEV网格数量较多,该方法耗时较长。为了解决这个问题,首先对原始的BEV特征进行下采样,并在最小分辨率与它们交互。同时,下采样过程可以大大减少无效网格的数量,从而提高交互后获得的特征质量。受 U-Net的启发,我们以相同的 BEV 分辨率连接不同感受野大小的特征,有效地保留了不同大小的对象的特征,这里做了三次下采样和三次上采样。对最小分辨率做自注意力时,添加了2D position embedding。

在这里插入图片描述
下面介绍下position embedding的生成,对于图像position embedding,我们使用PETR中提出的3D位置嵌入。给定一个图像token T i T_i Ti,一系列点 p ( u , v ) = p i ( u , v ) = ( u × d i , v × d i , d i , 1 ) , i = 1 , 2 , 。 . . , d p(u, v) = p_i (u, v) = (u \times d_i, v \times d_i, d_i, 1), i = 1, 2,。.., d p(u,v)=pi(u,v)=(u×di,v×di,di,1),i=1,2,..,d 为定义在相机视锥空间中的点。这里, u u u v v v 是token在图像空间中的索引, d d d 是沿深度轴的点数。之后,通过下列公式计算图像位置嵌入:
P E i m = Φ i m ( K p ( u , v ) ) , P E_{i m}=\Phi_{i m}(K p(u, v)), PEim=Φim(Kp(u,v)),

其中 K K K是相机内参矩阵, Φ i m \Phi_{i m} Φim MLP网络。由于雷达无法获得物体的精确高度信息,对于雷达位置嵌入,我们使用二维BEV嵌入,忽略BEV网格的高度信息。雷达位置嵌入由式下列公式计算而来:
P E r a = Φ r a ( Ψ ( h , w ) ) P E_{r a}=\Phi_{r a}(\Psi(h, w)) PEra=Φra(Ψ(h,w))

其中 ( h , w ) (h, w) (h,w)为BEV网格的2D坐标, Φ r a \Phi_{r a} Φra为MLP网络, Ψ ( h , w ) \Psi(h, w) Ψ(h,w) 为正弦余弦函数。通过位置嵌入,不同模态的信息可以隐式地与三维空间中的目标query对齐。

关于本文提出的剪枝顺序解码器,首先初始化了在3D空间可学习的n个query参考点,对应query特征初始化为0。query位置投影到雷达空间可以用下面公式来投影:
{ r x i ′ = r x i × ( x max ⁡ − x min ⁡ ) + x min ⁡ r y i ′ = r y i × ( y max ⁡ − y min ⁡ ) + y min ⁡ r z i ′ = r z i × ( z max ⁡ − z min ⁡ ) + z min ⁡ \left\{\begin{aligned} r_{x i}^{\prime} & =r_{x i} \times\left(x_{\max }-x_{\min }\right)+x_{\min } \\ r_{y i}^{\prime} & =r_{y i} \times\left(y_{\max }-y_{\min }\right)+y_{\min } \\ r_{z i}^{\prime} & =r_{z i} \times\left(z_{\max }-z_{\min }\right)+z_{\min } \end{aligned}\right. rxiryirzi=rxi×(xmaxxmin)+xmin=ryi×(ymaxymin)+ymin=rzi×(zmaxzmin)+zmin

往图像上投影可以用下面的公式(3D空间到视锥空间):
R i m = K − 1 R r a R_{i m}=K^{-1} R_{r a} Rim=K1Rra

对应的3D和2D position embedding可以用如下公式表示:
P E 3 d = Φ i m ( R i m ) , P E 2 d = Φ r a ( Ψ ( R r a ) ) P E_{3d}=\Phi_{im}(R_{im}), P E_{2d}=\Phi_{ra}(\Psi(R_{ra})) PE3d=Φim(Rim),PE2d=Φra(Ψ(Rra))

本文提出将单层decoder分成两个小的decoder,并独立进行模态融合。

在每个解码器层的末尾,我们将预测query的位置。在下一层,新的位置嵌入将根据更新的位置生成。给定更新后的查询 F q n + 1 F^{n+1}_q Fqn+1 ,我们预测查询位置的偏移量 ΔR,更新后的位置 R n + 1 R_{n+1} Rn+1 可以通过 Rn + ΔR 计算。在每一层中,我们使用顺序结构来融合多模态信息,这导致解码器层数比传统的解码器要多2倍,会导致额外的推理时间。更重要的是,随着我们在每个解码器层之后更新query的位置,一些目标query可能逐渐位于同一个区域,并失去特征独特性。这会导致某些区域的信息被忽略,注意力机制可能无法学习有效的表示学习概念,从而阻止模型实现预期的性能改进。为此,我们提出了一种剪枝训练策略,该策略在训练期间使用 6 层解码器,在推理过程中仅使用 3 层解码器。


Experiments

实验部分,作者使用的数据集是nuScenes数据集,主要对比了3D检测指标和3D追踪指标。实验细节部分:

  • 基于StreamPETR和 MMDetection3D代码库实现 RCTrans。
  • 和CRN一样,将4帧历史帧的信息聚集到当前帧,使用StreamPETR中提出的以目标为中心的时间建模来进行时间融合。
  • 训练时解码器层数设置为 6,在推理过程中设置为3。在时间融合中,将剪枝后最后一层的输出插入到内存队列中。
  • query数量、内存队列大小和传播query的数量分别设置为 900、512 和 128。
  • 对于雷达,和CRAFT一样,聚集了6个过去雷达扫描帧,并将雷达点的最大数量设置为 2048。雷达 BEV 的大小设置为 128×128。
  • 在8个NVIDIA A100 GPU 上训练网络,训练epoch数量为90,批量大小为 32。速度在单个NVIDIA RTX3090 GPU 上进行评估。学校率初始值为 1 0 − 4 10^{-4} 104,优化器使用的是AdamW。

下面是在验证集和测试集上3D检测任务的性能对比:

在这里插入图片描述

在这里插入图片描述
如表1所示,本文们的方法在不同的图像主干网下取得了最好的性能,时间消耗略有增加。例如,当使用 Swin-T 作为主干网并将图像大小设置为 256×704 时,与SOTA雷达相机解决方案 RCBEVDet 相比,RCTrans将NDS 提高了 3.2%,mAP 提高了 2.4%,而延迟增加了大约 5 毫秒。

多个主干网的实验结果表明,RCTrans具有良好的适应性,在实际应用中有利于模型部署和迁移。更重要的是,RCTrans击败了所有纯视觉的检测方法,包括我们的视觉基线模型 StreamPETR,这证明了我们的方法可以有效地使用雷达信息来补充检测结果。在nuScenes测试集上如表2所示,RCTrans取得了64.7%的NDS和57.8%的mAP,优于所有其它方法。值得注意的是,RCTrans在mAVE上获得了巨大的性能提升,证明了模型从雷达数据中提取有用的速度补偿信息。

在这里插入图片描述
如表3所示,将RCTrans与nuScenes测试集上现有的相机和雷达相机跟踪解决方案进行了比较。总体而言,我们的方法产生了最好的结果。与CRN相比,我们的方法显着提高了 AMOTA、FP、FN 和 IDS。我们比较的跟踪结果都是基于CenterPoint中基于速度的最近距离匹配获得的,因此跟踪性能的提高主要是由于我们的方法更准确地预测速度

下面是消融实验,图像骨干网是ResNet50,分辨率是256x704。如表 4 所示,每个模块都可以持续提高性能。与单模态相比,使用多模态输入可以显着提高模型性能。与常用的BEV编码器,如SECOND相比,使用提出的雷达稠密编码器(RDE)可以获得1.3%的NDS和1.6%的mAP提高。更重要的是,剪枝顺序解码器 (PSD) 将 NDS 提高了 2.2%,mAP 提高了 2.7%。

在这里插入图片描述
在训练期间将解码器的数量设置为 6,在推理过程中仅使用前3层会导致出色的性能,同时将推理时间减少了17.7毫秒,同时将 NDS 提高了 0.2%。造成这种现象的原因是,在每一层之后重新计算position embedding可以快速获得准确的对齐和更快的收敛,但会使一些query集中在同一个区域。此外,通过顺序结构在每一层融合不同的模态信息将导致更多transformer层数,在推理过程中减少解码器层的数量可以加快推理过程,而不会降低性能。
在这里插入图片描述
最后是模型鲁棒性分析,如表6所示,RCTrans在不同的传感器故障情况下优于所有现有的方法。具体来说,与 RCBEVDet 相比,RCTrans 在相机出现故障的条件下将 mAP 分别提高了 5.0%、15.3% 和 3.8%。值得注意的是,当丢弃的相机数量为3时,RCTrans 仍然可以得到接近空丢弃一个相机的效果,这是对过去方法的重要改进。上述现象表明,我们的模型可以在传感器故障情况下实现更稳定的效果。
在这里插入图片描述

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

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

相关文章

Python----Python爬虫(利用bs4、pyquery、xpath爬取电影名和评分)

电影网址电影大全_好看的电影_最新好看的电影_电影排行榜-影视快搜 一、bs4 import requests from fake_useragent import UserAgent from bs4 import BeautifulSoup # 设置URL地址 urlhttp://kan.znds.com/movie/ # 设置请求头 headers{User-Agent:UserAgent().edge} # 发送…

Hbuilder ios 离线打包sdk版本4.36,HbuilderX 4.36生成打包资源 问题记录

1、打包文档地址https://nativesupport.dcloud.net.cn/AppDocs/usesdk/ios.html#%E9%85%8D%E7%BD%AE%E5%BA%94%E7%94%A8%E7%89%88%E6%9C%AC%E5%8F%B7 2、配置应用图标 如果没有appicon文件,此时找到 Assets.xcassets 或者 Images.xcassets(看你sdk引入的启动文件中…

TCP通信原理学习

TCP三次握手和四次挥手以及为什么_哔哩哔哩_bilibili

unity学习13:gameobject的组件component以及tag, layer 归类

目录 1 gameobject component 是unity的基础 1.1 类比 1.2 为什么要这么设计? 2 从空物体开始 2.1 创建2个物体 2.2 给 empty gameobject添加组件 3 各种组件和新建组件 3.1 点击 add component可以添加各种组件 3.2 新建组件 3.3 组件的操作 3.4 特别的…

MYSQL--------什么是存储过程和函数

什么是存储过程和函数 存储过程: 存储过程是一组预编译的 SQL 语句集合,存储在数据库服务器中,可通过名称调用执行。它可以包含数据操作语言(DML)、数据定义语言(DDL)、控制流语句等。存储过程主…

计算机网络 (30)多协议标签交换MPLS

前言 多协议标签交换(Multi-Protocol Label Switching,MPLS)是一种在开放的通信网上利用标签引导数据高速、高效传输的新技术。 一、基本概念 MPLS是一种第三代网络架构技术,旨在提供高速、可靠的IP骨干网络交换。它通过将IP地址映…

探索Facebook的区块链计划:未来社交网络的变革

随着区块链技术的迅速发展,社交网络领域正面临一场深刻的变革。Facebook,作为全球最大且最具影响力的社交平台之一,正在积极探索区块链技术的应用。本文将深入探讨Facebook的区块链计划,分析其潜在的变革性影响,并展望…

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时,我们可以从几个角度进行分析: ​ 1. 技术发展与软件更新 随着技术的快速发展,许多编程工具和平台不断更新和改进,LabVIEW也不例外。十年后,可能会有新的编程语言或平台…

C# async和await

第一种: 多个异步任务按照顺序执行先让一个异步任务start 然后通过ContinueWith方法 在参数函数的表达式里面开启第二个任务如果要有第三个任务 需要在第二个任务ContinueWith方法中开启第三个任务 以此类推 可以实现多个异步任务顺序执行 上面这种方式绘出现地狱回…

Excel 技巧03 - 如何对齐小数位数? (★)如何去掉小数点?如何不四舍五入去掉小数点?

这几个有点儿关联,我都给放到一起了,不影响大家分别使用。 目录 1,如何对齐小数位数? 2,如何去掉小数点? 3,如何不四舍五入去掉小数点? 1,如何对齐小数位数&#xff…

node.js|浏览器插件|Open-Multiple-URLs的部署和使用,实现一键打开多个URL的强大工具

前言: 在整理各类资源的时候,可能会面临资源非常多的情况,这个时候我们就需要一款能够一键打开多个URL的浏览器插件了 说简单点,其实,迅雷就是这样的,但是迅雷是基于内置nginx浏览器实现的,并…

“AI 视频图像识别系统,开启智能新视界

咱老百姓现在的生活啊,那是越来越离不开高科技了,就说这 AI 视频图像识别系统,听起来挺高大上,实际上已经悄无声息地融入到咱们日常的方方面面,给咱带来了超多便利。 先讲讲安防领域吧,这可是 AI 图像识别的…

C语言 游动的小球

代码如下&#xff1a; 在这里插入代码片#include<stdio.h> #include<stdlib.h> #include<windows.h>int main() {int i,j;int x 5;int y 10;int height 20;int velocity_x 1;int velocity_y 1;int left 0;int right 20;int top 0;int bottom 10;while(1){…

基于SpringBoot实现的保障性住房管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

安卓触摸对焦

1. 相机坐标说明 触摸对焦需要通过setFocusAreas()设置对焦区域&#xff0c;而该方法的参数的坐标&#xff0c;与屏幕坐标并不相同&#xff0c;需要做一个转换。 对Camera&#xff08;旧版相机API&#xff09;来说&#xff0c;相机的坐标区域是一个2000*2000&#xff0c;原点…

湖南引力:低代码技术助力军工企业实现设备管理系统创新

背景介绍 在核工业相关生产领域&#xff0c;随着技术的持续进步&#xff0c;生产活动对设备的依赖性日益增强。随着企业规模的不断扩大&#xff0c;所涉及的设备数量和种类也在急剧增长&#xff0c;这使得传统的设备管理模式逐渐显得力不从心。企业当前的设备管理主要依赖人工…

【701. 二叉搜索树中的插入操作 中等】

题目&#xff1a; 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多…

VR+智慧消防一体化决策平台

随着科技的飞速发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术与智慧城市建设的结合越来越紧密。在消防安全领域&#xff0c;VR技术的应用不仅能够提升消防训练的效率和安全性&#xff0c;还能在智慧消防一体化决策平台中发挥重要作用。本文将探讨“VR智慧消防一体化…

nginx http反向代理

系统&#xff1a;Ubuntu_24.0.4 1、安装nginx sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 2、配置nginx.conf文件 /etc/nginx/nginx.conf&#xff0c;但可以在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件&#xff0c;并在…

arcgisPro加载CGCS2000天地图后,如何转成米单位

1、导入加载的天地图影像服务&#xff0c;一开始是经纬度显示的。 2、右键地图&#xff0c;选择需要调整的投影坐标&#xff0c;这里选择坐标如下&#xff1a; 3、点击确定后&#xff0c;就可以调整成米单位的了。 4、切换后结果如下&#xff1a; 如有需要&#xff0c;可调整成…