文章:https://arxiv.org/pdf/2405.18424
项目:https://zqh0253.github.io/3DitScene/
huggingface:https://huggingface.co/spaces/qihang/3Dit-Scene
场景图像编辑在娱乐、摄影和广告设计中至关重要。现有方法仅专注于2D个体对象或3D全局场景编辑,导致缺乏一种在3D层面上以不同粒度有效控制和操作场景的统一方法。
本研究提出了3DitScene,这是一种新颖且统一的场景编辑框架,利用语言引导的解耦Gaussian Splatting实现从2D到3D的无缝编辑,允许对场景组成和个体对象进行精确控制。首先结合通过生成先验和优化技术细化的3D Gaussian Splatting。然后通过CLIP引入的语言特征为3D几何体赋予语义,实现对象的解耦。借助解耦的Gaussian Splatting,3DitScene允许在全局和个体层面上进行操作,革新了创意表达并增强了对场景和对象的控制。实验结果展示了3DitScene在场景图像编辑中的有效性和多样性。
介绍
场景图像编辑在娱乐、专业摄影和广告设计等多个领域具有重要意义。内容编辑能够为观众创造沉浸式和引人入胜的体验,有效传达艺术愿景,并实现预期的美学效果。随着深度生成建模的快速发展,许多尝试已被用于有效编辑图像。然而,这些方法遇到了限制,阻碍了它们的潜力。
以往的方法主要集中在2D图像空间的场景编辑。它们通常依赖于生成先验,如生成对抗网络(GANs)和扩散模型(DM),并采用修改交叉注意力机制和优化网络参数等技术来编辑场景图像中的外观和对象身份。尽管有些尝试扩展了这些方法到3D编辑,但它们忽视了3D线索,在改变相机姿态时难以保持3D一致性。此外,这些方法通常专注于全局场景,缺乏准确解耦对象的能力,导致在3D层面上对个体对象的控制有限。
为了编辑任意场景图像并实现对场景及其个体对象的3D控制,本文提出了3DitScene,一种利用新场景表示的场景编辑框架------语言引导的解耦Gaussian Splatting。具体来说,给定的图像首先被投影到3D Gaussian Splatting中,这些Gaussian Splatting通过2D生成先验进一步细化和丰富。因此获得了一个综合的3D场景表示,自然支持给定图像的新视角合成。
此外,CLIP的语言特征被提取到相应的3D Gaussian Splatting中,引入语义到3D几何中。这些语义3D Gaussian Splatting帮助从整个场景表示中解耦出个体对象,形成语言引导的解耦Gaussian Splatting用于场景分解。它们还允许更用户友好的交互,即用户可以通过文本查询特定对象或兴趣点。为此,3DitScene实现了从2D到3D的无缝编辑,并允许在全局和个体层面上进行修改,赋予创作者对场景构图和对象级别编辑的精确控制。
这一流程称为3DitScene。不同于以前专注于单一类型编辑的工作,3DitScene在一个统一框架内整合了编辑需求。示意图展示了3DitScene的多功能性,展示了其在各种场景图像中的应用。在不同设置下对3DitScene进行了评估,结果显示相比基线方法有显著改进。
相关工作
使用生成模型进行图像编辑 随着生成对抗网络(GANs)和扩散模型的发展,2D图像合成领域取得了显著进展。许多研究利用生成模型中embedding的丰富先验知识进行图像编辑。一些研究使用GANs进行各种图像编辑任务,包括图像到图像翻译、潜在空间操作以及文本引导的操作。
然而,由于在大规模数据上训练的限制,GANs在处理现实场景图像时常表现不佳。随着扩散模型的显著进步,社区越来越关注利用强大的文本到图像扩散模型进行真实图像编辑。然而,这些方法局限于2D领域,难以在3D空间中编辑对象。同时,其他研究试图解决3D感知的图像编辑,但在编辑过程中引入了不一致性,且无法改变整个场景的相机视角。相反,本文的模型利用显式3D高斯将2D图像转换为3D空间,同时借助语言引导解耦对象。该方法不仅使本文的模型能够一致地执行3D感知对象编辑,还能促进场景级的新视角合成。
单视角3D场景合成 在3D场景生成领域中,基于单视角的条件生成提出了独特的挑战。先前的方法通过训练一个通用模型来应对这一挑战,该模型能够基于单个输入图像推断场景的3D表示。然而,这些方法需要大量的数据集进行训练,且在面对相机视角的显著变化时,往往会产生模糊的纹理。最近,一些工作采用扩散先验来获取未见视角的概率分布,从而获得更好的合成效果。然而,这些方法通常集中于对象中心的场景或缺乏3D一致性。本文的方法通过显式3D高斯连接2D图像和3D场景,并结合扩散知识,克服了上述挑战。
方法
本文的目标是提出一个3D感知的场景图像编辑框架,允许对相机和对象进行同步控制。为实现这一目标,先介绍了一种新颖的场景表示方法,称为语言引导的解耦Gaussian Splatting。为了实现对象级控制,进一步将语言特征提取到Gaussian Splatting表示中,实现对象级解耦。接着详细说明了优化过程,最后展示了本文的框架在推理过程中所提供的灵活用户控制。
从单个图像生成3D Gaussian Splatting
预备知识 3D Gaussian Splatting(3DGS)已被证明在重建和生成设置中都很有效。它通过一组显式的3D高斯来表示3D场景。每个3D高斯通过一个中心向量
、一个缩放因子
、一个旋转四元数
来描述其位置,并存储一个不透明度值
和用于体渲染的球谐函数(SH)系数
(k表示SH的自由度)。所有上述参数可以表示为
,其中𝑁是3D高斯的数量。一个基于瓦片的光栅化器用于将这些高斯渲染成2D图像。
图像到3DGS的初始化 给定一个输入图像
,应用一个现成的深度预测模型来估计其深度图
。然后,可以将图像像素转换到3D空间,形成相应的3D点云:
其中,K和T分别是相机的内参矩阵和外参矩阵。这些点云P然后被用来初始化3DGS,通过直接复制位置和颜色值来进行初始化,其他与GS相关的参数则随机初始化。为了优化3DGS的外观,采用重建损失:
其中,𝑓是渲染函数。进一步利用图像生成基础模型(即Stable Diffusion)的先验知识来增强渲染质量。它以Score Distillation Sampling损失(记为LSDS)的形式,为当前3DGS渲染的图像提供更新方向。
通过修补扩展3D GS 当相机视角发生变化时,由于遮挡或超出原始视锥的新区域,渲染视图会出现空洞。使用Stable Diffusion来修补未覆盖的区域。然后,需要将新添加的像素准确地转换到3D空间,以无缝对齐现有的3D高斯。
之前的方法首先预测深度值,然后使用启发式方法调整这些值以对齐现有的3D结构。然而,依赖启发式方法往往忽略了各种场景,导致深度不连续或形状变形等问题。
相反,本文提出了一种新方法,将新的内容提升到3D,同时确保无缝对齐而无需任何启发式过程。关键见解是将问题视为图像修补任务,并利用最先进的基于扩散的深度估计模型作为先验来解决任务。在去噪步骤中,不是使用模型预测整个图像的噪声,而是采用前向扩散过程来确定固定区域的值。这种方法保证了最终结果在去噪后符合原始固定部分的深度,确保了平滑扩展。
在通过深度修补平滑扩展3DGS后,将设想的全新视图作为参考视图,并应用重建损失Lrecon来监督更新的3DGS。对于从用户提供的视点和新设想视图之间插值的相机视角渲染的视图,采用SDS损失LSDS。
语言引导的解耦Gaussian Splatting
基于单个输入图像生成的3DGS,用户可以生成新视图。进一步将CLIP语言特征提取到3D高斯中。这将语义引入到3D几何中,有助于从整个场景表示中解耦个体对象。
语言特征提取 为每个3D高斯增加一个语言embedding
,其中
表示通道数。与RGB图像I类似,也可以通过光栅化器渲染出一个2D语义特征图
。为了学习embedding,首先使用Segment Anything Model (SAM)获得语义mask
。然后,可以获取每个对象的embedding
,并根据提取损失来监督渲染特征图E上的相应区域:
其中,
是CLIP的图像编码器,⊙表示元素逐次相乘。根据LangSplat,还训练了一个自编码器来压缩embedding空间,以优化语言embedding e的内存消耗。
场景分解 在提取语言特征后,可以将场景分解为不同的对象。这使得用户能够查询并定位特定对象,并对单个对象进行编辑(例如平移、旋转、移除、重新造型)。值得注意的是,这种场景分解特性不仅在推理阶段允许更灵活的编辑,还在优化过程中提供了对场景布局的增强。由于现在可以独立查询和渲染每个对象,对对象应用随机平移、旋转和移除。这种对场景布局的增强显著改善了遮挡区域的外观,最终提升了编辑视图的整体质量。
训练 总体训练目标可以表示为:
其中,
、
和
是平衡各损失项的系数。
推理
由于本文的表示方法具有解耦的特性,用户现在可以以灵活的方式与对象进行交互和操作。这里,主要讨论通过两种不同模态来提示对象:
文本提示 用户可以通过文本提示查询对象,如下图3所示。
根据LERF和LangSplat,计算3D高斯中的语言embedding e与文本提示的embedding
之间的相关性得分:
其中,
是包括"object"(对象)、"things"(事物)、"stuff"(物品)和"texture"(纹理)等常见短语的CLIP embedding。相关性得分低于预定阈值的高斯将被排除。剩余部分被识别为用户感兴趣的对象。
边界框 用户还可以通过在输入图像上绘制一个大致的边界框来选择对象。首先识别边界框内的3D高斯,然后根据它们的语言embedding e进行K均值聚类。假设对象是边界框内最显著的一个,数量不超过阈值比例的聚类将被丢弃。
同时,用户还可以通过指定内参和外参来调整相机视点。
实验
###设置
实现细节:为了将图像提升到3D,使用GeoWizard估计其相对深度。采用Stable Diffusion的修补流程为3DGS的扩展生成新内容。利用MobileSAM和OpenCLIP对渲染视图进行分割和计算特征图,这些特征图进一步用于监督3D高斯的语言embedding。在优化过程中,使用Stable Diffusion进行Score Distillation Sampling。得益于显式3DGS初始化的良好图像质量,采用低分类器无关指导的比例。
基线:将本文的方法与以下场景图像编辑工作进行比较:
-
AnyDoor是一种基于2D扩散模型的方法,可以将目标对象传送到给定的场景图像中。它通过微调Stable Diffusion来利用其强大的图像生成先验。
-
Object 3DIT旨在通过语言指令进行3D感知的对象中心图像编辑。它在包含原始图像、语言指令和编辑图像对的合成数据集上微调Stable Diffusion。
-
Image Sculpting也旨在进行3D感知的对象中心图像编辑。它从输入图像中的对象估计3D模型,以实现对几何形状的精确3D控制。它还使用Stable Diffusion来优化编辑后的图像质量。
-
AdaMPI侧重于相机视角的控制。它利用单目深度估计和颜色修补,采用自适应分层深度表示。
-
LucidDreamer通过使用稠密相机轨迹查询Stable Diffusion的修补流程来处理新视图合成。
定量结果
研究者们进行用户研究,以比较本文方法与已建立基线方法的编辑结果。每种方法生成20个样本,并要求用户根据与原始图像的一致性和每个样本的质量投票选择其偏好。收集了25名用户的反馈,并在下表1中报告结果。
本文的方法在一致性和图像质量方面始终优于以前的基线。根据之前的研究建议,GPT-4v具有评估3D一致性和图像质量的能力。因此,将GPT-4v作为额外的评估标准。GPT-4v的偏好与人类偏好高度一致,这再次证明了3DitScene的优越性。
定性结果
下图4展示了本文框架生成的新视图及其相应的特征图。特征图显示出在捕捉图像的语义内容方面具有显著的准确性。这种能够清晰分离语义信息的能力在实现精确的对象级控制中起着关键作用。接下来,展示了本文框架实现的对场景图像的灵活编辑,并与基线方法进行了比较。
对象操作
由于不同的方法在不同的坐标系中定义对象操作,特别是平移操作,因此在统一和公平的设置下评估它们变得具有挑战性。因此,根据各自的特定设置评估每种方法,以达到最佳结果。如下图5所示,AnyDoor在操作对象布局时难以维持对象身份和3D一致性,主要是由于缺乏3D线索。
Object 3DIT,在合成数据集上训练,展示了有限的对真实图像的泛化能力。通过利用从输入图像中导出的3D模型,Image Sculpting取得了更好的结果。尽管如此,在操作对象时仍然遇到一致性问题。这是因为它们仅依赖3D模型提供粗略指导,导致在优化过程中丢失了更细微的细节。
相比之下,本文的方法提供了令人满意的3D感知对象级编辑结果。在重新排列布局后,它保持了编辑对象的准确3D一致性。此外,它保留了场景内的遮挡关系,例如将女孩移动到最后一行示例中被前景对象部分遮挡。
相机控制 将本文的方法与AdaMPI和LucidDreamer进行相机控制的比较。如下图6所示,AdaMPI仅专注于相机放大的情况,并不考虑新视图合成。因此,当需要大范围相机控制时,此方法不适用于需要3D感知图像编辑。LucidDreamer还利用Stable Diffusion的修补能力进行新视图合成。然而,它在帧内内容的突然转换中遇到问题(参见底部行的示例)。它还需要密集的相机姿态。相比之下,本文的方法只需要尽少至三个相机姿态,并实现了从输入视图到新视图的平滑过渡,增强了用户对相机视角的控制。
消融研究
优化过程中的布局增强 由于表示在对象级别上进行了解缠,可以在优化过程中进行布局增强。在这里,研究了解缠属性是否有助于优化过程。使用移除对象的任务来评估解缠程度。如下图7所示,在优化过程中禁用布局增强时,可以观察到浮动伪影。发现这些高斯位于对象内部。它们被表面上的高斯遮挡。由于它们不会对渲染结果产生影响,因此它们在优化过程中不会被梯度下降更新,导致它们的语言embedding无监督。
相比之下,在优化过程中应用布局增强,当前景对象移开时,这些高斯将会暴露出来,因此得到更新。通过这种消融,得出结论:所提出的表示的解缠属性不仅能够实现更灵活的推断,而且有助于优化过程。
损失项 在优化过程中,采用三个损失项:
。
在将语言embedding蒸馏到3D中起着关键作用。其余两个项侧重于增强图像的视觉质量。在这里,通过消融研究来研究这两个项的贡献。由于输入图像可以提供整体结构和详细外观的指导,因此无需为SDS损失应用大的分类器自由指导(CFG)值。因此,默认情况下,选择5作为CFG值。
如下图8所示,如果没有
或
,图像质量会严重下降。没有
时,图像仅由SDS损失进行了细化,这与原始图像存在差异。当CFG值设定为较低值时,如默认的5,图像缺乏细节,并显示出异常的纹理图案。增加CFG值会引入更多细节,但会与原始图像产生不一致,同时奇怪的纹理图案问题仍然存在。此外,仅应用
会导致浮动伪影和整个图像的模糊。
综上所述,SDS和重建损失对于获得体面的图像质量至关重要。
深度修补 在扩展3DGS到新视图时,需要估计未见区域的深度图。这里将基于修复的深度估计与启发式方法进行了比较。下图9显示了左侧部分具有深度图像的图像。任务是预测右侧部分的深度图。依赖启发式对齐的方法会导致深度不连续等伪影。相比之下,本文提出的方法能够生成准确的深度图,与左侧已知部分很好地对齐。
结论与讨论
本文提出了一个新的框架,3DitScene,用于场景图像编辑。主要目标是在统一的框架内促进对对象和整个场景的3D感知编辑。通过利用新的场景表示,即语言引导的解缠场景表示,实现了这一目标。通过将CLIP的语言特征蒸馏到3D高斯中来学习此表示。语义3D高斯有效地从整个场景中解缠出单个对象,从而实现了局部对象编辑。通过在不同的设置下测试了3DitScene,并证明了与先前方法相比其优越性。
参考文献
[1] 3DitScene: Editing Any Scene via Language-guided Disentangled Gaussian Splatting