《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数据集的联合训练。

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

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

相关文章

三、代码管理-Git

文章目录 前言一、Git1. Git 与 SVN 区别2. Git 入门3. 客户端工具4. 主流Git仓库 二、GitLab1. 介绍2. 适合的场景 二、GitHub1. 介绍2. 适合的场景 三、Gitee1. 介绍2. 适合的场景 四、GitCode1. 介绍2. 适合的场景 五、总结 前言 代码托管‌ Git作为目前最为流行的版本控制…

npm, yarn, pnpm之间的区别

前言 在现代化的开发中,一个人可能同时开发多个项目,安装的项目越来越多,所随之安装的依赖包也越来越臃肿,而且有时候所安装的速度也很慢,甚至会安装失败。 因此我们就需要去了解一下,我们的包管理器&#…

vscode上传本地文件到服务器

vscode上传本地文件到服务器 首先下载插件SFTP,我们通过ftp进行文件传输 VScode打开要传输的文件 使用快捷键 ctrlshiftP 打开搜索窗口,搜索SFTP 点击之后vscode文件夹下会生成对应json文件 我们编辑json信息根据远程的服务器情况填写,比如…

Next.js 实战 (二):搭建 Layouts 基础排版布局

前言 等了许久,Next.js 终于迎来了 v15.x 版本,刚好 Github 上面的旧项目重构完,终于可以放心大胆地去研究 Next.js了。 搭建最新项目可以参考官方文档:Installation 最新的 Next.js 版本,使用的是 React19.x 内测版…

Java的Stirng、StringBuilder、StringJoiner

黑马程序员Java个人笔记 目录 字符串比较 比较 boolean equals boolean equalsIgnoreCase 键盘录入和定义的字符串的比较 StringBuilder 打印 ​编辑 添加元素 反转 获取长度 toString 练习 对称字符串 拼接字符串 StringJoiner 概述 ​编辑 构造方法 只有…

elasticsearch(三)

文章目录 1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法 1.3.RestAPI实现聚合1.3.1.API语法1.3.2.业务需求1.3.3.业务实现 2.自动补全2.1.拼音分词器2.2.自定义分词器2.3.自动补全查询2.4.实现酒店搜…

Python_Flask03

这篇文章主要介绍的是数据库的增删改查操作,无多余好说的。 from flask import Flask from flask_sqlalchemy import SQLAlchemy from sqlalchemy import text from flask_migrate import Migrateapp Flask(__name__)# 本地基础信息的主机名 HOSTNAME "127.0…

Hive分区值的插入

对于Hive分区表,在我们插入数据的时候需要指定对应的分区值,而这里就会涉及很多种情况。比如静态分区插入、动态分区插入、提供的分区值和分区字段类型不一致,或者提供的分区值是NULL的情况,下面我们依次来展现下不同情况下的表现…

安达发|工业镜头APS高级排产的关键约束

工业镜头生产具有其特定的复杂性,如技术要求高、生产周期长、工序多等特点。在应用APS系统进行高级排产时,需要考虑以下关键约束: 1. 技术与质量约束 - 精度要求:工业镜头对精度的要求极高,这直接影响到排产计划中机加…

【SKFramework框架核心模块】3-9、资源模块

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 【Unity3D框架】SKFramework框架完全教程《全…

Swing中密码框组件

一、介绍 密码框(JPasswordField)与文本框的定义和用法基本相同,唯一不同的是密码框将用户输入的字符串以某种符号进行加密。密码框对象是通过javax.swing.JPasswordField类创建的。 二、常用构造方法 1、public JPasswordField() 2、pub…

SpringMVC ——(1)

1.SpringMVC请求流程 1.1 SpringMVC请求处理流程分析 Spring MVC框架也是⼀个基于请求驱动的Web框架,并且使⽤了前端控制器模式(是⽤来提供⼀个集中的请求处理机制,所有的请求都将由⼀个单⼀的处理程序处理来进⾏设计,再根据请求…

【英一】1998年

阅读1 suffering. 苦难at the mercy of. 完全受...的支配do ones bidding. 服从某人threaten to. 可能...(发生不好的事情)do more harm than good. 弊大于利strive to. 争取,努力assert. 主张cement. 巩固bid for. (尤指许下诺言)企图获得&…

BT.1120视频传输协议标准介绍

1.BT.1120 BT.656 协议主要是针对 PAL、NTSC下的标清视频。随着高清视频的发展的需要,又推出了 BT.1120 标准,它与 BT656 有许多类似的地方,不同点在于时钟频率更高了,更加适合高清视频的传输,隔行传输和逐行传输兼备。…

RabbitMQ学习-Eleven

SpringBoot中RabbitMQ的消息确认和Return机制 1.再application.yml文件中开启消息确认机制和return机制 spring:rabbitmq:publisher-confirm-type: simplepublisher-returns: true 2.创建confirm和return监听 // MsgConfirmAndReturn.java 中的代码片段Component public cla…

GAMES101 完结篇(笔记和作业)

写在前面 我已经把笔记和作业代码放在了GitHub上,欢迎访问GAMES101笔记及作业 (github.com),如果对你有帮助,欢迎fork or star 下面我想简单介绍一下这里面的东西 Homework Homework文件夹里有0~8的作业框架,参考的其他大佬的代…

修改mobaxterm字体为全绿色

修改前: 修改步骤步骤: 红色方框里面的颜色都改为绿色,然后点击OK 重启mobaxterm即可:

vue+mars3d叠加展示arcgis动态服务

数据格式:使用arcgis发布的动态服务 叠加和移除arcgis服务图层的方法 //加载arcgis地图服务function arcgisServer(i,d,m,p){i[d.data] new mars3d.layer.ArcGisLayer({name:d.label,url:p,flyTo: true})m.addLayer(i[d.data])}//移除arcgis服务范围线function rem…

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世,它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力,为人工智能技术的发展开辟了新的可能性。同时,人工智能技术正在进入各种应用领…

241205_给自己的应用加上语音助手功能

241205_给自己的应用加上语音助手功能 前面我们自己做了一个网易云音乐,但每次都要去点点点显得有点麻烦,所以我就考虑添加一些语音助手的功能。 其实当前在日常windows使用中,我觉得也就音乐播放需要一个语音助手交互,其他的功…