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

(已开源-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 仍然可以得到接近空丢弃一个相机的效果,这是对过去方法的重要改进。上述现象表明,我们的模型可以在传感器故障情况下实现更稳定的效果。
在这里插入图片描述

相关文章:

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

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

Elasticsearch:在 HNSW 中提前终止以实现更快的近似 KNN 搜索

作者:来自 Elastic Tommaso Teofili 了解如何使用智能提前终止策略让 HNSW 加快 KNN 搜索速度。 在高维空间中高效地找到最近邻的挑战是向量搜索中最重要的挑战之一,特别是当数据集规模增长时。正如我们之前的博客文章中所讨论的,当数据集规模…...

unittest VS pytest

以下是 unittest 和 pytest 框架的对比表格: 特性unittestpytest设计理念基于类的设计,类似于 Java 的 JUnit更简洁,基于函数式编程设计,支持类和函数两种方式测试编写需要继承 unittest.TestCase 类,方法以 test_ 开…...

Tableau数据可视化与仪表盘搭建-基础图表制作

目录 对比分析:比大小 柱状图 条形图 数据钻取 筛选器 热力图 气泡图 变化分析:看趋势 折线图 预测 面积图 关系分布:看位置 散点图 直方图 地图 构成分析:看占比 饼图 树地图 堆积图 对比分析:比大…...

Center Loss 和 ArcFace Loss 笔记

一、Center Loss 1. 定义 Center Loss 旨在最小化类内特征的离散程度,通过约束样本特征与其类别中心之间的距离,提高类内特征的聚合性。 2. 公式 对于样本 xi​ 和其类别yi​,Center Loss 的公式为: xi​: 当前样本的特征向量&…...

3125: 【入门】求1/1+1/2+2/3+3/5+5/8+8/13+13/21……的前n项的和

文章目录 题目描述输入输出样例输入样例输出 题目描述 求1/11/22/33/55/88/1313/2121/34……的前n项的和。 输入 第1行&#xff1a;一个整数n&#xff08;1 < n < 30 &#xff09;。 输出 一行&#xff1a;一个小数&#xff0c;即前n项之和&#xff08;保留3位小数&…...

如何确保获取的淘宝详情页数据的准确性和时效性?

要确保获取的淘宝详情页数据的准确性和时效性&#xff0c;可从以下几个方面着手&#xff1a; 合法合规获取数据 遵守平台规则&#xff1a;在获取淘宝详情页数据之前&#xff0c;务必仔细阅读并严格遵守淘宝平台的使用协议和相关规定。明确哪些数据可以获取、以何种方式获取以及…...

云计算是如何帮助企业实现高可用性的

想象一下&#xff0c;你正在享受一个悠闲的周末&#xff0c;突然接到同事的电话&#xff1a;公司的核心系统宕机了&#xff01;这个场景对很多IT从业者来说并不陌生。但在云计算时代&#xff0c;这样的噩梦正在逐渐远去。 一位前辈告诉我&#xff1a;"在技术世界里&#…...

143.《python中使用pymongo》

文章目录 pymongo安装pymongo连接数据库mongodb操作创建数据库判断数据库是否存在创建集合判断集合是否已经存在插入集合插入一条多条插入 查询数据查询一条数据查询所有数据查询指定字段的数据统计查询统计所有记录数按条件统计记录数分页列表查询比较查询$eq$gt$gte$in$lt$lt…...

Babylon.js 的 Mesh 与 Unity 的 GameObject:深入对比与分析

在 3D 开发领域&#xff0c;Babylon.js 和 Unity 是两款极具影响力的引擎&#xff0c;分别在 Web 平台和游戏开发领域占据重要地位。要深入理解这两款引擎的异同&#xff0c;从其核心对象——Babylon.js 的 Mesh 和 Unity 的 GameObject ——入手进行对比&#xff0c;是…...

MySQL安装,配置教程

一、Linux在线yum仓库安装 打开MySQL官方首页&#xff0c;链接为&#xff1a;https://www.mysql.com/ 界面如下&#xff1a; 在该页面中找到【DOWNOADS】选项卡&#xff0c;点击进入下载页面。 在下载界面中&#xff0c;可以看到不同版本的下载链接&#xff0c;这里选择【My…...

Android折叠屏适配(权宜之计)

现在折叠屏手机出了也有一段时间了&#xff0c;但是除了大厂app&#xff0c;其他app适配折叠屏还是比较少&#xff0c;如果真的想做好折叠屏完全适配&#xff0c;那这个文章可能并不适合&#xff0c;这里只是一个简单适配的思路。 如果原先你的app已经适配了平板&#xff0c;那…...

Spark是什么?Flink和Spark区别

Spark是什么&#xff1f;Flink和Spark区别 一、Spark二、Spark和Flink区别三、总结 一、Spark Apache Spark 是一个开源的大数据处理框架&#xff0c;主要用于大规模数据处理和分析。它支持多种数据处理模式&#xff0c;包括批处理、流处理、SQL 查询、机器学习和图处理等。 核…...

Cocos Creator 3.8 修改纹理像素值

修改的代码&#xff1a; import { _decorator, Component, RenderTexture, Sprite, Texture2D, ImageAsset, SpriteFrame, Vec2, gfx, director, log, math, v2 } from cc;const { ccclass, property } _decorator;ccclass(GradientTransparency) export class GradientTrans…...

如何评价deepseek-V3 VS OpenAI o1 自然语言处理成Sql的能力

DeepSeek-V3 介绍 在目前大模型主流榜单中&#xff0c;DeepSeek-V3 在开源模型中位列榜首&#xff0c;与世界上最先进的闭源模型不分伯仲。 准备工作&#xff1a; 笔者只演示实例o1 VS DeepSeek-V3两个模型&#xff0c;大家可以自行验证结果或者实验更多场景&#xff0c;同时…...

SQL左连接的两种不同情况示例和外连接示例

Oracle&#xff1b;有2个表如下&#xff1b; 执行下图选中的左连接&#xff1b; 左表10条记录&#xff0c;右表3条记录&#xff0c;结果是10条记录&#xff1b; 执行下图的左连接&#xff0c; 老师表为左表&#xff0c;学生表为右表&#xff0c;结果会显示每个老师&#xff0c…...

【渗透测试术语总结】

Top 渗透测试常用专业术语 相信大家和我一样&#xff0c;搞不清这些专业名词的区别&#xff0c;所以我来整理一下。 1. POC、EXP、Payload与Shellcode POC&#xff1a;全称 Proof of Concept &#xff0c;中文 概念验证 &#xff0c;常指一段漏洞证明的代码。 EXP&#xf…...

Unity2D初级背包设计后篇 拓展举例与不足分析

Unity2D初级背包设计中篇 MVC分层撰写(万字详解)-CSDN博客、 如果你已经搞懂了中篇&#xff0c;那么对这个背包的拓展将极为简单&#xff0c;我就在这里举个例子吧 目录 1.添加物品描述信息 2.拓展思路与不足分析 1.没有删除只有丢弃功能&#xff0c;所以可以添加垃圾桶 2.格…...

Kafka优势剖析-幂等性和事务

目录 1. 幂等性&#xff08;Idempotence&#xff09; 1.1 什么是幂等性&#xff1f; 1.2 幂等性的实现 1.2.1 生产者 ID 和序列号 1.2.2 重复消息检测 1.2.3 幂等性的优势 1.3 幂等性的配置 2. 事务支持&#xff08;Transactions&#xff09; 2.1 什么是事务支持&…...

MyBatis深入了解

目录 xml 映射文件中&#xff0c;除了常见的select、insert、update、delete 标签之外&#xff0c;还有哪些标签? Dao 接口的工作原理是什么?Dao 接口里的方法&#xff0c;参数不同时&#xff0c;方法能重载吗? MyBatis 是如何进行分页的?分页插件的原理是什么? 简述 …...

Qt Widget类解析与代码注释

#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this); }Widget::~Widget() {delete ui; }//解释这串代码&#xff0c;写上注释 当然可以&#xff01;这段代码是 Qt …...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Python实现简单音频数据压缩与解压算法

Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中&#xff0c;压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言&#xff0c;提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...