Cross Modal Transformer: Towards Fast and Robust 3D Object Detection

代码地址

https://github.com/junjie18/CMT

1. 引言

在本文中,我们提出了Cross-Modal Transformer(CMT),这是一种简单而有效的端到端管道,用于鲁棒的3D对象检测(见图1(c))。首先,我们提出了坐标编码模块 (CEM),它通过将3D点集隐式编码为多模态标记来生成位置感知特征。具体来说,对于相机图像,从视锥体空间采样的3D点用于指示每个像素的3D位置的概率。 而对于LiDAR,BEV 坐标只是简单地编码到点云标记中。接下来,我们介绍位置引导查询。每个查询都按照PETR[26]初始化为3D参考点。我们将参考点的3D坐标 变换到图像和LiDAR空间,以在每个空间中执行相对坐标编码。

与现有方法相比,所提出的CMT框架具有许多优点。首先,我们的方法是一个简单的端到端管道,可以轻松扩展。3D位置被隐式编码到多模态特征中,这避免了引入 显式跨视图特征对齐引起的偏差。其次,我们的方法仅包含基本操作,没有对多模态特征进行特征采样或复杂的2D到3D视图转换。它实现了最先进的性能,并且与现 有方法相比显示出明显的优越性。第三,我们的CMT的鲁棒性比其他现有方法强得多。

极端的是,在LiDAR未命中的情况下,与那些基于视觉的3D物体检测器相比,我们仅使用图像标记的CMT可以实现相似的性能[23,26]。

总而言之,我们的贡献是:

  • 我们提出了一种快速且强大的3D检测器,这是一个真正的端到端框架,无需任何后处理。它克服了传感器丢失的问题。
  • 3D位置被编码到多模式标记中,无需任何复杂的操作,例如网格采样和体素池。
  • CMT 在nuScenes数据集上实现了最先进的3D检测性能。它为未来的研究提供了一个简单的基线。
图1 BEVFusion、TransFusion 之间的比较以及我们建议的 CMT。 (a) 在 BEVFusion 中,相机功能通过视图变换将图变换到 BEV 空间。两个模态特征在 BEV 空间中串联起来,采用BEV编码器进行融合。 (b) 先输血从 Li- 的高响应区域生成查询雷达特征。之后,对象查询与点交互云特征和图像特征分开。 (c) 在 CMT 中,对象查询直接与多模态功能交互同时。添加位置编码(PE)用于对齐的多模态特征。 “VT”是视图从图像到 3D 空间的变换。
图2 左:CMT 与现有方法之间的性能比较。所有速度统计数据均在单个Tesla A100 GPU 使用官方存储库的最佳模型。右:传感器缺失情况下 CMT 的性能评估。在推理过程中,CMT 在 LiDAR 缺失的情况下实现了基于视觉的性能,表现出很强的鲁棒性。

2. 相关工作

2.1. 基于相机的3D目标检测

早期的工作主要遵循密集预测流程。首先在图像平面上定位物体,然后预测其相关的 3D 属性,如深度、尺寸和方向。然而对于环视摄像头,基于透视视图的设计需要精心的后处理来消除重叠区域的冗余预测。BEV 表示提供了一个统一的坐标来融合来自多个摄像头视图的信息。LSS、BEVDet和BEVDepth预测深度分布,将图像特征提升到 3D 视锥体网格。DETR3D和BEVFormer将预定义的 BEV 查询投影到图像上,然后使用 Transformer 注意力来对多视图特征的关系进行建模。这些方法明确地将局部图像特征从 2D 透视视图投影到 BEV。PETR和 SpatialDETR采用依赖于摄像头姿态的位置嵌入,允许 Transformer 隐式地学习从图像视图到 3D 空间的投影。

2.2. 基于激光雷达的3D目标检测

