Deepinteraction 深度交互:通过模态交互的3D对象检测
一.前提
为什么要采用跨模态的信息融合?
点云在低分辨率下提供必要的定位和几何信息,而图像在高分辨率下提供丰富的外观信息。 -->因此必须采用跨模态的信息融合
提出的原因?
传统的融合办法可能会由于信息融合到统一表示中的不太完美而丢失很大一部分特定模态的信息。所以为了克服传统融合的限制提出了这篇论文。
关键思想是什么?
不是推导一个融合的单一表示,而是学习和保持两个特定模态的表示,以实现模态间的交互,从而可以自发地实现信息交换和特定模态的优势。
传统的融合办法和本文提出的办法对比?
(a):传统的办法 是将个体的各模态融合成一个单一的混合表示
(b):基于多模态交互的3D检测 通过编码器中的表示交互和解码器的预测交互,可以保持两个特定模态交互
二.主体结构
由两个重要组件组成: 1.具有多模态表征交互的编码器 2.具有多模态预测交互的解码器
1.编码器:多模态表征交互
(1).我们的编码器有多输入多输出结构 生成两个经过精细化处理的表示或图形输出。
(2).输入:以图像透视表征
和LiDAR BEV表征
两种模态的表征。
(3).方法:跨模态对应映射和采样为了定义跨模态邻接,我们首先需要在表示
和
之间建立像素到像素的对应关系 --> 我们在图像坐标帧c和BEV坐标帧p(Mp→c和Mc→p)之间构建密集映射。
(a).图像-Lidar特征交互 将图像特征中的视觉信号传播到激光雷达BEV特征中
1.从图像到LiDAR BEV坐标帧
首先将点云每个点(即坐标 coord)投影到多相机图像(i,j)中,再进行采样形成稀疏深度图
(
)
2.这一步完全就是引用的是transformer里面的self-attention 利用qkv的矩阵构建查询,键,值产生attention(是由权重计算得来的)
3.将加权后的特征表示
散布在LiDAR数据空间
(b).Lidar-图像特征交互
与上述相同
2.解码器:多模态预测交互
: 可能代表“边界框”(bounding box),用于表示图像中检测到的对象区域
Q:代表查询
C:代表通道
(a).MMPI-image
1.输入:特征
通过
边界框 提取感兴趣的区域 -->可以得到ROI 特征
2.查询特征->输入多头注意力机制 -> 残差连接和层归一化 ->线性层->将区域特征和查询特征->进行乘法-归一化-激活 -> 残差连接和层归一化 -> FFN前馈神经网络
(b).MMPI-LiDAR
同上
三.实验
1.表一:
-
表示使用测试时候增强
测试时增强并且使用模型集成
采用了多个
模型
这是一个在nuScenes测试集上最先进的方法比较
DeepInteraction-base (基础版本)在相同的Backbone中它的准确度最高 并且test和val集准确度都差不多
DeepInteraction-large (大规模版本) 在测试时增强的时候 测试集比预测集准确度明显较多(与其他相同情况下的比较下)
- Deeplnteraction-large以相同的TTA和测试时间大大击败了最接近的竞争对手LargeKernel3D-F。
- 我们的集成版本Deepnteraction-e在nuScenes排行榜上的所有解决方案中排名第一。
- 这些结果验证了我们的多模态交互方法的性能优势
2.表二:运行时间比较
FPS: 这个是指分辨率
多视角高分辨率相机图像的特征提取贡献了多模态3D检测器的大部分总体延迟。
3.表三:解码器的消融研究:在nuScenes值计算mAP和NDS
a):比较多模态预测交互(MMPI)和DETR解码器的层 -->来评估解码器层的设计
我认为L和C使用MMPI的效果更好一点
b): 从mAP和NDS的结果来看,使用LiDAR与图像交替的方法(LiDAR-image alternating),在目标检测性能上相对于仅使用LiDAR的方法有一定提升。这可能归因于图像能够提供更多的上下文信息,帮助模型更好地理解场景。
c):解码层增加到5层是最优的
d):在不同的选择下,性能是稳定的,200/300用于训练/测试作为最佳设置。
4.表四:表征相互作用编码器的烧灼研究
- IML:模态内学习 MMRI:多模态表征相互作用
a):编码器设计
MMRI可以显著提高IML的性能 单用的话 MMRI比IML的效果好
b):编码器层数
堆叠编码器层用于迭代MMRI是有益的
c):表征交互和传统的表征融合
Representational fusion:一种传统的特征融合方法,通常通过简单地结合不同模态的特征来进行目标检测
Representational interaction (Ours):表示提出的新方法,强调特征之间的交互作用,可能通过更复杂的方式来融合不同模态的信息
我们提出的效果 新方法更加有效
5.表五:不同激光雷达主干网的评价
(a):基于柱子的比较 (b)基于体素的比较
1.提出的多模态交互策略DeepInteraction在使用任何一种主干网时都比激光雷达基线表现出一致的改进
2.基于体素的主干网提高5.5% mAP,基于支柱的主干网提高4.4%mAP
3.我们的DeepInteraction在不同点云编码器中的通用性。
6.表六:与激光雷达
我们的融合方法在所有类别上都取得了显著的改进,特别是在微小或稀有物体类别上(自行车+11.8%mAP,摩托车+6.9% mAP,交通锥+9%mAP)
相关文章:

