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)为累积透过率

效果

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

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

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

相关文章

STM32入门学习(一):STM32 简介与软件安装

参考引用 STM32 入门教程-江科协 1. STM32 简介 1.1 STM32 套件介绍 1.2 STM32 简介 STM32 是 ST 公司基于 ARM Cortex-M 内核开发的 32 位微控制器 应用&#xff1a;嵌入式领域&#xff0c;如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品等 1.3 ARM …

go对rabbitmq基本操作

一、安装rabbitmq 1、直接使用docker拉取镜像 docker pull rabbitmq:3.82、启动容器 docker run \-e RABBITMQ_DEFAULT_USERadmin \-e RABBITMQ_DEFAULT_PASS123456 \-v mq-plugins:/plugins \--name rabbit01 \--hostname rabbit01 --restartalways \-p 15672:15672 \-p 5672:…

《C++PrimePlus》第9章 内存模型和名称空间

9.1 单独编译 Visual Studio中新建头文件和源代码 通过解决方案资源管理器&#xff0c;如图所示&#xff1a; 分成三部分的程序&#xff08;直角坐标转换为极坐标&#xff09; 头文件coordin.h #ifndef __COORDIN_H__ // 如果没有被定义过 #define __COORDIN_H__struct pola…

【开源】基于Vue.js的城市桥梁道路管理系统的设计和实现

项目编号&#xff1a; S 025 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S025&#xff0c;文末获取源码。} 项目编号&#xff1a;S025&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块三、系统展示四、核心代码4.1 查询城市桥…

学生信息管理系统程序Python

系统主界面 在该界面中可以选择要使用功能对应的菜单进行不同的操作。在选择功能菜单时&#xff0c;有两种方法&#xff0c; 一种是输入1&#xff0c;另一种是按下键盘上的↑或↓方向键进行选择。这两种方法的结果是一样的&#xff0c;所以使用哪种方法都可以。 &#xff08;…

时间序列预测 — Informer实现多变量负荷预测(PyTorch)

目录 1 实验数据集 2 如何运行自己的数据集 3 报错分析 1 实验数据集 实验数据集采用数据集4&#xff1a;2016年电工数学建模竞赛负荷预测数据集&#xff08;下载链接&#xff09;&#xff0c;数据集包含日期、最高温度℃ 、最低温度℃、平均温度℃ 、相对湿度(平均) 、降雨…

什么是零拷贝 、零拷贝优化方案 - 真正的零拷贝,哪些地方会用到零拷贝技术

文章目录 什么是零拷贝3、零拷贝优化方案 - 真正的零拷贝哪些地方会用到零拷贝技术 现在来谈谈零拷贝&#xff0c;以及在开发中哪些地方使用到零拷贝。 开干… 什么是零拷贝 零拷贝指的是&#xff0c;从一个存储区域到另一个存储区域的copy任务无需CPU参与就可完成。零拷贝的底…

徕芬不是满分:自称超越戴森,用户称多次故障,品控仍是老大难?

撰稿|行星 来源|贝多财经 “双十一”购物节落下帷幕后&#xff0c;各大品牌纷纷公布“战报”。其中&#xff0c;高速吹风机品牌徕芬&#xff08;也称“徕芬科技”&#xff09;销售额超4.4亿元&#xff0c;全系产品销量超过80万台&#xff0c;高速吹风机系列单品(LF03、SE)销售…

来自Microsoft Teams的摄像头背景图片

原文件在&#x1f446;&#xff0c;下面是预览图 如果你安装了Microsoft Teams也可以搜索MSTeams&#xff0c;就在MSTeams/Backgrounds

【anaconda】numpy.dot 向量点乘小技巧

假设向量A[1,1], 向量B[2,3]。如果想知道他们的内积就可以输入如下代码: 当然&#xff0c;如果是两个列向量相乘&#xff0c;肯定是不对的 但是如果没有维度也一样可以求得内积&#xff0c;而且结果不会套在列表里

AI和人工智能与机器学习全景报告