基于激光雷达的 3D 物体检测旨在使用从激光雷达捕获的点云来预测 3D 物体的边界框。现有的方法将点云处理成不同的表示形式。基于点的方法直接从原始点云中提取特征并预测 3D 边界框。PointNet是第一个以端到端的方式处理点云的架构,它保留了点云的空间特征。其他方法将无序、不规则的激光雷达点云投影到规则的特征空间,如 3D 体素、特征柱和距离图像。然后使用标准的 2D 骨干网络在 BEV 平面中提取特征。VoxelNet首先将原始点云划分为规则的体素网格,然后使用 PointNet 网络从每个体素网格中的点提取特征。

2.3. 多模态3D目标检测

3D检测中的多传感器融合近年来引起了广泛关注。最先进的(SoTA)方法倾向于为两种模态找到统一的表示,或者定义对象查询来融合特征以进行进一步的预测。例如,BEVFusion[24,28]应用lift-splatshoot(LSS)操作将图像特征投影到BEV空间上,并将其与LiDAR特征连接起来。UVTR[20]通过可变形注意力[57]在3D体素空间中生成统一的表示。而对于基于查询的方法,FUTR3D[8]将3D参考点定义为查询,并直接从投影平面的坐标中对特征进行采样。TransFusion[1]采用两级管道。这些建议由LiDAR特征生成,并通过查询图像特征进一步细化。

图3.Cross-Modal Transformer(CMT)范例的架构。多视图图像和点云被输入到两个骨干网络以提取特征标记。在坐标编码模块中,相机光线和BEV位置的坐标分别转换为图像位置编码(ImPE)和点云位置编码(PCPE)。查询由位置引导查询生成器生成。在查询生成器中,3D锚点被投影到不同的模态,并且相对坐标被编码(参见右侧部分)。多模态令牌进一步与转换器解码器中的查询交互。更新后的查询进一步用于预测3D边界框。

3. 方法

该方法主要分为五部分:1)backbone,提取图像和点云特征(通用模块,不介绍),2)坐标编码模块,得到position-aware多模态tokens,3)position-guided query generator,计算position-aware queries,4)decoder和loss,5)masked-modal training。

3.1. 坐标编码模块(CEM)

坐标编码模块(CEM)用于将 3D 位置信息编码为多模态标记。它生成相机和 BEV 位置编码(PE),分别添加到图像标记和点云标记中。在 CEM 的帮助下,多模态标记可以在 3D 空间中隐式对齐。

3.2. Position-guided Query Generator

继 Anchor-DETR [48] 和 PETR [29] 之后,我们首先用从 [0, 1] 之间的均匀分布中采样的 n 个锚点A = \left \{ a_i = (a_{x,i}, a_{y,i}, a_{z,i}), i = 1, 2,\cdots, n \right \}初始化查询。然后,这些锚点通过线性变换转换到 3D 世界空间:

3.3. Decoder和Loss

至于解码器,我们遵循 DETR中的原始 Transformer 解码器,并使用 L 个解码器层。对于每个解码器层,位置引导的查询与多模态标记进行交互并更新它们的表示。使用两个前馈网络(FFN)通过更新后的查询来预测 3D 边界框和类别。

3.4. Masked-Modal Training

对于自动驾驶系统来说,安全性是最重要的关注点。一个理想的系统即使部分出现故障也需要有可靠的性能,并且不能依赖于任何特定模态的输入。最近,BEVFusion [27] 已经对激光雷达传感器故障的鲁棒性进行了探索。然而,这种探索仅限于有限的扫描范围,并且模型需要重新训练。在本文中,我们尝试了更极端的故障情况,包括单个摄像头缺失、摄像头缺失和激光雷达缺失。这与实际场景相符,并能确保自动驾驶的安全性。

为了提高模型的鲁棒性,我们提出了一种称为掩码模态训练的训练策略。在训练过程中,我们随机仅使用单一模态(如摄像头或激光雷达)进行训练,比例分别为\eta_1\eta_2。这种策略确保模型在单一模态和多模态下都能得到充分训练。然后,模型可以在单一模态或多模态下进行测试,而无需修改模型权重。实验结果表明,掩码模态训练不会影响我们融合模型的性能。即使激光雷达损坏,它仍然能够实现与最先进的基于视觉的 3D 探测器类似的性能。

图4 我们在测试阶段分析了 CMT 系统在三种模拟传感器错误下的鲁棒性:(a)单个摄像头缺失,(b)所有摄像头缺失,(c)激光雷达缺失。

