港大谷歌提出GO-NeRF:在NeRF中生成协调且高质量的3D对象

尽管在3D生成方面取得了进展,但在作为NeRF表示的现有3D场景中直接创建3D对象仍然是未经探索的。这个过程不仅需要高质量的3D对象生成,还需要将生成的3D内容无缝地合成到现有的NeRF中。为此,作者提出了一种新方法,GO-NeRF,能够利用场景上下文进行高质量和谐调的3D对象生成,将其嵌入到现有的NeRF中。方法采用了一个组合渲染公式,允许通过学到的3D感知不透明度图将生成的3D对象无缝地合成到场景中,而不会引入意外的场景修改。此外,还开发了定制的优化目标和训练策略,以增强模型利用场景上下文和减轻源于场景中3D对象生成的浮动物等的能力。在前馈和360°场景上进行的大量实验证明了GO-NeRF在生成与周围场景谐调的合成对象以及合成高质量新视图图像方面的卓越性能。

开源地址:https://daipengwa.github.io/GO-NeRF/

近年来,在使用神经辐射场(NeRF)进行可重渲染的现实环境重建方面取得了巨大的进展。与此同时,文本引导的对象生成在创造新颖的3D内容方面表现出显著的潜力。在这项工作中,研究了一个新颖的问题:生成与给定的3D现实场景谐调的3D对象。这种能力对于新场景的创建和编辑至关重要,要求将生成的内容无缝地组合到环境中,并确保在下游应用中获得高度沉浸式的体验。

主要贡献

主要贡献如下:

• 引入了GO-NeRF,这是一种新颖的流程,可以通过文本提示生成与上下文兼容的3D虚拟对象,并将其无缝地嵌入到预训练的神经辐射场中,同时保留不变的场景上下文,并与任意NeRF表示法兼容,适用于现有场景。

• 开发了考虑场景上下文的学习目标和正则化器,实现了高质量、无浮动物体的3D合成和与场景谐调组合,以创建新的3D场景。

• 实验结果展示了方法利用场景上下文进行虚拟对象生成的能力,在前馈和360°数据集上均优于先前的方法。

算法框架

从输入文本提示中生成给定3D NeRF场景内虚拟对象的流程。该流程始于创建一个3D边界框来定义修改区域。这个过程可以通过使用界面在渲染图像上点击三个点来自动化完成。接下来,引入了一个用于场景中生成对象的组合渲染流程。具体而言,从预定义的透视图中将场景辐射场渲染成RGB-D图像;通过在3D框中优化对象NeRF来生成新的对象。为了获得最终的渲染结果,基于预渲染的RGB-D图像和优化后的不透明度映射,将对象和场景进行合成。最后,描述了精心设计的损失函数和训练策略(具体损失公式见原文),这些策略指导了优化过程,并确保了在场景中生成协调一致的对象。方法的概览如下图2所示。

左图:提供了一个用户友好的界面,用于在预训练场景NeRF中选择生成区域。具体而言,用户只需在图像平面上点击三个点,界面将通过透视投影和叉积运算返回场景中的3D边界框。右图:分离了场景渲染(上)和对象生成(下),然后在NeRF的输出空间中将它们合成。场景渲染使用预定义的相机C将场景NeRF渲染成RGB-D图像(S,D)。对象生成在3D框内优化神经辐射场,并通过体积渲染生成RGB图像和不透明度映射。随后,通过优化后的不透明度映射将场景和生成的内容混合,生成最终输出。在优化过程中,设计了损失函数和训练策略,以确保高质量和与场景谐调的结果。

效果展示

定性比较

在前馈和360度场景上将我们的方法与其他基线进行比较。第一行显示了3D框和相应的2D mask,其他行显示了不同方法的结果。Blended-NeRF往往会产生不真实和不谐调的结果,例如水果飞在天空中。Spin-NeRF∗在风格化场景和视角变化较大的360度场景中失败。类似地,手动放置既繁琐又存在利用场景上下文的问题。我们的方法在所有场景中表现良好,能够生成具有不同风格的猫和桌子上带有阴影的水果,以促进谐调。在最后一行的右下方,可视化了经过优化的不透明度图,准确描述了生成内容的轮廓。

