TransFusion:利用 Transformer 进行鲁棒性融合来进行 3D 目标检测

news2024/9/20 22:34:45

Query 初始化

Input-dependent

以往 Query 位置是随机生成或学习作为网络参数的,而与输入数据无关,因此需要额外的阶段(解码器层)来学习模型向真实对象中心移动的过程。
论文提出了一种基于center heatmap 的 input-dependent 初始化策略。(decoder :6 layers —> 1 layer)

给定一个 d d d 维的 LiDAR BEV 特征图 F L ∈ R X × Y × d F_L\in \R^{X \times Y \times d} FLRX×Y×d,首先预测一个 class-specific heatmap S ^ ∈ R X × Y × K \hat S \in \R^{X\times Y \times K} S^RX×Y×K X × Y X \times Y X×Y 表示 BEV 特征图的大小, K K K 是类别数量。
然后,将 heatMap 看作 X × Y × K X×Y×K X×Y×K 个候选对象,并选择所有类别的前 N N N 个候选对象作为初始对象 Queries。
选择局部最大值元素作为对象Queries:避免空间上过于封闭的Queries。这些元素的值大于或等于它们的 8连通 neighbors。
所选候选对象的位置和特征用于初始化Queries位置和Queries特征。
初始对象Queries将位于或接近潜在的对象中心,消除了需要多个解码器层来细化位置。

Category-aware

BEV平面上的物体都是绝对尺度的,同一类别之间的尺度差异很小。通过为每个 Query 配备 category embedding 来使对象 Queries 具有 Category-aware (类别感知性)。

使用每个选定的候选对象的类别,也就是说 S ^ i , j , k \hat S_{i,j,k} S^i,j,k 属于第 k k k 个类别。通过线性映射 one-hot category 向量 到一个 R d \R^d Rd 向量,来将 Query 特征和 category embedding 进行元素求和。

category embedding:
1.在对自我注意模块中的对象-对象关系和交叉注意模块中的对象-上下文关系进行建模中作为有用的辅助信息。
2.在预测时,可以传递有价值的对象先验知识,使网络关注类别内的方差,从而有利于属性预测。

Transformer Decoder 和 FFN

在这里插入图片描述
上图:左-用于初始边界框预测的 transformer decoder 层的架构。 右-用于图像融合的 transformer decoder 层的体系结构。

在对象 Queries 与 特征映射(点云或图像)的交叉注意力将相关的上下文信息,聚集到候选对象上,而对象 Queries 之间的自我注意则导致不同候选对象之间的成对关系。
将 Query 位置嵌入到 MLP 的 D D D 维位置编码中,并与 Query 特征进行元素求和。 这使得网络能够联合推理上下文和位置。
然后,通过前馈网络(FFN)将包含丰富实例信息的 N N N 个对象 Queries 独立的解码为边界框和类标签。
通过并行地将每个对象 Query 译码为预测,得到一组预测值 { b ^ t , p ^ t } t N \{\hat b_t,\hat p_t\}_t^N {b^t,p^t}tN 作为输出,其中 b ^ t \hat b_t b^t 是第 i i i 个 Query 的预测边界框, p ^ ∈ [ 0 , 1 ] K \hat p \in [0,1]^K p^[0,1]K K K K 个语义类 pre-class 概率。
采用了辅助译码机制,在每个decoder层后加入 FFN 和监督。因此,可以从第一个decoder层得到初始边界框。

LiDAR-Camera 融合

图像特征提取

点级融合融合质量在很大程度上受到激光雷达点稀疏性的限制。当一个物体只包含少量的激光雷达点时,它只能获取相同数量的图像特征,浪费了高分辨率图像丰富的语义信息。

论文不提取基于激光雷达点和图像像素之间的硬关联的多视图图像特征。保留所有图像特征 F C ∈ R N v × H × W × d F_C\in R^{N_v×H×W×d} FCRNv×H×W×d 作为 memory bank,并利用 transformer decoder 中的交叉注意机制,以稀疏到密集的自适应方式进行特征融合。
在这里插入图片描述在给定来自 convolutional backbones 的一个 LiDAR BEV 特征图和一个图像特征图的基础上,我们的基于 transformer 的检测头首先利用 LiDAR 信息将目标 queriers 解码为初始边界框预测,然后通过将目标 queries 与有用的图像特征集中融合,进行 LiDAR-camera 融合。

用于图像特征融合的SMCA(空间调制交叉注意)

为了降低带来的传感器标定敏感性和图像劣质特征对硬关联策略的影响,利用交叉关注机制建立了激光雷达与图像之间的软关联,使网络能够自适应地确定从图像中获取信息的位置和内容。

首先使用先前的预测和校准矩阵来识别对象 Queries 所在的特定图像,然后在对象 Queries 和相应的图像特征映射之间进行交叉注意。

然而,由于激光雷达特征和图像特征来自完全不同的领域,目标 Queries 可能涉及到与待预测边界框无关的视觉区域,导致网络需要很长的训练时间来准确识别图像上的正确区域。

