CVPR 2024 | 万物皆可移动!SceneDiffusion:可控场景生成新SOTA! 精华
文章链接:https://arxiv.org/pdf/2404.07178
扩散模型生成的图像质量达到了前所未有的水平,但我们如何自由重新排列图像布局呢?最近的研究通过学习空间解耦的潜在编码生成可控场景,但由于扩散模型的固定前向过程,这些方法并不适用。
在这项工作中,本文提出了SceneDiffusion,在扩散采样过程中优化分层场景表示。本文的关键洞察是,通过联合去噪不同空间布局的场景渲染,可以获得空间解耦。生成的场景支持各种空间编辑操作,包括移动、调整大小、克隆和分层外观编辑操作,包括对象重塑和替换。此外,可以根据参考图像生成场景,从而实现对自然场景图像进行对象移动。值得注意的是,这种方法无需训练,与一般的文本到图像扩散模型兼容,并且在不到一秒的时间内响应。
更多生成可控场景结果
介绍
可控场景生成,即生成具有可重新排列布局的图像,是生成建模的重要课题,其应用范围从社交媒体平台的内容生成和编辑到互动室内设计和视频游戏。在GAN时代,潜在空间被设计为在生成的场景中提供mid-level控制。这些潜在空间被优化以在无监督的情况下提供场景布局和外观之间的解耦。
例如,BlobGAN使用一组splattering blobs进行2D布局控制,而GIRAFFE使用组合神经场进行3D布局控制。虽然这些方法提供了对场景布局的良好控制,但在生成的图像质量方面仍然存在局限性。另一方面,扩散模型最近在文本到图像(T2I)生成任务上展现了前所未有的性能。然而,由于缺乏mid-level表示,它们无法提供精细的空间控制,这是由于其固定的前向噪声处理过程引起的。
本文提出了一个框架来填补这一差距,允许使用通用预训练的T2I扩散模型进行可控场景生成。本文的方法SceneDiffusion,基于这样一个核心观察:在扩散采样过程中,通过在每个去噪步骤中去噪多个场景布局,可以实现空间内容的解耦。
更具体地,在每个扩散步骤t中,通过首先随机采样几个场景布局,同时在每个布局上运行局部条件去噪,然后在下一个扩散步骤t-1中对表示进行解析优化,以最小化其与每个去噪结果之间的距离。采用了分层场景表示,其中每个层表示一个对象,其形状由mask控制,内容由文本描述控制,从而能够使用深度排序来计算对象的遮挡。分层表示的渲染是通过运行一个短时间表的图像扩散完成的,通常在一秒内完成。
总的来说,SceneDiffusion生成可重新排列的场景,无需对配对数据进行微调、特定mask的训练或测试时间优化,并且不受去噪器架构设计的影响。
此外,为了实现自然场景图像编辑,提出使用参考图像的采样轨迹作为SceneDiffusion中的anchor。在同时去噪多个布局时,增加了参考布局在噪声更新中的权重,以保持场景对参考内容的忠实度。通过解耦内容的空间位置和视觉外观,本文的方法在减少幻觉和保留整体内容方面比基线更好。为了量化性能,还建立了一个评估基准,创建了一个包含1,000个文本提示和与图像描述、局部描述和mask标注相关联的图像的数据集。在这个数据集上评估了本文提出的方法,并展示了它在可控场景生成和图像编辑任务的图像质量和布局一致性指标上均明显优于先前的工作。
本文贡献如下:
- 提出了一种新颖的采样策略,SceneDiffusion,用于生成具有图像扩散模型的分层场景。
- 展示了分层场景表示支持灵活的布局重新排列,实现了交互式场景操作和自然场景图像编辑。
- 建立了一个评估基准,并观察到本文的方法在场景生成和图像编辑任务的性能上在数量上达到了最先进水平。
相关工作
可控场景生成
生成可控场景在生成建模中一直是一个重要的课题,并且在GAN的背景下得到了广泛研究。各种方法已经被开发用于包括可控图像生成、3D感知图像生成和可控视频生成等应用。通常,mid-level控制是通过构建空间解耦的潜在空间以无监督的方式获得的。然而,这些技术并不直接适用于T2I扩散模型。扩散模型采用了固定的前向过程,这限制了学习空间解耦mid-level表示的灵活性。在这项工作中,通过在扩散采样过程中优化分层场景表示来解决这个问题。值得注意的是,最近的研究使扩散模型能够根据给定的布局生成图像。然而,它们并不关注空间解耦,并且不能保证在重新排列布局后内容相似。
基于扩散的图像编辑
现成的T2I扩散模型可以是强大的图像编辑工具。在倒置和以主题为中心的微调的帮助下,已经提出了各种方法来实现图像到图像的转换,包括概念替换和重塑。然而,这些方法局限于就地编辑,并且很少探索对象的空间位置编辑。此外,许多方法利用了与最终图像的注意力对应或特征对应,使得方法依赖于特定的去噪器架构。与使用自我引导和特征跟踪的扩散模型的空间图像编辑的并发工作相比,本文的方法有所不同:
- 生成保留不同空间编辑中内容的场景
- 使用明确的分层表示,提供直观和精确的控制
- 通过一个简短的图像扩散时间表来渲染一个新的布局,而基于引导的方法需要一个长的采样时间表,而特征跟踪则需要针对每次编辑进行基于梯度的优化。
方法
框架概述。框架概述如下图2所示。先简要介绍了扩散模型和局部条件扩散的初步工作。然后,介绍了如何使用SceneDiffusion获得空间解耦的分层场景。最后,讨论了SceneDiffusion如何实现对自然场景图像的空间编辑。
初步工作
扩散模型。扩散模型是一种生成模型,它学习从随机输入噪声生成数据。更具体地说,给定来自数据分布的图像 ,一个固定的前向噪声处理过程逐渐向数据添加随机高斯噪声,从而创建了一个随机潜变量 的马尔可夫链,如下所示:
其中ββ是与所选噪声时间表相对应的常数,选取得足够高的扩散步数后,假定是一个标准高斯分布。然后,训练了一个去噪器θ来学习反向过程,即如何从带噪声的输入中去除噪声。在推断时,我们可以通过从随机标准高斯噪声开始,并按照马尔可夫链迭代去噪图像,即通过连续地从θ中采样,直到得到:
其中,σ是噪声尺度。
局部条件扩散。已经提出了各种方法[1, 33],利用预训练的T2I扩散模型基于局部文本提示生成部分图像内容。对于K个局部提示和二进制不重叠mask ,局部条件扩散首先使用无分类器指导为每个局部提示预测一个完整的图像噪声εθ,然后将其分配给由 mask的相应区域:
其中⊙表示逐元素乘法。
可控场景生成
给定一个有序的对象mask列表及其相应的文本提示,我们希望生成一个场景,其中对象的位置可以在空间维度上改变,同时保持图像内容一致性和高质量。我们利用一个预训练的T2I扩散模型θ,该模型在图像空间(或潜在空间)生成图像,其中c是通道数,w和h分别是图像的宽度和高度。为了实现可控场景生成,引入了一个分层场景表示进行mid-level控制,并提出了一种新的采样策略。
分层场景表示
将可控场景分解为K个层次,按对象深度排序。每个层lk具有:
- 一个固定的以对象为中心的二进制mask (例如,边界框或分割mask),用于显示对象的几何属性;
- 一个两元素偏移量,μν,表示其空间位置,其中μ和ν定义了水平和垂直移动范围;
- 一个特征图,表示其在扩散步骤t的视觉外观。
场景布局由mask及其关联的偏移量定义。每个层的偏移量可以从移动范围 μν 中采样以形成新的布局。特别地,我们将最后一个层设为背景,使和。给定一个布局,分层表示可以渲染为图像,将该图像称为一个视图。类似于可控场景生成和视频编辑中的先前工作,我们在渲染过程中使用α混合来合成所有的层。更具体地,视图可以计算为:
每个元素α表示第k个潜在特征图中该位置的可见性,而函数 表示我们通过o空间移动特征图f或mask m的值。渲染过程可以应用于分层场景的任何扩散步骤,得到具有一定噪声水平的视图。
对于扩散步骤T的初始化,初始特征图 是从标准高斯噪声 独立采样得到的,每个层都有一个。可以证明,由于 α 是二进制的且 α,从初始分层场景渲染的视图仍然遵循标准高斯分布。这使得我们可以直接使用预训练的扩散模型对视图进行去噪。再讨论如何在顺序去噪过程中更新 。
使用SceneDiffusion生成场景
本文提出了SceneDiffusion来优化从高斯噪声中的分层场景中的特征图。每个SceneDiffusion步骤包括:
- 从随机采样的布局中渲染多个视图
- 从视图中估计噪声
- 更新特征图。
具体来说,SceneDiffusion采样N组偏移,其中每个偏移量 是在移动范围 μν 内的一个元素。这导致了N个布局变体。更多的布局有助于去噪器定位更好的模式,但也增加了计算成本。从K个潜在特征图中,我们将布局渲染为N个视图 :
然后,在每个SceneDiffusion步骤中,堆叠所有视图,并使用局部条件扩散(在方程3中描述)来预测噪声ε:
其中,m 是对象mask,y 是每个层的局部文本提示。由于可以并行运行多个布局的去噪过程,计算 ε 几乎不会带来额外的时间开销,但会增加与 N 成比例的额外内存消耗。然后,使用方程2从估计的噪声 ε 更新视图 ,得到 。由于每个视图对应于不同的布局并且独立进行去噪,因此在重叠的mask区域可能会发生冲突。因此,需要优化每个特征图 ,以使从方程5渲染的视图与去噪后的视图接近。
这个最小二乘问题有以下闭式解:
其中, 表示 x 中的值向 o 的反方向平移。这个解的推导与Bar-Tal等人的讨论类似。解本质上将 设置为裁剪去噪视图的加权平均值。
图像扩散的神经渲染
在运行了 τ 步的 SceneDiffusion 后,切换到普通的图像扩散进行 τ 步。由于层mask m (如边界框)仅作为粗略的mid-level表示,而不是准确的几何表示,这个图像扩散阶段可以被视为将mid-level控制映射到图像空间的神经渲染器。 τ 的值权衡了图像质量和对层mask的忠实度。 τ 的值在总扩散步骤的 25% 到 50% 之间通常取得最佳平衡,使用一个流行的 50 步 DDIM 调度器通常耗时不到一秒。用于图像扩散阶段的全局提示可以单独设置。在这项工作中,我们主要将全局提示设置为按深度顺序连接的局部提示 ,并且在大多数情况下,发现这种简单策略足够了。
层外观编辑
可以通过修改局部提示来单独编辑每个层的外观。通过将局部提示更改为新的值,然后使用相同的特征图初始化执行 SceneDiffusion,可以对对象进行重新设计或替换。
图像编辑应用
SceneDiffusion 可以根据参考图像进行条件化,方法是使用其采样轨迹作为anchor,从而允许改变现有图像的布局。具体而言,当给定参考图像以及现有布局时,将参考图像设置为最终扩散步骤的优化目标,即一个被表示为 的anchor视图。然后,我们在不同的扩散噪声水平上向该视图添加高斯噪声,从而创建不同去噪步骤下的一系列anchor视图的轨迹。
在每个扩散步骤中,我们使用相应的anchor视图 进一步约束 ,这导致在方程 7 中出现额外的加权项:
其中,n ∈ {1,··· ,N}∪{a},w 控制着 的重要性。足够大的 w 会使得生成的图像与参考图像更加一致,我们在这项工作中设置 w = 104。这个方程的闭式解与方程 8 类似,可以在补充资料中找到。
实验
实验设置
对我们的方法进行定性和定量评估。对于定量研究,需要一个包含数千个图像的数据集才能有效地测量诸如 FID 等指标。然而,在多对象场景中生成语义上有意义的空间编辑对是具有挑战性的,特别是当考虑到对象之间的遮挡时。因此,我们将定量实验限制在单对象场景中。有关多对象场景的定性结果,请参阅定性结果部分。
数据集。精心策划了一个高质量、以主题为中心的图像数据集,与图像描述和局部描述相关联。使用 GroundedSAM 自动标注了对象mask。首先从 1000 个图像描述生成了 20,000 张图像,然后应用基于规则的筛选器来删除低质量的图像,总共得到了 5,092 张图像。对象mask和局部描述随后被自动标注。
指标。用于可控场景生成的主要指标包括 Mask IoU、Consistency、Visual Consistency、LPIPS 和 SSIM。Mask IoU 衡量了目标布局与生成图像之间的对齐程度。其他指标比较了同一场景中多个生成视图,并评估它们的相似性:Consistency 表示mask一致性,Visual Consistency 表示前景外观一致性,LPIPS 表示感知相似性,SSIM 表示结构变化。此外,在图像编辑实验中,我们报告了 FID 来量化编辑后的图像与原始图像的相似性,以衡量图像质量。
实现。在我们的实验中,默认设置 N = 8。对于定量研究,所有实验都是在 5 个随机种子上平均的。有关我们的数据集构建、指标选择、实验标准偏差和实现细节的更多信息,请参阅我们的补充文档。
可控场景生成
设置。随机放置一个对象mask到不同的位置,形成随机的目标布局。图像应该在目标布局和局部提示的条件下生成,期望内容在不同的布局中保持一致。对象mask来自前述策划的数据集。为了减少对象移出画布的可能性,我们将mask位置限制在一个以原始位置为中心的正方形内,其边长为图像宽度的 40%。在下图 9 中可以找到一个视觉示例。
基线。将本文的方法与 MultiDiffusion 进行比较,它是一种无需训练的方法,可以生成根据mask和局部描述的图像。我们使用了他们协议中的 20% 纯色引导策略。前景和背景噪声在同一场景中是固定的,以提高一致性。
结果。在下表 1 中呈现了定量结果,显示了 SceneDiffusion 在所有指标上优于 MultiDiffusion。对于定性研究,在下图 3 中展示了我们生成的场景的顺序操作结果。
图像编辑中的对象移动
设置。给定一个参考图像、一个对象mask和一个随机的目标位置,目标是生成一幅图像,其中对象已经移动到目标位置,同时保持其余内容相似。前述的范围用于防止将对象移出画布。
基线。与基于修补的方法进行比较。我们首先从参考图像中裁剪出对象,将其粘贴到目标位置,然后修补空白区域。我们将对象的边缘膨胀了 30 个像素,以更好地与背景融合。将我们的方法与两种修补模型进行比较:使用 RePaint 技术的标准 T2I 扩散模型,以及经过mask训练的专用修补模型。将我们方法中的所有局部层提示设置为全局图像描述,以进行公平比较。
结果。在下表 2 中报告了定量结果。本文的方法在所有指标上都明显优于基于修补的基线方法。对象移动的定性结果如下图 4 所示。
层外观编辑
下图 5 中展示了对象重新设计的结果,并在图 6 中展示了对象替换的结果。我们观察到变化主要局限在选定的层中,而其他层略微调整以使场景更加自然。此外,通过直接从一个场景复制一个层到另一个场景,可以将层外观传输到不同的场景中,如图 7 所示。
消融研究
在下表 3 中,对所有组件进行了消融。还按照[1]的方法额外衡量了 CLIP-美学(CLIP-a),以量化图像质量。如果没有联合去噪多个布局,所有指标都会急剧下降。采用确定性布局采样时,图像质量会下降。如果没有图像扩散阶段,尽管一致性指标略微提高,但图像质量会显著下降。
在下表 4 中,我们分析了视图数量和图像扩散步数的影响。观察到,拥有更多的视图和更多的 SceneDiffusion 步骤会导致对象和背景之间的解耦更好,如更高的 Mask IoU 和一致性所示。定性比较见下图 8。还呈现了限制为单个 32GB GPU 时的准确性与速度的权衡。较大的 N 增加了优化时间。较大的 τ 增加了推理时间。对于所有消融实验,使用了一个随机选择的 10% 子集以便更容易实现。
结论
本文提出了SceneDiffusion,利用图像扩散模型实现了可控场景生成。SceneDiffusion 在扩散采样过程中优化了分层场景表示。由于分层表示,空间和外观信息被解耦,从而允许广泛的空间编辑操作。利用参考图像的采样轨迹作为anchor,SceneDiffusion 可以在自然场景图像上移动对象。与基线相比,我们的方法在生成质量、跨布局一致性和运行速度方面均取得了更好的效果。局限性。 在最终渲染的图像中,对象的外观可能不会与mask紧密匹配。此外,我们的方法需要大量内存以同时去噪多个布局,从而限制了在资源有限的用户案例中的应用。
本文转自 AI生成未来 ,作者:Jiawei Ren等