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

97、Text2NeRF: Text-Driven 3D Scene Generation with Neural Radiance Fields

简介

论文地址
在这里插入图片描述
使用扩散模型来推断文本相关图像作为内容先验,并使用单目深度估计方法来提供几何先验,并引入了一种渐进的场景绘制和更新策略,保证不同视图之间纹理和几何的一致性

实现流程

在这里插入图片描述
简单而言:

文本-图片扩散模型生成一张初始图片 I 0 I_0 I0,将 I 0 I_0 I0扭曲,得到同一z平面的多个图片,也就是 Support set S 0 S_0 S0,注意,这里的 S 0 S_0 S0是由 I 0 I_0 I0扭曲得到,所以存在很多空白,但是我们可以根据 S 0 S_0 S0重建初始的NeRF模型。

利用初始NeRF模型渲染新视角图片,这是残缺的,但是可以通过扩散模型来补全,注意,为了保持场景的一致性,视角从 I 0 I_0 I0旁边小幅度的偏移,让扩散模型尽量多的从 I 0 I_0 I0中获取信息,然后就可以更新NeRF模型了。

由于图像扭曲的影响,必然导致图像尺度差距和距离差距(体现在空间点深度在不同视角存在差异的情况)。为此,采用了深度对齐策略。

Support Set

采用了 DIBR(Depth-image-based rendering (dibr), compression, and transmission for a new approach on 3d-tv) 方法生成 S 0 S_0 S0

具体而言为:
从扩散模型中获得初始图片 I 0 I_0 I0 ,再通过深度预测网络获得深度 D 0 D_0 D0,对于 I − 0 I-0 I0的每个像素q 和其深度 z,利用下述公式进行转换,得到 S 0 S_0 S0
在这里插入图片描述
K K K P i P_i Pi 是视图 i 中的固有矩阵和相机姿态。

为了在大视野范围内生成3D场景,将相机位置设置在辐射场内部,并使相机向外看,但是该方法不能像其他设置相机查看内部的方法那样生成单独的3D对象。

以当前摄像机位置 P 0 P_0 P0 为中心,对其半径为 r 的环绕圆,生成有相同的 z 坐标,统一采样 n 点作为摄像机位置,并使用与当前视图相同的摄像机方向来生成支持集中的翘曲视图,一般 r=0.2,n=8,偏移方向一般为 上、下、左、右、上左、下左、上右和下右。

这时候就可以开始重建初始三维模型了。

Text-Driven Inpainting

除了初始视图 I 0 I_0 I0 之外的渲染结果不可避免地会有内容缺,这时候就可以使利用基于预训练扩散模型的文本驱动的补图方法了。

首先,渲染一个新视角 P 1 P_1 P1 图像 I k R I^R_k IkR,通过对比 I 0 I_0 I0扭曲到 P 1 P_1 P1后的图像和 I k R I^R_k IkR,我们得到了掩膜 M k M_k Mk。然后就丢给扩散模型,这样就扩展了场景信息。
在这里插入图片描述
但是呢,扩散模型的生成质量不一定很好,因此采用多次绘制过程,通过CLIP的图像编码器评估,比较补全的图像与初始图像的差距,选出最优的。论文采用30个候选。
在这里插入图片描述

Depth Alignment

补全的图片与初始的图片在重叠部分会存在深度冲突。体现为:
在这里插入图片描述
尺度差距: 图像中沙发和墙壁对应的空间点的距离应该是唯一的,但是在不同视图可能存在差异
距离差距: 不同视图拟合的空间点不一致

论文通过补偿平均比例尺和距离差异来全局对齐这两个深度图

对应渲染图像 和补全的图像,表示为 { ( x j R , x j E ) } j = 1 M \{(x^R_j,x^E_j)\}^M_{j=1} {(xjR,xjE)}j=1M,计算平均尺度分数 s 和深度偏移 δ 来近似平均尺度和距离差异

在这里插入图片描述

缩放后的点 x ^ j E = s ⋅ x j E \hat{x}^E_j = s \cdot x^E_j x^jE=sxjE ,z(x) 表示预测深度

这里定义全局深度 D k g l o b a l = s ⋅ D k E + δ D^{global}_k = s \cdot D^E_k + \delta Dkglobal=sDkE+δ,最小化渲染深度接近全局深度
在这里插入图片描述

Progressive Inpainting and Updating

在这里插入图片描述
为了保证场景绘制过程中视图的一致性,避免几何和外观的模糊性,采用逐视图更新亮度场的渐进式绘制和更新策略

在每次补全后更新亮度场。这意味着之前绘制的内容将在后续的效果图中反映出来,这些部分将被视为已知区域,不会在其他视图中再次绘制

受(Zeroshot text-guided object generation with dream fields)启发,设计了一个深度感知透射损失 L T L_T LT,以促使NeRF网络在相机光线到达预期深度之前产生空密度
在这里插入图片描述
m(t)是一个掩膜,当 t< z ^ \hat{z} z^ 时,m(t) = 1,否则为0, z ^ \hat{z} z^是对齐深度图 D ^ \hat{D} D^ 中逐像素深度值,T (T)为累积透过率