SCMA:通过围绕每个 Query 的投影2D中心的2D圆形高斯掩码来加权交叉注意。然后,这个权重图与所有注意力头之间的交叉注意力图进行基本相乘。这样,每个对象 Query 只关注投影二维框周围的相关区域,从而使网络能够更好更快地根据输入的激光雷达特征学习在哪里选择图像特征。
在这里插入图片描述上图:第一行显示输入图像和投影在图像上的对象 Query 预测,第二行显示交叉注意图。
该网络通常倾向于关注靠近目标中心的前景像素,而忽略不相关的像素,为目标分类和边界框回归提供有价值的语义信息。

在SMCA之后,使用另一个FFN使用包含激光雷达和图像信息的对象 Queries 来产生最终的边界框预测。

图像引导 Query 初始化

recall也叫召回率,记做R,表示你预测的结果中有多少正样本被正确检测出来,当R=100%的时候,表示没有漏检

仅使用激光雷达特征进行选择对象 Query ,可能导致在检测召回率方面存在亚优性。

为了进一步利用高分辨率图像检测小目标的能力,并使算法对稀疏的激光雷达点云更具鲁棒性,利用激光雷达和相机信息选择对象 Query 。

通过与激光雷达BEV特征 F L F_{L} FL 交叉关注,将图像特征 F C F_C FC 投影到BEV平面上,生成一个激光雷达-相机BEV特征 F L C F_{LC} FLC
在这里插入图片描述
使用沿高度轴折叠的 multiView 图像特征作为注意力机制的 key-value 序列。折叠操作基于观察到BEV位置与图像列之间的关系可以很容易地利用摄像机几何来建立,通常每个图像列上最多有一个物体。
因此,沿高度轴折叠可以在不丢失关键信息的情况下显著减少计算量。 虽然在这个过程中可能会丢失一些细粒度的图像特征,但它已经满足了需要:因为它只需要对潜在的目标位置进行提示。使用 F L C F_{LC} FLC来预测 heatmap,并用仅有激光雷达的 heatmap S ^ \hat S S^ 进行平均,作为最终的 heatmap S ^ L C \hat S_{LC} S^LC。利用 S ^ L C \hat S_{LC} S^LC 选择和初始化目标 Query ,模型就能够检测出激光雷达点云中难以检测的目标。

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

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

相关文章

在 Python 中使用令牌进行 API 调用

文章目录 在 Python 中进行不带令牌的 API 调用在 Python 中使用令牌调用 API总结 当我们第一次遇到如何在 Python 中调用 API 的问题时,我们的第一个想法是,“什么是 API?”。 API是应用程序编程接口的首字母缩写; 它允许您访问…

【面试】Java并发编程

ThreadLocal ThreadLocal 为什么会导致内存泄漏 hreadLocalMap使用ThreadLocal的弱引用作为key,如果一个ThreadLocal不存在外部强引用时,Key(ThreadLocal)势必会被GC回收,这样就会导致ThreadLocalMap中key为null, 而value还存在着…

15-ajax、实现过程、封装

定义 🍿🍿🍿Async Javascript and XML 异步的JavaScript 和XML,是一种创建交互式网页应用的网页开发技术,可以在不重新加载整个网页的情况下,与服务器交换数据,并且更新部分网页 离不开 XMLH…

【C语言】万字教学,带你分步实现扫雷游戏(内含递归函数解析),剑指扫雷,一篇足矣

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 带你轻松玩转扫雷游戏 前言一. 扫雷游戏的介绍以及内部需要实现的功能解析1.什么是扫雷游戏2.扫雷游戏所需的几个步骤 二.扫雷游戏的具体实现1.打印菜单菜单上的选择功能 2.初始化以及打印棋盘初始化函数InitBoard打印棋…

如何使用测试驱动开发(TDD)来实现100%的测试覆盖率?

本文以 DDM 为例,简单地介绍一下如何用测试驱动开发(TDD, Test-Driven Development)的方法来驱动出这个函数库。 本文以DDM为例,简单地介绍一下如何用测试驱动开发(TDD, Test-Driven Development)的方法来驱动出这个函数库。 DDM简介 DDM是…

vue-cli3的安装和项目创建

一 vue-cli3的安装 (注意:vue-cli3在安装之前,需要先删除旧版本,即vue-cli2) cnpm i -g vue/cli vue-cli3的卸载:cnpm uninstall -g vue/cli 然后用命令“vue -V”查看是否删除vue,如果没有删…

kafka原理架构深入

目录 1. 下载安装2. 命令行命令3. 概述3.1 定义3.2 基本架构 4. 架构深入4.1 生产者4.1.1 分区4.1.2 数据可靠性保证4.1.3 Exactly Once语义4.1.4 发送消息流程 4.2 broker4.2.1 日志结构4.2.2 存储策略4.2.3 Controller & ZooKeeper4.2.4 高效读写数据 4.3 消费者4.3.1 消…

模型-视图-控制器模式(MVC模式,10种常见体系架构模式之一)

