当前位置: 首页 > news >正文

3D 生成重建016-SA3D从nerf中分割一切

3D 生成重建016-SA3D从nerf中分割一切


文章目录

    • 0 论文工作
    • 1 方法介绍
    • 2 实验结果

0 论文工作

1 SAM的背景和目标:
SAM 是一种强大的二维视觉基础模型,能够在 2D 图像中进行任意物体的分割。传统上,SAM 在二维空间表现出色,但其无法直接应用于三维物体分割。
本文的目标是将 SAM 的能力扩展到 3D 物体分割,避免了 3D 数据采集和标注的昂贵过程。为了实现这一目标,SA3D 利用 Neural Radiance Field (NeRF) 作为桥梁,将 2D 图像和 3D 空间进行连接。
2. 关键技术和创新:
NeRF 作为先验:
本文提出的方法通过利用 NeRF 学到的密度分布,将 SAM 得到的二维掩膜从一个视角映射到三维空间。NeRF 提供了从多视角图像到三维场景的连接,因此可以为不同视角之间的物体分割提供一致的指导。通过在 NeRF 中学习的视角一致的特征,可以在不同的视角中重建物体的三维掩膜。
掩膜反向渲染:首先从一个视角使用 SAM 对目标物体进行分割,得到一个二维掩膜。然后,通过反向渲染,将二维掩膜投影到 3D 空间,构建三维物体的体素掩膜。在这个过程中,NeRF 提供了密度信息来指导如何将二维掩膜有效地映射到三维空间。
自我提示:在完成当前视角的掩膜渲染后,SA3D 自动从 NeRF 渲染出的二维掩膜中提取有效的提示信息,并将其作为输入传递给 SAM,进行下一视角的分割。这个过程是交替进行的,直到通过多个视角生成完整的三维掩膜。
自我提示在简单场景中是一个可行的方法。但是场景比较复杂的话,比图说每个视图上有多个同类型的物体,在跨视图进行逆映射的时候,就会出现不一致。后面会有一些论文去优化这个问题。
paper
github

1 方法介绍

在 SA3D (Segment Anything in 3D) 方法中,自我提示(Self-Prompting) 是一种关键的技术,用来通过多视角的迭代过程生成三维掩膜。具体来说,自我提示的实现过程可以分为以下几个步骤:
初始二维掩膜生成:
1、给定一个视角中的目标物体,用户提供一个手动的粗略分割提示(例如一些粗略的点或框)。使用 SAM(Segment Anything Model)对这个视角中的物体进行分割,生成一个二维掩膜(mask)。
2、掩膜反向渲染。在生成了二维掩膜后,使用 NeRF(神经辐射场)技术将该掩膜投影到三维空间中。这一步是通过 反向渲染(inverse rendering)来完成的,即根据二维掩膜的密度分布信息,估计物体在三维空间中的分布。具体来说,NeRF 学习了一个三维场景的密度和颜色分布,通过这些信息可以将二维掩膜“反向映射”到三维空间中的体素网格,从而得到目标物体的三维掩膜。
3、跨视角自我提示:反向渲染得到三维掩膜后,SA3D 会自动生成用于下一视角的提示信息。这一步就是 自我提示 的关键。从 NeRF 渲染出的三维掩膜,通过与当前视角的关系,提取可靠的提示。具体来说,NeRF 渲染出的三维掩膜会被转换为该视角的二维图像,并与其他视角进行对比,寻找在其他视角中可能可靠的目标物体区域。这个过程类似于“从一视角生成另一视角的分割提示”。通过将已经生成的三维掩膜投影到新的视角,自动生成的提示信息可以帮助 SAM 在新的视角中进行物体分割。
4、循环迭代:自我提示的过程是 交替迭代 的。在每一轮迭代中,首先利用当前视角的二维掩膜通过 NeRF 渲染到三维空间,再利用三维掩膜在不同视角中生成新的二维分割提示,然后传递给 SAM 进行分割。随着迭代次数的增加,目标物体的三维掩膜逐渐变得更加精确和完整,因为每次迭代都会利用来自不同视角的信息进行完善。
自动生成提示:通过利用 NeRF 渲染出的三维掩膜,SA3D 自动提取出下一视角的分割提示,而无需人工干预。这意味着整个分割过程可以在没有更多人工输入的情况下继续进行。
跨视角信息利用:通过在不同视角间的交替提示,系统能够在多视角下自我调整并优化三维分割结果。
总结:自我提示的实现本质上是一种通过 NeRF 渲染的三维掩膜来生成可靠提示的过程,并通过跨视角的反馈和迭代逐步完善目标物体的三维分割结果。这使得 SA3D 能够在多视角间利用信息自我引导,快速生成高质量的三维物体分割,而无需人工提供多个视角的详细标注。
在这里插入图片描述

