《ODIN: A Single Model for 2D and 3D Segmentation》CVPR2024

斯坦福和微软:

代码链接:ODIN: A Single Model For 2D and 3D Perception 

论文链接:2401.02416

摘要

这篇论文介绍了ODIN(Omni-Dimensional INstance segmentation),一个能够同时处理2D RGB图像和3D点云的单模型,用于进行2D和3D的实例分割。ODIN采用Transformer架构,交替融合2D内视图和3D跨视图信息。该模型通过位置编码区分2D和3D特征操作,捕捉2D补丁标记的像素坐标和3D特征标记的3D坐标。ODIN在多个3D实例分割基准测试中取得了最先进的性能,并在2D COCO基准测试中展现了竞争力。此外,当ODIN作为可指令实体代理架构中的3D感知引擎时,它在TEACh动作对话基准测试中设定了新的最先进性能。代码和检查点可以在项目网站找到。

拟解决的问题

论文挑战了2D和3D感知需要不同模型架构的观点,提出了一个统一的模型来处理2D和3D分割任务。现有的3D分割模型通常在特定领域内训练,不利用大规模的2D预训练,而且性能上超过了那些将RGBD多视图图像特征化的方法。ODIN旨在通过一个模型处理2D和3D数据,减少这种性能差距,并提高对实际传感器数据的处理能力。

创新之处

  1. 统一架构:提出了一个单一模型,能够处理2D图像和3D点云,挑战了2D和3D感知需要不同架构的传统观点。
  2. Transformer架构:模型使用Transformer架构,交替融合2D内视图和3D跨视图信息,这有助于提高分割的准确性。
  3. 位置编码:通过位置编码区分2D和3D特征操作,这是一个新颖的方法来处理不同维度的数据。
  4. 跨视图融合:模型在2D到3D转换时使用深度图和相机参数,这有助于提高3D实例分割的性能。
  5. 开放词汇类解码器:引入了能够处理任意数量语义类别的开放词汇类解码器,这对于多数据集的联合训练至关重要。
姿态RGB-D图像是指一组与相机姿态(位置和方向)相关联的RGB图像和相应的深度图像。
右图:在每个 2D 到 3D 转换中,ODIN 使用感知深度和相机内在和外在将 2D 特征标记投影到它们的 3D 位置。

方法

ODIN的架构包括以下几个关键部分:

  • 2D内视图融合:使用预训练的2D骨干网络(如ResNet50或Swin Transformer)处理单个RGB图像或多视图RGB-D图像。
  • 3D跨视图融合:通过3D注意力机制和相对位置编码,实现跨视图的特征融合。
  • 2D到3D的反投影:将2D特征映射到3D位置,使用深度图和相机参数。
  • 3D到2D的投影:将3D特征投影回2D位置,以便后续的2D模块处理。
  • 跨尺度融合和上采样:合并不同分辨率的特征图,并使用上采样层提高分辨率。
  • 共享2D-3D分割掩码解码器:使用Transformer架构,输出2D或3D分割掩码和语义类别。

ODIN的体系结构如图2所示。它采用单个RGB图像或一组提出的RGB-D图像(即与深度图和相机参数相关的RGB图像),并输出相应的2D或3D实例分割掩码及其语义标签。为了实现这一点,ODIN 在 2D 视图内融合和基于 3D 注意力的跨视图融合之间交替,如图 2 中的蓝色块和黄色块所示。分割解码头预测实例掩码和语义标签。值得注意的是,ODIN 在 RGB 和多视图 RGB-D 输入之间共享大部分参数。

4.1 视图内2D融合

ODIN使用预训练的2D骨干网络(如ResNet50或Swin Transformer),这些网络在2D COCO实例分割任务上进行了预训练。当只有一个 RGB 图像可用时,将其传递给完整的主干以获得多个尺度的 2D 特征。当姿势的 RGB-D 序列可用时,这种 2D 处理与 3D 阶段交错,通过交错视图内和跨视图上下文化,能够利用来自 2D 主干的预训练特征,同时还融合跨视图的特征,使它们 3D 一致。

