SIGGRAPH Asia 2022 | 一句话生成高清360度场景及光照,可直接渲染数字资产

本文主要是介绍SIGGRAPH Asia 2022 | 一句话生成高清360度场景及光照,可直接渲染数字资产,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

d5c6b1dd977963dbd571b09c26a90bce.png

来源:机器之心

本文约2000字,建议阅读9分钟

来自南洋理工大学 S-Lab 的研究者提出了一个基于零次学习文本驱动的 HDR 全景图合成框架。

作者:MMLab@NTU

伴随着元宇宙的浪潮和虚拟现实技术的不断进步,业内对于 3D 逼真写实渲染的需求愈发凸显。除去建模精细度,环境光照也是影响渲染质量的重要因素。在所有的图形学技术中,高动态范围全景贴图(HDRI)能够提供逼真的场景光照和沉浸式的环境纹理,是最通用且高效的方法。

然而,能够直接应用到渲染管线中的 HDRI 应具有足够多的场景细节、极高的分辨率和记录线性光照的高动态范围。这使得不论是采集还是编辑 HDRI 都变得十分困难和昂贵。这自然而然地引出一个问题,我们能否使用图像生成模型来合成 HDRI,同时给予用户足够简单的输入(例如文本),即文本驱动的高动态范围全景图生成。这样一来,在任何虚拟现实应用中,没有专业知识的用户也可以仅仅通过一句话合成出自己想要的逼真场景,同时获得与之匹配的写实光照。

举个直观的例子,当用户输入「brown wooden dock on lake surrounded by green trees during daytime」,我们期望模型能够输出与文本匹配的 4K 分辨率、高动态范围的 360 度全景图,且能够直接应用到任何图形学管线中用于渲染数字资产。

efa0addef93865893bdf7835a2dd51e6.gif

想要达成这样的目标,面临着如下四个挑战:

1)超高分辨率:已有图像生成模型难以在超高分辨率(大于 4K)下合成场景级别的内容,同时保证丰富的细节。

2)空间一致性与整体感:不同于以物体或人为中心的图像合成,场景级别的全景图常常包含很多物体和特定的空间结构。在图像合成过程中保持空间连续性及场景语义完整是一个很难的问题。

3)文本一致性:不同于 DALLE2 和 stable-diffusion 等文本驱动的生成模型,我们难以收集到足够的文本 - 全景图数据对于训练使用,因此在缺失成对训练数据的情况下,如何将场景语义与输入文本对齐通过自监督的方式对齐也是一项挑战。

4)高动态范围:不同于传统图像(动态范围在 0-255 之间),HDRI 记录了线性域下的光辐照度,常常具有较大的动态范围,会导致不稳定的学习。

为此,我们提出了一个基于零次学习(Zero-Shot Learning)文本驱动的 HDR 全景图合成框架——Text2Light,能够根据输入的场景描述合成分辨率超过 4K 的具有高动态范围的全景图。模型的输出可以直接在 Blender、UE、Maya 等现代图形学渲染管线中,作为场景纹理和光照使用。

54d8cb9671a9e69de45243416a2a7538.png

  • 项目主页:https://frozenburning.github.io/projects/text2light/

  • 代码:https://github.com/FrozenBurning/Text2Light

  • 论文:https://arxiv.org/abs/2209.09898

  • Colab demo:https://colab.research.google.com/github/FrozenBurning/Text2Light/blob/master/text2light.ipynb

181e54ba17831cadb3015af7283f1660.png

上图展示了 Text2Light 的工作流程,主要由两个阶段组成,并分别对应着离散和连续的两种不同表征。阶段一基于层级码本的离散表征实现文本驱动的低动态范围全景图合成;阶段二基于结构化球面场的连续表征实现超分辨率逆向色调映射,将阶段一的低动态范围全景图转化为高动态范围的高清全景图。

在阶段一中,我们采用了层级化的框架,将全局外观与局部细节解耦到各自独立的模块中进行建模。具体而言,阶段一由三个模块组成,如下图所示:

1)全局 - 局部层级码本:我们使用 VQVAE 的训练方法,将极低分辨率的全景图嵌入到全局 (global) 码本中,将高分辨率的图像块 (patch) 嵌入到局部 (local) 码本中。这样一来就可以从全局码本中采样具有空间一致性和整体感的全局特征,同时从局部码本中采样获得局部细节。

2)基本文本的全局采样器:我们使用 CLIP 预训练得到的图像编码器将训练数据中的全景图转化到文本 - 图像空间中,同时获得数据集中相应样本的 K 近邻特征向量,进而采样器通过自监督学习获得根据文本采样全局特征的能力。

3)具备结构感知的局部采样器:根据全局采样器输出的全局语义特征,我们进而训练一个局部采样器来合成全景图中的局部细节。为了保持全景图的特有球面空间结构,我们还引入了球面位置编码作为一种特殊的归纳偏置。

5b998aacaf5f7335308286d6894719d2.png