效果

在这里插入图片描述
在这里插入图片描述

相关文章:

97、Text2NeRF: Text-Driven 3D Scene Generation with Neural Radiance Fields

简介 论文地址 使用扩散模型来推断文本相关图像作为内容先验&#xff0c;并使用单目深度估计方法来提供几何先验&#xff0c;并引入了一种渐进的场景绘制和更新策略&#xff0c;保证不同视图之间纹理和几何的一致性 实现流程 简单而言&#xff1a; 文本-图片扩散模型生成一…...

【C++】多态(上) 多态 | 虚函数 | 重写 | final、override | 接口继承与实现继承 | 抽象类

一、多态 概念 多态&#xff0c;就是多种状态&#xff0c;即不同的对象去完成同一个行为时会产生出不同的状态。比如&#xff1a;买票时&#xff0c;成人要原价买&#xff0c;学生和老人就可以享受优惠价便宜一点儿。同样是买票这个行为&#xff0c;不同的对象来做就有不同的…...

国内怎么投资黄金,炒黄金有哪些好方法?

随着我国综合实力的不断强大&#xff0c;投资市场的发展也日臻完善&#xff0c;现已成为了国际黄金市场的重要组成部分&#xff0c;人们想要精准判断金市走向&#xff0c;就离不开对我国经济等信息的仔细分析。而想要有效提升盈利概率&#xff0c;人们还需要掌握国内黄金投资的…...

springboot实现数据脱敏

springboot实现数据脱敏 怎么说呢&#xff0c;写着写着发觉 ”这写的什么玩意“ 。 总的来说就是&#xff0c;这篇文章并不能解决数据脱敏问题&#xff0c;但以下链接可以。 SpringBoot中利用自定义注解优雅地实现隐私数据脱敏 然后回到本文&#xff0c;本来是想基于AOP代理&am…...

uniapp实现多时间段设置

功能说明&#xff1a; 1 点击新增时间&#xff0c;出现一个默认时间段模板&#xff0c;不能提交 2 点击“新增时间文本”&#xff0c;弹出弹窗&#xff0c;选择时间&#xff0c;不允许开始时间和结束时间同时为00:00&#xff0c; <view class"item_cont"> …...

uni-app - 去除隐藏页面右侧垂直滚动条

