编辑任何场景! 3DitScene:通过语言引导的解耦 Gaussian Splatting开源来袭!

news2024/11/16 13:45:17

文章: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高斯通过一个中心向量

x \in R^3

、一个缩放因子

s \in R^3

、一个旋转四元数

q \in R^4

来描述其位置,并存储一个不透明度值

\alpha \in R

和用于体渲染的球谐函数(SH)系数

c \in R^k

(k表示SH的自由度)。所有上述参数可以表示为

Θ={x_i, s_i, q_i, \alpha_i, c_i| i \in [0,··· ,𝑁 − 1]}

,其中𝑁是3D高斯的数量。一个基于瓦片的光栅化器用于将这些高斯渲染成2D图像。

图像到3DGS的初始化 给定一个输入图像

I \in R^{3 \times H \times W}

,应用一个现成的深度预测模型来估计其深度图

D \in R^{H \times W}

。然后,可以将图像像素转换到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

e \in R^C

,其中

C

表示通道数。与RGB图像I类似,也可以通过光栅化器渲染出一个2D语义特征图

E \in R^{C \times H \times W}

。为了学习embedding,首先使用Segment Anything Model (SAM)获得语义mask

M_i

。然后,可以获取每个对象的embedding

I ⊙ M_i

,并根据提取损失来监督渲染特征图E上的相应区域:

其中,

g

是CLIP的图像编码器,⊙表示元素逐次相乘。根据LangSplat,还训练了一个自编码器来压缩embedding空间,以优化语言embedding e的内存消耗。

场景分解 在提取语言特征后,可以将场景分解为不同的对象。这使得用户能够查询并定位特定对象,并对单个对象进行编辑(例如平移、旋转、移除、重新造型)。值得注意的是,这种场景分解特性不仅在推理阶段允许更灵活的编辑,还在优化过程中提供了对场景布局的增强。由于现在可以独立查询和渲染每个对象,对对象应用随机平移、旋转和移除。这种对场景布局的增强显著改善了遮挡区域的外观,最终提升了编辑视图的整体质量。

训练 总体训练目标可以表示为:

其中,

\lambda_{recon}

\lambda_SDS

\lambda_istill

是平衡各损失项的系数。

推理

由于本文的表示方法具有解耦的特性,用户现在可以以灵活的方式与对象进行交互和操作。这里,主要讨论通过两种不同模态来提示对象:

文本提示 用户可以通过文本提示查询对象,如下图3所示。

根据LERF和LangSplat,计算3D高斯中的语言embedding e与文本提示的embedding

e_l

之间的相关性得分:

其中,

e^i_{canon}

是包括“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无监督。

相比之下,在优化过程中应用布局增强,当前景对象移开时,这些高斯将会暴露出来,因此得到更新。通过这种消融,得出结论:所提出的表示的解缠属性不仅能够实现更灵活的推断,而且有助于优化过程。

损失项 在优化过程中,采用三个损失项:

L_{recon}、L_{SDS}和L_{distill}

L_{distill}

在将语言embedding蒸馏到3D中起着关键作用。其余两个项侧重于增强图像的视觉质量。在这里,通过消融研究来研究这两个项的贡献。由于输入图像可以提供整体结构和详细外观的指导,因此无需为SDS损失应用大的分类器自由指导(CFG)值。因此,默认情况下,选择5作为CFG值。

如下图8所示,如果没有

L_{recon}

L_{SDS}

,图像质量会严重下降。没有

L_{recon}

时,图像仅由SDS损失进行了细化,这与原始图像存在差异。当CFG值设定为较低值时,如默认的5,图像缺乏细节,并显示出异常的纹理图案。增加CFG值会引入更多细节,但会与原始图像产生不一致,同时奇怪的纹理图案问题仍然存在。此外,仅应用

L_{recon}

会导致浮动伪影和整个图像的模糊。

综上所述,SDS和重建损失对于获得体面的图像质量至关重要。

深度修补 在扩展3DGS到新视图时,需要估计未见区域的深度图。这里将基于修复的深度估计与启发式方法进行了比较。下图9显示了左侧部分具有深度图像的图像。任务是预测右侧部分的深度图。依赖启发式对齐的方法会导致深度不连续等伪影。相比之下,本文提出的方法能够生成准确的深度图,与左侧已知部分很好地对齐。

结论与讨论

本文提出了一个新的框架,3DitScene,用于场景图像编辑。主要目标是在统一的框架内促进对对象和整个场景的3D感知编辑。通过利用新的场景表示,即语言引导的解缠场景表示,实现了这一目标。通过将CLIP的语言特征蒸馏到3D高斯中来学习此表示。语义3D高斯有效地从整个场景中解缠出单个对象,从而实现了局部对象编辑。通过在不同的设置下测试了3DitScene,并证明了与先前方法相比其优越性。

参考文献

[1] 3DitScene: Editing Any Scene via Language-guided Disentangled Gaussian Splatting

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1717192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++系列——————类和对象(上)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、面向对象的三大特征二、类的引入2.1类的定义 三.类的访问限定符3.1访问限定符的介绍3.2.访问限定符的使用 四、类的作用域五、类的实例化六、类对象模型6.1…

oracle中的INTERVAL函数学习总结

Oracle 从9i数据库开始引入了一种新特性,可以用来存储时间间隔,出现了INTERVAL 函数。这个函数的表达式比较多,初学比较费劲不好掌握,经过以几个小时的查阅资料和实验,总结如下: interval year t…

基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018)

心电信号是心脏神经,肌肉组织电化学活动的表现形式。这些电化学活动使心脏内部产生一系列非常协调的电刺激脉冲,分别使心房,心室的肌肉细胞兴奋,从而有节律的舒张和收缩。这些生物电活动在体表的不同部位形成不同的电位差变化&…