Deepinteraction 深度交互:通过模态交互的3D对象检测
一.前提 为什么要采用跨模态的信息融合? 点云在低分辨率下提供必要的定位和几何信息,而图像在高分辨率下提供丰富的外观信息。 -->因此必须采用跨模态的信息融合 提出的原因? 传统的融合办法可能会由于信息融合到统一表示中的不太完美而丢失很大一部分特定…...
开展物业满意度调查的策略与注意事项
(专业物业满意度调查公司)在物业管理领域,满意度调查是一项重要的工作,可以帮助物业公司了解居民的需求和期望,及时发现并解决问题,提升服务质量。民安智库作为专业调查咨询机构,拥有丰富的实战…...
如何使用 Maven 不同环境使用不同资源文件 提升项目安全性
需求: 之前的文章介绍过,不同环境,配置文件可以灵活构建,参考Maven 不同环境灵活构建。 进一步的,打包时时可以进一步优化,即开发环境,构建时只将测试资源文件打包到应用中,进一步提…...
QT 如何置顶窗口并激活
基本上,客户端软件都会有置顶某个窗口的需求。置顶窗口激活窗口,两者不是同一个问题。有时候窗口置顶了,并不代表该窗口属于激活状态。本文将尝试把这两个问题一起解决了,请看下文: 一、置顶窗口 通过函数setWindowF…...
嵌入式面试刷题(day19)
Makefile和Cmake的区别 Makefile 和 CMake 都是用于构建和管理软件项目的工具,但它们有不同的设计理念和使用方式。以下是二者的主要区别: 1. 概念和工作原理 Makefile: Makefile 是 make 工具的配置文件,定义了如何编译和链接程序。它基于文件的时间戳,使用规则(规则指…...

Robot Framework命令和Tag运用
前面的文章中我们为大家介绍了市面上常见自动化测试框架的解读以及Robot Framework的环境搭建,本文我们继续为大家介绍Robot Framework命令和Tag的运用,首先我们先一起看一下Robot Framework有哪些命令。 Robot Framework命令 先来看这一条:…...

软件分享丨PDF Shaper
【资源名】PDF Shaper 【地址】https://www.pdfshaper.com/ 【资源介绍】 PDF Shaper Professional是一款功能强大的PDF文档编辑与转换工具,使用它可以对PDF文件进行各种转换、提取、合并、旋转、加密、解密等编辑操作,主要功能有分割和合并PDF文件&…...

pytorch的标签平滑介绍
什么是标签平滑(Label Smoothing)? 标签平滑(Label Smoothing)是一种正则化技术,旨在防止模型过度自信(即输出的概率分布过于“尖锐”)。在分类任务中,标准的目标标签是one-hot编码,也就是正确类别的概率为 1,其他类别的概率为 0。而标签平滑通过将正确类别的概率从…...
CTE 与存储过程:SQL 查询简化与复杂业务逻辑处理的最佳选择
CTE(Common Table Expression,公共表表达式)和存储过程是两种不同的SQL工具,分别用于解决不同的问题。它们各有优缺点,适用于不同的场景。让我们从以下几个方面来比较它们: 1. 定义与作用 CTE:…...
mysql delete命令操作后,数据库文件大小并未变化,该怎么解决?
在 MySQL 中,使用 DELETE 命令删除数据后,数据表的大小可能不会立即减小,因为 MySQL 并不总是立即回收已删除数据所占用的空间。这是因为 MySQL 的存储引擎(如 InnoDB)可能会保留这些空间以备将来插入新数据时使用&…...
GitLab 发布安全补丁版本 17.3.2, 17.2.5, 17.1.7
本分分享极狐GitLab 补丁版本 17.4.2, 17.3.5, 17.2.9 的详细内容。这几个版本包含重要的缺陷和安全修复代码,我们强烈建议所有私有化部署用户应该立即升级到上述的某一个版本。对于极狐GitLab SaaS,技术团队已经进行了升级,无需用户采取任何…...
data_table_2 与 flutter 官方 DataTable 的区别
data_table_2 与 flutter 官方 DataTable 的区别 https://blog.csdn.net/ken2232/article/details/143181634 flutter 数据表增强库 data_table_2 错误问题 记录 (****) https://blog.csdn.net/ken2232/article/details/143180018 data_table_2 与 flutter 官方 DataT…...

TRIZ创新方法培训值得去吗?
面对日益复杂的市场环境和竞争态势,掌握有效的创新方法不仅关乎企业的生死存亡,也直接关系到个人的职业成长与竞争力。TRIZ作为一种系统化的创新方法论,其培训课程正逐渐受到企业和个人的广泛关注。那么,TRIZ创新方法培训究竟值得…...

STM32之基本定时器TIM6和TIM7
1.定时器概念和作用 在编程任务中,定时器是非常常用的一个问题。当需要定时发送数据,定时起某个任务,定时做某个操作等等,这些都离不开定时器。本文基于以STM32F4xx系列开发板,介绍一下基本定时器。 2.基本定时器TIM…...
嵌入式※~MCU~LWIP~TCPS/HTTPS等
单片机MCU中的加密通道, 使用各种的加密通道, http / tcp / mqtt 等 可能不在重复发了 ~~ 请看链接吧~~~ 我自己的原文哦~ https://blog.51cto.com/whaosoft/11803802...
神经网络model训练时loss=nan【原因总结】
一、Loss functions 中含 F.log_softmax()函数 原因: 由于在计算log_softmax(x)时, 出现log(0)的情况。 解决方法: 给log_softmax的参数x添加一个很小的数: out=F.log_softmax(x+1e-10).二、loss_function(x)函数参数中出现nan 原因: 网络的生成features x 中含有nan. 解…...
【力扣 | SQL题 | 每日5题】力扣2362, 2356, 2394, 2480, 2388
1. 力扣2362:生成发票 1.1 题目: 表: Products ------------------- | Column Name | Type | ------------------- | product_id | int | | price | int | ------------------- product_id 包含唯一值。 该表中的每一行显示了一个产品的 ID …...

直播间“饕餮盛宴”的背后,是“他经济”正在冒头
最近,一个有意思的现象逐渐露出了苗头。 今年“双11”第一轮尾款开启支付的当晚,罗永浩的直播间上演了一出别样的“饕餮盛宴”。直播开场后,iphone16系列、可口可乐(含糖、无糖300ml)10秒售罄,索尼PS5、沃…...

盘点5款常用的环境部署工具
在现代软件开发中,环境部署工具扮演着重要角色,特别是在 PHP 开发和微服务架构中。本文将深入探讨几种主流的环境部署工具,包括 XAMPP、Servbay、MAMP、Laravel Herd 和 Docker,详细分析它们的特点、优缺点、适用场景及最佳实践&a…...

条码检测系统——基于MATLAB的一维条码识别
条码检测系统——基于MATLAB的一维条码识别 摘 要:条码技术是如今应用最广泛的识别和输入技术之一,由于其包含的信息量大,识别错误率低而在各个方面得到很大的重视。它发展迅速并被广泛应用于于工业、商业、图书出版、医疗卫生等各行各业。由…...
HTML 语义化
目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案: 语义化标签: <header>:页头<nav>:导航<main>:主要内容<article>&#x…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互
物理引擎(Physics Engine) 物理引擎 是一种通过计算机模拟物理规律(如力学、碰撞、重力、流体动力学等)的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互,广泛应用于 游戏开发、动画制作、虚…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...

HashMap中的put方法执行流程(流程图)
1 put操作整体流程 HashMap 的 put 操作是其最核心的功能之一。在 JDK 1.8 及以后版本中,其主要逻辑封装在 putVal 这个内部方法中。整个过程大致如下: 初始判断与哈希计算: 首先,putVal 方法会检查当前的 table(也就…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...