4. 实验

分析一个有意思的图。下图中蓝色是初始queries在图像上的投影,红色是最终预测queries的投影,可以看到,queries最终会移动到离其较近的前景物体上。

5. 总结与讨论

在本文中,我们提出了一个完全端到端的框架用于多模态 3D 物体检测。它隐式编码将 3D 坐标转化为图像和点的标记云。通过坐标编码,简单而有效可采用主动DETR管道进行多模态融合以及端到端的学习。通过蒙面模态训练,我们的多模态检测器可以学习,具有很强的鲁棒性,即使错过了多种模式中的一种。我们希望这样的简单的管道设计可以提供更多关于端到端 3D 物体检测。

参考文献

https://blog.51cto.com/u_16282361/7754113

https://zhuanlan.zhihu.com/p/647627947

【论文笔记】Cross Modal Transformer: Towards Fast and Robust 3D Object Detection_cross model transformer:towards fast and robust 3d-CSDN博客

https://zhuanlan.zhihu.com/p/656231643

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

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

相关文章

十四、Linux线程(一)

1.守护进程 1.守护进程的特点 是后台服务进程 独立于控制终端 周期性执行某任务 不受用户登录注销影响 一般采用以d结尾的名字(服务) 2.进程组 进程的组长: 组里边的第一进程 进程组的ID进程中的组长的ID 进程中组长的选择&#xff1…

多模态数字人AI产品正在革新金融业,解密头部银行、证券公司都在用的AI工具

在人工智能迅猛发展的时代背景下,金融业正迎来一场深刻的变革。 多模态的人工智能,以其独特的魅力,正在重塑金融行业的格局,为金融服务带来前所未有的新想象。从今年以来行业对AI技术的探索与实践中,AIGC 3D数字人多模…

多态性核SSR的鉴定

多态性核SSR的鉴定 文章目录 多态性核SSR的鉴定前言一、使用bwa对测序数据进行mapping二、使用SOAPdenovo2对核序列进行从头组装成scaffolds三、使用CandiSSR寻找多态性核SSR3.1. 安装CandiSSR软件的准备3.2. 运行CandiSSR时的准备3.3. 整理得到的结果文件 四、统计Contig的数量…

【AIGC探索】AI实现PPT生产全流程

AI实现PPT生产流程 简单概括流程就是: 选择用百度文库AI生成PPT,使用WPS和islide辅助美化,使用文字大模型生成大纲,使用宏指令快速规范细节。 理由如下: 大多数PPT工具生成大纲会有文字篇幅限制,通过大模型…

鸿蒙ArkTS中的获取网络数据

一、通过web组件加载网页 在C/S应用程序中,都有网络组件用于加载网页,鸿蒙ArkTS中也有类似的组件。   web组件,用于加载指定的网页,里面有很多的方法可以调用,虽然现在用得比较少,了解还是必须的。   演…

数学建模(基于Python实现)--灰色关联分析法讲解,含案例

前言 这是去年底学数学建模老哥的建模课程笔记; 未来本人将陆陆续续的更新数学建模相关的一些基础算法,大家可以持续关注一下,主要在于运用; 提示:数学建模只有实战才能提升🔥​🔥​&#x1f…

【go从零单排】error错误处理及封装

🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,error 是一个内置的接口类型,用于表示错误情…

论文阅读笔记:Depth Pro: Sharp Monocular Metric Depth in Less Than a Second

论文阅读笔记:Depth Pro: Sharp Monocular Metric Depth in Less Than a Second 1 背景1.1 动机1.2 提出的方法 2 创新点3 方法4 模块4.1 训练目标4.2 课程训练 4.3 边缘评价指标4.4 焦距估计 5 效果5.1 和SOTA方法的对比 论文:https://arxiv.org/abs/24…

flutter 项目初建碰到的控制台报错无法启动问题

在第一次运行flutter时,会碰见一直卡在Runing Gradle task assembleDebug的问题。其实出现这个问题的原因有两个。 一:如果你flutter -doctor 检测都很ok,而且环境配置都很正确,那么大概率就是需要多等一会,少则几十分…

