这篇文章提出了一种可以从单个自然图像中学习的无条件生成模型——SinGAN。文中模型经过训练后,可以捕获图像内部的块分布信息,生成具有与该图像相同的可视内容的高质量、多样化的样本。

SinGAN包含一个金字塔结构的完全卷积GAN,每个GAN都负责学习图像上不同比例的块分布。因此可以生成具有显著可变性的任意大小和纵横比的新样本,同时保持训练图像的全局结构和精细纹理。与以前的单图像GAN方案相比,文中方法不限于纹理图像,并且不是有条件的(即,它从噪声中生成样本)。用户研究证实,生成的样本通常被混淆为真实图像。文中说明了SinGAN在图像处理任务中的广泛用途。

1 Instruction

生成性对抗网(GANs)在对视觉数据的高维分布的建模方面取得了激动人心的飞跃。特别是,在用于类别特定的数据集(如人脸,卧室)进行训练时,无条件GANs在生成真实的、高质量的样本方面表现出了显著的成功。然而,捕获具有多个对象类的高度不同的数据集(如,ImageNet)的分布仍然是一个重要的挑战,并且经常需要根据另一输入信号来调节生成或为特定任务训练模型(如,超分辨率,图像修复,重定目标)。

该文将Gans的使用带入一个新的领域——从单一的自然图像中学习无条件的生成。具体地说,单个自然图像通常具有足够的内部块统计信息通常用于学习强大的生成模型。SinGAN能够处理包含复杂结构和纹理的一般自然图像,而不需要依赖于来自同一类的图像数据库。这是通过一个金字塔结构的全卷积轻量级GANs实现的,每个GAN负责捕获不同尺度上的块分布。一旦训练,SinGAN可以产生不同的高质量图像样本(任意尺寸),这些样本的语义类似于训练图像,但包含新的对象配置和结构(如图1)。

该文展示了如何在一个简单的统一学习框架中使用SinGAN来解决各种图像处理任务,包括图像绘制、编辑、融合、超分辨率和图像动画。

单幅图像生成模型 最近的几项工作提出了在单个样本上训练一个“过拟合”的深度模型 。然而,这些方法是为特定任务设计的(例如,超分辨率,纹理扩展)。Shocher等提出了首个为单个自然图像引入的内部GAN基本模型。然而,它们的生成是以输入图像(即,将图像映射到图像)为条件的,并且不用于绘制随机样本。相反,SinGAN框架是纯生成的(即将噪声映射到图像样本),因此适合许多不同的图像处理任务。 目前无条件单幅图像GAN模型仅对有纹理的图像进行研究,当在没有纹理的图像上训练这些模型时,不会生成有意义的样本,而SinGAN不限于纹理,可以处理一般的自然图像(如图1)。

用于图像处理的生成模型 最近基于GAN的方法已经在许多不同的图像处理任务中证明了对抗性学习的力量。例如交互式图像编辑,Sketch2image,以及其他图像到图像翻译任务。然而,所有这些方法都是在特定类别的数据集上训练的,并且通常以另一个输入信号为条件进行生成。而文中模型对捕获同一类图像之间的共同特征不感兴趣,而是考虑不同的训练数据源——单个自然图像的多个尺度上的所有重叠图像块。原作表明,可以从这些数据中学习到一个强大的生成模型,并可以在许多图像处理任务中使用。

2 Method

SinGAN的目标是学习能够捕获单个训练图像$x$ 的内部统计信息的无条件生成模型。此任务在概念上类似于传统的GAN设置,不同之处在于这里的训练样本是单个图像的补丁,而不是来自数据库的整个图像样本。

模型选择处理更一般的自然图像,而不仅仅是纹理图像。这需要在许多不同的尺度上捕获复杂图像结构的统计信息。例如,我们希望捕获全局属性,例如图像中大型对象的排列和形状(例如,顶部的天空,底部的地面),以及精细的细节和纹理信息。为了实现这一点,我们的生成框架(如图4)由patch-GANs(马尔可夫鉴别器)组成,其中每个层负责捕获不同比例的$x$上的块分布。GAN具有小的接受野和有限的容量,阻止它们记忆单个图像。虽然在传统的GAN环境中已经探索过类似的多尺度架构,但SinGAN是第一个从单个图像进行内部学习的探索。

image-20191104155442695

2.1 Multi-scale architecture