在阶段二中,作为阶段一中离散表征的补充,我们将全景图建模为连续球面场,即可以使用任意球面坐标来查询得到一个高动态范围像素值。这一建模同时满足了超分辨率(低分辨率到高分辨率)和逆向色调映射(低动态范围到高动态范围)两种需求。具体而言,如下图所示,我们首先使用卷积网络将图像块编码为与像素对齐的潜在特征向量。对于连续球面上的任意位置,我们利用区域插值从其四个近邻特征向量中获得其特征,并最终使用两个 MLP 得到输出的 HDR 像素值。

9b8f5bf105c349e1d73e64faff7e86b8.png

Text2Light 能够根据任意输入文本来合成高清 HDR 全景图,生成的结果能够提供逼真的环境光照,该方法可直接用于渲染三维资产或虚拟现实。

下面是一个交互式 UI,例如我们输入 brown wooden floor with white wall, text2light 可以生成出对应的 HDR 全景图,并且能够直接用来渲染,将物体逼真地放进场景中!

fb581c846b40b0b4613ca860c2a6dec2.gif

输入 (green grass field with trees and mountains in the distance), 我们能得到下面这样沉浸式的 VR 体验!

Text2light 更多的结果:

ad629c88015caa654f7121635353b617.png

15cb0cdad578cb7507f610c8889d1ed7.png

我们的生成结果甚至可以直接在 blender 中用来渲染大规模城市场景:

660e17cce9fc15646a2072914ccbfd49.png

同时我们还展示了 text2light 在编辑全景图上的潜在能力。

12aa99919fac7c6c2761245fb6f74f54.png

本工作提出了 Text2Light,一个基于零次学习文本驱动的 HDR 全景图合成框架,能够根据一段场景描述合成高分辨率、高动态范围的全景图,并可以直接用在下游图形学任务和应用上,例如逼真地渲染数字资产。我们希望本工作能够为虚拟现实和元宇宙生态提供了一种全新的可能。

编辑:黄继彦

c000d0e23b49a3754895db4d9bae0687.png

这篇关于SIGGRAPH Asia 2022 | 一句话生成高清360度场景及光照,可直接渲染数字资产的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/284714

相关文章

JavaScript中的isTrusted属性及其应用场景详解

《JavaScript中的isTrusted属性及其应用场景详解》在现代Web开发中,JavaScript是构建交互式应用的核心语言,随着前端技术的不断发展,开发者需要处理越来越多的复杂场景,例如事件... 目录引言一、问题背景二、isTrusted 属性的来源与作用1. isTrusted 的定义2. 为

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Linux alias的三种使用场景方式

《Linuxalias的三种使用场景方式》文章介绍了Linux中`alias`命令的三种使用场景:临时别名、用户级别别名和系统级别别名,临时别名仅在当前终端有效,用户级别别名在当前用户下所有终端有效... 目录linux alias三种使用场景一次性适用于当前用户全局生效,所有用户都可调用删除总结Linux

Mysql虚拟列的使用场景

《Mysql虚拟列的使用场景》MySQL虚拟列是一种在查询时动态生成的特殊列,它不占用存储空间,可以提高查询效率和数据处理便利性,本文给大家介绍Mysql虚拟列的相关知识,感兴趣的朋友一起看看吧... 目录1. 介绍mysql虚拟列1.1 定义和作用1.2 虚拟列与普通列的区别2. MySQL虚拟列的类型2

MybatisGenerator文件生成不出对应文件的问题

《MybatisGenerator文件生成不出对应文件的问题》本文介绍了使用MybatisGenerator生成文件时遇到的问题及解决方法,主要步骤包括检查目标表是否存在、是否能连接到数据库、配置生成... 目录MyBATisGenerator 文件生成不出对应文件先在项目结构里引入“targetProje

在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码

《在MyBatis的XML映射文件中<trim>元素所有场景下的完整使用示例代码》在MyBatis的XML映射文件中,trim元素用于动态添加SQL语句的一部分,处理前缀、后缀及多余的逗号或连接符,示... 在MyBATis的XML映射文件中,<trim>元素用于动态地添加SQL语句的一部分,例如SET或W

Python使用qrcode库实现生成二维码的操作指南

《Python使用qrcode库实现生成二维码的操作指南》二维码是一种广泛使用的二维条码,因其高效的数据存储能力和易于扫描的特点,广泛应用于支付、身份验证、营销推广等领域,Pythonqrcode库是... 目录一、安装 python qrcode 库二、基本使用方法1. 生成简单二维码2. 生成带 Log

VUE动态绑定class类的三种常用方式及适用场景详解

《VUE动态绑定class类的三种常用方式及适用场景详解》文章介绍了在实际开发中动态绑定class的三种常见情况及其解决方案,包括根据不同的返回值渲染不同的class样式、给模块添加基础样式以及根据设... 目录前言1.动态选择class样式(对象添加:情景一)2.动态添加一个class样式(字符串添加:情

Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南

《Python使用Pandas库将Excel数据叠加生成新DataFrame的操作指南》在日常数据处理工作中,我们经常需要将不同Excel文档中的数据整合到一个新的DataFrame中,以便进行进一步... 目录一、准备工作二、读取Excel文件三、数据叠加四、处理重复数据(可选)五、保存新DataFram