近日,来自清华大学智能产业研究院(AIR)助理教授赵昊老师的团队,联合梅赛德斯-奔驰中国,中国科学院大学和北京大学,提出了一种根据语义图生成对应图像的新方法。研究重点关注图像生成中的Semantic Image Synthesis (SIS) 任务,解决了之前方法生成图像质量较低,和语义图不够符合的问题。团队给出了“Noise Prior”的解决方案,在Diffusion推理过程中对噪声加入先验信息,这一方法简单有效,在Cityscapes,ADE20K和COCO-Stuff数据集上取得了
State-Of-The-Art
的结果,并且将Cityscapes数据集上的FID值
从44.5提升到10.5
。
论文链接:
https://arxiv.org/pdf/2403.09638
项目地址:
https://air-discover.github.io/SCP-Diff/
1 背景介绍
Semantic Image Synthesis (SIS) 任务,是给定一张语义图,目的生成高质量的并且和这张语义图相符的图像。在自动驾驶和具身智能场景中,该任务有很重要的意义,可以让用户生成符合特定摆放要求的图像。然而,现有的方法大多是基于生成对抗网络 (Generative Adversarial Network, GAN) 的,这些方法生成的图像质量较低,不足以投入到实际应用中去。
随着Diffusion等模型的出现,生成式模型生成图像的质量得到的进一步的提升。其中以ControlNet为代表的方法,可以使得用户对生成的图像内容进行控制(比如生成符合某张语义图的图像),然而这些方法生成的图像会出现质量较差和与用户输入的控制不相符的情况,即和所期望的生成图像还有一定的差别。为了探究这个问题,我们做了一系列的实验,
发现生成图像和所期望图像的差别的主要不是来源于微调过程,而是来源于训练过程和推理过程中使用的噪声分布不匹配。
为了解决训练和推理使用的噪声分布不匹配的问题,我们针对SIS任务,在推理阶段引入了空间噪声先验和类别噪声先验,使得ControlNet,FreestyleNet等以diffusion为基础的方法可以不需要重新微调即可生成更高质量的图像。
通过简单地引入噪声先验,我们在Cityscapes,ADE20K和COCO-Stuff三个数据集上的SIS任务上的指标均取得了State-of-The-Art (SoTA) 的结果。
如图1和图2所示。图1(b)中我们对真实图像和生成图像做了随机打乱,在本文的最后会公布哪一张是真实图像。图2对比了OASIS,ControlNet和我们方法的生成结果,我们方法的生成质量明显高于另外两种方法。
图1:Cityscapes上的实验结果
图2:ADE20K上的实验结果
2 先验知识与观察
2.1 先验知识
给定一张语义图
和
代表语义图的高和宽, 语义图的每个像素代表语义标签。Semantic Image Synthesis (SIS) 任务目标是设计一个函数, 输入是语义图, 输出是符合该语义图条件的 RGB图像
。
现有的State-Of-The-Art的方法ControlNet, 在训练过程中, 目标是从一个
时间步的加噪的图像
还原出原始图像
。在时间步
时刻, 去噪模型
可以表示为:
其中
是图像经过VQGAN编码后得到的结果,
代表时间步 t 的累积缩放乘积。模型
以
等条件作为输入, 预测
, 形式化表示为
, 这里
代表对输入的文字的编码,
代表语义图。在ControlNet模型中,一个不可训练的分支使用Stable Diffusion预训练好的权重,用来处理
和
。同时, ControlNet复制Stable Diffusion的编码器部分用来处理
, 这两个分支通过零卷积层进行连接。ControlNet的损失函数定义为:
在推理过程中, ControlNet从标准正态分布采样出一个
, 然后从
到
执行反向去噪过程:
经过
步反向去噪过程后, 我们能得到
, 经过一个VQGAN解码器后就可以得到图像
。
2.2 ControlNet实验观察
简单地通过微调ControlNet会出现一些质量不好的结果, 比如会出现一些奇怪的子结构, 和语义图不够符合等。为了调研为什么会出现这种现象,本文在ADE20K上做了相应的分析实验,如图三所示。图三中的FID表示了生成图像和ADE20K真实图像之间的差别, 棕色虚线代表ControlNet直接从标准正态分布
采样然后经过
步反向去噪过程的结果。黑色的折线代表从
采样然后经过
步反向去噪过程的结果, 其中
定义为:
我们可以看出,
当
时, 从
进行
步的反向去噪生成的图像, 要比从
进行
步的反向去噪生成的图像的FID有显著地降低。
这个分析实验揭示出了之前
很接近
的假设是不可靠的。因此引入"噪声先验"对于提升以Diffusion为基础的方法在SIS任务上的性能有着重要的意义。
图3:ADE20K上的分析实验结果
3 方法
本文的方法分为两个部分:第一部分是噪声先验的准备,这一部分首先计算相应训练集图像经过VQGAN编码得到的特征图的均值和方差来构建类型噪声先验和空间噪声先验;第二部分是利用我们刚才得到的噪声先验进行推理,得到高质量的生成图像。
图4:SCP-Diff方法概览
3.1 空间噪声先验和类别噪声先验
给定数据集中的N张latent images和他们对应的语义图
, 我们的目标从中得到噪声先验
, 使得其和训练过程中得到的噪声分布一致, 从而减小推理过程中的误差。
3.1.1 空间噪声先验
我们假定每一个
对最后学习到的训练噪声都有相等的影响,我们定义空间噪声先验:
其中
表示Hadamard乘积。为了简化问题, 我们不对空间tokens之间的相关关系进行建模, 而是将每个位置的spatial tokens当作独立的边际分布。在推理过程中。我们获取从
时刻开始去噪的噪声可以从下面分布中采样:
我们从该分布中采样的噪声经过步反向去噪过程后,经过一个VQGAN解码器即可得到高质量图像。
对于空间先验的作用,本文进行了一个案例研究,如图5所示。从图中分析可知,使用空间先验的模型在构建场景布局时表现出更广泛的感受野,而使用普通先验的模型则迅速将注意力集中在狭窄的局部区域。这种差异揭示了为什么使用空间先验的模型能够生成完整的场景,并且减少了奇怪的子结构,而使用标准正态分布的模型的输出则更像是根据相似形状的模板进行裁剪和粘贴对象。
图5:Spatial Prior的Case Study
3.1.2 类别噪声先验
尽管空间先验的方法在全局关注整个场景方面取得了成功,但在
融入类别信息方面仍显不足
。比如上图2中,会在天空中生成不符合语义类别标签的建筑物。本文认为这是空间噪声先验和ControlNet的控制分支有一定程度的不兼容导致的(因为空间噪声先验融合了不同类型模式的先验)。这种不匹配会沿着去噪轨迹累积,使得去噪过程进一步地偏离预定轨迹。
因此, 我们引入了基于类别的噪声先验。首先, 我们通过最近邻下采样语义图
到
。接下来, 对于 N 张reference images, 我们为其
个类别中的每一类
各自创建了一个独立的集合
, 每个集合中包含维度为
的tokens。接下来, 我们为每一类计算其tokens的均值和方差, 得到:
的定义和上面的
是一样的。
为了证明类别噪声先验的作用,本文进行了一个案例研究,如图6所示。我们发现从类别噪声先验开始反向去噪过程可以在图像中物体形成阶段增强对语义标签的理解能力,比如图6(b)中图像生成中我们使用“Tree”类别来query score map,加入类别噪声先验的方法会将更多的注意力放到“Tree”真正应该在的区域,而不会像ControlNet一样分散。
图6:Categorial Prior的Case Study
3.2 联合先验
为了融合空间噪声先验和类别噪声先验的优点, 我们提出了
联合先验(Joint Prior)。
联合先验的计算过程可以表示为, 对于 N 张reference图像, 我们用不同的几何
来存储在特定位置特定类别的先验信息, 具体的, 对于
, 我们可以得到:
当给定