2 实验结果

请添加图片描述

相关文章:

3D 生成重建016-SA3D从nerf中分割一切

3D 生成重建016-SA3D从nerf中分割一切 文章目录 0 论文工作1 方法介绍2 实验结果 0 论文工作 1 SAM的背景和目标: SAM 是一种强大的二维视觉基础模型,能够在 2D 图像中进行任意物体的分割。传统上,SAM 在二维空间表现出色,但其无…...

阿里云整理(二)

阿里云整理 1. 访问网站2. 专业名词2.1 域名2.2 域名备案2.3 云解析DNS2.4 CDN2.5 WAF 1. 访问网站 用户使用浏览器访问网站大体分为几个过程: 用户在浏览器输入域名URL,例如www.baidu.com。 不过,浏览器并不知道为该域名提供服务的服务器具…...

qt基本部分控件用法(一)

前言: 以前 windows下做工具主要是MFC,趁有点空时间,研究了QT,感觉跟MFC 差不多,VS 比 QT CREATOR 还是强大,不过QT可以跨平台,功能更强大,MFC 只能在win平台下.; 1:环境…...

【Linux】环境ChatGLM-4-9B 模型之 openai API 服务

一、摘要 最近看到 Function Call 比较感兴趣,它的核心是赋予大模型能够调用外部API的能力,能够解决大模型功能扩展性问题,允许模型调用外部数据库或API,提供特定领域的详细信息;解决信息实时性问题,模型可以实时获取最新数据;解决数据局限性问题,大模型训练数据虽多但…...

Too many open files 问题处理

