《论文阅读07》Segment Anything in 3D with NeRFs

news2024/11/17 6:01:40

一、论文

  • 研究领域:图像分割(3D)
  • 论文:Segment Anything in 3D with NeRFs
  • Submitted on 24 Apr 2023 (v1), last revised 1 Jun 2023 (this version, v3)
  • Computer Vision and Pattern Recognition (cs.CV)
  • nvos数据集
  • 论文链接

二、论文概要

三、全文翻译

使用NeRFs在3D中分割任何内容

  • 摘要

最近,Segment Anything Model(SAM)作为一种强大的视觉基础模型出现,它能够分割2D图像中的任何东西。本文的目的是推广SAM分割三维物体。我们设计了一种高效的解决方案,而不是复制3D中昂贵的数据采集和注释过程,利用神经辐射场(NeRF)作为将多视图2D图像连接到3D空间的廉价和现成的先验。我们将所提出的解决方案称为SA3D,即Segment Anything in 3D。只需要提供手动分割提示(例如,粗糙点),其用于在具有SAM的该视图中生成其2D掩模。接下来,SA3D交替地执行掩模逆绘制和跨视图自提示,以迭代地完成用体素网格构造的目标对象的3D掩模。前者在NeRF学习的密度分布的指导下,将SAM在当前视图中获得的2D掩模投影到3D掩模上;后者提取可靠的提示自动作为SAM的输入从NeRF渲染的2D掩模在另一个视图。我们在实验中表明,SA3D适应各种场景,并在几分钟内实现3D分割。我们的研究提供了一个通用的和有效的方法,以解除2D视觉基础模型到3D,只要2D模型可以稳定地解决提示分割跨多个视图。项目页面位于www.example.com。https://jumpat.github.io/SA3D/.

  • 介绍

