备注好友:方向-学校/公司-姓名/昵称
【AIGC 先锋科技】交流群
作者解决了从文本描述生成3D世界的挑战。作者提出了一种无需训练和优化的方法SynCity,该方法利用预训练的3D生成模型的几何精准度和2D图像生成器的艺术多样性,创造出大规模、高质量的3D空间。
尽管大多数3D生成模型是以物体为中心的,无法生成大规模的世界,但作者展示了如何将3D生成器与2D生成器结合以生成不断扩展的场景。
通过基于瓷砖的方法,作者允许对场景的布局和外观进行精细控制。
世界逐瓷砖生成,并且每个新瓷砖在其世界上下文中生成后,再与场景融合。SynCity生成的场景引人入胜且细节丰富、多样化。
- Introduction
作者考虑从文本描述生成3D世界的問題。例如,为视频游戏、虚拟现实、特效和模拟生成3D内容是非常耗时且费力的。当涉及到生成整个3D场景时,大部分内容并不具有特别的艺术价值,而其手工创建仍然是必要的,可能会被视为对人力、才华和创造力的浪费。生成模型可以通过很大程度上自动化这些繁琐的任务来减轻或甚至消除这种负担。
现代生成型AI的发展显著影响了3D内容的生成,并有望大幅降低其生产成本。DreamFusion [39] 是最早尝试利用最先进的基于扩散的2D图像生成器[43]来创建3D物体的方法之一。该领域随后通过微调2D图像生成器以产生多个一致的物体视图,以及学习少视角3D重建网络[24, 63]得到了显著进步。最近,研究重点转向学习3D潜在空间的方法[,可以通过采样这些潜在空间来生成3D物体。由于潜在空间直接编码了物体的3D结构而不是其2D外观,这些方法能够生成更加精确和规范的几何形状。
尽管3D生成方法有其优势,目前它们大多仍局限于生成单个物体。然而,3D生成AI最有前途的应用是构建整个虚拟世界,在这里自动化技术可以带来最大的变革。已有大量文献探讨从文本或图像 Prompt 生成3D场景的方法。大多数此类方法都是基于图像的,并通过从初始图像逐步扩展来重建较大的场景区域,结合深度预测、图像和深度超填以及使用NeRF[35]或3D高斯点绘制[19]进行3D重构。这些方法的主要优势在于,它们可以利用强大的2D图像生成模型来创建场景的第一视图及后续视图。
这些2D生成器使整个系统能够理解复杂的文本 Prompt 并生成具有良好艺术质量的相应3D场景。然而,这些方法难以在整个大场景中保持连贯的3D结构。例如,虽然重建的场景可能以360°的方式包围观察者,但通常无法“走进”场景超过几步。即使在World Labs[21]这样的公司开发的先进实现中也是如此,该公司专门从事空间AI技术。
将3D场景扩展到这些“3D泡泡”之外的一个挑战在于,基于图像的方法难以在不漂移的情况下逐步保持一致性。作者认为,3D生成模型可能是更好的选择,因为它们能够规范和约束重建的几何结构,包括在物体可见侧面背后的区域生成形状和纹理。这在之前的作品中已经得到了明确的展示,例如BlockDiffusion [59] 和LT3SD [33],其中可以生成大型一致的空间。然而,这些方法在生成的场景质量及其多样性方面受到限制,因为很难直接训练3D生成模型来进行场景生成。特别是与基于视角的同行相比,这些方法没有建立在图像生成器之上,因此无法利用预训练二维生成器在数亿张图像上带来的艺术质量和解释复杂文本 Prompt 的能力。
在本文中,作者旨在利用3D生成模型的优势,并借鉴2D图像生成器的优点,以生成可自由导航的大规模高质量3D空间(图1)。首先,作者注意到尽管像TRELLIS [61]这样的3D模型主要用于目标 Level 的重建,它们能够重建多个物体较为复杂的局部组合。借鉴电子游戏世界构建的想法,作者特别表明TRELLIS能够有效生成一个完整的世界或至少可以生成代表世界局部区域的一块地砖。作者展示了如何通过 Prompt 模型使用“等轴侧”视角的地砖图像,然后生成该地砖的3D表示。
基于这一基本能力,作者探讨了通过生成并拼接多个瓷砖来生成大型场景的问题。作者在一个文本到图像生成器(Flux [20])的基础上,提出了一个新的 Prompt 方法,使该生成器能够稳定地生成具有相似等轴视角的瓷砖。通过这种方式,作者鼓励各个瓷砖的视角保持稳定且兼容,从而使其更容易进行拼接。
为了确保瓦片能够适当地拼接在一起,作者提出了两种机制。首先,作者通过使用之前生成的瓦片来为图像生成器提供上下文信息,从而鼓励视觉一致性,在此过程中,每个新瓦片会填充场景二维等角视图中缺失的区域。其次,作者通过使用3D生成模型将相邻瓦片的3D表示进行融合,以强制执行几何一致性。
- Related Work
场景的新视角合成。将图像扩展至其边界之外一直是一项长期挑战,尤其是在计算机视觉领域。早期依赖层次化表示的方法试图扩展以目标为中心的场景,但这些方法忽略了场景的真实几何结构 。SynSin [58] 是一个关键性的工作,在此工作中,图像特征被投影并作为条件用于生成新的视图,实现了几何和语义的一致性。ZeroNVS [44] 引入了高精度的结果,并通过细粒度控制摄像机视角保持目标中心性。GenWarp [45] 在生成新视角时通过交叉注意机制整合了语义信息。
这些方法面临的重大挑战是语义漂移和物体持久性。为了获得显式的3D表示,生成的观点需要转换为这样的表示形式,例如NeRF[35]或高斯模型[18, 19],其中任何几何冲突都必须得到解决。
基于图像投影的场景生成。另一条研究路线是采用2D图像生成模型逐步构建场景的3D表示。大多数方法使用图像生成模型通过预定义的相机姿态对现有场景进行补全,然后将结果与深度预测模型融合到3D空间中。Text2Room [17]生成室内场景的网格表示。由于网格边界清晰限制了场景的范围,用户可以自由探索整个场景。LucidDreamer [8] 和 Text2Immersion [37] 超出了室内场景的范畴,但当用户远离用于生成场景的相机姿态时,所生成的场景会暴露几何不一致性问题。Invisible Stitch [12] 通过填充深度信息(而不是简单地对其进行对齐)解决了这个问题;而 RealmDreamer [49] 则提出多种优化损失来细化生成的场景。尽管这些改进在一定程度上缓解了问题,但生成的场景依然存在几何瑕疵,并且规模仍然较小。WonderJourney [64] 引入了新的深度融合思想,例如根据视差将目标分组为平面和天空深度细化,从而支持大规模的“场景旅程”,但不同场景的关键帧之间的独立表示并未合并为一个连贯的整体场景。WonderWorld [65] 利用这些改进生成一个单一场景,并允许交互式的更新,但生成场景的真实扩展依然有限。其他工作则采用了全景图[51, 56] 或隐式表示[2, 44],但移动的自由度仍然受限。
程序化场景生成。进一步的方法允许对自然环境(如地形或城市布局)[5-7, 27, 30] 或城市区域[29, 46, 62] 进行长距离飞行俯瞰。这些方法通常生成程序化的无边界图像。虽然这些方法能够生成逼真的图像,但由于方法具有领域特定性,因此它们在可生成的多样性方面受到很大限制,往往显得单调。
三维场景生成。相比于仅仅生成场景的图像或仅在二维上进行扩展绘画,进一步的方法直接生成场景的表示。Set-the-Scene [9]通过定义目标 Agent 为NeRF场景布局增加了一层控制。BlockFusion [59]学习了一个网络,通过自回归扩散小块来扩展网格。使用二维布局条件来控制生成过程,允许用户生成房间、村庄和城市的场景。虽然该方法允许构建大规模场景,但它生成的目标多样性受到严重限制,因为这需要特定领域的3D训练数据,并且它生成的是无纹理的网格。LT3SD [33]学习了一个分块生成并在粗细 Level 上进行生成的扩散模型。然而,该方法仅训练用于生产室内场景。
与此同时,通过文本生成3D和图像生成3D领域快速进展的推动,复杂且高保真的三维物体的合成也得以实现[25, 26, 28, 31, 40, 41, 47, 53, 61, 68, 70]。这些模型在Objaverse-XL等大型标注的3D数据集中进行了训练,可以生成各种不同类型的目标。
然而,据作者所知,之前没有任何工作利用目标生成器进行场景生成。
三维世界中,
是每个瓷砖一个子 Prompt 的集合
,以及一个全局 Level 的“风格” Prompt
,因此作者可以写成
,其中
表示所有可能字符串的集合。
Prompt ( p ) 可以手工构造(这允许控制每个瓷砖的内容),或者由大语言模型(LLM)如 ChatGPT [36] 从一个“种子” Prompt 生成。对于后者,作者 Prompt ChatGPT 生成一个类似网格的世界,并为其提供一个具有特定瓷砖描述的示例 JSON 文件(详情见附录 A.1)。
- Method
作者的目标是从初始文本 Prompt
生成一个3D世界
。作者的主要成果是展示了如何利用 Prompt 工程与现成的语言模型、2D和3D生成器结合,自动创建整个世界,无需重新训练模型。
作者将世界构建成一个
的网格
,由许多正方形瓷砖构成,每个瓷砖可以包含多个复杂的3D目标(例如,建筑物、桥梁、树木等),以及地面表面。作者逐瓷砖地生成世界,如图3所示。因此,在生成瓷砖
时,所有位于其上方或左上方的瓷砖$\mathcal T(x,y)={(x',y')\in\mathcal T:y'
3.2. Prompting the 2D Generator
作者使用第3.1节中的语言 Prompt
来 Prompt 一个现成的2D图像生成器
,使其生成每个待生成瓷砖的2D图像
,如图4所示为例。该图像
需满足以下约束条件:(1) 它必须反映目标瓷砖的瓷砖特定指令
以及世界 Level 指令
。(2) 它必须适合于下一步的图像到3D生成器的 Prompt 。(3) 它必须与之前生成的瓷砖保持一致。
作者的 Prompt 策略设计旨在满足这些约束条件。图像是从2D图像生成器
中抽取的一个样本
,其中
是一个结合了局部瓷砖描述和全局世界描述的 Prompt 。生成器
还接收一个基础图像
和一个 inpaint 填充 Mask
来约束输出。作者假设
具有 inpaint 功能——这是现代图像生成器的常见特性。
拼接修复。为了满足约束条件(2),作者需要鼓励图像生成器生成规范的拼接力,以便图像到3D模型能够输出具有良好拼接效果的几何结构规范的拼接力。作者假设拼接力的基础是一个单位大小的正方形,并且它们以“等轴测”的方式被成像。这种拼接力的框架有利于生成规范的3D拼接力。此外,在电子游戏中这是一种常见的选择,而在训练过程中,图像生成器可能已经观察到了这些数据,因为它们通常是在类似游戏的数据上进行训练的。
作者在方法中的总体概述如图2所示。作者的方法的第一步是将世界描述
扩展为砖块特定的 Prompt (第3.1节)。第二步是将这些砖块特定的 Prompt 传递给2D图像生成器和修补器,以创建每个砖块的等轴视图,并考虑迄今已生成的部分世界(第3.2节)。第三步是从这些等轴视图中提取图像 Prompt ,并将它们作为输入提供给图像到3D生成器,以在3D中重建每个砖块的几何形状和外观(第3.3节)。最后一步是对接并融合这些砖块的3D重建以创建一个连贯的3D世界(第3.4节)。
3.1. Prompting the Language Model
语言 Prompt 的目标是将世界高层次文本描述
扩展为一个特定瓷砖的文本 Prompt 集
,这些 Prompt 可以用于图像生成。因此,作者的目标是条件化图像生成器
,使其产生此类图像。虽然一种可能的方法是细调生成器以生成此类图像,但作者证明仅通过 Prompt 工程即可实现这一效果,无需任何重新训练。作者通过仔细构造图4所示的输入
和
来实现这一点。具体来说,作者将
设置为瓷砖底部的图像,即从固定等轴视角拍摄的一个方形、灰色平板。 Mask
是一个二进制 Mask ,覆盖在底部的立方体上。
图4展示了以这种方式 Prompt 模型的结果,以及如果移除信号B和信号M会发生的情况:瓷砖的角度和整体框架是随机的,不适合用于3D生成。
考虑上下文的影响。除了第一个瓷砖(0,0)外,其他瓷砖都是在已经生成的世界上下文中生成的。为了反映这种上下文,对于
的瓷砖,作者修改了基础图像
和 Mask
,如图5所示。对于基础图像
,作者将已生成的部分3D世界进行渲染,为修复网络提供上下文信息。作者还修改了 Mask
,以避免遮盖左侧(西边)已经生成的瓷砖(即,对于
中的瓷砖
,这些是集合${(x,y)\in\mathcal{T}:x
附录讨论了世界边界处瓦片的特殊情形(参见附录A.2)。
3.3. Prompting the 3D Generator
给定第3.2节中2D图像生成器得到的瓷砖图像
,下一步的目标是使用图像到3D模型
生成相应的3D重建
。作者选择使用一个稳健的3D生成器,并选择了TRELLIS [61],因为其性能出色,能够同时生成形状和纹理,并且具有易于操作的潜在空间结构,如作者在第3.4节中后续所示,这将便于进行融合。
因此,3D重建相当于从图像到3D生成器
中抽取一个样本
。作者不是基于图像
进行条件化,而是使用如接下来所述的预处理版本
。
二维前景提取和 Reshape 。回想一下,在第3.2节中的2D生成器生成的图像
包含了瓷砖及其上下文。然而,3D生成器
期望输入的图像仅仅显示需要重建的目标,即新的瓷砖。因此,第一步是从
中提取仅对应新瓷砖的部分,作者通过应用修复蒙版,然后运行rembg [15]结合alpha剪切[4]移除背景,如图7所示。
新生成的图像仅窄边裁剪以围绕新的瓦片。类似第3.2节,作者发现通过“重基”操作(作者称之为“rebasing”)来幻视生成瓦片的基础是有益的,这一过程如图7所示。作者简单地将瓦片图像与一个稍大的灰色条块(二维空间)结合起来,得到
,实际上为3D生成器提供了工作的“框架”。瓦片的基础作为其几何结构的一部分进行重建,可用于验证并作为进一步3D处理的一个易于检测的 Token 。
rebased图像
被输送到3D生成器
中,以获得瓷砖的3D重建
,即3D高斯斑点(3DGS)。rebasing对3D结果的影响如图8所示。
三维几何验证。由于生成器存在不足之处,作者需要验证三维重建 ( G(x, y) ) 的质量是否足够高。如果不满足要求,作者将舍弃它并使用不同的随机种子重新生成该瓷砖。为了验证瓷砖,作者使用了几项启发式方法来检查瓷砖的几何形状是否占据了一个足够大的正方形区域,并且瓷砖的基础部分是否得到了忠实的重建。请参见附录A.3。
3D 后处理。此时,作者已经验证了瓷砖的 3D 重建 ( G(x, y) ) 由三维高斯分布混合而成。然而,实际的 3D 脚印、方向和大小是由 3D 生成器控制的,并且不一致。后处理步骤通过首先裁剪掉添加的基础部分,然后将瓷砖缩放至单位尺寸,最后调整其方向以匹配 2D 图像 Prompt 来进行简单的启发式细化 3D 高斯表示。作者在附录 A.4 中对此进行了更详细的解释。
3.4. 3D Blending
在该Pipeline的这一阶段,作者已经重建了所有三维瓦片
,其中
。得益于第3.2节和第3.3节中 Prompt 和后处理步骤,这些瓦片已经在很大程度上对齐并正确朝向,其地面高度大致在同一水平面上。由于三维重建是三维高斯斑点,因此可以直接将它们合并作为整个世界的重建。
尽管如此,瓦片的边界可能无法完美匹配。这主要是因为TRELLIS并不精确地重构输入图像,而且它只提供了每个瓦片的一个视角,这仅间接控制着瓦片背面的重构。因此,在本节中,作者提出了一种方法来改进瓦片的拼接,确保3D世界是连贯且连续的。
特别是在TRELLIS的潜在空间中,作者重新生成两个相邻图块的边界区域,实质上是将其融合,然后解码成3DGS。接下来,作者将详细讨论这一过程。
二维融合。为了融合两个相邻瓦片的潜在特征,作者首先预测两个瓦片之间边界的外观。为此,作者将这两个3D瓦片并排放置,渲染一个正面视图,并使用
填充渲染图像中间区域的缺失部分(参见图2)。这生成了一个融合效果很好的图像,作者利用该图像来条件化
进行三维融合。三维融合。接下来,作者使用
来融合潜在特征。作者选取两个瓦片的潜在特征
和
,其中
表示在大小为
的3D网格中,TRELLIS去噪后的
维特征。作者将这些特征合并到一个新的 Voxel 体
中,它们相遇的部分位于中间位置:
="" 作者对体积
应用去噪函数
,该函数是
的潜在去噪器,但仅在作者已应用缝合的中间区域进行,即对于
,其中
,而其他部分保持不变。具体来说,作者初始化
,并在每次去噪步骤
时,更新
为:
其中,
是通过在对应的噪声 Level 上向原始
添加噪声获得的。实际上,作者仅对TRELLIS的第二阶段进行去噪,而固定第一阶段的占用潜变量。这样做的原因是,第一阶段的空间分辨率极低(
,而第二阶段的空间分辨率为
),这为去噪区域
的大小提供了很少的灵活性。因此,在上采样潜变量之前,作者需要保持第一阶段的不变性。请注意,由于重新基底化,
包含一个3D基础。虽然作者在3DGS空间中移除了这个基础,但在潜变量空间中尚未执行相同的操作。作者使用与3DGS空间中相同的切割方法来裁剪潜变量,并对这些切割进行四舍五入处理,以考虑到潜变量 Voxel 网格的离散性质。然而,在上一步中,作者假设潜变量
和
具有相同的空间分辨率,即
。裁剪之后,如果相邻切块的切割不同,则它们的空间分辨率不再一致。因此,类似于作者将切块的3DGS调整到单位尺寸的方式,作者还需要将裁剪后的潜变量上采样回原来的网格分辨率
。
作者发现,通过插值直接上采样潜变量会导致重建效果较差,如图9所示。作者认为这是由于潜变量的稀疏结构以及TRELLIS潜在解码器的一些特性所致。
作者提出以下上采样方案。首先,作者将TRELLIS预测的裁剪占用体积上采样至原始分辨率
。接着,在上采样的占用体积上,作者对新的潜变量
进行去噪处理。为了保留原始3D砖块的细节和纹理,作者从多个视角对其进行渲染,并在所有视角的共同条件下联合进行去噪。实际上,在使用多个条件视角进行去噪时,每次时间步的去噪步骤计算为所有视角去噪步骤的平均值。作者在图9中展示了这种上采样方案带来的优越重构效果。
- Experiments
实验细节 作者使用ChatGPT o3-mini-high生成文本 Prompt 。对于2D修复模型,作者采用了[1]中的Flux ControlNet。
人类偏好。作者评估了人类对由作者的方法生成的结果与使用BlockFusion [59]得到的结果的偏好。特别是,在一个“城市”场景中进行了比较,该场景展示了整个场景以及近距离细节视图。如表1所示,参与者共有22人,总体上更偏好作者的方法,并且其几何结构、真实感和多样性更好。
4.1. Ablations
作者消除了几种方法组件的影响,展示了每个组件的重要性。
构建网格。生成一个三维场景的朴素方法是 Query 图像生成器以产生一个大规模场景的图像(使用作者的2D图像 Prompt 设置),然后直接使用TRELLIS获取整个三维世界。为了实现与作者方法相同 Level 的控制,文本 Prompt 需要非常详细,并包含布局指令。然而,作者发现无论是具体的还是抽象的 Prompt 在引导Flux的生成方面都不太有效(更多细节参见A.4)。
2D Prompt 上下文。作者移除了相邻瓷砖的上下文,如第3.2节所述。这样一来,每个瓷砖独立采样,物体之间的相对比例不一致,如图10所示。
Reshape 基底。为了在网格上放置瓷砖,它们需要是正方形(否则网格将是锯齿形的),并且其基底需要被忠实重建(清晰地界定瓷砖的边界)。如果不进行 Reshape 基底处理,TRELLIS生成的几何图形可能会超出基底范围,使瓷砖的真实边界难以识别,如图8所示。作者通过使用一个小规模的
场景来抑制累积误差的影响,进行 Reshape 基底效果的消除实验。如表2所示,不进行 Reshape 基底处理会导致TRELLIS生成的瓷砖平均既不是完美的正方形,也没有牢固的边界。
隐式上采样。作者从TRELLIS生成的200个瓦片中每种随机抽取10个视图,并使用第3.4节中提出的方法和简单的插值方法在上采样时计算表3中的感知度量指标。结果显示,在多种度量指标下,所提出的方法即使使用单帧条件也能获得更好的结果。
3D融合。在图12中,作者生成了一个未应用3D融合的场景(第3.4节),导致了瓷砖之间的不连续性。
4.2. Qualitative Results
作者在图1中展示了由作者的方法生成的示例场景。此外,作者还提供了细节视图,以突出场景的质量和多样性。更多信息请参见补充材料中的更多例子。
探索生成的世界。作者可以采样轨迹来探索生成的3D世界(图11)。为了增强视觉效果,已添加了一个天空盒。与由世界视频模型生成的轨迹[38]不同,作者的轨迹保证了一致性且不会出现语义漂移。不同于其他只能生成一个泡泡的系统,作者的方法创建了足够大的空间,可以在其中以非平凡的方式进行导航。
5. Conclusion
作者介绍了SynCity,这是一种生成多样、高质量且复杂的3D世界的_approach_,并可通过布局和外观的精细控制来实现这一目标。SynCity通过在网格上自回归地生成瓦片来创建世界,从而实现任意网格大小的可扩展性。通过对局部上下文的考虑以及借助3D填充技术,这些瓦片可以无缝拼接成连贯的场景。SynCity具有灵活性:它既可以从简短的“世界”文本 Prompt 中生成世界,也可以通过特定瓦片的指令来控制单个瓦片,同时保持生成世界的整体主题一致性。生成世界的丰富细节可以得到全面探索,不受许多先前工作中的单一“3D气泡”的限制。
作者通过精心设计的 Prompt 策略利用了预训练的语言生成器、2D生成器和3D生成器,展示了现成生成的有效性,并且无需重新训练这些组件中的任何一个。然而,在3D场景尺度数据可用的情况下,微调某些组件可能会在 Pipeline 中的对齐和重基步骤中带来进一步改进的结果并简化步骤。未来的工作还可以考虑放宽瓦片结构,例如随机平移和缩放瓦片,并使用粗到细建模以确保全局结构的连贯性和局部细节的精细度。
参考
[0]. SynCity: Training-Free Generation of 3D Worlds .