某个简单的 python 服务,运行一段时间就崩溃。查看日志后发现有一个系统错误 OSError: Errno24 Too many open files要理解这个问题,首先要理解什么是文件描述符,可以参考我的另一篇文章(Linux 系统文件描述符(File Descriptor&a…...

CentOS 7 环境下常见的操作和配置

目录 1. CentOS 7 中的 vsftpd 配置与使用 安装与启动 vsftpd 配置 vsftpd(/etc/vsftpd/vsftpd.conf) 常见命令 2. 使用 yum 包管理器 3. 安全性与防火墙配置 开放端口 4. 使用 systemd 管理服务 5. SELinux 配置 查看 SELinux 状态 临时禁用…...

HTTP(超文本传输协议)

HTTP是万维网通信的基础构成,是一个简单的请求相应协议,基于TCP之上80号端口 通信原理 DNS解析 将域名甩个DNS服务器解析,将域名化为IP访问 建立TCP连接 如图,客户端先发送一个sys置位seq为x(任意值)的…...

etcd-v3.5release-(3)-readIndexRead

笔记1:读操作包括两种,readIndex和serilizable,readIndex指一致性读,一旦a读到了数据x,那么a及a以后的数据都能读到x,readIndex读会先确认本leader是不是有效地leader,如果有效则记录此刻的comm…...

IPv6 NA RTR/SOL/OVR标志位,单播多播选择,ndppd代理和kernel配置

NA消息用单播还是多播的判断理由 单播回复(Unicast): 如果客户端发送 RS 消息时,使用的是一个全局地址或链路本地地址作为源地址,则 RA 消息会单播回复到客户端的源地址。这种方式减少了网络中的广播流量,…...

C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数

知识要点:数组作函数参数 视频: 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 任务要求用选择法对数组中的 10 个整数按由小到大的顺序排序,前面在讲解数组时讲冒泡法排序曾提到选择法排序的思想。 所谓选择法就是…...

PostgreSQL数据库连接:psqlODBC驱动安装与配置实战指南

本文还有配套的精品资源,点击获取 简介:本文将提供详细的psqlODBC驱动程序在Windows操作系统上的安装和配置指南,使用户能够通过ODBC标准连接到PostgreSQL数据库。安装步骤涵盖获取安装文件、运行安装向导、选择安装路径、完成安装以及配置…...

【NLP 8、normalization归一化函数:sigmoid、softmax】

目录 Normalization(归一化) 1.特点 目的 应用场景 输出范围 2. Sigmoid 函数 目的 应用场景 输出范围 3. Softmax 函数 目的 应用场景 输出范围 "燃尽最后的本能,意志力会带你杀出重围" —— 24.12.2 Normalization&#…...

鸿蒙ArkTS 与安卓Android-底层逻辑对比

鸿蒙OS(ArkTS) 架构: 鸿蒙OS采用了微内核架构,其核心操作系统将设备的硬件资源和服务进行模块化,微内核负责最基本的服务(如调度、通信、同步等),而其他功能则由用户空间的进程提供。…...

第八节、Bresenham直线插补【51单片机-TB6600驱动器-步进电机教程】

摘要:前面章节主要介绍单个电机控制,本节内容介绍两个电机完成直线插补运动 一、 Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发,最初用于计算机显示直线,它确定应该选择的n维光栅的点&#…...

唇形同步视频生成工具:Wav2Lip

一、模型介绍 今天介绍一个唇形同步的工具-Wav2Lip;Wav2Lip是一种用于生成唇形同步(lip-sync)视频的深度学习算法,它能够根据输入的音频流自动为给定的人脸视频添加准确的口型动作。 (Paper) Wav2Lip模型…...

旅游管理系统的设计与实现

文末获取源码和万字论文,制作不易,感谢点赞支持。 毕 业 设 计(论 文) 题目:旅游管理系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候&#…...

burp常用机漏洞测试理论

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…...

TCP/IP 和 UDP

一、TCP/IP(传输控制协议) TCP/IP 是一个协议族,它是互联网的基础协议,为网络通信提供了标准化的方法。TCP/IP 分为四个层次,每一层都有特定的功能: 应用层:这是最接近用户的层,包含…...

FastAPI解决跨域报错net::ERR_FAILED 200 (OK)

目录 一、跨域问题的本质 二、FastAPI中的CORS处理 1. 安装FastAPI和CORS中间件 2. 配置CORS中间件 3. 运行FastAPI应用 三、解决跨域报错的步骤 四、案例:解决Vue.js与FastAPI的跨域问题 1. Vue.js前端应用 2. FastAPI后端API 3. 配置CORS中间件 4. 运行…...

git如何新建分支并提交?

1. 检查当前分支 在开始之前,最好确认你当前所在的分支。 git branch 当前分支前面会有一个 *号。 2. 新建分支 使用 git branch 命令创建一个新的分支。假设你要创建一个名为 new-feature 的分支。 git branch new-feature 3. 切换到新分支 使用 git checkou…...

ES6从入门到精通:前言

ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var&#xf…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)​现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)

引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统:AI驱动的职业规划平台技术解析 引言:数字时代的职业革命 在当今瞬息万变的就业市场中,传统的职业规划方法已无法满足个人和企业的需求。据统计,全球每年有超过2亿人面临职业转型困境,而企业也因此遭…...

如何在Windows本机安装Python并确保与Python.NET兼容

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...