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.mzph.cn/bicheng/59953.shtml

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

相关文章

深度学习鲁棒性、公平性和泛化性的联系

深度学习鲁棒性、公平性和泛化性的联系 前言1 鲁棒性、公平性、泛化性本质2 对抗攻击是混杂效应3 因果推理角度3.1 稳定学习 VS 公平性3.2 后门攻击 前言 读研好不容易从边缘智能,费好大劲被允许转到联邦学习赛道,再费了好大劲和机缘巧合被允许转到可信A…

【Vue】简易博客项目跟做

项目框架搭建 1.使用vue create快速搭建vue项目 2.使用VC Code打开新生成的项目 端口号简单配置 修改vue.config.js文件,内容修改如下 所需库安装 npm install vue-resource --save --no-fund npm install vue-router3 --save --no-fund npm install axios --save …

python爬虫指南——初学者避坑篇

目录 Python爬虫初学者学习指南一、学习方向二、Python爬虫知识点总结三、具体知识点详解和实现步骤1. HTTP请求和HTML解析2. 正则表达式提取数据3. 动态内容爬取4. 数据存储5. 反爬虫应对措施 四、完整案例:爬取京东商品信息1. 导入库和设置基本信息2. 获取网页内容…

一文学习Android中的Treeview

在Android开发中,TreeView是一种用于显示层次结构的组件,可以让用户展开和折叠子项,以方便查看数据的不同层次。TreeView在文件系统、组织架构、目录结构等场景中非常有用,尽管Android并未提供内置的TreeView控件,但可…

如何快速搭建一个spring boot项目

一、准备工作 1.1 安装JDK:确保计算机上已安装Java Development Kit (JDK) 8或更高版本、并配置了环境变量 1.2 安装Maven:下载并安装Maven构建工具,这是Spring Boot官方推荐的构建工具。 1.3 安装代码编辑器:这里推荐使用Inte…

SLM401A系列42V商业照明线性恒流芯片 线性照明调光在LED模组及灯带智能球泡灯上应用

SLM401A系列型号选型: SLM401A10ED-7G:QFN1010-4 SLM401A15aa-7G:SOT23-3 SLM401A20aa-7G:SOT23-3 SLM401A20ED-7G:QFN1010-4 SLM401A25aa-7G:SOT23-3 SLM401A30aa-7G:SOT23-3 SLM401A40aa-7G:SOT23-3 SLM401A50aa-7G:SOT23-3 SLM401A6…

HTB:GreenHorn[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机TCP端口进行开放扫描 再次使用nmap对这三个端口进行脚本、服务扫描 尝试先通过curl访问靶机80端口 将靶机IP与该域名写入hosts使DNS本地解析 使用浏览器访问greenhorn.htb 使用Wappalyzer插件查看该页面技术栈 尝试在sea…

HarmonyOS-消息推送

一. 服务简述 Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。所有HarmonyOS 应用可通过集成 Push Kit,实现向应用实时推送消息,使消息易见,构筑良好的用户关系&#xff0…

精选 Top10 开源调度工具,解锁高效工作负裁自动化

在大数据和现代 IT 环境中,任务调度与工作负载自动化(WLA)工具是优化资源利用、提升生产效率的核心驱动力。随着企业对数据分析、实时处理和多地域任务调度需求的增加,这些工具成为关键技术。 本文将介绍当前技术发展背景下的Top …

【论文阅读】Learning dynamic alignment via meta-filter for few-shot learning

通过元滤波器学习动态对齐以实现小样本学习 引用:Xu C, Fu Y, Liu C, et al. Learning dynamic alignment via meta-filter for few-shot learning[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021: 5182-5191. 论文…

软件崩溃?提示“由于找不到d3dx9_43.dll”是什么情况?如何有效解决d3dx9_43.dll丢失的方法分享

d3dx9_43.dll错误是电脑经常出现的情况?那么出现“由于找不到d3dx9_43.dll”错误的问题是什么原因导致的呢?同时又有什么办法可以将错误提示“由于找不到d3dx9_43.dll”的问题进行解决呢? d3dx9_43.dll文件缺失是什么情况? d3dx9…

Latex中给公式加边框

1、这里使用的不是 amsmath 的 \boxed 命令, 而是 empheq 的 empheq 环境以及 xcolor 的 \fcolorbox 命令, 下面是代码, 可以分别阅读这两个手册来获取更多的信息 \documentclass{article} \usepackage{xcolor} \usepackage{empheq} \usepackage{amsmath} \begin{document}\be…

设计模式之原型模式(上机考试多套试,每人题目和答案乱序排列场景)

前言: 平常你也付出了很多的时间,但就是没有得到多少收益。就像有时候很多小伙伴问我,我是该怎么学一个我没接触过的内容。我的个人经验非常建议,先不要学太多理论性的内容,而是尝试实际操作下,把要学的内容…

如何提高谷歌收录速度?

相信很多做外贸推广的朋友都遇到过这种情况:网站上线了,但新页面迟迟不被谷歌收录。即使你的内容很优秀,设计也很精美,如果谷歌爬虫抓不到页面,一切努力就白费了。这时候,GSI谷歌快速收录服务就成了“救命稻…

C++builder中的人工智能(15):C++高斯误差线性单元(GELU)

在这篇文章中,我们将探索高斯误差线性单元(GELU:Gaussian Error Linear Unit)是什么,它是如何在人工神经网络(ANN)中工作的,以及GELU可以应用于哪些AI技术。通过学习C中的高斯误差线…

Python | Leetcode Python题解之第552题学生出勤记录II

题目: 题解: class Solution:def checkRecord(self, n: int) -> int:MOD 10**9 7mat [[1, 1, 0, 1, 0, 0],[1, 0, 1, 1, 0, 0],[1, 0, 0, 1, 0, 0],[0, 0, 0, 1, 1, 0],[0, 0, 0, 1, 0, 1],[0, 0, 0, 1, 0, 0],]def multiply(a: List[List[int]],…

网页版五子棋——匹配模块(客户端开发)

前一篇文章:网页版五子棋——用户模块(客户端开发)-CSDN博客 目录 前言 一、前后端交互接口设计 二、游戏大厅页面 1.页面代码编写 2.前后端交互代码编写 3.测试获取用户信息功能 结尾 前言 前面文章介绍完了五子棋项目用户模块的代码…

【微服务】不同微服务之间用户信息的获取和传递方案

如何才能在每个微服务中都拿到用户信息?如何在微服务之间传递用户信息? 文章目录 概述利用微服务网关做登录校验网关转微服务获取用户信息openFeign传递微服务之间的用户信息 概述 要在每个微服务中获取用户信息,可以采用以下几种方法&#…

OpenEuler 下 Docker 安装、配置与测试实例

文章目录 前言1. 环境准备2. 下载 Docker3.配置服务文件4.配置加速器加速下载docker镜像5. 验证 Docker 安装 前言 Docker 安装大致分为包管理器安装、脚本安装、离线手动安装、容器编排工具安装、桌面版安装等,每种安装各有特点,但涉及知识面不少&…

GK7205V500 GK7250V510 国科微 SOC芯片

GK7205V500 芯片是国科推出的新一代高集成度、高画质、低码率、低功耗的 AI IP Camera SoC 芯 片。 芯片集成 ARM Cortex A7 处理器,支持专业的 ISP 图像处理单元,H.265/H.264 视频编码与神经网络 处理单元(NPU)&#xff0c…