SinGAN模型包括金字塔结构的生成器 ${G_0, …, G_N}$ ,训练图像金字塔 $x:{x_0, …,x_N}$ ,其中 $x_n$ 是通过因子 $r_n$ 对$x$进行下采样的版本, $r>1$ 。每个生成器$G_n$负责产生逼真的图像样本$\tilde x_n$ ,与之相应的是对应图像$x_n$的块分布。这是通过对抗训练实现的,其中$G_n$学习欺骗相关联的鉴别器$D_n$,而鉴别器 $D_n$ 试图将生成样本中的图像块与$x_n$中的图像块区分开来。

图像样本的生成从最粗的尺度开始,然后顺序地通过所有生成器逐渐生成最好尺度图像,并且在每个尺度上注入噪声。所有的生成器和鉴别器都具有相同的感受野,因此随着生成过程的进行,可以捕获更细的尺寸结构。在最粗尺度下,是纯生成的过程,即$G_N$ 将空间高斯白噪声$z_N$映射到图像样本$\tilde x_N$ 。

\[\tilde x_N = G_N(z_N)\]

这一级别的有效感受野通常约是图像高度的1/2,因此$G_N$ 生成图像的总体布局和对象的全局结构。在更精细的比例($n < N$)下的每个生成器$G_n$ 添加是由先前的比例没有生成的细节。因此,除了空间噪声$z_n$ 之外,每个生成器$G_n$ 还接受来自较粗尺度的图像的上采样版本作为输入,如公式:

\[\tilde x_N = G_n(z_n, (\tilde x_{n+1})\uparrow^r), n < N\]

所有生成器具有相似结构,如图5所示。具体而言,具体地说, 噪声$z$加上图像$(\tilde x_{n+1})\uparrow^r$作为输入送给一系列卷积层。 这确保了GAN不会忽略噪声,就像在涉及随机性的条件方案中经常发生的那样。卷积层的作用是生成$(\tilde x_{n+1})\uparrow^r$(剩余学习)中缺少的细节,$G_n$ 的操作如下面的公式:

\[\tilde x_n = (\tilde x_{n+1})\uparrow ^ r + \psi_n (z_n + {\hat x_{n+1}}\uparrow^r)\]

image-20191104170545545

其中$\psi_n$ 是一个由Conv(3x3)-BatchNorm-LeakyRelu这样的形式的全卷积的5个卷积层组成的。一开始在最粗尺度使用32个卷积核,然后每4个尺度增加2倍.由于生成器是全卷积的,所以可以在测试阶段生成任意大小和纵横比的图片(通过改变噪声的维度)。

2.2 Training

最粗尺度到最细尺度依次训练多尺度网格。一旦每个GAN训好将锁定。第$nth$ GAN的训练损失包括一个对抗项$\mathcal L_{adv}$和一个重建项$\mathcal L_{rec}$。

\[\min \limits_{G_{n}} \max \limits_{D_{n}} \mathcal L_{adv}(G_n, D_n)+\alpha \mathcal L_{rec}(G_n)\]

对抗性损失$\mathcal L_{adv}$ 惩罚$x_n$ 中的块分布和生成样本$\tilde x_n$ 中的块分布之间的距离。重建损失$\mathcal L_{rec}$ 确保了一组特定噪声映射的存在,这些噪声映射可以产生$x_n$,这是图像处理的一个重要特征。

Adversarial loss 每个生成器$G_n$ 与马尔可夫鉴别器$D_n$ 耦合,该马尔可夫鉴别器$D_n$ 将其输入的每个重叠图像块分类为真或假。文中使用WGAN-GP损失,以增加训练的稳定性,其中最终的判别得分是图像块判别图上的平均值。与纹理的单图像GAN相反,文中定义整个图像上的损失,而不是随机crops(大小为1的一批)上的损失。这样设计使得网络能够学习边界条件。$D_n$的架构与$G_n$中的Net $\psi_n$ 相同。

Reconstruction loss 为了确保使模型存在能够生成原始图像$x$ 的一组特定的输入噪声映射,作者选择 ${z^{rec}_N, z^{rec} _{N-1},…,z^{rec}_0} = {z^* ,0,…,0}$ ,其中 $z^*$ 是一些固定的噪声映射,用 $\tilde x^{rec}_n$ 表示用这些噪声映射生成的第 $n$ 尺度的生成图像,对于$n < N$ 用公式:

\[\mathcal L_{rec} = \begin{Vmatrix} G_n(0, (\tilde x^{rec}_{n+1})\uparrow^r) -x_n\end{Vmatrix}^2\]

对于 $n = N$ ,

\[\mathcal L_{rec} = \begin{Vmatrix} G_N(z^*)-x_N \end{Vmatrix} ^2\]