4.2 跨视图3D融合

跨视图融合的目标是使单个图像的表征在视图之间保持一致,跨视图特征一致性对于 3D 实例分割至关重要:它使分割头能够意识到从多个视图观察到的 3D 对象确实是单个实例,而不是每个视点中的一个单独实例。

1. 2D到3D反投影:每个2D特征图被映射到3D空间,使用深度图和相机的内外参。这可以通过以下公式表示:

3D位置=相机内参×(相机外参×2D位置)+相机外参的平移部分

然后,这些3D位置通过体素化(voxelization)处理,将3D空间离散化为体素网格,并对每个体素内的特征和坐标进行平均池化,得到3D特征标记。

2. 3D k-NN Transformer与相对位置编码:使用k最近邻(k-NN)注意力机制来融合3D标记之间的信息。每个3D标记只关注其k个最近邻。相对位置编码通过一个多层感知机(MLP)实现,将标记之间的距离向量编码为相对位置嵌入。公式如下:

 其中,p_{i}(N × 1 × 3)代表3D标记,p_{j}(N ×k ×3)代表每个p_{i}的k个最近邻。

通过这种方式,注意力操作对 3D 令牌的绝对坐标是不变的,仅取决于它们的相对空间排列。虽然每个 3D 令牌总是关注相同的 k 个邻居,但它的有效感受野跨层增长,因为当邻居执行自己的注意力时,邻居的特征会更新

3. 3D到2D投影:将3D特征投影回其原始2D位置。首先,将每个体素的特征复制到该体素内的所有点,然后将这些点重新塑形为多视图2D特征图。在这个转换中,特征向量是不变的;差异在于它们的解释和形状。在 2D 中,特征的形状为 V × H × W × F ,表示每个视图的特征图,在 3D 中,它们的形状为 N ×F ,表示统一的特征云,其中 N = V · H · W。(V代表试图个数,N代表总的体素数或点数)

4.3 跨尺度融合和上采样

多尺度注意力:在三个最低分辨率尺度(1/32、1/16、1/8)上,使用可变形的2D注意力机制合并特征图。

额外的3D融合层:在每个尺度上,对于3D输入,应用额外的3D融合层以恢复3D一致性。

上采样:在1/8分辨率的特征图上使用上采样层,将其带到1/4分辨率,并与骨干网络中的1/4特征图进行跳跃连接。

 4.4 传感器深度到网格点云特征传递

对于需要在网格点云上进行标签的任务(如ScanNet),使用三线性插值将1/8分辨率的特征图特征插值到网格点云上。

4.5 共享2D-3D分割掩码解码器

Transformer解码器:类似于Mask2Former的解码器头,输入上采样的2D或3D特征图,输出相应的2D或3D分割掩码和语义类别。

可学习的物体查询:初始化一组可学习的物体查询,负责解码单个实例。这些查询通过查询细化块进行迭代细化,包括对上采样特征的交叉注意力和查询之间的自注意力。

4.6 放词汇类解码器

引入了一种能够处理任意数量的语义类的替代分类头。这种修改对于在多个数据集上联合训练至关重要。与BUTD-DETR和GLIP类似,使用通过将对象类别连接到句子中形成的检测提示(例如,“Chair.表。Sofa.”)并使用RoBERTa对其进行编码。在查询细化块中,查询在关注上采样的特征图之前额外关注这些文本标记。对于语义类预测,我们首先在查询和语言标记之间执行点积操作,在检测提示中生成每个令牌的一个 logit。然后将与特定对象类的提示标记对应的 logits 进行平均以导出每个类的 logits。这可以处理多词名词短语,例如“淋浴窗帘”,其中我们对对应于“淋浴”和“curtain”的 logits 进行平均。分割掩码由像素/逐点点积预测,其方式与前面描述的相同。

结论

