港大谷歌提出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生成未来

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++深入学习之STL:1、容器部分

标准模板库STL的组成 主要由六大基本组件组成:容器、迭代器、算法、适配器、函数对象(仿函数)以及空间配置器。 容器:就是用来存数据的,也称为数据结构。 本文要详述的是容器主要如下: 序列式容器:vector、list 关联…

AC修炼计划(AtCoder Beginner Contest 335)E-F

传送门: AtCoder Beginner Contest 335 (Sponsored by Mynavi) - AtCoder A,B,C,D还算比较基础,没有什么思路,纯暴力就可以过。 这里来总结一下E和F E - Non-Decreasing Colorful Path 最开始以为是树形…

顶级Web应用程序测试工具列表

今天主要列举Web应用程序的工具。 今天的列表仅仅提供索引功能,具体要使用的同学,可以自行搜索哦。 通过web应用程序测试,在web应用程序公开发布之前,会发现网站功能、安全性、可访问性、可用性、兼容性和性能等问题。 Web应用程…

细说JavaScript语句详解

一、顺序结构 二、表达式语句 三、声明语句 四、条件语句 1、if语句 2、if…else语句 3、else if语句 4、switch语句 五、循环语句 1、while循环 2、do… while循环 3、for循环 4、for…in循环 六、跳出语句 1、label语句 2、break语句 3、continue语句

【MySQL】基础篇

文章目录 一、SQL规则与规范二、基本的SELECT语句SELECT...FROM...;列的别名 AS ""去除重复行 DISTINCT空值参与运算 结果一定也为NULL着重号 常量描述表结构 DESCRIBE过滤数据 WHERE 三、运算符算术运算符比较运算符非符号类型运算符逻辑运算符运算符优先级 四、排序…

Git 是什么?

Git 是什么? Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。 Git 与常用的版本控制工具 CVS, Subversion 等不同,…

ubuntu 2022.04 安装vcs2018和verdi2018

主要参考网站朋友们的作业。 安装时参考: ubuntu18.04安装vcs、verdi2018_ubuntu安装vcs-CSDN博客https://blog.csdn.net/qq_24287711/article/details/130017583 编译时参考: 【ASIC】VCS报Error-[VCS_COM_UNE] Cannot find VCS compiler解决方法_e…

陶瓷碗口缺口检测-图像分割

图像分割 由于对碗口进行缺口检测,因此只需要碗口的边界信息。得到陶瓷碗区域填充后的图像,对图像进行边缘检测。这是属于图像分割中的内容,在图像的边缘中,可以利用导数算子对数字图像求差分,将边缘提取出来。 本案…

电流检测方法

电路检测电路常用于:高压短路保护、电机控制、DC/DC换流器、系统功耗管理、二次电池的电流管理、蓄电池管理等电流检测等场景。 对于大部分应用,都是通过感测电阻两端的压降测量电流。 一般使用电流通过时的压降为数十mV~数百mV的电阻值&…

42 智能指针 auto_ptr, unique_ptr,shared_ptr,weak_ptr 整理

都是类模版 都不用开发者自己delete 指针。这是因为智能指针有自己管理指向对象的能力,包括释放指向的内存,因此开发者不要自己释放。 auto_ptr, (废弃)C98 已经被弃用,替代方案是unique_ptr. 被弃用的原因: 1.不能…

基于传统机器学习模型算法的项目开发详细过程

1 场景分析 1.1 项目背景 描述开发项目模型的一系列情境和因素,包括问题、需求、机会、市场环境、竞争情况等 1.2. 解决问题 传统机器学习在解决实际问题中主要分为两类: 有监督学习:已知输入、输出之间的关系而进行的学习,从而…

Minio安装及整合SpringBoot

一. MinIO概述 官网地址:https://minio.org.cn MinIO是一款基于Apache License v2.0开源协议的分布式文件系统(或者叫对象存储服务),可以做为云存储的解决方案用来保存海量的图片、视频、文档等。由于采用Golang实现,服…

《Git学习笔记:Git入门 常用命令》

1. Git概述 1.1 什么是Git? Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。 其它的版本控制工具 SVNCVSVSS 1.2 学完Git之后能做…

数据在AI任务中的决定性作用:以图像分类为例

人工智能的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而举步难行。不过别担心,我为大家整理了一份600多G的学习资源,基本上涵盖了人工智能学习的所有内容。点击下方链接,0元进群领取学习资源,让你的学习之路更加顺畅!记得…

基于SSM的法律咨询系统的设计与实现

末尾获取源码 开发语言:Java Java开发工具:JDK1.8 后端框架:SSM 前端:Vue 数据库:MySQL5.7和Navicat管理工具结合 服务器:Tomcat8.5 开发软件:IDEA / Eclipse 是否Maven项目:是 目录…

虾皮shopee根据ID取商品详情 API (shopee.item_get)

Shopee 是一个流行的电商平台,提供了 API 来允许开发者与平台进行交互。如果你想通过 API 根据商品 ID 获取商品详情,你可以使用 Shopee 的 item_get API。 以下是使用 Shopee 的 item_get API 根据商品 ID 获取商品详情的步骤: 获取 API 密…

希尔排序和计数排序

📑前言 本文主要是【排序】——希尔排序、计数排序的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句…

音频编辑软件:Studio One 6 中文

Studio One 6是一款功能强大的数字音乐制作软件,为用户提供一站式音乐制作解决方案。它具有直观的界面和强大的音频录制、编辑、混音和制作功能,支持虚拟乐器、效果器和第三方插件,可帮助用户实现高质量的音乐创作和制作。同时,St…

verilog编程题

verilog编程题 文章目录 verilog编程题序列检测电路(状态机实现)分频电路计数器译码器选择器加减器触发器寄存器 序列检测电路(状态机实现) module Detect_101(input clk,input rst_n,input data,o…

高防云主机安全解决方案

全球防护 高防云服务器支持区域覆盖中国大陆和海外地区,包括北京、上海、广州和中国香港等地。通过组合DDoS高防包和对应地区的CVM资源,可提供T级的单地区防护能力。 稳定可靠 兼顾防护和性能,DDoS提供实时防护,清洗成功率达99…