重建图像$\tilde x_{n+1}^{rec}$ 在训练期间具有另一个角色,其任务是确定每个尺度中噪声$z_n$的标准差$\sigma_n$。具体地,取$\sigma_n$与$(\tilde x_{n+1}^{rec})\uparrow^r$和$x_n$之间的均方根误差(RMSE)成正比,这标示着需要在该比例下添加的细节量。

3.Results

作者在各种图像上对文中方法进行了定性和定量的测试,这些图像跨越了大量的场景,包括城市和自然风景,以及艺术和纹理图像。文中使用的图像取自伯克利分割数据库(BSD),网络等。将最粗刻度的最小尺寸设置为25px,并选尺度数 $N$ ,同时使得缩放因子 $r$ 尽可能接近于4/3。所有结果(除非另有提及)将训练图像的大小调整为最大尺寸250px。

image-20191105093743528

定性示例如图1、图6所示。每个示例都显示了一些随机样本,这些样本与原始图像具有相同的纵横比,并且在每个轴上具有减小和扩展的维度。可以看出,在所有这些情况下,生成的样本描绘了对象的新的真实结构和配置,同时保留了训练图像的视觉内容。SinGAN成功地保留了对象的全局结构,例如山脉(图1)、气球或金字塔(图6)以及精细的纹理信息。因为网络具有有限的感受野(小于整个图像),所以它可以生成训练图像中不存在的块的新组合。此外,可以观察到在许多情况下反射和阴影是真实合成的,如图6和图1中所示。请注意,SinGAN的架构与分辨率无关,因此可以用于高分辨率图像,如图7所示。这里也很好地生成了各种规模的结构,从天空、云朵和山脉的全球排列,到雪的精细纹理。

image-20191105094041627

测试时尺度的影响

多尺度架构允许通过选择测试时开始生成的尺度来控制样本之间的变化量。要从尺度$n$ 开始需要将达噪声映射固定为${z^{rec}_N,…,z^{rec} _{N+1}}$ ,并仅对${z_n, …,z_0}$ 使用随机绘制。其效果如图8所示。可以看出,在最粗的尺度($n = N$ )开始产生,导致全局结构中的大的可变性。在某些具有大型突出对象(如斑马图像)的情况下,这可能会导致不真实的采样。然而,从更精细的尺度开始生成,能够保持全局结构的完整性,同时只改变更精细的图像特征(例如斑马的条纹)。

image-20191105095845283

训练时尺度的影响

image-20191105100513466

图9显示了使用较少尺度的训练的效果。对于数量较少的鳞片,最粗略级别的有效感受野较小,只允许捕获精细的纹理。随着尺度数量的增加,更大支撑的结构出现,并且全局对象排列被更好地保存。

3.1 质量评估

为了量化我们生成的图像的真实性以及它们捕获训练图像的内部统计数据的程度,我们使用了两个指标:(i)Amazon Mechanical Turk(AMT)“真/假”用户研究,以及(ii)新的单图像版本的Fr‘echet Inception Distance(FID)。

AMT感知研究 在2个设置中进行知觉实验。(i)配对(真对假):向工人呈现一系列50次试验,其中每一次假图像(由SinGAN生成)相对于其真实培训图像呈现1秒。工人们被要求挑选假图像。(ii)未配对(真的或假的):向工人呈现一张1秒的图像,并询问它是否是假的。总共,50张真实图像和一组不相交的50张假图像以随机顺序呈现给每个工人。

针对两种类型的生成过程重复了这两种协议:从最粗尺度(N)开始生成,以及从尺度(N-1)开始生成(如图8所示)。这样,在两个不同的可变性水平中评估结果的真实性。为了量化生成的图像的多样性,对于每个训练示例,计算100个生成的图像上每个像素的强度值的标准差(STD),将其平均在所有像素上,并通过训练图像的强度值的标准差(STD)进行归一化。

真实的图像来自于山,山,沙漠,天空的子类别。在4个测试中,有50个不同的参与者。在所有的测试中,前10个测试都是一个包括反馈的教程。结果如表1所示。

image-20191105102015465

不出所料,在未配对的情况下,混淆比率始终较大,其中没有用于比较的参考。此外,很明显,混淆率随着生成图像的多样性而降低。然而,即使当大型结构发生变化时,生成的图像也很难与真实图像区分开来(50%的分数将意味着真实和虚假之间的完全混淆)。

单图FID 接下来,量化SinGAN捕获 $x$ 的内部统计数据的程度。GAN评估的一个常用指标是Fr‘echet Inception Distance(FID),它测量生成的图像的深层特征分布与真实图像的分布之间的偏差。然而,文章设置中只有一个真实的映像,并且对其内部补丁统计信息非常感兴趣。因此,我们提出了单图像FID(SIFID)度量。文中没有使用Inception Network中最后一个池层之后的激活矢量(每个图像一个矢量),而是在第二个池层之前的卷积层输出处使用深层特征的内部分布(地图中每个位置一个矢量)。最终SIFID是真实图像和生成的样本中这些特征的统计数据之间的FID。