计算机视觉社区一直在追求可以执行基本任务(例如,在任何场景中并且对于2D或3D图像数据,可以使用图像分割(例如,图像分割)。最近,Segment Anything Model(SAM)[22]出现并吸引了很多关注,因为它能够分割2D图像中的任何东西,但将SAM的能力推广到3D场景仍然大多数未被发现。人们可以选择复制SAM的流水线来收集和半自动注释一大组3D场景,但昂贵的负担似乎是大多数研究小组负担不起的。

选择复制SAM的流水线来收集和半自动注释一大组3D场景,但昂贵的负担似乎是大多数研究小组负担不起的

我们认识到,替代且有效的解决方案在于装备2D基础模型(即,SAM)通过3D表示模型与3D感知进行对比。换句话说,不需要从头建立3D基础模型。但是,有一个前提:3D表示模型应能够呈现2D视图并将2D分割结果配准到3D场景。因此,我们使用神经辐射场(NeRF)[32,45,3]作为现成的解决方案。NeRF是一系列算法,将每个3D场景制定为深度神经网络,该网络在连接多个2D视图之前用作3D。

 图1:给定任何预先训练的NeRF,SA3D将来自单个渲染视图的提示作为输入,并输出特定目标的3D分割结果。

如图1所示,我们的解决方案被命名为Segment Anything in 3D(SA3D)。给定在一组2D图像上训练的NeRF,SA3D采取提示(例如,单击对象上的点)作为输入,其用于在具有SAM的该视图中生成2D遮罩。接下来,SA3D在各个视图上交替地执行两个步骤,以迭代地完成用体素网格构造的对象的3D掩模。在每一轮中,第一步是掩模逆渲染,其中通过SAM获得的先前2D分割掩模经由NeRF提供的密度引导逆渲染投影到3D掩模上。第二步是交叉视图自提示,其中NeRF用于基于3D掩模和来自另一视图的图像来渲染2D分割掩模(其可能是不完整的),然后从渲染的掩模自动生成几个点提示并馈送到SAM中以产生更完整和准确的2D掩模。迭代地执行上述过程,直到所有必要的视图都已被采样。

  • 给定在一组2D图像上训练的NeRF,SA3D采取提示(例如,单击对象上的点)作为输入,其用于在具有SAM的该视图中生成2D遮罩。

  • SA3D在各个视图上交替地执行两个步骤,以迭代地完成用体素网格构造的对象的3D掩模。

我们进行各种(例如,对象、部分级)分段任务。无需重新训练/重新设计SAM或NeRF,SA3D就能轻松有效地适应不同场景。与现有方法相比,SA3D具有简化的流水线,通常在几分钟内完成3D分割。SA3D不仅提供了一个有效的工具,用于分割3D中的任何东西,而且还揭示了一种通用的方法,将2D基础模型提升到3D空间。唯一的先决条件是能够稳定地解决跨多个视图的提示分割,我们希望它在未来成为2D基础模型的一般属性。

  • 相关工作

2D分割

自从FCN [30]提出以来,2D图像分割的研究经历了快速增长。许多研究已经深入探讨了分割的各个子领域[15,21,4,59]。随着变压器[49,8]进入分段领域,已经提出了许多新的分段架构[60,6,5,44,54],并且整个分段领域已经得到进一步发展。最近在这一领域的重大突破是细分任何模型(SAM)[22]。作为一种新兴的视觉基础模型,SAM被认为是一个潜在的游戏规则改变者,其目的是通过引入基于提示的分割范式来统一2D分割任务。SAM的一个类似模型是SEEM [63],它也表现出令人印象深刻的开放词汇分割能力[SEEM尝鲜地址]。

3D分割

许多方法已经探索了各种类型的3D表示来执行3D分割。这些场景表示包括RGB-D图像[51,53,55,7,17]、点云[37,38,58]和网格空间,诸如体素[19,47,29]、圆柱体[62]和鸟瞰视图空间[56,14]。虽然3D分割已经发展了一段时间,但与2D分割相比,标记数据的稀缺性和计算复杂度高,使得设计类似SAM的统一框架变得困难。在本文中,我们的目标是导航的方式,利用神经辐射场(NeRF)的能力,探索这一有前途的方向。

NeRF神经辐射场

(NeRF)的分割[32,45,3,1,34,16,11,52,26,10]是一系列3D隐式表示。受其在3D一致性新颖视图合成方面的成功启发,许多研究已经深入到NeRF内的3D分割领域。Zhi等人。[61]提出了Semantic-NeRF,这是一种将语义纳入外观和几何结构的方法。它们展示了NeRF在标签传播和细化方面的潜力。NVOS [39]引入了一种交互式方法,通过使用定制设计的3D特征训练轻量级多层感知(MLP),从NeRF中选择3D对象。其他方法,例如N3F [48]、DFF [24]、LERF [20]和ISRF [13]旨在通过训练额外的特征字段将2D视觉特征提升到3D。这些方法需要重新设计/训练NeRF模型,并且通常涉及额外的特征匹配过程。还有一些其他实例分割和语义分割方法[42,35,9,57,28,18,2,12,50,41]与NeRF相结合。

与我们的SA3D最密切相关的方法是MVSeg [33],这是SPIn-NeRF的一个组件[33],其专注于NeRF修复。MVSeg采用视频分割技术来跨不同视图传播2D掩模,并采用这些掩模作为用于训练语义-NeRF模型的标签。然而,视频分割模型缺乏明确的三维结构信息,难以处理复杂场景中的显著遮挡。我们的方法的目的是建立NeRF驱动的一致性,基于自我提示和提升2D掩模到强大的3D掩模。

  • 方法

在本节中,我们首先简要回顾神经辐射场(NeRF)和分段任意模型(SAM)。然后介绍了SA3D的总体流水线。最后,我们详细演示了SA3D中每个组件的设计。

准备工作

神经辐射场(NeRF)

给定多视图2D图像的训练数据集I,NeRF [32]学习函数fθ:(x,d)→(c,σ),将点的空间坐标x ∈ R3和观察方向d ∈ S2映射为相应的颜色c ∈ R3和体密度σ ∈ R。θ表示函数f的可学习参数,其通常由多层感知器(MLP)表示。为了渲染图像Iθ,每个像素经历光线投射过程,其中光线r(t)= xo + td通过相机姿态被投影。这里,xo是相机原点,d是射线方向,并且t表示沿着射线的点距原点的距离。通过可微分体绘制算法获得由射线r确定的位置处的RGB颜色Iθ(r):

分割任何模型(SAM)

SAM [22]将图像I和一组提示P作为输入,并且以位图的形式输出对应的2D分割掩码MSAM,即,

 提示p ∈ P可以是点、框、文本和掩码。

  • 整体管道

我们假设我们已经有了在数据集I上训练的NeRF模型。在本文中,除非另有说明,否则我们选择使用TensoRF [3]作为NeRF模型,考虑到其上级的训练和渲染效率。如图2所示,首先用预训练的NeRF模型渲染来自特定视图的图像Iin。一组提示(例如,在本文中,我们经常使用一组点),Pin被引入并与渲染图像沿着馈送到SAM中。获得相应视图的2D分割maskMin SAM,然后将其投影到3D掩模V ∈ R3构造的体素网格上,使用所提出的掩模逆绘制技术(第3.3节)。然后,从3D掩模渲染来自新颖视图的2D分割掩模M(n)。渲染的蒙版通常不准确。我们提出了一种跨视图自提示方法(第3.4节),以从渲染的掩码中提取点提示P(n),并进一步将它们馈送到SAM中。因此,在该新颖视图中产生更精确的2D掩模M(n)SAM,并且还将其投影到体素网格上以完成3D掩模。以上过程迭代地执行,遍历更多视图。与此同时,3D掩模也变得越来越完整。整个过程有效地将2D分割结果与3D分割结果连接起来。注意,除了3D掩模之外,不需要优化神经网络。

 图2:SA3D的整体流水线。给定在一组多视图2D图像上训练的NeRF,SA3D首先将目标对象的单个视图中的提示作为输入,并使用SAM在具有这些提示的该视图中产生2D掩模。然后,SA3D执行掩模逆绘制和跨视图自提示的交替过程,以完成由体素网格构造的目标对象的3D掩模。根据嵌入NeRF中的学习密度分布,执行掩模逆渲染以将SAM获得的2D掩模投影到3D掩模上。交叉视图自提示进行提取可靠的提示自动输入到SAM从NeRF渲染的二维掩模给定一个新的视图。迭代地执行该交替过程,直到我们得到完整的3D掩模。

将目标对象的单个视图中的提示作为输入 -> SAM -> 2D mask -> 掩模逆绘制 -> 3D MASK

掩模逆绘制和跨视图自提示的交替过程 -> 3D MASK

-> 完整的3D掩模

产生该新颖视图中的2D掩模M(n)SAM,并且还将其投影到体素网格上以完成3D掩模。以上过程迭代地执行,遍历更多视图。与此同时,3D掩模也变得越来越完整。整个过程有效地将2D分割结果与3D分割结果连接起来。注意,除了3D掩模之外,不需要优化神经网络。

  • 实验

在本节中,我们定量评估SA3D在各种数据集上的分割能力。然后,我们定性地证明了SA3D的通用性,它可以进行实例分割,部分分割,文本提示分割等。

数据集

对于定量实验,我们使用神经体积对象选择(NVOS)[39],SPInNeRF [33]和副本[43]数据集。NVOS [39]数据集基于LLFF数据集[31],其中包括几个前向场景。对于每个场景,NVOS提供具有涂鸦的参考视图和具有注释的2D分割掩模的目标视图。与NVOS类似,SPInNeRF [33]手动注释一些数据以评估交互式3D分割性能。这些注释基于一些广泛使用的NeRF数据集[31,32,25,23,11]。副本[43]数据集提供了各种室内场景的高质量重建地面实况,包括干净的密集几何结构、高分辨率和高动态范围纹理、玻璃和镜面信息、语义类、平面分割和实例分割掩模。对于定性分析,我们使用LLFF [31]数据集和360◦数据集[1]。SA3D进一步应用于LERF [20]数据集,其中包含更逼真和更具挑战性的场景。

  • 讨论

在实验结果之上,我们希望从整合SAM和NeRF的初步研究中提供一些见解,即:2D基础模型和3D表示模型。

首先,NeRF提高了SAM的分割质量。在图6中,我们展示了SA3D可以消除SAM的分割错误,并有效地捕获诸如孔洞和边缘等细节。从感知上讲,SAM以及其他2D感知模型通常对视点敏感,NeRF提供了3D建模的能力,因此具有辅助识别的互补性。此外,SA3D启发我们,使用NeRF或其他3D结构先验是一种资源高效的方法,可以将视觉基础模型从2D提升到3D,只要基础模型具有自我提示的能力。这种方法可以保存许多资源,因为收集大量的3D数据语料库通常是昂贵的。我们期待着研究努力来增强2D基础模型的3D感知能力(例如,将3D感知损失注入到2D预训练中)。

SA3D可以消除SAM的分割错误,并有效地捕获诸如孔洞和边缘等细节

局限

我们证明了SA3D在全景3D分割中的局限性。首先,当前范例依赖于第一视图提示。如果某些对象没有出现在视图中进行提示,则在后续分割过程中将忽略这些对象。第二,场景中的相同部分可以被分割成不同视图中具有相似语义的不同实例。这种模糊性在目前的机制设计下不易消除,导致训练不稳定。我们把这些问题作为未来的工作。

  • 结论

在本文中,我们提出了SA3D,一个新的框架,概括SAM分割3D对象的神经辐射场(NeRFs)作为结构先验。基于训练的NeRF和单个视图中的一组提示,SA3D执行迭代过程,该过程涉及渲染新的2D视图、用于2D分割的自提示SAM以及将分割投影回3D掩模网格。SA3D可以有效地应用于广泛的3D分割任务。我们的研究揭示了一种资源高效的方法,将视觉基础模型从2D提升到3D。

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

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

相关文章

通用vs垂直?热门AI大模型你更看好哪个?(附免费资源)

自ChatGPT发布以来,通用大模型就仿佛坐了火箭,短短几个月的时间,各大企业便争相发布自己的大模型,这其实也反应了目前人工智能发展的方向。 不过从长远来看,垂直领域大模型的发展会比通用大模型更具势头,一…

Java线程面试题

0. Java线程面试题 0.1 线程占用的内存 JDK1.4默认单个线程占用256KJDK1.5默认单个线程占用1M可以通过-Xss参数设定 0.2 为什么要使用线程池 手动创建线程池的缺点 不受风险控制:服务器CPU资源有限,如果每个人都显示手动创建线程,不知道哪…

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现

Office远程代码执行漏洞(CVE-2017-11882)漏洞复现 1.漏洞原理2.在Kali平台查看漏洞利用文件3.登录目标靶机,打开FTP服务器4.登录Kali,利用FTP服务器上传payload-cale.doc文件5.登录目标靶机,触发doc文件,验…

虚函数,抽象基类

编译器处理虚函数的方法: 给每个对象添加一个隐藏成员,隐藏成员保存了一个指向函数地址的数组指针,数组被称为虚函数表,虚函数表存储了为类对象声明的虚函数的地址,比如基类包含一个指针,该指针指向基类中…

阿里巴巴变革,盒马“一马当先”

配图来自canva可画 随着数字经济成为当前经济社会发展的“新宠”,诸多数字企业也开始走上了发展的快车道。而作为国内互联网大厂的阿里巴巴集团,为了打造数字经济时代的商业、金融、物流、云计算和大数据等新一代商业基础设施,就于前不久启动…

Javawed第一章:Web前端的入门理论

目录 前言 一.wed 💖wed是什么? 💖 wed的分类 二.HTML 和 CSS 💖HTML的介绍 HTML的标签 💖CSS的介绍 常用基本标签 💖实践 HTML结构标签特点 三.JavaScript 💖JavaScript的介绍 &…

SOLIDWORKS仿真数据清扫工具

我们来聊下SOLIDWORKS仿真数据清扫工具。与 SOLIDWORKS 软件一起安装的一个鲜为人知的工具是 Simulation Cleaning Utility。该实用工具可用于在 SOLIDWORKS 零件或装配文件中永远删除任何仿真数据,包括仿真设置和后处理信息。 SOLIDWORKS仿真数据清扫工具工具可以…

阻塞队列(消息队列)

1、阻塞队列 队列是一种先进先出的数据结构。而阻塞队列也是一种特殊的队列,也遵守”先进先出“的原则。 阻塞队列是一种线程安全的的数据结构,并且具有以下特性: 1、队列往进写元素是从队尾插入,队首取出 2、当插入元素的时候…

Python面向对象编程基础知识和示例代码

文章目录 对象(Object)示例代码一 类的成员方法(Method)示例代码二 类和对象(Class and Object):示例代码三 构造方法(Constructor):示例代码四 魔术方法&…

JUC简介

1、JUC介绍 JUC (java.util.concurrent)是在并发编程中使用的工具类,主要包括以下三个 (1)java.util.concurrent (2)java.util.concurrent.atomic 原子性:不可分割。Int i0; i, (3)…

MySQL——函数与约束的讲解

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 前言 本章将会讲解MySQL数据库的函数与约束的讲解。 一.函数 函数 是指一段可以直接被另一…

渗透测试面试题汇总

2023年快过去一半了,不知道小伙伴们有没有找到自己心仪的工作呀【doge】,本文总结了常见的安全岗位面试题,方便各位复习。祝各位事业顺利,财运亨通。在网络安全的道路上越走越远! 所有的资料都整理成了PDF&#xff0c…

DCN v1阅读笔记

DCN v1即 Deformable Convolutional Networks。 视觉识别(例如对象检测和语义分割)中的一个关键挑战是如何适应物体尺度、姿态、视角和零件变形中的几何变化或模型几何变换。卷积神经网络(CNN)构建模块中为固定几何结构&#xff1…

神经网络基础

文章目录 一、神经网络基础1.得分函数 f(xi;W,b)1)从输入到输出的映射2)数学表示3)计算方法4)多组权重参数构成了决策边界 2.损失函数 L3.前向传播4.Softmax分类器 梯度下降2.反向传播 一、神经网络基础 回归任务:最终…

