来源:投稿 作者:橡皮
编辑:学姐
论文链接:https://arxiv.org/abs/2306.09551
最近的研究表明,将预训练的扩散模型与神经辐射场(NeRF)相结合,是一种很有前途的文本到 3D 的生成方法。简单地将 NeRF 与扩散模型相结合会导致跨视图不一致和风格化视图合成的退化。为了应对这一挑战,我们提出了 Edit-DiffNeRF 框架,它由一个冻结的扩散模型、一个用于编辑扩散模型潜在语义空间的 delta 模块和一个 NeRF 组成。我们的方法不是为每个场景训练整个扩散模型,而是通过 delta 模块在冻结的预训练扩散模型中编辑潜在语义空间。对标准扩散框架的这一根本性改变使我们能够对渲染视图进行细粒度修改,并通过 NeRF 训练将这些指令有效地整合到三维场景中。因此,我们能够生成一个编辑过的三维场景,并忠实地与输入的文本指令保持一致。此外,为了确保不同视角下的语义一致性,我们提出了一种新颖的多视角语义一致性损失方法,该方法从输入视图中提取潜在语义嵌入作为先验,并在不同视图中进行重建。事实证明,我们提出的方法可以有效地编辑现实世界的三维场景,与之前的研究相比,所执行的三维编辑与文本指示的一致性提高了 25%。
随着神经辐射场(NeRF)等高效三维重建技术的日益普及,生成真实世界三维场景的逼真合成视图变得越来越可行。与此同时,由于内容再创造用例的广泛性,对三维场景操作的需求也在迅速增加。最近的许多研究都引入了用于编辑 NeRF 的扩展功能,例如对显式三维表示进行操作,训练模型以实现颜色修改或移除某些对象,或利用扩散模型进行文本到三维的合成。这些进步扩展了隐式体积表示法的多功能性。不过,它们目前仅限于改变颜色和形状,或者每次编辑任务都需要复杂且计算成本高昂的训练程序。
编辑 NeRF 是一项重要而具有挑战性的任务。由于 NeRF 是按场景优化的隐式表示,因此不能直接使用用于编辑显式表示的标准工具。此外,二维图像编辑只需输入一张图像就能为操作提供足够的指导,而 NeRF 则需要多视图信息来指导其内容修改。EditingNeRF是对隐式辐射场进行编辑的首次尝试。为了学习各种模型的几何形状和外观,他们结合了形状代码和颜色代码,以更好地解除纠缠。然而,EditingNeRF 仅限于形状和颜色操作,或删除对象的局部。Yang 等人介绍了一种将 NeRF 与显式三维几何表示相结合的技术,以实现更高效、更精确的三维物体重建。Yuan等人通过让用户在三维场景中执行用户控制的形状变形,进一步提高了性能。然而,他们的渲染结果在逼真度和几何精度方面仍存在明显不足。
最近,有人提出将扩散模型作为一种有前途的方法,将类似 NeRF 的模型用于生成多视角一致图像。具体做法是通过预训练的扩散模型(如 DreamFusion)优化 NeRF,或通过可使用二维图像训练的无条件生成扩散模型。虽然这些方法可以根据任何给定的文本提示生成三维模型,但它们目前缺乏对合成视图的细粒度控制。更重要的是,它们不能直接用于编辑完全观察到的三维场景的真实捕获 NeRF。Haque 等提出了 Instruct-NeRF2NeRF,该方法从预先训练的二维扩散模型(即 InstructPix2Pix)中提取形状和外观特征,逐步编辑渲染图像,同时优化底层三维场景。然而,这种方法与 InstructPix2Pix有一些共同的局限性,例如多视角不一致和明显的渲染伪影(包括噪声和模糊)。
我们的方法: 为了解决上述问题,并利用预训练的 NeRF 进行高保真文本到三维编辑,我们提出了一个名为 Edit-DiffNeRF 的框架,用于根据输入提示在冻结的预训练扩散模型中编辑语义潜空间。这使我们能够对 NeRF 的渲染视图进行细粒度修改,从而在底层场景的优化过程中提供更强的控制力和准确性。我们的 Edit-DiffNeRF 由一个冻结的扩散模型、一个用于编辑扩散模型潜在空间的 delta 模块和一个 NeRF 组成。我们提出的文本到 3D 编辑框架包括两个关键步骤。首先,为了对渲染的视图进行编辑,我们利用扩散先验为每个视图生成一个潜在语义嵌入,然后应用我们提出的 delta 模块对嵌入进行编辑。该 delta 模块使用 CLIP 距离损失函数进行优化。经过训练后,它能够根据输入的文本指令生成经过编辑的图像。其次,我们利用通过 delta 模块进行的修改,使用这些经过编辑的图像对 NeRF 进行训练。为了确保三维场景的多视角一致性,我们提出了一种多视角语义一致性损失,以从不同视角重建潜空间中一致的潜特征。为了评估其有效性,我们在发布的各种真实捕获的 NeRF 场景上对 Edit-DiffNeRF 进行了评估。广泛的实验结果表明,与 Instruct-NeRF2NeRF相比,执行的三维编辑与文本说明的对齐度提高了 25%。
给定 3D 场景的一组训练视图 x i N i=1 ∈ I,生成模型(例如去噪扩散概率模型(DDPM)[5])的目标是优化紧密逼近模型的参数 θ数据分布 p(x)。 DDPM 提出通过将样本从易处理的噪声分布逐渐转变为目标分布来学习数据分布。
扩散模型通常包括确定性前向过程 q(xt|xt−1),该过程逐渐向样本添加噪声,以便:
其中 βt 是第 t 个方差表。然后,该模型使用神经网络 Dθ(xt, t) 学习相反的(去噪)过程,该网络通过逐步消除噪声来执行去噪步骤,并根据 xt 预测 x^0。去噪过程同样使用高斯分布:
其中 µθ 和 Σθ 分别是均值和方差。
与 DDPM相比,潜在扩散模型 通过利用预训练变分自动编码器的潜在空间获得了效率提升。特别是,给定输入图像 x i ,前向过程向编码的潜在嵌入 z = ε(xi ) 添加噪声,其中 ε(·) 是编码器,zt 是时间步 t 处的噪声潜在嵌入。神经网络 Dθ(·) 经过优化,可以根据图像和文本指令调节输入来预测呈现的噪声。形式上,潜在扩散目标表达如下:
其中 CI 是条件图像,CT 是文本编辑指令,ϵˆt = Dθ(zt, t, ε(CI ), cT ) 是时间步 t 的预测噪声。训练完成后,可以使用噪声输入 zt 和时间步 t 处的预测噪声 ϵˆt 导出估计的潜在 zˆt−1。
给定预训练的 NeRF 场景以及输入文本指令,我们的目标是通过操纵预训练和冻结的扩散模型作为评分函数估计器来编辑 NeRF 场景。这使我们能够生成与所提供的编辑指令相匹配的 NeRF 场景的编辑版本。我们的 Edit-DiffNeRF 流程如图 1 所示,它是一个两阶段框架。在第一阶段,我们训练所提出的 delta 模块来编辑预训练扩散模型的潜在空间。这使我们能够对渲染视图进行细粒度的修改,并通过第二阶段的 NeRF 训练有效地将这些指令整合到 3D 场景中。
图 1:我们的 Edit-DiffNeRF 流程,它是一个两阶段框架,由冻结扩散模型、建议的 delta 模块和 NeRF 组成。在第一阶段,我们训练 delta 模块 h(t) 来编辑预训练扩散模型的潜在空间。经过训练,它能够根据输入的文本指令生成编辑后的图像。然后我们冻结 delta 模块的权重,并使用这些编辑后的图像训练 NeRF,利用通过 delta 模块所做的修改。
为了监督编辑 3D 场景的 NeRF 重建过程,许多研究人员建议利用 2D 扩散模型来合成编辑后的输出。或者,其他人通过学习 pθ(xt−1|xt, CT ) 来训练条件扩散模型。实验结果表明,μθ(xt,t,CT)比μθ(xt,t)更接近目标平均值μ θ(xt,t)。这一经验证据表明,合并条件输入有助于弥合预测后验平均值与相应的真实值之间的差距。然而,在图像空间中针对每种条件训练扩散模型可能是一项繁琐且不切实际的任务。
此外,编辑 x 的一个直观想法是简单地更新 xt 以基于分数蒸馏采样损失 ∇LSDS 优化 NeRF,如 DreamFusion中提出的。然而,它会导致 3D 场景出现更多伪影或视图扭曲(参见图 2)。我们认为这是由于具有固定语义潜在空间的预训练扩散模型可能无法在现实场景中获得可行的结果。
图 2:使用基于分数蒸馏损失的经过训练的 NeRF 渲染结果。编辑是通过文本指令“把他变成戴帽子的消防员”来进行的。
为了使用输入文本指令操纵潜在语义空间并绕过训练整个扩散模型的过程,我们建议利用 delta 模块 h(t),它在给定冻结和预训练的情况下学习移动的潜在语义空间 Δzt扩散模型并显着减少了计算需求。 h(t) 被实现为具有两个卷积层的小型紧凑神经网络。其通道数与扩散模型中 U-Net 的瓶颈层相同。形式上,给定 delta 模 h(·),μθ(xt, t) 的参数化变为:
本质上,通过将 cT 的信息引入带有 Δzt 的潜在语义空间,预测的 ϵˆ = Dθ(zt|Δzt, t, ε(CI ), cT ) 被修改。反过来,产生平移平均值 µθ(xt, t, Δzt) 以弥补差距并促进在样本中重建所提供的指导信息的逆过程。
我们利用CLIP的架构,其中包括图像编码器 εI 和文本编码器 εT,将输入投影到共享潜在空间。在此基础上,我们提出了一种跨模态 CLIP 距离函数来评估输入文本指令和编辑图像之间的余弦相似度:
其中输入图像及其文本描述由 xsrc 和 tsrc 表示。文本指令和编辑后的图像分别表示为ttgt和xtgt,〈·〉是余弦相似度算子。此外,我们添加 L1 损失来调节原始输入和编辑后的输入生成的 x0:
其中 xˆ0 是通过冻结扩散先验获得的,x xi0 是使用修改后的潜在嵌入生成的,并且 λreg 是超参数。
使用 2D 扩散模型编辑 3D 场景时的另一个基本挑战是扩散模型缺乏 3D 感知,这会导致生成的 NeRF 视图不一致且扭曲。 Seo 等人试图通过利用来自粗糙 3D 结构的视点特定深度图来缩小这一差距。然而,这种嵌入需要为每个文本提示优化 3D 模型。这是一个计算密集型过程,尽管进行了优化,但仍然会产生模糊和扭曲的图像。
为了解决不一致的挑战,我们建议使用预训练的扩散模型和我们提出的 delta 函数 h(·) 对每个视图的潜在语义嵌入进行编码。具体来说,给定预训练的扩散模型和优化的 h(·),每个渲染图像都被编码为潜在嵌入 zi 。受条件 NeRF的启发,NeRF中的颜色 c 被扩展到潜在依赖的发射颜色 cz:
其中嵌入 zi 是条件输入,Fθ 是 NeRF 模型。
其中 λc 是超参数。通过利用这种策略,我们的方法确保了不同视图之间的一致性,同时还保留了底层潜在嵌入的完整性。
为了实现我们的目标,优化的 delta 模块 h(·) 应该在不同的相机姿势中尽可能产生一致的潜在语义嵌入。因此,我们提出了一种新颖的多视图语义一致性损失,表示为 Lc。其中涉及使用从图像 x i 中提取的潜在嵌入 zi 作为条件输入来从不同视图重建图像。我们提出的损失 Lc 的正式表达式如下:
其中 Czi 是基于方程式的渲染输出。 (7)。因此训练 NeRF 的总损失变为:
其中 λc 是超参数。通过利用这种策略,我们的方法确保了不同视图之间的一致性,同时还保留了底层潜在嵌入的完整性。
在本节中,我们首先介绍第 4.1 节中的数据集和实现细节。随后,我们在第 4.2 节中评估了我们的方法与其他方法的性能。最后,为了进一步了解关键设计的影响,我们在第 4.3 节中进行了消融研究。
数据集。 我们对一组不同复杂程度的场景进行3D编辑,包括发布的环境和物体的360度场景、人脸和全身肖像。这些场景是使用两种类型的相机拍摄的:智能手机和无反光镜相机。我们使用通过 COLMAP提取的相机姿势。继 CLIP-NeRF之后,我们还在两个公开可用的数据集上评估了我们的方法的有效性:包含 15 万张椅子的 Photoshape和包含 10,000 辆汽车的 Carla。
实施细节。 我们选择官方的 InstructPix2Pix作为我们的扩散先验,其中包含一个大规模文本到图像的潜在扩散模型 StableDiffusion。在训练阶段,我们对所有实验统一采样从 t = 1 到 T = 1000 的时间步长。扩散过程的方差从 β1 = 0.00085 开始线性增加,达到 β1 = 0.012。我们对每个视图使用 50 个步骤来优化我们提出的 delta 模块 h(t)。训练过程大约需要 15 分钟,并在四个 RTX 3090 GPU 上执行。训练后,我们使用编辑后的图像作为监督来训练我们的 NeRF。作为底层 NeRF 实现,我们使用 NeRFStudio中的 nerfacto 模型,这是针对真实捕获而调整的推荐实时模型。我们遵循 NeRFStudio 中的训练策略,并且 NeRF 针对 30000 个步骤进行了优化,并具有L1 和定向 CLIP 损失。
指标。 应该指出的是,与动态 NeRF 方法不同,在编辑后获取视图合成结果的地面真实视图会带来重大挑战,特别是在使用真实场景执行时。这主要是因为作为用户操作产物的编辑视图实际上并不存在。按照 Instruct-NeRF2NeRF中采用的评估指标,我们评估两个关键的定量指标,即
(1) CLIP 文本-图像方向相似性,即编辑的 3D 视图与相应文本指令之间的对齐情况,
(2) CLIP方向一致性,跨多个视图的编辑的时间一致性。
此外,我们计算了编辑过程前后 2000 个渲染图像的 Fréchet Inception Distance (FID) 分数,这使我们能够定量评估编辑场景的质量和保真度。
表 1 和表 2 显示了 Edit-DiffNeRF 在实际场景中相对于其他最先进方法的优越性。我们观察到,通过学习最佳的 delta 模块来编辑潜在语义空间,我们的 Edit-DiffNeRF 可以具有明显更高的 CLIP 文本-图像方向相似性和一致性。在图 3 中,我们还绘制了两个场景的 CLIP 方向一致性和 CLIP 文本-图像方向相似度之间的权衡。由于这两个指标相互竞争,当输出图像与所需编辑的对齐程度增加时,与输入图像的一致性会降低。从图 3 中可以看出,与最近最先进的方法 Instruct-NeRF2NeRF相比,我们的 Edit-DiffNeRF 获得的 CLIP 方向一致性明显更高,即使具有类似的 CLIP 文本-图像方向相似度价值观。此外,我们观察到,当场景的训练数据集较小(由少于 100 个图像组成)时,Instruct-NeRF2NeRF和我们的方法都会产生相似的结果,但方向相似性较低。
表1:实拍场景的定量评价
表2:FID 分数
图 3:我们绘制了 CLIP 方向一致性和 CLIP 文本-图像方向相似度之间的权衡。对于这两个指标来说,越高越好。
在表 2 中,我们报告了用于测量编辑前后合成视图的图像质量的 FID 分数。为了计算渲染图像的 FID 分数,我们使用了一组随机选择的 2000 个测试图像。随后,我们对这些图像应用类似于 CLIP-NeRF的各种编辑指令,并重新计算编辑结果的 FID 分数。在椅子数据集上,当在椅子数据集上进行评估时,EditNeRF在重建方面表现出比 CLIP-NeRF更高的性能。然而,值得注意的是,编辑后的图像质量明显下降。当在汽车数据集上进行评估时,CLIP-NeRF在编辑前后的重建质量方面比 EditNeRF表现出显着的改进。最后,与这两种方法相比,我们的Edit-DiffNeRF不仅大大提高了整体质量,而且还有效地保留了编辑过程后的图像质量。
编辑结果。 我们在图 4 中展示了从不同视图渲染的真实捕获场景的编辑结果。为了进行比较,我们还展示了编辑前相同视图下的原始 NeRF 渲染结果。在图4中,第一组是露营地场景。我们通过文本指令“让它看起来像刚下过雪”来编辑它。
图 4:与一系列最新最先进方法的视觉比较。
一方面,如图 4 所示,通过 InstructPix2Pix生成的结果对于到底要编辑什么内容存在模糊性,并且在不同视图之间表现出相当大的不一致。另一方面,虽然 Instruct-NeRF2NeRF似乎产生了可行的视图,但其中一些视图往往表现出显着的方差,导致 3D 场景模糊且高度扭曲。相反,通过我们的 Edit-DiffNeRF 获得的渲染多个视图显示了其有效编辑现实世界场景的能力,通过提供照片级真实感结果同时保持 3D 一致性,超越了以前的方法所取得的成就。在图4的第二组中,图像是通过“删除熊雕像和舞台”指令进行编辑的。从图中可以看出,InstructPix2Pix和Instruct-NeRF2NeRF都无法有效地获得预期的编辑结果。这种限制主要是由于 InstructPix2Pix 无法处理大型空间操作。
此外,我们在图 5 和图 6 中展示了额外的实验结果以及 NeRF 渲染结果,以进一步说明我们的发现。图 5 中的比较是通过文本指令“将其变成红色前轮和绿色后轮的汽车”进行的。值得注意的是,CLIP-NeRF无法处理细粒度的编辑。相反,我们编辑的结果(右栏)与指令非常一致。在图 6 中,我们可以进一步观察 Instruct-NeRF2NeRF中是否存在不一致的编辑,这些编辑无法在 3D 场景中整合(中间列)。相反,我们的模型提供了一个卓越的解决方案(右列),呈现一致的结果并允许进行重要的视觉操作。
图 5:CLIP-NeRF 和我们的 Edit-DiffNeRF 之间的编辑结果比较。
图 6:与 Instruct-NeRF2NeRF的比较。编辑是通过文本指令“给他一件格子夹克”进行的。
我们通过在我们的方法和其他几个变体之间进行全面的比较分析来验证 Edit-DiffNeRF 的有效性。
Delta 模块的影响。 我们首先将我们的模型与 Instruct-NeRF2NeRF进行比较。我们使用发布的官方代码,并在InstructPix2Pix中微调整个UNet模型来编辑真实图像。表 3 表明我们提出的 Edit-DiffNeRF 在所有方面都优于 InstructPix2Pix。我们将这种优势归因于这样一个事实:针对每个场景微调整个模型具有挑战性,从而导致较差的结果。
多视图语义一致性损失的影响。 此外,我们还进行了排除一致性损失 Lc 的实验。从表 3 中可以看出,即使没有多视图语义一致性损失 Lc,我们的方法仍然优于带有经过训练的 delta 模块的 Instruct-NeRF2NeRF 。然而,如果没有这种损失,我们的方法仍然缺乏 3D 一致性,并且仅实现了轻微的性能提升。相比之下,合并这种损失会显着改善结果。
表 3:消融研究结果
在本文中,我们概述了使用预训练的 2D 扩散模型实现精确 NeRF 场景修改的潜在挑战。为了解决这个限制,我们引入了 Edit-DiffNeRF 框架,该框架专门针对编辑预训练扩散模型中的语义潜在空间。具体来说,Edit-DiffNeRF 框架旨在使用 delta 模块学习潜在语义方向,在提供的文本指令的指导下,允许通过 NeRF 训练在 3D 场景中有效整合这些指令。此外,我们引入了多视图语义一致性损失,以确保不同视图之间的语义一致性。大量的实验表明,我们的方法能够一致且有效地实现对各种真实捕捉场景的编辑。此外,它还显着提高了编辑结果的文本图像一致性。
关注下方《学姐带你玩AI》
回复“NeRF”获取全部118篇论文资料合集
码字不易,欢迎大家点赞评论收藏!