、简介: 架构模式是一个通用的、可重用的解决方案,用于在给定上下文中的软件体系结构中经常出现的问题。架构模式与软件设计模式类似,但具有更广泛的范围。 模型-视图-控制器模式,也称为MVC模式。是软件工程中的一种软件架构模式&…

Word模板引擎poi-tl

文章目录 ◆ 方案对比◆ 版本◆ 特性◆ 模板◆ 数据◆ 输出◆ 数据模型◆ 标签1. 文本2. 图片3. 表格4. 列表5. 嵌套6. 区块对 ◆ SpingEL2. 单系列图标3. 多系列图标4. 组合图表 ◆ 配置1. 标签前后缀2. 标签类型3. 标签匹配值4. 标签值计算5. SpringEL6. 数据模型序列化7. 错…

设计模式之抽象工厂笔记

设计模式之抽象工厂模式笔记 说明Abstract Factory(抽象工厂)目录UML抽象工厂示例类图甜品抽象类甜品提拉米苏类甜品抹茶慕斯类 咖啡抽象类美式咖啡类拿铁咖啡类 甜品工厂接口美式风味的甜品工厂意大利风味的甜品工厂 测试类模式扩展 说明 记录下学习设计模式-抽象工厂模式的写…

吴恩达471机器学习入门课程3第1周——K-means

K-means 聚类 1 - 实现 K-means1.1 找到最近的质心练习11.2 计算质心均值练习2 2 - K-means在样本数据集上的应用3 - 随机初始化4 - K-means图像压缩4.1 数据集可视化处理数据 4.2图像像素上的 K-mean4.3 压缩图片 实现 K-means 算法,并将其用于图像压缩。 您将从一…

Autoware 跑 Demo(踩坑指南)

Autoware 跑 Demo(踩坑指南) 网上的博客和官方的教程,几乎都是一样的,但实际上跑不起来 Autoware 1.12学习整理–01–运行rosbag示例 Autoware入门学习(三)——Autoware软件功能使用介绍(1/3&a…

MySQL的IF(exp1, exp2, exp3)、IFNULL(exp1, exp2)函数的用法

本章主要是讲解一下mysql的常用方法if()和ifnull()的使用 1、if(exp1, exp2, exp3) 如果表达式exp1成立,则返回的结果是表达式exp2,否则返回的是表达式exp3 案例:现在有一个星印类型表xingyin_type 通过这个表来介绍一下这个函数的使用 sel…

轻松掌握Seata源码分析之AT模式整体大纲流程跟踪

如下为订单和库存的实例代码,在事务开启处即订单服务处使用GlobalTransactional即可。当添加了异常代码使订单无法加一,这时减库存服务也会回滚,根据的就是undolog。回滚完undolog记录会被释放删除。 AT模式整体大纲流程跟踪如下&#xff1…

第37步 深度学习图像识别:CNN建模(Tensorflow)

基于WIN10的64位系统演示 一、写在前面 (1)深度学习图像识别的原理 我们思考一下,当你看到一张椅子的图片,你的大脑会告诉你这是个椅子,但你有没有想过:为什么你知道这是椅子,你的大脑是怎么…

【Spring Cloud 系列】Eureka控制台参数说明

【Spring Cloud 系列】Eureka控制台参数说明 前面我们在《Eureka使用详解》一文中介绍了Eureka的使用。本文将介绍Eureka控制板面各参数: System Status 编号名称说明1Environment环境,默认为test,该参数在实际使用过程中,可以不…

单目标应用:Tiki-taka算法(TTA)求解太阳能光伏模型MATLAB

一、四种太阳能光伏模型 随着石油、煤炭、天然气等不可再生能源的快速枯竭,以及空气环境的严重污染,可持续、无污染的能源供应成为热点和关键问题。风能、太阳能、水能、潮汐能等可再生能源的开发利用,必然在未来的可持续发展中发挥至关重要…

德国企业数据统计分析【1】-基于pandas的GENESIS ONLINE数据简单统计与柱状图可视化

引言: 德国拥有很多年销售额不超过50亿美元的中小企业,但他们却是某些细分制造、工业领域的翘楚。并且隐身于大众视野之外。此处,隐形冠军指的就是细分领域行业处于绝对领先地位并且年销售额不超过50亿美元的中小企业。这一概念是由德国著名中小企业管理学家赫尔曼西蒙创立的…

电脑开机密码忘记了怎么办?使用优盘重装系统

大家可以在网上搜索,其他方法。尽量找回密码。我这是因为已经很久没有使用这个电脑,而且c盘也没有怎么重要资料的情况下。我才选择重装系统的。 请慎重。 前期准备: 1、准备一个4G以上的U盘 2、备份U盘重要文件,制作过程中会格式…

「深度学习之优化算法」(五)差分进化算法

1. 差分进化算法简介 (以下描述,均不是学术用语,仅供大家快乐的阅读) 差分进化算法(Differential Evolution Algorithm,DE)是一种基于群体的进化算法,它模拟了群体中的个体的合作与竞…