ECCV`24 | 首次解决文本到3D NeRFs分解问题!港中文等提出DreamDissector
论文链接:https://arxiv.org/abs/2407.16260
亮点直击
- 第一个解决文本到3D NeRFs分解问题的团队。
- 为了解决这个问题,本文引入了一个名为DreamDissector的新颖框架,包括一种新颖的神经类别场(NeCF)表示,可以将输入的NeRF分解成独立的子NeRF,一个深度概念挖掘(DCM)技术,通过个性化扩散模型促进子NeRF和概念之间的对齐,以及一个类别分数蒸馏采样(CSDS)损失,利用DCM增强NeCF的学习。
- 实验结果展示了DreamDissector的有效性,额外的可控编辑应用展示了其在真实场景中的实用性。
最近,文本到3D生成领域取得了显著进展。为了增强其在实际应用中的实用性,关键是生成具有交互作用的多个独立对象,类似于2D图像编辑中的图层合成。然而,现有的文本到3D方法在这一任务上存在困难,因为它们设计用于生成非独立对象或缺乏空间合理交互的独立对象。
针对这一问题,本文提出了DreamDissector,一种能够生成具有交互作用的多个独立对象的文本到3D方法。DreamDissector接受多对象文本到3D NeRF作为输入,并生成独立的纹理网格。为实现这一目标,本文引入了神经类别场(NeCF)来分解输入的NeRF。此外,本文提出了类别分数蒸馏采样(CSDS),由深度概念挖掘(DCM)模块促进,以解决扩散模型中的概念差距问题。通过利用NeCF和CSDS,本文能够有效地从原始场景中导出子NeRF。进一步的优化增强了几何和纹理。本文的实验结果验证了DreamDissector的有效性,为用户提供了控制3D合成在对象级别的新手段,并可能为未来各种创意应用打开了途径。
定性结果展示
方法
概览
DreamDissector从文本转3D神经辐射场(NeRF)开始。其目标是将生成的3D NeRF分解为根据NeRF包含的物体类别分开的独立3D资产。为实现这一目标,本文引入了一种称为神经类别场(NeCF)的3D表示。
这旨在将目标NeRF分解为多个子NeRF,同时保持每个物体的原始外观。NeCF受本文新引入的类别分数蒸馏采样(CSDS)监督,这是一种涉及一系列针对子NeRF的特定类别文本提示的分数蒸馏采样(SDS)的方法。随后,这些子NeRF被转换为DMTets进行最终的几何和纹理细化。由于DMTets可以轻松转换为表面网格,DreamDissector最终为每个物体生成独立的表面网格,保留了动作和互动,从而方便人类艺术家进行编辑。本文的DreamDissector框架概述如下图2所示。
神经类别场
为了在目标NeRF中渲染每个分类对象,一个直接的解决方案是为每个对象引入一个子NeRF,例如,一个密度场和一个颜色场。随后,可以使用其密度和颜色场来渲染每个对象。然后,整个NeRF可以通过根据体积渲染的原则组合这些密度和颜色场来渲染:
其中,K表示类别的数量。然而,这种方法需要为密度和颜色场训练额外的网络,并需要一个约束损失来保持整个NeRF的外观一致性。
为此,本文提出了一种用概率分布(即类别场)对密度场进行分解以渲染每个类别对象的替代公式。具体来说,上述密度组合可以重新表述如下:
值得注意的是,NeCF的设计具有以下优点:
- 本文只需要训练一个额外的类别场网络,这比训练额外的密度和颜色场网络更有效率。
- 由于原始的密度和颜色场网络在训练过程中被冻结,子NeRF的重新组合完全等同于原始的NeRF,保持其原始外观。
类别 分数 蒸馏 抽样
一个朴素的方法。 为了训练NeCF,一个朴素的方法是使用多个SDS损失来监督每个类别的类别字段。具体地,对于第k个类别的对象,其SDS损失的梯度可以被表达为:
这里,yk表示第k个类别的文本embedding。例如,给定由提示生成的NeRF:“一个[v1]坐在一个[v2]上。”,用于类别对象的文本提示将是“一个[v1]”和“一个[v2]”。这可以很容易地由人类用户或现代LLM完成。需要注意的是,本文在训练NeCF时不需要为整个文本提示使用SDS,除了类别字段网络之外,所有网络都被冻结。
概念差异在扩散模型中。 尽管这种朴素的方法可以处理一些简单的情况,但它无法将具有概念差距的场景从文本描述中分离出来。概念差距指的是完整文本提示生成的对象与类别文本提示生成的对象在2D扩散模型的潜在空间中占据不同区域的差异。
例如,文本提示“一只黑猩猩透过望远镜看。”会生成一个场景,描述一只黑猩猩使用手持望远镜,如下图3左侧(a)所示。相比之下,类别文本提示“一个望远镜”更有可能生成一个三脚架安装的望远镜,因为三脚架安装的望远镜位于提示“一个望远镜”的主导特征空间中,而手持望远镜则位于边缘特征空间中。因此,学习到的NeCF会生成一个带有三脚架的望远镜,三脚架被隐藏在黑猩猩的身体内,如下图3左侧(c)所示。
深度概念挖掘。为了解决这个问题,本文提出挖掘文本提示中的概念,并将其与NeRF中描绘的概念进行对齐,以进行分解,如上图3所示。为此,本文个性化了一个T2I扩散模型,将由NeRF渲染的给定视图去噪,生成描绘一个(或多个)独立对象的图像,在一个(或多个)特定概念的条件下。具体来说,本文首先创建一组包含一个或多个概念的提示。对于每个概念或概念组合,本文通过基于文本的开放词汇分割模型(例如Grounded-SAM)为NeRF渲染视图生成相应的分割蒙版。然后,本文利用提示-蒙版对来优化文本embedding和扩散主干,使用带有蒙版注意力的概念挖掘损失:
最终精化。 在训练完NeCF后,本文使用等值面提取技术将子NeRF转换为DMTets,并利用文本embedding和来自DCM的模型对这些DMTets进行微调。其原理是进一步精化可以修复分解产生的伪影,而且DMTets可以轻松转换为表面网格。然而,DCM倾向于在原始NeRF中过度拟合挖掘的概念,导致颜色过饱和和不真实。为了解决这个问题,本文采用原始的稳定扩散方法通过额外步骤对DMTets的颜色进行微调,增强其真实感。最后,DMTets被转换为有纹理的网格。
整体 Pipeline
因此,整个流程包括以下步骤:
- 从渲染视图中为提示中的每个类别生成mash,并用它们来优化DCM模块。
- 冻结DCM,并使用CSDS损失训练NeCF网络,将一个NeRF分解为独立对象的子NeRF。
- 将子NeRF转换为DMTets,并利用优化后的DCM模块对它们进行微调,然后使用原始稳定扩散微调DMTets的颜色以生成最终输出。
实验
结果
主要结果。 定性结果显示在下图4中。对于每种情况,每个对象的两个视图被采样,并且相应的文本提示在补充文件中提供。可以观察到DreamDissector能够有效地解开具有各种复杂交互的输入场景,比如骑行等。值得注意的是,DreamDissector能够处理具有大型和复杂接触表面的情况,如“章鱼弹钢琴”案例中所示,章鱼的触手与钢琴分离开来。此外,最终的网格比输入NeRF中的网格展现出更加真实和高质量的纹理。这种改进归因于最终的精细化处理,进一步展示了DreamDissector的实用性。
比较。 本文将DreamDissector与两个基线方法进行比较:负面提示和一个组合基线。负面提示涉及将整个文本提示作为正面提示,并将独占对象作为负面提示。例如,在提示“一个[v1]坐在[v2]上”中,两个对象的正面提示都是整个提示,而对象[v1]的负面提示是“[v2]”,反之亦然。由于最相关的作品CompoNeRF和Comp3D不是开源的,本文实现了一个具有类似思想的组合基线:分别训练对象,然后通过进一步的微调进行组合。本文在定性和定量上将本文的方法与这些基线进行比较。如下图5所示,DreamDissector明显优于基线方法。此外,本文使用CLIP分数指标评估DreamDissector和基线方法,该指标衡量文本和图像embedding之间的余弦相似性。本文对独立对象和组合对象进行这种评估,并计算平均分数。正如下表1所示,本文的方法明显优于基线方法。
分析
用于分解的DCM.
与完全无监督的基础CSDS不同,本文的DCM方法和SA3D都需要一个输入mask来进行单视图处理。正如下图6所示,基础CSDS在处理存在显著概念差异的场景(例如“一只蓝色毒箭蛙坐在一片睡莲上”)时很难分解NeRF,其中原始场景主要描绘了睡莲叶。而SA3D虽然成功分解涉及概念差异的场景(如青蛙),但在涉及大量遮挡的更复杂情况下表现不佳,比如比格犬和章鱼等情况。相比之下,DCM展现出卓越的性能,成功分解涉及概念差异和显著遮挡的场景。
DCM用于细化。 DCM不仅用于NeRF的分解,还用于细化DMTets。本文对DCM在这种细化过程中的有效性进行了分析。结果如下图7所示。从(a)可以看出,在分解后仍然存在伪影。由于原始NeRF的不可见接触表面,在分解后出现了“黑洞”。然而,使用原始稳定扩散进行DMTet细化并不能解决这个问题,如(d)所示。这是因为提示“一叠煎饼”通常会生成在煎饼上放水果的图像,因为这些水果在stable diffusion的高密度区域中很常见,如(b)所示。因此,经过微调的DMTet会在黑洞伪影区域产生水果。相比之下,DCM的稳定扩散与输入的煎饼紧密匹配,如第一行所示,在DMTet细化过程中有效修复了伪影,如(e)所示。这进一步展示了DCM的优越性。
对DCM进行消融研究。 本文对DCM的每个组成部分进行了消融研究,包括两阶段训练和mask注意力损失。具体来说,本文使用经过微调的模型从文本提示“一只小兔子坐在一堆煎饼上”中挖掘出“小兔子”概念的图像样本。理想情况下,采样的图像不应包含任何类似于煎饼的概念。如下图8所示,DCM成功提取了“小兔子”概念,而其他训练策略未能将该概念与其他类似于其坐在上面的煎饼的物品分离开。这证明了DCM挖掘独立概念的能力。
Applications
可控纹理编辑。 尽管基于文本引导的纹理生成取得了显著进展,但为具有多个物体的复杂场景生成纹理仍然具有挑战性。本文在三种不同情况下评估了TEXTure,如下图9所示。对于基准情况,本文将多物体网格视为单个实体并应用TEXTure。对于本文的方法,本文将TEXTure分别应用于每个物体的网格,然后将它们组合起来。本文观察到,基准方法生成的纹理与输入提示不匹配,并且质量较低。值得注意的是,独立物体的纹理受到场景中其他物体的影响,例如,老鼠的一部分呈现出红色。相比之下,DreamDissector显著提升了TEXTure的性能,生成视觉上吸引人且准确的纹理。
可控对象替换。 除了可控纹理编辑外,DreamDissector还具有替换单个对象而不影响场景中其他对象的能力。为了实现这一点,目标DMTet在保持其他DMTets固定的同时进行微调。然而,使用基于SDS的监督将DMTet变形为完全不同拓扑结构的对象具有挑战性。受[7]启发,本文最初将DMTet的法线馈送到stable diffusion中进行多个步骤,有效地变形了DMTet。本文还经验性地观察到,仅微调目标DMTet会引起严重的网格相互穿透。为了解决这个问题,本文引入了一个相互穿透损失,
用户进行几何编辑。 为了进一步验证 DreamDissector 如何促进用户工作流程,本文允许用户单独编辑对象。正如下图 11 所示,通过简单的操作,如缩放、平移和拖动,可以轻松修改对象,从而突显了 DreamDissector 在提高实际应用中人类编辑能力方面的有效性。
结论
DreamDissector,这是一个新颖的框架,旨在生成由文本引导的多个独立交互对象。DreamDissector 接受多对象文本到 3D 神经辐射场(Neural Radiance Field,NeRF)作为输入,并生成多个带纹理的网格。本文引入了神经类别场(Neural Category Field,NeCF),这是一种能够将输入的 NeRF 分解为多个子 NeRF 的表示。为了训练 NeCF,本文提出了类别分数蒸馏采样(Category Score Distillation Sampling,CSDS)损失。此外,本文观察到了 2D 扩散模型中的概念差异问题,这可能会降低分解性能。为了解决这个问题,本文引入了深度概念挖掘(Deep Concept Mining,DCM)来微调文本embedding和 2D 扩散模型,有效地导出子 NeRF。此外,本文提出了一个两阶段的细化过程,进一步改进几何和纹理,从而增强现实感。实验结果和进一步应用展示了 DreamDissector 在现实场景中的有效性和实用性。
本文转自 AI生成未来,作者:Zizheng Yan等
原文链接:https://mp.weixin.qq.com/s/mHNfZb5jFoZpwKxQ9Q3bNA