定量比较

此表显示了CLIP分数,表明生成的内容与文本之间的匹配程度。GO-NeRF遥遥领先。

使用不同的文本提示提供更多结果:

当使用参考图像作为引导时,生成的对象的样式会跟随参考图像:

我们的方法在mask区域内生成所需的对象,而不引入意外的场景修改。其他图像修复方法改变了场景内容,比如白线和道路表面。

总结

GO-NeRF,这是一种新颖的方法,通过在现有的场景级NeRF中直接生成受文本控制的3D对象,迈出了重要一步。为了实现这一目标,采用了与量身定制的优化目标和训练策略相关的组合渲染公式,用于合成无缝嵌入现有场景的3D对象。方法利用了预训练的文本引导图像修补网络的图像先验,以促进对象及其周围环境的谐调生成。实验结果显示了我们的方法在前馈和360度数据集中的优越性能。希望我们的研究能在这个领域激发更多的工作。

参考文献

[1] GO-NeRF: Generating Virtual Objects in Neural Radiance Fields

链接:https://arxiv.org/pdf/2401.05750

 多精彩内容,请关注公众号:AI生成未来

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

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

相关文章

电脑定时关机应用

这是一个Python应用。家里卧室装了新电视,HDMI连接笔记本追剧还是很愉快的。可是经常睡着,自然忘了关机。搜了一大圈,都是用命令行或者bat解决。商店里的应用也不好用,有些还收费。于是萌生了自己写一个定时关机应用的想法。利用N…

监控平台zabbix介绍与部署

1. 完整的项目 业务架构:客户端 -> 防火墙 -> 负载均衡(四层、七层)-> Web缓存/应用 -> 业务逻辑(动态应用)-> 数据缓存 -> 数据持久 运维架构:运维客户端 -> 堡垒机/跳板机&#x…

TLC Nand Flash 存储单元的读取原理

我们知道Nand Flash使用浮栅晶体管作为存储单元(memory cell)来存储数据,浮栅晶体管物理结构如图1所示: 图1 浮栅晶体管 对于普通的晶体管(去掉浮栅晶体管中的浮栅层,floating gate)&#xff0…

基于Docker的Nginx的安装与配置

基于Docker的Nginx的安装与配置 1 为Nginx创建一个容器1.1 学习docker run1.2 通过docker run为Nginx创建并启动一个容器 2 配置Nginx2.1 学习docker的bind mount技术2.2 在Nginx容器中找到想修改的文件所在的目录2.2.1 认识nginx.conf文件2.2.2 访问Nginx服务,默认…

【MATLAB】VMD_LSTM神经网络时序预测算法

有意向获取代码,请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 变分模态分解(Variational Mode Decomposition,VMD)和LSTM(Long Short-Term Memory)神经网络结合的算法是一种用于处理时间序列…

超详细的嵌入式cJSON使用注意事项,持续补充中......

文章目录 一、堆内存不足1.1 问题描述1.2 解决办法 二、内存泄露2.1 忘记Delete2.2 忘记Free2.3 串口数据接收缺少部分字符导致的内存泄露(自己的问题)问题分析 2.4 内存泄露在Cortex-M3内核会发生什么? cJSON开源库地址: cJSON 一、堆内存不足 1.1 问…

ssm基于Web的课堂管理系统设计与实现论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

【GitHub项目推荐--开源的坦克大战】【转载】

坦克大战当年红遍大江南北,很多和我一样的九零后应该都有着对这个游戏的记忆。现在显示器分辨率越来越高,使用矢量图来实现像素风格游戏,可以获得非常高的展现质量。 这个项目是作者肥超花了很长时间折腾的复刻版本,所有元素都使…