模型构建器之迭代器

上一篇我们介绍了模型构建器的基础,将一个工作流串联起来,然后做成模型工具。今天我们介绍模型构建器的第二个重要功能——迭代,也就是程序中的循环。 先来看一个例子。要给数据库中所有要素类添加一个相同的字段,该怎么做&#…

docker镜像体积优化攻略参考—— 筑梦之路

简单介绍 镜像的本质是镜像层和运行配置文件组成的压缩包,构建镜像是通过运行 Dockerfile 中的 RUN 、COPY 和 ADD 等指令生成镜像层和配置文件的过程。 和镜像体积大小有关的关键点: RUN、COPY 和 ADD 指令会在已有镜像层的基础上创建一个新的镜像层&…

黑马es集群

1、为什么要做es集群 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数据在不同节点备份(replica) 2、搭建es集群 1、用…

【技术实操】银河高级服务器操作系统实例分享,数据库日志文件属主不对问题分析

1. 问题现象描述 2023 年 06 月 30 日在迁移数据库过程中,遇到数据库 crash 的缺陷,原因如下:在数据库启动时候生成的一组临时文件中,有 owner 为 root 的文件, 文件权限默认为 640, 当数据库需要使用的时…

重生奇迹mu魔剑职业技能一览

1、火剑袭:魔剑士三转前4个技能中,核心技能火剑袭为buff技能,可在短时间内大幅提升自身伤害输出能力,由于提升的数值依赖于技能等级,因此一个高技能等级魔剑士的爆发能力相当恐怖。 2、天雷闪:是剩余技能中…

Sapphire开发日志(四)

任务描述 本周任务,将模型进行封装,实现模型推理的基本API,从而可以根据输入数据输出蒙版数据。 模型输入数据处理 首先进行模型输入数据的预处理。首先支持点击和框选两种模式,所以这里需要对这两种模式进行适配。 modelData…

微信小程序蓝牙连接部分Android14调用wx.setBLEMTU协商低功耗最大传输单元失败解决方案(部分安卓14设置超过23就会报错)

1.解决方案的核心内容:第一次设置失败不要管,在complate函数里面继续往下连接,然后设置一个定时器每1秒钟在重新设置一次,肯定会成功的!!!!!!!&am…

使用compile_commands.json配置includePath环境,解决vscode中引入头文件处有波浪线的问题

通过编译时生成的 compile_commands.json 文件自动完成对 vscode 中头文件路径的配置,实现 vscode 中的代码的自动跳转。完成头文件路径配置后,可以避免代码头部导入头文件部分出现波浪线,警告说无法正确找到头文件。 步骤 需要在 vscode 中…

Java Sort 方法的使用(包含Arrays.sort(),Collections.sort()以及Comparable,Comparator的使用 )

目录 Comparable && Comparator的使用: Comparable: Comparator: Arrays.sort()的使用: 升序排序: 降序排序: 自定义排序方法: 在日常的刷题或开发中,很多时候我们需要对数据进行排序,以达到我…

【PHP项目实战训练】——laravel框架的实战项目中可以做模板的增删查改功能(1)

👨‍💻个人主页:开发者-曼亿点 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 曼亿点 原创 👨‍💻 收录于专栏&#xff1a…

【银河麒麟V10服务器OS-系统根分区扩容】指导教程手册

【银河麒麟V10服务器OS-系统根分区扩容】指导教程手册 环境信息:VMware虚拟软件16.0 首先查看KylinOS服务器版本:nkvers 备注: (Tercel) 版本是 V10 SP1 版本, (Sword) 版本是 V10 SP2 版本, (Lance) 版本是 V10 …

开源与闭源 AI 模型:发展路径的比较与前瞻

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

super().__init__() 来自于哪个PEP

super() 的简化用法(即不带参数的 super())是在 Python 3 中引入的。这个改进是由 PEP 3135 规范化的。 PEP 3135: New Super PEP 3135 标题为 “New Super”。它介绍了一种新的方式来调用超类的方法,即不再需要显式地传递当前类和实例&…

前端Vue小兔鲜儿电商项目实战Day04

一、二级分类 - 整体认识和路由配置 1. 配置二级路由 ①准备组件模板 - src/views/SubCategory/index.vue <script setup></script><template><div class"container"><!-- 面包屑 --><div class"bread-container">…

软件需求规格说明书(Word原件@配套软件全资料)

软件需求规格说明书编写规范编写规范 1.项目背景 2.项目目标 3.系统架构 4.总体流程 5.名称解释 6.功能模块 软件项目相关全套精华资料包获取方式①&#xff1a;点我获取 获取方式②&#xff1a;本文末个人名片直接获取。 软件资料清单列表部分文档清单&#xff1a;工作安排任…

python操作mongodb底层封装并验证pymongo是否应该关闭连接

一、pymongo简介 https://pymongo.readthedocs.io/en/stable/github地址&#xff1a;https://github.com/mongodb/mongo-python-driver mymongo安装命令&#xff1a;pip install pymongo4.7.2 mymongo接口文档&#xff1a;PyMongo 4.7.2 Documentation PyMongo发行版包含Py…

AI绘画Stable Diffusion【实战】一下给我整破防了!!SD制作商业海报——香水海报

大家好&#xff0c;我是画画的小强 今天给大家分享关于SD制作商业海报案例——香水海报。内容很干&#xff0c;但很实用&#xff0c;后续也会持续分享一些其他商业海报的制作案例&#xff0c;喜欢的朋友请持续关注 人“狠”话不多&#xff0c;大家请上车&#xff01;&#xff…