只需400ms!英伟达提出LATTE3D:大规模高质量的Amortized文本到增强3D 合成
文章链接:https://arxiv.org/pdf/2403.15385
工程地址:https://research.nvidia.com/labs/toronto-ai/LATTE3D/
最近的文本到3D生成方法产生了令人印象深刻的3D结果,但需要对耗时进行优化,每个提示可能需要长达一小时。像ATT3D的Amortized方法同时优化多个提示以提高效率,实现了快速文本到3D合成。然而,它们无法捕获高频几何和纹理细节,并且难以扩展到大型提示集,因此泛化能力较差。
本文介绍了Latte3D,解决了这些限制,实现了在显著更大的提示集上快速生成高质量的结果。方法的关键在于:
- 构建了一个可扩展的架构
- 通过3D感知扩散先验、形状正则化和模型初始化,在优化过程中利用3D数据,实现对各种复杂训练提示的鲁棒性
Latte3D Amortizes了神经场和纹理表面生成,可以在单次前向传递中生成高度详细的纹理网格。Latte3D在400ms内生成3D对象,并可以通过快速测试时优化进一步增强。
介绍
通过预训练图像扩散模型进行文本到3D合成的最新进展,标志着使用自然语言大众化3D内容创作方面取得了重大进步。然而,这些方法通常涉及昂贵且耗时的优化,从文本提示生成单个3D对象可能需要长达一小时的时间。为了加速这些工具,需要一些技术来实时生成各种高质量的3D对象,从而实现对输出的快速迭代,提升用户在3D内容创作中的创造力。本文的目标是实现针对多样化文本提示的实时文本到3D合成,并在需要进一步提升质量时支持快速的测试时间优化。
开创性工作[39]提出了使用分数蒸馏采样(SDS)损失来优化神经场以生成3D资源。这解锁了开放词汇的3D内容创建,但存在以下问题:(a)缺乏高频几何和纹理细节,(b)成本高,(c)容易生成不符合预期的对象。后续研究引入了基于表面的微调阶段来生成高频细节。尽管这种两阶段流程定义了大多数当前最先进的文本到3D方法,但它仍然成本高且容易出现提示失败。
ATT3D是第一个通过同时训练单个模型处理一组提示的过程(称为Amortized优化)来加速文本到3D生成的方法。Amortized通过优化一组提示上的共享文本条件模型来减少训练时间,使模型能够在推理时推广到新的提示。尽管在精心策划的提示上取得了有希望的结果,但ATT3D和基础的逐提示方法仍然容易在一般提示上失败。ATT3D的简单架构容量有限,缺乏强大的归纳偏差用于3D生成,难以随着数据集大小和渲染分辨率的增加而扩展,从而限制了该方法仅适用于小规模(100至1000个)提示集和低保真度的纹理。此外,ATT3D只Amortize 3D合成的第一阶段,生成神经场表示,因此无法生成高频细节。
为了解决这些问题,本文引入了Latte3D,一种大规模Amortized文本到增强3D合成的方法,可以实时生成高质量的3D内容。通过以下技术贡献来提升文本到3D生成模型的质量、鲁棒性、规模和速度:
- 提出了一种新颖的文本到3DAmortized架构,可以扩展到数量级更大的提示集。
- 利用3D数据进行训练,通过3D感知扩散先验、正则化损失和通过使用3D重建进行预训练的权重初始化来提高质量和鲁棒性。
- Amortized了基于表面的细化阶段,极大地提升了质量。
相关工作
早期的3D对象合成工作通常局限于从给定类别中生成对象,例如汽车或椅子。最近的扩展使用带标题的3D形状来训练文本到3D模型,生成来自不同类别的形状,但需要3D监督,限制了它们在合成过程中使用合成数据集的大小、多样性和视觉保真度。
可微分渲染的出现,无论是体积还是基于表面,打开了逆向图像渲染的大门,解锁了在3D合成过程中使用强大的文本到图像生成模型。DreamFusion提出了使用SDS损失来优化神经场,使用文本到图像扩散模型来生成3D资源。后续工作引入了基于表面的细化阶段,允许合成高频细节。这种两阶段优化流程现在定义了大多数最先进的文本到3D方法。
最近发布的大规模3D数据集Objaverse-XL促使研究人员探索在合成过程中使用3D监督的好处。到目前为止,最成功的方法使文本条件图像扩散模型具有3D感知能力,通过使用渲染的多视图图像来微调2D扩散模型。然后使用多视图扩散模型的SDS来获取3D形状。然而,这些方法需要冗长的逐提示优化过程,限制了其在实际内容创建中的适用性。
为了解决这个问题,人们进行了两种类型的工作。第一种方法使用文本到图像到3D的方法,通过使用文本到图像扩散模型生成图像,并训练图像到3D提升网络。它们在速度上有所提高,但与优化方法相比,质量细节有限,但仍需要每个提示5-20秒的时间来从图像扩散模型中进行采样。
在另一种工作路线中,ATT3D提出了一种Amortized框架,可以同时优化多个提示的统一模型。后续工作扩展了网络架构以获得更好的质量。Latte3D扩展了这一工作路线,通过在训练过程中引入3D知识来实现提示的鲁棒性,以及其他设计改进,如更好的架构。Amortized式文本到3D提供了一种具有吸引力的质量与速度之间的权衡,因为它使用单个前向传递架构,而不需要对扩散模型进行采样-见下图2。
并行工作 同时,AToM还Amortized了两阶段训练,采用三面图表示,但他们使用DeepFloyd,并且不会扩展到ATT3D中数千个提示的较小集。相比之下,我们将规模扩展到约100,000个提示,使用了诸如MVDream之类的3D感知技术。ET3D的另一个并行工作通过训练GAN模型实现了快速生成,但它仅在一个规模较小的构成性数据集上进行了训练,该数据集包含5000个提示,并且仅显示了类似ATT3D和AToM的构成性泛化结果。此外,它不保证视图一致的3D输出,因为它使用了2D神经上采样器。最后,LGM同时在文本到图像到3D方向上工作,可以在5秒内生成Gaussian splats,代表了最新的最先进技术。在实验中将我们的方法与该方法进行了比较,并展示了竞争性能。
方法论
一个已建立的高质量文本到3D生成的流程包括两个阶段,每个阶段都使用SDS损失和文本到图像扩散模型进行逐提示优化。第一阶段优化体积表示,通常是神经辐射场。通常使用粗分辨率来加快渲染速度。网格可以实现实时渲染,但仅通过图像监督很难从头开始进行优化。第二阶段使用神经场的输出来初始化有符号距离场(SDF)和纹理场,从中可以使用可微分等值面提取得到网格。然后,通过可微分光栅化对这种基于表面的表示进行优化,即使在1024渲染图像分辨率下也很快,从而能够从更高分辨率的文本到图像扩散模型获得监督。
ATT3D将神经场的优化Amortize到一组提示上,其中一个超网络将文本提示映射到神经场,该超网络在一个被称为已见提示的提示集上使用SDS损失进行训练。Latte3D引入了一种新的架构,Amortized了生成过程的两个阶段,旨在实时生成高质量的纹理网格。我们通过在Amortize循环中利用3D知识,将该方法扩展到数量级更大、更多样化的提示集。
本文的方法如下图4所示。通过一个重建预训练步骤初始化Latte3D以稳定训练。该架构由两个网络组成,一个用于几何,另一个用于纹理。通过一个两阶段pipeline进行具有扩散先验的Amortized模型训练,包括基于体积的第一阶段和基于表面的第二阶段。为了协调重建预训练(使用3D几何作为输入)与文本到3D生成的任务,我们在第一阶段调整网络的输入,逐渐完全替换对3D输入的依赖,使用单个虚拟输入。在推理过程中,我们的模型仅通过文本提示在400ms内生成一个3D纹理网格,并允许选择性的轻量级测试时间细化以增强几何和纹理的质量)。
预训练以重建形状。
尽管SDS损失可以从头开始合成与文本对齐的3D特征,但经验上发现它由于高方差而不是一个稳健的监督来源。一个良好的初始化可以稳定优化过程。发现首先对模型进行预训练,使其能够编码解码3D形状,可以更容易地使用Amortize SDS进行优化。通过在包含3D资源的数据集上对模型M进行预训练,使用图像重建损失,类似于[12]中使用的重建阶段,并在下图3中显示了流程。
模型架构
模型M由两个网络组成,G和T,分别用于预测几何和纹理。在预训练之后,通过添加交叉注意力层引入了文本条件。使用CLIP embeddings来对文本提示p进行编码。在第一阶段训练中,将几何和纹理网络的权重绑定在一起(除了单独的MLP解码器头部),有效地训练了一个单一的输入编码器。
在第二阶段,冻结几何网络G,并使用额外的可训练上采样层对纹理网络T进行细化。推理中使用的最终模型M是来自第一阶段的冻结G和来自第二阶段的经过细化的T。
几何网络G由三平面表示上的U-Net编码器组成,后跟包含另一个三平面U-Net和神经体积密度场的解码器,后者从三平面特征中预测输出形状。具体地,点云通过PointNet,并通过基于几何投影到每个平面的平均散射将特征转换为三平面表示。
在训练过程中,点云来自3D数据,而在推理过程中,点云被一个球形点云的虚拟输入替换。三平面表示通过编码器和解码器U-Net进行处理。Text embedding被馈送到编码器中的每个残差U-Net块中,通过交叉注意力。对于3D空间中的任意点,通过投影到每个平面并双线性插值特征图来提取三平面特征。然后,一个MLP在该点预测密度值。
纹理网络T和几何网络G在预训练和第一阶段中共享相同的编码器和解码器U-Net架构。使用另一个非共享的MLP神经纹理场来预测query点处的RGB值。在第二阶段,将编码器产生的三平面特征上采样到更高分辨率,以获得额外的容量来生成高频纹理细节。具体来说,首先将潜在的三平面从128分辨率双线性上采样到480,然后添加一个残差MLP,将text-embedding映射到三平面特征的残差,模仿ATT3D的映射(超)网络。解码器然后以这个上采样的三平面作为输入。细节见附录。
渲染。为了训练模型,我们使用不同的方法将生成的3D对象渲染成2D图像,在第一和第二阶段使用不同的方法。在第一阶段,输出的3D几何是基于三平面的神经场,使用来自VolSDF的公式进行体积渲染,以获得256分辨率的图像,允许通过近似的有符号距离场参数化密度,其zero-level集定义了对象的几何形状。这种选择使得简单地转换为基于表面的渲染成为可能。对于几何网络,与表面渲染相比,使用SDS进行体积渲染的训练更稳定。在第二阶段,使用Marching Cubes从密度场中提取等值面,并通过光栅化渲染图像。网格可以实时以1024图像分辨率渲染,有助于捕捉更细的纹理细节。
Amortized学习
Amortized学习将图像扩散先验中的知识融入到我们的模型中。按顺序对体积几何训练(第一阶段)和表面纹理训练(第二阶段)进行Amortized训练。通过以下方式将3D信息纳入训练过程中:
- 通过3D感知的2D SDS损失隐式地
- 显式地进行正则化。
筛选提示集。使用基于规则的文本生成或ChatGPT创建大量的提示集进行训练。对于前者,从Objaverse 的标题中开始,设计规则,比如“风格B的对象A正在做C”,并提供一组风格和活动。
或者,将标题输入到ChatGPT中,并要求其提供详细且多样的提示,描述类似的3D对象。如前图4所示,当生成“戴着礼帽的钩针小螃蟹”,通过检索与螃蟹相关的3D形状,并将其用于正则化损失,引导形状合成以使其更像螃蟹。
Amortized第一阶段生成
在这个阶段,使用我们的数据集对模型M进行训练。使用SDS损失与3D感知2D先验和与配对的3D形状的正则化,详细解释一下:
3D感知SDS损失 在第一阶段训练中,利用一个3D感知扩散先验,提供了更强的、多视角一致的监督信号。具体来说,使用了MVDream中的模型,该模型是通过修改Stable Diffusion 来生成多视角一致的图像,对Objaverse数据集中的对象进行四次渲染视图进行训练的。
正则化损失 虽然使用MVDream的3D感知SDS损失提供了强大的多视角先验,但对于一些提示,它仍然可能无法正确捕获完整的3D几何,因为MVDream仅监督四个视图,并且可能会在形状中创建放大的几何或浮标。如下图10右侧所示,一些失败案例。
将使用3D形状的正则化与SDS损失相结合有助于训练并改善几何。如前图4所示,对于每个训练提示,我们通过比较其渲染的mask与从3D数据集中检索的形状s的mask来对输出形状o进行正则化。
输入点云退火为了弥合训练中实际点云输入和推理中虚拟点云之间的差距,在第一阶段的训练过程中逐渐将输入点云退火为虚拟点云。具体地,在最后5000个训练迭代中线性增加一个概率,随机地用虚拟点云中的点替换输入点云中的子集。通过点云退火,当使用虚拟点云时,模型在推理过程中可以获得更好的结果。
Amortized第二阶段生成
在第二阶段的训练中,冻结了几何网络,并仅调整纹理,因为同时训练两者会导致不稳定性。使用深度条件的ControlNet来进行SDS引导,允许更高的512分辨率监督。深度条件鼓励SDS损失指导纹理与几何网络中的几何对齐,从而提高3D纹理的一致性。
推理
测试时间优化
本文的方法支持测试时间优化,如果用户希望提高特定提示的质量。如果用户的提示与已见提示显著偏离,则这可能很有用。与第二阶段训练类似,冻结几何并用深度条件的SDS引导微调纹理网络T。与MVDream或其他基于优化的文本到3D方法相比,本文的测试时间优化收敛速度显著更快,因为我们优化的是Amortized网络而不是随机初始化的网络。
3D风格化
Latte3D还可以作为3D风格化方法进行训练和部署,使用户可以从现有的3D资源中廉价地创建变体。在训练过程中,跳过输入点云退火步骤,以保持对点云的依赖,并在一个数据集上Amortized,其中每个3D形状对应于许多样式提示。结合正则化和SDS引导的方式驱动模型产生结构上与原始形状相似但语义上与样式提示对齐的形状。与分别优化每对形状-提示相比,Amortized显著降低了每对形状-提示的计算成本。在推理过程中,可以将来自训练集的点云与新的提示组合作为输入,以产生原始形状的变体。
实验
首先,描述了实验设置,包括数据集、指标和基线比较。然后,展示定量和定性结果,展示了Latte3D的性能和泛化能力,随后是设计选择的消融实验。
实验设置
现在讨论数据集构建、模型预训练和评估指标。
数据集
训练集 为了研究Amortized优化的规模化,超出了先前工作的范围,如下表1,构建了一个新的数据集 gpt-101k,其中包含 101k 个文本提示和 34k 个形状。对于形状,使用 Objaverse中的“lvis”子集,其中包含 50k 个经过人工验证的形状。滤除了质量较差的形状,例如扁平图像和扫描图像,并保留了 34k 个形状用于数据集。使用 ChatGPT 对每个对象的标题进行增强,以收集每个对象的 3 个提示。
评估集 使用两个提示集进行评估。为了评估方法中Amortized优化的好处,在 gpt-101k 上评估模型。然而,由于运行基线的计算成本较高,从 gpt-101k 中随机选择了一个包含 50 个提示的子集,形成了用于基准测试的已见提示集。此外,为了评估Amortized模型的泛化能力,构建了一个未见提示集,通过筛选与 lvis 类别分布接近的 DreamFusion子集中的 67 个提示。
基线和评估方案
基线。将Latte3D与以下基线进行比较:ATT3D、MVDream、Instant3D和 LGM。重新实现了ATT3D],使用了超网络。使用开源的threestudio实现了MVDream。对于MVDream,对每个3D模型进行了10000次迭代训练,使用了单个A100 GPU,批量大小为8,并采用了提供的默认设置。由于Instant3D的源代码尚未发布,我们使用了来自3DTopia1的重新实现。对于LGM,我们使用了官方开源实现。
评估指标。通过评估生成的3D内容的保真度以及其与文本提示的一致性来定量比较我们的模型与基线。使用三个指标来评估保真度。
- Render-FID:计算生成的3D内容的渲染图像与从 Stable Diffusion 中采样的图像集之间的FID。该指标衡量生成的形状与2D先验中的形状在视觉质量上的对齐程度。
- CLIP Score:计算文本提示与每个渲染图像之间的平均CLIP分数,以指示生成的3D形状与输入文本提示的对齐程度。
- 用户研究:通过Amazon Mechanical Turk用户研究来评估整体3D几何形状和纹理。对于每个基线,将由我们的方法和一个基线生成的渲染3D形状的视频并排展示,同时呈现相应的文本提示,并询问用户的偏好。将每个比较呈现给三个用户,并将用户和提示的平均偏好进行平均,以获取相对于Latte3D的每个基线的平均用户偏好。
- 计时:通过每个提示的GPU时间来测量我们的优化成本,以评估每个提示的总计算成本。将预训练、阶段1和阶段2的总挂钟时间除以提示集的大小,然后乘以所使用的GPU数量。通过模型从接收文本输入到输出最终三平面特征之间所用的时间来衡量Instant3D、LGM和Latte3D的推理时间。对于MVDream,测量了在A100 GPU上优化单个提示的平均时间。
实验结果
观察到Latte3D在gpt-101k数据集上训练后对未见提示(来自DreamFusion 的df)具有强大的泛化能力,这通过定性(下图6)和定量(前图2,下表2)结果得到了证明。在图2中突出显示了相对于不同基线的推理时间的Latte3D相对用户偏好。Latte3D在独特的快速推理时间内产生了与SOTA基线相竞争的结果。
在表2中的定量比较中,在已见和未见提示上的表现与基线相当,而推理时间至少快了一个数量级。注意到,从四个输入视图重建3D表示的3DTopia和LGM在基于图像的指标(FID和CLIP分数)上具有优势,因为它们倾向于产生从静态图像中不明显的3D不一致结果。感兴趣的读者可以参考补充材料中所有方法的渲染视频。
总优化成本 Amortized优化在许多提示上的好处是我们在 gpt-101k 上的总优化成本要比针对每个提示进行 MVDream 优化低得多。下图7说明了为了达到与 Latte3D 相当的用户偏好,MVDream 需要每个提示36个GPU分钟,而 Latte3D 每个提示仅花费了215个GPU秒,代表了优化成本的10×降低。
应用
通过测试时间优化展示了 Latte3D 提升质量的能力,以及如何调整 Latte3D 来实现对 3D 内容的风格化。
逐个提示的测试时间优化
通过实验证明 Latte3D 在测试时间内快速适应新的提示以提高质量。在下图8中,对比了 Latte3D 的质量与多达 600 步的情况。
每次优化迭代在 A100 GPU 上平均需要 0.98 秒,使每个prompt的总计算预算不到 10 GPU 分钟。即使进行了测试时间优化,我们的方法仍然比每个提示优化方法(如表2 中所示)快一个数量级。测试时间优化在未见提示上特别有益,其中 FID 降低了 11.6,而在已见提示上为 8.8,并且 CLIP 分数在未见提示上增加了 0.04,而在已见提示上为 0.02。
3D 内容风格化
说明了 Latte3D 架构如何为我们提供增强质量的灵活性,以及如何将其调整为定向 3D 内容风格化。为了测试这一点,手动策划了一个基于 Objaverse 的 100 个动物形状数据集,并将每个动物形状名称的物种名称与活动(例如“滑板骑行”)和风格(例如“体素风格”)的组合相结合,以创建我们的 12000 个提示动物风格数据集。我们在动物风格上训练了一个 Latte3D 模型(stage-1 和 stage-2),没有点云退火阶段。在下图5中,每行包含给定不同提示的 Latte3D 输出,同时固定点云输入,展示了 Latte3D 在文本控制风格上的有效性。
在图11中,进行了一项用户研究,比较了 Latte3D 在动物风格上的输出与 MVDream,并发现在进行了 4000 步优化的情况下,Latte3D 与 MVDream 竞争力相当,优化成本减少了 10×(与为每个提示运行 MVDream 相比)。
Latte3D 在动物风格上还可以推广到包含动物活动和风格的保留组合,质量下降很小,这表明其与 MVDream 的相似相对偏好。因此,Latte3D 使用户能够通过Amortized优化廉价地创建其 3D 资源的变体,甚至在测试时间探索新的提示组合。附加的定量和定性结果可以在补充材料中找到。
消融研究
现在分析了在 Latte3D 中引入的每个组件的价值,附录中有更多结果。
阶段-1 消融。下表3 总结了我们对以下消融的定量比较:使用超网络的 ATT3D 基线,ATT3D+MV 使用 MVDream 作为扩散引导。ATT3D+UNet+MV 用我们的模型架构替换超网络,但是从头开始初始化,并给予虚拟点云作为输入。ATT3D+UNet+MV+PT 从重建预训练(PT)模型初始化。引入了 Mask-FID 指标,以定量评估几何形状与形状数据集的一致性,通过计算生成的形状的渲染二值掩模与 3D 数据集的掩模之间的 FID。
发现引入的每个组件都提高了性能。比较 ATT3D 与 ATT3D+MV,看到使用 MVDream 引导的好处,因为它减轻了几何图形上的缺陷,比如Janus faces。比较 ATT3D+MV 与 ATT3D+UNet+MV,看到了我们的架构带来的性能提升。此外,添加预训练(ATT3D+UNet+MV+PT)有所帮助,特别是在恢复精细的几何和纹理细节方面。最后,添加形状正则化(完整的 Latte3D)使生成的几何形状更好地符合 3D 数据,这可以从 Mask-FID 的下降中看出。表3 中还展示了额外的用户研究。我们将在附录中展示收敛速度。
使用阶段-2 细化的消融。阶段-2 的细化可以大大提高纹理细节,超过阶段-1 的训练。在下图9中展示了比较。
正则化 现在调查了在方程3 中如何加权 α 来平衡 SDS 损失和正则化损失的设计选择。在表3中,展示了添加正则化损失如何改善定量结果。在下图10,定性地对比了在不同固定权重下的训练。通过增加形状正则化的混合因子 α,看到与输入形状更一致的情况。
训练中的退火和推理中的不同输入点云 在训练中,将来自数据集的检索到的点云作为输入,并将输入退火成固定的虚拟点云。在推理中,只使用虚拟点云作为输入。在下表4中,定量地消融了这个点云退火过程在 gpt-101k 上 LATTE3D 行为上的作用。
我们的模型在训练时没有退火,对点云输入有些敏感。与在推理中使用检索到的点云相比,在推理中使用虚拟点云时会有轻微的性能下降。然而,通过引入点云退火,使模型以虚拟输入进行训练,进而减小了性能差距。此外,在图12中展示了定性结果,显示点云退火在推理中使用虚拟输入时会改善结果。
结论与局限性
本文提出了一种可扩展的方法来进行Amortized文本到增强型 3D 生成。为了成功将Amortized扩展到更大的数据集,我们通过以下方式利用了 3D 数据:
- 3D 感知的 2D SDS
- 预训练
- 3D 正则化的Amortized过程
本文进一步改进了模型架构,使其更具可扩展性。模型在 400ms 内生成高质量的形状。此外,通过快速的测试时间优化,质量和泛化能进一步提高。我们的模型也存在局限性。首先,模型使用了 SDS,因此依赖于对文本到图像模型的理解,这些模型通常无法尊重诸如部件描述之类的细粒度细节。其次,几何图形在阶段2 和测试时间优化中被冻结,因此阶段1 中的几何缺陷无法修复。为了稳定阶段 2 中的几何变化,开发Amortized训练留待未来工作。
本文转自 AI生成未来 ,作者:Tianshi Cao等