今天分享的是AI系列深度研究报告&#xff1a;《AI和人工智能与机器学习全景报告》。 &#xff08;报告出品方&#xff1a;appen&#xff09; 报告共计&#xff1a;30页 获取 数据获取仍是AI应用构建团队的主要瓶颈。 原因各不相同。例如&#xff0c;特定用例的数据可能不足…

Day02嵌入式---按键控灯

一、简单介绍 按键控制灯开关是一种常见的嵌入式系统示例项目&#xff0c;它通常用于演示嵌入式系统的基本控制能力。该项目由一个或多个LED和一个按键组成。通过按下按键&#xff0c;可以控制LED的开关状态&#xff0c;从而实现灯的亮灭控制。 二、查看功能手册 2.1 查看硬件…

基于单片机压力传感器MPX4115检测-报警系统proteus仿真+源程序

一、系统方案 1、本设计采用这51单片机作为主控器。 2、MPX4115采集压力值、DS18B20采集温度值送到液晶1602显示。 3、按键设置报警值。 4、蜂鸣器报警。 二、硬件设计 原理图如下&#xff1a; 三、单片机软件设计 1、首先是系统初始化 /*********************************…

鸿蒙开发之android开发人员指南《基础知识》

基于华为鸿蒙未来可能不再兼容android应用&#xff0c;推出鸿蒙开发系列文档&#xff0c;帮助android开发人员快速上手鸿蒙应用开发。 1. 鸿蒙使用什么基础语言开发&#xff1f; ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript&#xff08;简称TS&#xff09;基本语法风…

【免费使用】基于PaddleSeg开源项目开发的人像抠图Web API接口

基于PaddleSeg开源项目开发的人像抠图API接口&#xff0c;服务器不存储照片大家可放心使用。 1、请求接口 请求地址&#xff1a;http://apiseg.hysys.cn/predict_img 请求方式&#xff1a;POST 请求参数&#xff1a;{"image":"/9j/4AAQ..."} 参数是jso…

与Windows 10更新大同小异!一步一步教你如何更新Windows 11

如果你想让你的Windows 11设备获得最佳性能&#xff0c;那么定期更新是至关重要的。即使是最好的电脑如果不更新也会受到影响&#xff0c;因为更新会应用软件调整&#xff0c;帮助你的设备更快、更平稳地运行。它还提高了安全性&#xff0c;意味着你可以从Microsoft的最新功能中…

Kafka-TopicPartition

Kafka主题与分区 主题与分区 topic & partition&#xff0c;是Kafka两个核心的概念&#xff0c;也是Kafka的基本组织单元。 主题作为消息的归类&#xff0c;可以再细分为一个或多个分区&#xff0c;分区也可以看作对消息的二次归类。 分区的划分为kafka提供了可伸缩性、水…

【H5 Canvas】【平面几何】特殊图形绘制(箭头/正多边/正多尖角形等)

文章目录 直线/弧线 箭头 直线/弧线 箭头 // startX,startY 起始坐标 // endX,endY 结束坐标 // angel 圆弧角度,取值[0&#xff0c;PI]; 0表示画直线箭头&#xff0c;否则画圆弧箭头 CanvasRenderingContext2D.prototype.drawArrow function(startX,startY,endX,endY,angel)…

openEuler Linux 部署 FineBi

openEuler Linux 部署 FineBi 部署环境 环境版本openEuler Linux22.03MySQL8.0.35JDK1.8FineBi6.0 环境准备 升级系统内核和软件 yum -y updatereboot安装常用工具软件 yum -y install vim tar net-tools 安装MySQL8 将 MySQL Yum 存储库添加到系统的存储库列表中 sudo…

JVM——垃圾回收算法(垃圾回收算法评价标准,四种垃圾回收算法)

目录 1.垃圾回收算法发展简介2.垃圾回收算法的评价标准1.吞吐量2.最大暂停时间3.堆使用效率 3.垃圾回收算法01-标记清除算法垃圾回收算法-标记清除算法的优缺点 4.垃圾回收算法02-复制算法垃圾回收算法-复制算法的优缺点 5.垃圾回收算法03-标记整理算法标记整理算法的优缺点 6.…