ODIN模型在多个3D实例分割基准测试中取得了最先进的性能,并在2D COCO基准测试中展现了竞争力。实验表明,ODIN在处理实际传感器数据时性能优于其他方法,并且通过联合训练2D和3D数据集,模型在3D任务上的表现得到了提升。此外,ODIN在作为实体代理架构中的3D对象分割器时,也在TEACh基准测试中设定了新的最先进性能。论文的结论强调了ODIN在2D和3D分割任务中的有效性和潜力,并指出了未来的研究方向,包括提高模型对噪声的鲁棒性以及探索更大规模的2D和3D数据集的联合训练。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从视觉到雷达:多模态感知如何引领自动驾驶安全革命

文章目录 摘要引言多模态感知融合的原理与架构感知技术的特点多模态感知融合的目标 数据融合实现示例代码结构与主要组件模型定义 MultimodalFusionModel前向传播(forward 方法)模型细节剖析实践应用 QA环节总结参考资料 摘要 本文探讨了多模态感知技术…

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…

ElasticSearch如何做性能优化?

大家好&#xff0c;我是锋哥。今天分享关于【ElasticSearch如何做性能优化&#xff1f;】面试题。希望对大家有帮助&#xff1b; ElasticSearch如何做性能优化&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 在 Elasticsearch 中&#xff0c;性能优化是…

AI开发: 知识图谱的初识,学会制作知识图谱- Python 机器学习

一、知识图谱的概念 知识图谱是一个通过图结构来表示和组织知识的工具&#xff0c;它将事物、概念和它们之间的关系以图的形式呈现出来&#xff0c;图中的节点代表实体&#xff08;比如人物、地点、事件等&#xff09;&#xff0c;而边代表这些实体之间的各种关系&#xff08;…

软考高级难度排名,哪个科目容易过?

软考高级五个科目&#xff0c;哪个比较好考&#xff1f;今天就来和大家聊一聊~ 一、软考高级科目设置 高级科目包含&#xff1a;信息系统项目管理师、系统分析师、系统架构设计师、网络规划师以及系统规划与管理师5个科目。 1. 信息系统项目管理师 信息系统项目管理师&#…

浅谈网络 | 应用层之云网络隔离GRE/VXLAN

目录 前言GRE 隧道技术VXLANGRE/VXLAN接入云平台 前言 之前提到&#xff0c;为云平台中的租户实现隔离时&#xff0c;常用的策略是基于 VLAN。然而&#xff0c;VLAN 只有 12 位&#xff0c;共支持 4096 个 ID&#xff0c;这在最初设计时看似足够&#xff0c;但随着云计算的快速…

上海交通大学《2024年816自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《上海交通大学816自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2024年真题 Part1&#xff1a;2024年完整版真题 2024年真题

零基础入门 Pyecharts 实用教程:从基础绘图到进阶技巧

简介&#xff1a;本文面向 Python 数据可视化初学者&#xff0c;脚踏实地分享 Pyecharts 库的使用经验。从查看 Pyecharts 版本起步&#xff0c;详细拆解绘制首个图表的全过程&#xff0c;涵盖导入模块、设置坐标轴、渲染 HTML 文件等基础操作&#xff1b;点明链式调用的版本要…

STM32 通过读取看门狗溢出标志检测程序是否发生复位

通过 __HAL_RCC_GET_FLAG 函数&#xff0c;读取看门狗溢出标志检测程序是否发生复位&#xff0c; 目录 一、__HAL_RCC_GET_FLAG 函数二、Stm32CubeMx配置三、代码编写四、运行效果 一、__HAL_RCC_GET_FLAG 函数 HAL库的 __HAL_RCC_GET_FLAG 函数可以获取到程序是否发生过看门狗…

记一次由docker容器使得服务器cpu占满密码和密钥无法访问bug

Bug场景&#xff1a; 前几天在服务器上部署了一个免费影视网站&#xff0c;这个应用需要四个容器&#xff0c;同时之前的建站软件workpress也是使用docker部署的&#xff0c;也使用了三个容器。在使用workpress之前&#xff0c;我将影视软件的容器全部停止。 再使用workpress…