软件测试技能,JMeter压力测试教程,JDBC配置连接mysql数据库(十)

前言 使用jmeter压测接口的时候,有时候需要批量造数据,需使用jmeter连数据库造对应的测试数据 或者测试结束后,对测试的数据还原,删掉一些垃圾数据,都会用到连接数据库执行sql的操作 一、JDBC 连接配置 添加配置元…

7-WebApis-2

Web APIs - 2 掌握事件绑定处理和事件对象,完成常见网页交互 事件监听事件类型事件对象拓展知识综合案例 事件监听 以前写的代码都是自动执行的,我们希望一段代码在某个特定的时机才去执行,比如 点击按钮可以弹出警示框比如鼠标经过显示下拉…

通过easyui的filebox上传文件

本篇文章重点分享一下怎么通过easyui的filebox实现文件上传的功能&#xff0c;从前端代码到后端接口都会展示给大家。 1、form表单同步上传 传统的文件上传会把<input type"file" />放到一个<form></form>里&#xff0c;设置form表单的提交方式为…

开源代码分享(5)—配电网重构的启发式算法(附matlab代码)

来源于文献IEEE TRANSACTIONS ON POWER SYSTEMS期刊文献的开源代码。 摘要&#xff1a;本文提出了一种两阶段的启发式计算方法&#xff0c;可以在最小的计算时间内重新配置一个径向分布网络。所有的网络交换机在操作的初始阶段都是关闭的&#xff0c;并提出了一个顺序的开关开闸…

基于SSM+jsp的教学质量评价系统设计与实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架…

Origin如何绘制三维离散点并拟合曲面?

文章目录 0.引言1.准备数据2.三维离散点参数设置并绘图3.拟合曲面参数设置并绘图 0.引言 在数据统计分析中&#xff0c;有时希望知道一个因变量在两个自变量变化情况下的变化情况&#xff0c;这时可以绘制散点图&#xff0c;观察基础情况&#xff0c;进一步可以拟合散点&#x…