余弦相似度的计算以及公式

公式: 思想:余弦相似度的思想是通过计算两个向量之间的余弦值来衡量它们的相似程度。如果两个向量之间的夹角越小,它们的余弦值就越接近1,也就意味着它们越相似。而如果它们的夹角越大,余弦值就越接近0,也就…

ES的文档操作

一,DSL语句 1,新增文档: 2,查询文档和删除文档: ,3修改文档 修改有两种方式: 全量修改:直接覆盖原来的文档 增量修改:修改文档中的部分字段 全量修改 全量修改是覆盖原来的文档…

八:分布式锁

1、为什么要使用分布式锁 锁是多线程代码中的概念,只有多任务访问同一个互斥的共享资源时才需要锁。单机应用开发时一般使用synchronized或lock。多线程的运行都是在同一个JVM之下。应用是分布式集群,属于多JVM的工作环境,JVM之间已经无法通过…

Error: L6218E: Undefined symbol 系列错误汇总 (referred from main.o)

传送门 错误1: Undefined symbol(referred from main.o)错误2:Undefined_symbol _use_two_region memory 错误1: Undefined symbol(referred from main.o) Cube_GPIO\Cube_GPIO.axf: Error: L6218E: Undefined symbol LED_GPIO_Init (referr…

操作系统详解(5.1)——信号(Signal)的相关题目

系列文章: 操作系统详解(1)——操作系统的作用 操作系统详解(2)——异常处理(Exception) 操作系统详解(3)——进程、并发和并行 操作系统详解(4)——进程控制(fork, waitpid, sleep, execve) 操作系统详解(5)——信号(Signal) 文章目录 题目第一问第二问第三问 题目…

FGSM方法生成交通信号牌的对抗图像样本

背景: 生成对抗样本,即扰动图像,让原本是“停车”的信号牌识别为“禁止驶入” 实验准备 模型:找一个训练好的,识别交通信号牌的CNN模型,灰度图像 模型地址:GitHub - Daulettulegenov/TSR_CNN:…

Wargames与bash知识17

Wargames与bash知识17 Bandit25(Bandit26) 关卡提示 从bandit25登录到bandit26应该相当容易…用户bandit26的shell不是/bin/bash,而是其他东西。找出它是什么,它是如何工作的,以及如何摆脱它。 推荐命令 ssh, cat, …

CSS基础笔记-05layout

CSS基础笔记系列 《CSS基础笔记-01CSS概述》《CSS基础笔记-02动画》《CSS基础笔记-03选择器》《CSS基础笔记-04cascade-specificity-inheritance》 文章目录 CSS基础笔记系列什么是CSS布局布局方法normal flowflexboxgridfloats 总结 什么是CSS布局 CSS布局是指在页面中对元素…

c语言学生管理系统

创建结构体里面包含学生的各种信息。 struct xs {int xh;char xm[20];int gs, yy, wl;double pj;struct xs* next; }; 创建菜单 void menu() {printf("\n************************************\n");printf("* 学生管理系统(1.0&#xff0…

C# 图解教程 第5版 —— 第25章 反射和特性

文章目录 25.1 元数据和反射25.2 Type 类25.3 获取 Type 对象25.4 什么是特性25.5 应用特性25.6 预定义的保留特性25.6.1 Obsolete 特性25.6.2 Conditional 特性25.6.3 调用者信息特性25.6.4 DebuggerStepThrough 特性25.6.5 其他预定义特性 25.7 关于应用特性的更多内容25.7.1…

51-12 多模态论文串讲—BLIP 论文精读

视觉语言预训练VLP模型最近在各种多模态下游任务上获得了巨大的成功,目前还有两个主要局限性: (1) 模型角度: 大多数方法要么采用encoder模型,要么采用encoder-decoder模型。然而,基于编码器的模型不太容易直接转换到文本生成任务&#xff0…