image-20191105102602127

如表2所示,尺度N-1生成的平均SiFID低于从尺度N生成的平均SiFID,这与用户研究结果一致。文中还报告了SIFID分数与假图像的混淆率之间的相关性。请注意,两者之间存在显著(反)的相关性,这意味着小的SIFID通常是大混淆率的良好指示器。配对测试的相关性更强,因为SIFID是配对度量(它对 $x_n, \tilde x_n$ 进行操作)。

4. Applications

文中探索将SinGAN用于一些图像处理任务。为此,在没有架构更改或进一步调整的情况下,训练后使用模型,并对所有应用程序采用相同的方法。其思想是利用这样一个事实,即在推理时,SinGAN只能产生与训练图像具有相同块分布的图像。因此,可以通过以某一比例 n< N 将图像注入到生成金字塔中(可能的下采样版本)并通过生成器将其馈送以便将其块分布与训练图像的块分布相匹配来完成操纵。不同的注入尺度导致不同的效果。

超分辨率 按照一个因子s增加输入图像的分辨率。在低分辨率(LR)图像上训练模型,对于一些$k ∈ N$ ,重建损失权重 $\alpha = 100$ ,金字塔尺度因子 $r = \sqrt[k]{s}$ 。由于小结构倾向于在自然场景的尺度上重复出现,在测试时将LR图像上采样一个因子r,并将其(连同噪声)注入到最后的生成器 $G_0$ 。我们重复k次以获得最终的高分辨率输出。图10显示了一个示例结果。可以看出,文中重建的视觉质量超过了最先进的内部方法以及以PSNR最大化为目标的外部方法。

image-20191105104846768

图像绘制 将剪贴画转换为照片级真实感图像。这是通过对剪贴画图像进行降采样并将其馈入其中一个粗尺度(例如N-1或N-2)来实现的。如图2和图11所示,保留了绘画的全局结构,同时真实地生成了与原始图像匹配的纹理和高频信息。我们的方法在视觉质量方面优于样式转移方法(图11)。

image-20191105105140058

image-20191105105042546

融合 真实地将粘贴的对象与背景图像混合。在背景图像上训练SinGAN,并在测试时注入原始粘贴合成的下采样版本。将生成的图像与原始背景相结合。正如可以在图2和图13中看到的,文中模型定制了粘贴对象的纹理以匹配背景,并且经常更好地保留其结构。比例2,3,4通常会导致保持对象结构和转移背景纹理之间的良好平衡。

image-20191105105534439

编辑 生成无缝合成,其中图像区域已被复制并粘贴到其他位置。在这里再次将下采样版本的合成注入到其中一个粗尺度中。然后将SinGAN在编辑区域的输出与原始图像结合起来。如图2和图12所示,SinGAN重新生成精细的纹理并无缝地缝合粘贴的部分,产生比Photoshop的Content-Aware-Move更好的结果。

单图动画 从单个输入图像创建具有逼真对象运动的短视频剪辑。自然图像通常包含重复,这揭示了同一动态对象(例如,在同一动态对象的时间内)的不同“快照”。群鸟的图像显示了一只鸟的所有翅膀姿势)。使用SinGAN,我们可以沿着图像中对象的所有外观的流形移动,从而从单个图像合成运动。我们发现,对于许多类型的图像,通过在z空间中随机漫游,可以实现逼真的效果,从所有生成比例下第一帧的 $z^{rec}$ 开始。

5. Conclusion

SinGAN是一种从单个自然图像中学习的新的无条件生成方案。文中展示了它超越纹理和生成自然复杂图像的各种真实样本的能力。与外部训练的生成方法相比,内部学习在语义多样性方面固有地受到限制。例如,如果训练图像包含一只狗,模型将不会生成不同狗品种的样本。然而,正如我们的实验所证明的那样,SinGAN可以为广泛的图像处理任务提供非常强大的工具。

针对两种类型的生成过程:从最粗尺度(N)开始生成,以及从尺度N-1开始生成(如图8所示)。这样,我们在两个不同的可变性水平中评估结果的真实性。为了量化生成的图像的多样性,对于每个训练示例,我们计算100个生成的图像上每个像素的强度值的标准差(STD),将其平均在所有像素上,并通过训练图像的强度值的标准差(STD)进行归一化。