跨子网的WinCC客户机/服务器如何实现通讯?

为了更有效地利用有限的IP地址,为了减少广播对网络带宽的占用从而提高带宽,为了实现在不同子网中应用不同的安全策略从而提高网络安全性,现场通常要求划分子网,将安全等级要求不同的计算机安置在不同的子网中,分开管理…

SpringClud一站式学习之Eureka服务治理(二)

SpringClud一站式学习之Eureka服务治理 引言1. 搭建Eureka Server1.1. 添加Eureka Server依赖1.2. 添加 Eureka Server注解1.3. 配置Eureka Server1.4. 运行Eureka Server 2. 搭建Eureka Client 服务提供者2.1. 添加依赖2.2. 添加注解2.3. 配置Eureka Client2.4. 启动服务 3. 搭…

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者:擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时,通常会有一些去重的需求,这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据,但是在merge的时候会根据order …

加入GitHub Spark需要申请

目录 加入GitHub Spark需要申请 GitHub Spark 一、产品定位与特点 二、核心组件与功能 三、支持的AI模型 四、应用场景与示例 五、未来展望 六、申请体验 加入GitHub Spark需要申请 GitHub Spark 是微软旗下GitHub在2024年10月30日的GitHub Universe大会上推出的一款革…

鸿蒙与团结引擎c#与ts简单交互

目录 团结中调用ts代码 鸿蒙中调用团结代码 首先在团结创建代码,需要将代码添加到场景物体中 devecoStudio端编写ts代码 在index页面添加一个测试按钮 团结中调用ts代码 团结引擎 - 手册: Call TypeScript plug-in code from C# scripts 注册函数要跟文件名一致 在u…

Qt QCustomplot 在采集信号领域的应用

文章目录 一、常用的几种开源库:1、QCustomPlot:2、QChart:3、Qwt:QCustomplot 在采集信号领域的应用1、应用实例时域分析频谱分析2.数据筛选和处理其他参考自然界中的物理过程、传感器和传感器网络、电路和电子设备、通信系统等都是模拟信号的来源。通过可视化模拟信号,可以…

世优科技携手人民中科打造AI数字人智能体助力智慧校园

近日,世优科技与人民中科携手,为中国劳动关系学院开发了一款AI数字人助手,不仅在校园内部承担日常问询、交互工作,还在学校的展厅中担任讲解员的角色,为师生们提供生动详尽的导览服务。 中国劳动关系学院作为中华全国总…

7.2、实验二:被动接口和单播更新

源文件链接: 7.2、实验二:被动接口和单播更新: https://url02.ctfile.com/d/61945102-63671890-6af6ec?p2707 (访问密码: 2707) 一、被动接口 1.介绍 定义: 在路由协议的配置中,一个被动接口指的是一个接口不发送路由更新包的配置方式&a…

达梦8-达梦数据实时同步软件(DMHS)配置-Oracle-DM8

1、安装环境 源端目的端IP地址192.168.6.111192.168.6.110系统版本Red Hat 6.4Kylin v10数据库版本Oracle11g达梦 v8系统用户Oracledmdba字符集MERICAN_AMERICA.AL32UTF8UTF-8端口15215236实例名PRODDMSERVER数据库软件目录/u01/app/oracle/opt/dmdbmsDMHS安装目录/u01/dmhs/o…

多个NVR同时管理EasyNVR多品牌NVR管理工具/设备:IP常见问题解决方案

随着视频监控技术的不断发展,NVR(网络视频录像机)已经成为现代安防系统的重要组成部分。而为了更高效地管理多个品牌的NVR设备,EasyNVR这一多品牌NVR管理工具应运而生。然而,在实际使用过程中,尤其是在多个…

新160个crackme - 094-TheBigMan-crackme6

运行分析 需破解Name和Serial PE分析 LCC win32程序,32位,无壳 静态分析&动态调试 ida搜索字符串,进入关键函数 ida动调,发现关键判断函数func_1 进入后,发现Name长度需满足一定要求,且func_2返回值不能…