Linx下自动化之路:Redis安装包一键安装脚本实现无网极速部署并注册成服务

目录 简介 安装包下载 安装脚本 服务常用命令 简介 通过一键安装脚本实现 Redis 安装包的无网极速部署&#xff0c;并将其成功注册为系统服务&#xff0c;开机自启。 安装包下载 redis-7.0.8.tar.gzhttp://download.redis.io/releases/redis-7.0.8.tar.gz 安装脚本 修…

开发 UEFI 驱动

服务型驱动的特点&#xff1a; 1&#xff09;在 Image 的入口函数中执行安装&#xff1b; 2&#xff09;服务型驱动不需要驱动特定硬件&#xff0c;可以安装到任意控制器上&#xff1b; 3&#xff09;没有提供卸载函数。 一个设备 / 总线驱动程序在安装时首先要找到对应的硬件…

实现 DataGridView 下拉列表功能(C# WinForms)

本文介绍如何在 WinForms 中使用 DataGridViewComboBoxColumn 实现下拉列表功能&#xff0c;并通过事件响应来处理用户的选择。以下是实现步骤和示例代码。 1. 效果展示 该程序的主要功能是展示如何在 DataGridView 中插入下拉列表&#xff0c;并在选择某一项时触发事件。 2.…

传输层5——TCP可靠传输的实现(重点!!)

TCP协议如何实现可靠传输&#xff1f;确保接收方收到数据&#xff1f; 需要依靠几个结构&#xff1a; 以字节为单位的滑动窗口 这其中包括发送方的发送窗口和接收方的接收窗口 下面的描述&#xff0c;我们指定A为发送端口&#xff0c;B为接收端口 TCP的可靠传输就是靠着滑动窗口…

java Random随机数

Randoms是什么 在Java中&#xff0c;Random类是用于生成伪随机数的工具。它位于java.util包中。以下是一些使用Random类生成不同类型的随机数的方法&#xff1a; 1 创建 Random 类的实例 2 生成一个随机的int值&#xff08;范围从Integer.MIN_VALUE到Integer.MAX_VALUE&#…

React的复制粘贴组件——React Copy to Clipboard

React Copy to Clipboard是一个用于在React应用程序中复制文本到剪贴板的库。它提供了一个简单的方式来实现复制到剪贴板的功能&#xff0c;支持多种浏览器和设备。 安装 你可以使用npm或yarn来安装React Copy to Clipboard&#xff1a; npm install react-copy-to-clipboa…

【Android Studio】学习——网络连接

实验&#xff1a;Android网络连接 文章目录 实验&#xff1a;Android网络连接[toc]实验目标和实验内容&#xff1a;1、掌握Android联网的基本概念&#xff1b;2、能够使用URL connection实现网络连接&#xff1b;3、掌握第三方库的基本概念4、需实现的具体功能 实验结果功能说明…

泷羽Sec-星河飞雪-bp验证码爆破

免责声明 学习视频来自 B 站up主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识&#xff0c;以下代码、网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 泷羽sec官网&#xff1a;http…

基础算法——搜索与图论

搜索与图论 图的存储方式2、最短路问题2.1、Dijkstra算法&#xff08;朴素版&#xff09;2.2、Dijkstra算法&#xff08;堆优化版&#xff09;2.3、Bellman-Ford算法2.4、SPFA求最短路2.5、SPFA判负环2.6、Floyd算法 图的存储方式 2、最短路问题 最短路问题可以分为单源最短路…

C#构造函数 析构函数 静态成员(类) 密封类 字段以及属性

每当创建类或结构的实例时&#xff0c;将会调用其构造函数。 类或结构可能具有采用不同参数的多个构造函数。 使用构造函数&#xff0c;程序员能够设置默认值、限制实例化&#xff0c;并编写灵活易读的代码 如果静态构造函数尚未运行&#xff0c;静态构造函数会在任何实例构造…