全局配置 "globalStyle": { //全局配置 "scrollIndicator":"none", // 不显示滚动条 "app-plus":{ "scrollIndicator":"none" // 在APP平台都不显示滚动条 } }局部配置 "path": "pages/ind…...

一次简单的 Http 请求异常处理 (请求的 url 太长, Nginx 直接返回 400, 导致请求服务异常)

1 结论 按照惯例直接说结论。 后台服务 A 有一个 Http 接口, 代码如下: RequestMapping(value "/user", method RequestMethod.GET) public List<UserInfoVo> getUserInfoByUserIds(RequestParam(value "userIds") List<String> userIds…...

spring Cloud在代码中如何应用,erueka 客户端配置 和 服务端配置,Feign 和 Hystrix做高可用配置

文章目录 Eureka一、erueka 客户端配置二、eureka 服务端配置 三、高可用配置FeignHystrix 通过这篇文章来看看spring Cloud在代码中的具体应用&#xff0c;以及配置和注解&#xff1b; Eureka 一、erueka 客户端配置 1、Eureka 启禁用 eureka.client.enabledtrue 2、Eurek…...

C#8.0中新语法“is {}“的介绍及使用

一&#xff64;C#7.0及之前is的使用 is操作符检查表达式的结果是否与给定类型兼容&#xff0c;或者(从c# 7.0开始)根据模式测试表达式。有关类型测试is操作符的信息&#xff0c;请参阅类型测试和类型转换操作符文章的is操作符部分。 1&#xff64;is 模式匹配 从C&#xff0…...

编译器设计01-入门概述

编译器作用概述 源代码 → 编译器 目标代码 源代码\xrightarrow{\ \ \ 编译器\ \ \ }目标代码 源代码 编译器 ​目标代码 编译阶段概述 编译处理包括两个阶段&#xff1a;前端处理和后端处理&#xff0c;中间过程生成语法树。 编译处理&#xff1a;源代码 → 语法树 …...

SpringBoot封装Elasticsearch搜索引擎实现全文检索

一、前言 注&#xff1a;本文实现了Java对Elasticseach的分页检索/不分页检索的封装 ES就不用过多介绍了&#xff0c;直接上代码&#xff1a; 二、实现步骤&#xff1a; 创建Store类&#xff08;与ES字段对应&#xff0c;用于接收ES数据&#xff09; import com.alibaba.f…...

(C)一些题4

1. 以下叙述中正确的是( )。 A.C程序中的注释只能出现在程序的开始位置和语句的后面 B.C程序书写格式严格&#xff0c;要求行内只能写一个语句 C,C程序书写格式自由&#xff0c;一个语句可以写在多行上 D.用C语言编写的程序只能放在一个程序文件中 2.设有如下程序段 char …...

ChatGPT初体验:注册、API Key获取与ChatAPI调用详解

自从2022年10月&#xff0c;ChatGPT诞生以后&#xff0c;实际上已经改变了很多&#xff01;其火爆程度简直超乎想象&#xff0c;一周的时间用户过百万&#xff0c;两个月的时间用户过亿。 目前ChatGPT4已经把2023年4月以前的人类的知识都学习到了&#xff0c;在软件工程里面&am…...

TCP/IP协议、三次握手、四次挥手

TCP/IP TCP/IP协议分层TCP头部三次握手TCP四次挥手常见问题1、什么是TCP网络分层2、TCP为什么是三次握手&#xff0c;不是两次或者四次&#xff1f;3、TCP为什么是四次挥手&#xff0c;为什么不能是三次挥手将第二次挥手和第三次挥手合并&#xff1f;4、四次挥手时为什么TIME_W…...

Android U 匹配不到APN,无法发起数据建立的问题分析

问题 打开数据开关后&#xff0c;没有data PDN请求发起&#xff0c;因此无法上网。 根据日志确定是没有找到合适的data profile&#xff0c;原因一般有&#xff1a; 1、APN 没有配置 2、APN 类型/网络能力不满足——APN type或bearer 3、APN 配置了但被disable了——APN p…...

如何打造“面向体验”的音视频能力——对话火山引擎王悦

编者按&#xff1a;随着全行业视频化的演进&#xff0c;我们置身于一个充满创新与变革的时代。在这个数字化的浪潮中&#xff0c;视频已经不再只是传递信息的媒介&#xff0c;更是重塑了我们的交互方式和体验感知。作为字节跳动的“能力溢出”&#xff0c;火山引擎正在飞速奔跑…...

什么是NoOps

过去几年&#xff0c;自动化一直在推动整个 IT 行业向前发展。通过自动化某些任务&#xff0c;开发团队可以提高其能力&#xff0c;而无需感受到雇用新团队成员的预算压力。自动化还保证了更高的效率&#xff0c;特别是在操作和维护方面。 传统的软件开发工作流程涉及开发团队…...

Unity - Graphic解析

Gpahic 的作用 Graphic 是 Unity最基础的图形基类。主要负责UGUI的显示部分。 由上图可以看你出我们经常使用的Image&#xff0c;Text&#xff0c;都是继承自Graphic。 Graphic的渲染流程 在Graphic的源码中有以下属性 [NonSerialized] private CanvasRenderer m_CanvasRend…...

哈希思想的应用

目录 1.位图 位图的实现 题目变形一 题目变形二 题目变形三 总结&#xff1a; 2.布隆过滤器 概念 布隆过滤器的实现 3.哈希切割的思想 1.位图 哈希表和位图是数据结构中常用的两种技术。哈希表是一种数据结构&#xff0c;通过哈希函数把数据和位置进行映射&#xff0c…...

React入门使用 (官方文档向 Part1)

文章目录 React组件:万物皆组件 JSX: 将标签引入 JavaScriptJSX 规则1. 只能返回一个根元素2. 标签必须闭合3. 使用驼峰式命名法给 ~~所有~~ 大部分属性命名&#xff01;高级提示&#xff1a;使用 JSX 转化器 在 JSX 中通过大括号使用 JavaScript使用引号传递字符串使用大括号&…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Linux离线(zip方式)安装docker

目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1&#xff1a;修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本&#xff1a;CentOS 7 64位 内核版本&#xff1a;3.10.0 相关命令&#xff1a; uname -rcat /etc/os-rele…...

c++第七天 继承与派生2

这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分&#xff1a;派生类构造函数与析构函数 当创建一个派生类对象时&#xff0c;基类成员是如何初始化的&#xff1f; 1.当派生类对象创建的时候&#xff0c;基类成员的初始化顺序 …...

go 里面的指针

指针 在 Go 中&#xff0c;指针&#xff08;pointer&#xff09;是一个变量的内存地址&#xff0c;就像 C 语言那样&#xff1a; a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10&#xff0c;通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...

redis和redission的区别

Redis 和 Redisson 是两个密切相关但又本质不同的技术&#xff0c;它们扮演着完全不同的角色&#xff1a; Redis: 内存数据库/数据结构存储 本质&#xff1a; 它是一个开源的、高性能的、基于内存的 键值存储数据库。它也可以将数据持久化到磁盘。 核心功能&#xff1a; 提供丰…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

二维FDTD算法仿真

二维FDTD算法仿真&#xff0c;并带完全匹配层&#xff0c;输入波形为高斯波、平面波 FDTD_二维/FDTD.zip , 6075 FDTD_二维/FDTD_31.m , 1029 FDTD_二维/FDTD_32.m , 2806 FDTD_二维/FDTD_33.m , 3782 FDTD_二维/FDTD_34.m , 4182 FDTD_二维/FDTD_35.m , 4793...

【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)

旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据&#xff01;该数据集源自2025年4月发表于《地理学报》的论文成果…...