论文地址:https://arxiv.org/abs/1905.01164
代码地址:http://webee.technion.ac.il/people/tomermic/SinGAN/SinGAN.htm
摘要
提出了 SinGAN,这是一个可以从单张自然图像学习的非条件性生成式模型。模型可以捕捉给定图像中各个小块内的内在分布,接着就能够生成带有和给定图像中的视觉内容相同的高质量且多样的新图像。SinGAN的结构是多个全卷积GANs组成的金字塔,这些全卷积GANs都负责学习图像中的某个小块中的数据分布,不同的GANs学习的小块的大小不同。这种设计可以让它生成具有任意大小和比例的新图像,这些新图像在具有给定的训练图像的全局结构和细节纹理的同时,还可以有很高的可变性。与此前的从单张图像学习GAN的研究不同的是,作者们的这个方法不仅仅可以学习图像中的纹理,而且是一个非条件性模型(也就是说它是从噪声生成图像的)。作者们做实验让人分辨原始图像和生成的图像,结果表明很难区分两者。作者们也在多种图像操控任务中展示了SinGAN的作用。
1. 介绍
生成式对抗网络(GANs)[19]在可视化数据的高维分布建模方面取得了巨大的飞跃。特别是,在特定类数据集(例如,面部[33],卧室[47])上进行训练时,无条件GANs在生成真实、高质量的样本方面表现出了显著的成功。但是,捕获多种不同的类别组成的数据集的分布(例如,(ImageNet[12])仍然被认为是一个主要的挑战,通常需要根据另一个输入信号对生成过程做限制(条件式生成)[6]或为特定的任务训练模型(例如,超分辨率[30],inpainting[41],重定向[45])。
在这里,我们将GANs的使用带入了一个新的领域——从单一的自然图像中进行无条件生成学习。
具体来说,我们证明了单个自然图像中patch(小块、补丁)的内部统计信息通常包含了足够的信息,可以用来学习一个强大的生成模型。我们新的单一图像生成模型SinGAN允许我们处理包含复杂结构和纹理的一般自然图像,而不需要依赖于来自同一类别的图像的数据库。这是通过一个由全卷积的轻量级GANs组成的金字塔来实现的,每个GANs负责捕获不同规模的patch分布。一旦经过训练,SinGAN可以生成各种高质量的图像样本(任意维度),这些样本在语义上与训练图像相似,但包含新的对象配置和结构(图1)。
图1:从单个训练图像中学习的图像生成。提出了一种基于单一自然图像的无条件生成模型我们的模型使用一种专门的多尺度对抗训练方案,在多个尺度上学习图像中的小块的数据分布;然后,它可以用来生成新的逼真的图像样本,在创建新的对象配置和结构时,保持原始的小块分布。
对单个自然图像中的patch内部分布进行建模长期以来一直被认为是许多计算机视觉任务的重要前提[64]。经典的例子包括去噪[65],去模糊[39],超分辨率[18],去雾[2,15],图像编辑[37,21,9,11,50]。在这方面最相关的工作是[48],其中定义了一个双向的patch相似性度量,并对其进行了优化,以保证处理后的图像patch与原始图像的patch是相同的。在这些工作的激励下,在这里,我们展示了如何在一个简单的统一学习框架中使用SinGAN来解决各种图像处理任务,包括从单个图像到图像的绘制、编辑、协调、超分辨率和动画。在这些情况下,我们的模型产生了高质量的结果,保持了训练图像的内部patch统计(见图2和我们的项目网页)。所有的任务都是在相同的生成网络中完成的,没有任何额外的信息或原始训练图像之外的进一步训练。
图2:图像操控。SinGAN 可以用来执行多种图像操控任务,包括:把一张剪贴画转换成具有真实感的照片,编辑、重新排列图像中的物体,让添加到图像中的物体变得协调一致,图像超分辨率,或者从单张输入生成动画。在所有这些例子中,模型都只观察过第一横行的训练图像,所有这些应用也都是以同样的方式训练的,没有额外的模型架构修改或者精细调节。
1.1 相关工作
单图像生成模型 最近的一些研究工作提出将深度模型“过拟合”到单个训练样例中1[51,60,46,7,1]。然而,这些方法是为特定的任务而设计的(例如,超分辨率[46],纹理扩展[60])。Shocher等人[44,45]首先为单个自然图像引入了基于内部GAN的模型,并在重定向的背景下进行了说明。然而,它们的生成取决于输入图像(即,将图像映射到图像),而不是用来绘制随机样本。相比之下,我们的框架是纯生成式的(即将噪声映射到图像样本),因此适合许多不同的图像处理任务。无条件的单图像GANs仅在纹理生成的环境中被探索过[3,27,31]。当对非纹理图像进行训练时,这些模型不会生成均值样本(图3)。另一方面,我们的方法不局限于纹理,可以处理一般的自然图像(如图1)。
图3:SinGAN对比单个图像纹理生成。用于纹理生成的单一图像模型[3,16]并不是为了处理自然图像而设计的。我们的模型可以生成包含复杂纹理和非重复全局结构的真实图像样本。
生成式图像编辑模型 在许多不同的图像处理任务中,最近的基于gan的方法已经证明了对抗性学习的力量[61、10、62、8、53、56、42、53]。例如交互式图像编辑[61,10]、sketch2image[8,43],以及其他图像到图像的翻译任务[62,52,54]。然而,所有这些方法都是在类特定的数据集上训练的,而且正如上文所说,它们通常需要有另一个输入信号作为生成条件。我们不感兴趣的是捕获同一类图像之间的共同特征,而是考虑不同的训练数据来源——单个自然图像的多个尺度上的所有重叠补丁。我们证明了一个强大的生成模型可以从这些数据中学习,并可用于许多图像处理任务。
图4:SinGAN的多尺度管道。我们的模型由许多GANs组成一个金字塔,其中训练和推理都是以一种由粗到精的方式完成的。在每个尺度上,Gn学习生成图像样本,其中所有的重叠patch用判别器Dn无法从下采样训练图像Xn中的patch中识别出;当我们沿着金字塔向上移动时,有效的patch大小会减小(在原始图像上用黄色标记以作说明)。Gn的输入是随机噪声图像z n,和生成的图像从之前的规模˜Xn, 向上采样到当前分辨率(除了纯生成的最粗级别)。第n级的生成过程涉及所有生成器{G n…和所有的噪声映射{ZN,…,Zn}到这个层次。详见第2节。
图5:单尺度的生成。在每个尺度n,图像从以前的规模,˜Xn+1,上采样并添加到输入噪声映射,z n。结果送入卷积层的输出是一个残差图像添加回(˜Xn+1)↑r。这是Gn输出的 ˜xn。
2. 方法
我们的目标是学习一个无条件生成模型,它可以捕获单个训练图像x的内部统计信息。这个任务在概念上与传统的GAN设定类似,只是这里的训练样本是单个图像的patch,而不是来自数据库的整个图像样本。
我们选择不局限于纹理生成,要能够处理更一般的自然图像。这需要在许多不同的尺度上获取复杂图像结构的统计信息。例如,我们希望捕获全局属性,例如图像中大型对象的排列和形状(例如顶部的天空,底部的地面),以及精细的细节和纹理信息。为了实现这一目标,我们生成框架如图4所示,由层次性的patch -GANs (马尔科夫判别器)组成[31,26],每个patch -GANs负责捕捉不同x尺度的patch分布。GANs的接受域小,容量有限,无法记住单个图像。而类似的多尺度体系结构已经在传统的GAN设定环境中得到了探索(例如[28,52,29,52,13,24]),我们是第一个从单一的图像探索它的内部学习。
2.1 多尺度结构
我们的模型由一个生成器金字塔组成,
,针对
的图像金字塔进行训练,其中
是一个因子
的x的下采样版本,对于某个r > 1。每个生成器Gn负责生成真实的图像样本w.r.t,即对应图像
中的patch分布。这是通过逆向训练实现的,在这种训练中,Gn学会欺骗一个相关的识别器Dn,该识别器试图将生成的样本中的patch与
中的patch区分开来。
图像样本的生成从最粗的尺度开始,依次通过所有生成器,直到最细的尺度,在每个尺度注入噪声。所有的生成器和判别器都有相同的接收域,因此在生成过程中捕获的结构尺寸都在减小。在粗尺度上,这一代是纯生成,即Gn映射空间高斯白噪声
到图像样本˜xN
这一层的有效接受域通常为图像高度的一半,因此
生成图像的总体布局和对象的全局结构。每个更小尺度上的生成器Gn (n < n)都添加了以前的尺度没有生成的细节。因此,除了空间噪声zn外,每个生成器Gn还接受较粗尺度图像的上采样版本,即
所有的生成器都具有相似的架构,如图5所示。具体来说,噪音Zn是添加到图像(˜x n +1)↑r,被送入一个卷积序列层。这确保了GAN不会忽略噪声,就像随机条件规划中经常发生的那样[62,36,63]。卷积层的作用是生成的遗漏的细节(˜x n + 1)↑r(残差学习[22,57])。即Gn执行操作
其中ψn是一个有着5个Conv(3×3)-BatchNorm-LeakyReLU[25]卷积块。我们在最粗糙的尺度上从每个块32个内核开始,然后每4个尺度增加2倍。因为生成器是全卷积的,所以我们可以在测试时生成任意大小和宽高比的图像(通过改变噪声图的尺寸)。
2.2 训练
我们按顺序训练我们的多尺度体系结构,从最粗糙的尺度到最精细的尺度。一旦每个GAN被训练,它就会被固定下来。我们对第n个GAN的训练损失包括一个对抗性公式和一个重构公式,
对抗的损失Ladv惩罚patch之间的距离分布的xn和patch的分布生成样本˜x n。重构损失Lrec保证了一组特定的噪声映射的存在,这些噪声映射可以产生
,这是图像处理的一个重要特征(第4节)。
对抗损失
每个生成器Gn都与一个马尔可夫链判别器Dn耦合,该判别器将其输入的每个重叠的patch分类为真或假[31,26]。
我们使用WGAN-GP 损失[20]来增加训练的稳定性,其中最终的判别分数是patch判别映射的平均值。相对于纹理的单图像GANs(例如,[31,27,3]),在这里,我们定义整个图像的损失,而不是随机剪裁(批量大小为1),这允许网络学习边界条件(见补充资料),这是我们设定的一个重要特性。Dn的架构和包含Gn 在内的网络ψn相同,所以它的patch大小(网络的接受域)是11×11。
重构的损失
我们要确保存在一组特定的输入噪声映射,生成原始图像x。我们具体选择
其中Z*是一些固定的噪声映射(绘制一次,在训练时保持固定)。当使用这些噪声图时,用
表示在第n个尺度上生成的图像。对于n < N时,
对于n = N,我们使用
。
重建图像
在训练中还有另一个角色,就是确定噪声Zn的标准差
在每个规模。具体来说,我们把
当成) 在(
+1)↑r和
比例之间的均方误差(RMSE,表示在该尺度下需要添加的细节量。
3.结果
我们对我们的方法进行了定性和定量的测试,包括城市和自然风景,以及艺术和纹理图像。我们使用的图像取自Berkeley Segmentation 数据集(BSD)[35]、Places[59]和Web。我们总是在最粗糙的刻度处设置最小尺寸为25px,并选择刻度的数量N s.t,比例因子r尽可能接近4/3。对于所有的结果,(除非另有说明),我们将训练图像调整为最大尺寸250px。
我们生成的随机图像样本的定性示例如图1、图6所示,补充资料中包含了更多的示例。对于每个例子,我们都展示了一些随机样本,它们的宽高比与原始图像相同,并且在每个轴上都有缩小和扩大的尺寸。可以看出,在所有这些情况下,生成的样本描述了新的真实的对象结构和配置,同时保留了训练图像的视觉内容。我们的模型成功地保存了对象的全局结构,例如山脉(图1)、气球或金字塔(图6),以及精细的纹理信息。由于网络的接受域有限(小于整个图像),它可以生成训练图像中不存在的新patches组合。此外,我们注意到,在许多情况下反射和阴影是实际合成,可以在图6和图1(图8的第一个样例)看到。注意,SinGAN的架构是与分辨率无关,因此可以用于高分辨率的图像,如图7中所示(见补充资料中4Mpix结果)。在这里,所有尺度的结构都很好地生成了从天空、云和山脉的整体布局,到雪的精细纹理。
图6:随机图像样本。通过对单个图像进行训练,可以生成描述新结构和目标配置的图像样本的逼真的随机图像,同时保留训练图像的patch分布。由于我们的模型是全卷积的,因此生成的图像可能具有任意大小和纵横比。请注意,我们的目标不是图像重定向--我们的图像样本是随机的和优化的,以维护patch分布,而不是保留突出的目标。更多结果和图像重定向方法的定性比较请参见补充资料.
图7:高分辨率图像生成。我们的模型生成的随机样本,训练在243×1024的图像上(右上角);新的全局结构以及精细的细节被真实地生成。参见补充资料中的4Mpix示例
测试中尺度数量的影响
我们的多尺度体系结构允许通过选择在测试时开始生成的尺度来控制样本之间的变化量。为了从比例n开始,我们修正了噪声映射到这个比例为
只对
做随机描绘。其效果如图8所示。
可以看出,在最粗糙的尺度上开始生成(n = N),全局结构有可能会发生较大变化。在某些情况下,一个大的突出的物体,如斑马图像的例子中,这可能导致生成不真实的样本。然而,从更细的尺度开始生成,就可以保持全局结构不变,而只改变更细的图像特征(例如斑马的条纹)。参见补充资料获得更多的例子。
图8:从不同的尺度生成(在推理时)。我们展示了从给定的n级开始分层生成的效果。对于我们的完整生成方案(n = N),最粗糙级的输入是随机噪声。为了生成更小比例的n,我们插入向下采样的原始图像Xn作为该比例的输入。这使得我们可以控制生成结构的规模,例如,我们可以保持斑马的形状和姿势,只有从n = n−1开始生成才能改变其条纹纹理。
训练中尺度数量的影响
图9显示了使用较少的尺度尺度数量的训练效果。用少量的尺度,在最粗糙的水平上有效的接受域更小,只允许捕获精细的纹理。随着尺度数量的增加,出现了更大的支撑结构,全局对象的排列得到了更好的保留。
图9:使用不同数量的规模进行训练的效果。SinGAN架构中的规模数量对结果有很大的影响。只有少量比例的模型才能捕获纹理。随着规模数量的增加,SinGAN成功地捕捉到了更大的结构以及场景中物体的整体布局。
3.1 定量评价
为了量化生成图像的真实性以及它们如何捕获训练图像的内部统计数据,我们使用了两个指标:(i) Amazon Mechanical Turk (AMT,亚马逊众包)“真实/虚假”用户研究,(ii)Frechet Inception距离[23]的新单图像版本。
AMT感知研究
我们遵循[26,58]的方案,在两种情况下进行感知实验。
(i)配对(真与假):研究人员向参与者展示了50个实验序列,每个实验中,一张假图像(由SinGAN生成)与它的真实训练图像进行1秒钟的对比。工作人员被要求挑选出假照片。
(ii)非配对(真或假):工作人员看到一张图片1秒钟,然后被问及这是否是假的。总共有50张真实的图像和50张不相关的假图像被随机分配给每个参与者。
我们对两种类型的生成过程重复了这两个过程:从最粗糙的(N)尺度开始生成,从N -1尺度开始生成(如图8所示)。为了量化生成图像的多样性,对于每个训练示例,我们计算每个像素超过100个生成图像的强度值的标准差(std),在所有像素上取平均值,然后根据训练图像的强度值的std进行标准化。真实的图片是从“places”数据库[59]中随机选取的,来自山脉、丘陵、沙漠和天空的子类别。在这四个测试中,我们有50个不同的参与者。在所有测试中,前10个测试都是包含反馈的教程。结果见表1。
表1:“真/假”AMT测试。我们报告了两个生成过程的混淆率:从最粗糙尺度N开始(生成具有大量多样性的样本),从第二个最粗糙尺度N - 1开始(保留原始图像的全局结构)。在每种情况下,我们都进行了配对研究(真-vs。-假图像对显示),和一个未配对的(无论是假或真图像显示)。方差由bootstrap[14]估计。
正如所预料的那样,在未配对的情况下,混淆的比例总是更大,因此没有可比性。此外,很明显,混淆率随着生成图像的多样性而降低。然而,即使改变了大型结构,我们生成的图像也很难与真实图像区分开来(50%的分数意味着完全混淆了真实图像和虚假图像)。完整的测试图像包含在补充资料中。
单幅图像FréchetInceptionDistance
接下来,我们将量化SinGAN在多大程度上捕获了x的内部统计信息。GAN评价的一个常用指标是Frechet Inception Distance (FID)[23],它测量生成图像的深度特征分布与真实图像的分布之间的偏差。然而,在我们的设置中,我们只有一个真实的图像,并且对它的内部patch统计非常感兴趣。因此,我们提出了单图像FID (SIFID)度量。而不是使用激活向量
在Inception网络[49]的最后一个池化层(每个图像一个向量)之后,我们在第二个池化层(图中每个位置一个向量)之前使用卷积层输出的深层特征的内部分布。我们的SIFID是真实图像和生成的样本中这些特征的统计数据之间的FID。
表2:单图像FID(SIFID)。我们将FID指标应用于单个图像,并报告50幅图像的平均分,对于完整的生成(第一行),以及从第二个最粗糙尺度(第二行)开始。与AMT结果的相关性表明,SIFID与人类的排名高度一致。
从表2中可以看出,规模N - 1生成的SIFID平均值低于规模N 生成的SIFID平均值,这与用户研究结果一致。我们还报告了SIFID分数和假图像的混淆率之间的相关性。请注意,这两者之间存在显著的(反)相关性,这意味着一个小的SIFID通常可以很好地指示出较大的混淆率。成对测试的相关性更强,因为SIFID是成对的措施(它作用于对Xn,˜Xn)。
4. 应用
我们将探讨SinGAN在许多图像处理任务中的应用。为此,我们在训练后使用我们的模型,不进行架构更改或进一步调优,并对所有应用采用相同的方法。该思想是利用这样一个事实,即在推理时,SinGAN只能生成与训练图像具有相同patch分布的图像。因此,可以通过在n < N的某个尺度将图像(可能是向下采样的版本)注入到生成金字塔中,并通过生成器将其前馈传输,从而使其patch分布与训练图像的patch分布匹配,从而进行操作。不同的注入规模导致不同的效果。我们考虑以下应用(更多结果和注入规模效应见补充资料)。
超分辨率
将输入图像的分辨率提高一个因子s。我们训练我们的模型在低分辨率(LR)图像,重建低损失权重α= 100和金字塔规模因子
k∈N。
由于小型结构往往在自然场景[18]的规模上反复出现,在测试时,我们通过一个r因子对LR图像进行上采样,并将其(连同噪声)注入最后一个生成器g0。我们重复k次以获得最终的高分辨率输出。示例结果如图10所示。可以看出,我们重建的视觉性能超过了最先进的内部方法[51,46],外部方法的目的是PSNR最大化[32]。
图10:超分辨率。当SinGAN被训练在一个低分辨率的图像上时,我们能够超级分辨。这是通过迭代地对图像进行采样并将其输入到SinGAN的最精细的比例生成器来实现的。可以看出,SinGAN的图像质量优于SOTA内标法ZSSR[46]和DIP[51]。它也比EDSR[32]好,可以与SRGAN[30]相比,后者是在大型数据集上训练的外部方法。括号中显示了相应的PSNR和NIQE[40]。
有趣的是,它可以与外部训练的SR-GAN方法[30]相媲美,尽管它只暴露在一张图像中。在[4]之后,我们在BSD100数据集[35]上比较表3中5种方法的失真程度(RMSE)和感知质量(NIQE[40])是两个根本冲突的需求[5]。可以看出,SinGAN在感知品质上非常优秀;其NIQE分数仅略低于SRGAN,其RMSE稍好一些。
表3:超分辨率评估。在[5]之后,我们在BSD100[35]上报告了失真(RMSE)和感知性能(NIQE[40],越低越好)。可以看出,gan的性能与SRGAN[30]类似。
图画-图像(Paint-to-Image)
将剪贴画转换成逼真的图像。这是通过向下采样剪贴画图像并将其输入一个粗尺度(例如N−1或N−2)来实现的。从图2和图11可以看出,我们保留了画面的整体结构,真实地生成了与原图匹配的纹理和高频信息。我们的方法在视觉性能上优于风格迁移方法[38,17](图11)。
图11:Paint-to-Image。我们在目标图像上训练SinGAN,并在测试时将一个向下采样的油漆注入到一个粗糙的水平。我们生成的图像保留了剪贴画的布局和一般结构,同时生成与训练图像匹配的真实纹理和精细细节。著名的风格迁移方法[17,38]在此任务中失败。
协调(Harmonization)
把粘贴的对象与背景图像融为一体。我们在背景图像上训练SinGAN,并在测试时注入原始粘贴的复合材料的下采样版本。在这里,我们将生成的图像与原始背景相结合。从图2和图13可以看出,我们的模型对粘贴对象的纹理进行了裁剪以匹配背景,并且经常比[34]更好地保留了对象的结构。缩放2、3、4通常会在保持对象结构和转移背景纹理之间取得良好的平衡。
图13:协调。我们的模型能够保持粘贴对象的结构,同时调整其外观和纹理。专用的协调方法[34]过度混合对象与背景。
编辑(Editing)
把图像中一个区域的内容复制粘贴到另一个区域后,仍然保持真实的观感。这里,我们再次将复合材料的下采样版本注入到粗糙规模之一。然后我们将SinGAN在编辑区域的输出与原始图像结合起来。如图2和图12所示,SinGAN重新生成了精细的纹理,并无缝地缝合了粘贴的部分,比Photoshop的Content-Aware-Move(内容感知剪切)效果更好。
图12:编辑。我们从原始图像(a)中复制并粘贴一些补丁,然后将编辑后的图像(b)的下采样版本输入到我们的模型的中间层(在(a)上进行预训练)。在生成的图像(d)中,这些局部编辑被转换成连贯的、逼真的结构。(c)与Photoshop的contentaware move比较。
单图像动画(SingleImage Animation)创建一个简短的视频剪辑与现实物体的运动,从一个单一的输入图像。自然图像往往包含重复,这揭示了不同的“快照”在同一动态对象[55]的时间(例如,一群鸟的图像揭示了一个鸟的所有翼姿态)。使用SinGAN,我们可以沿着图像中物体的所有表象的表面前进,从而从一个单一的图像合成运动。我们发现,对于许多类型的图像,一个现实的效果是通过z空间中的随机漫步实现的,从z rec开始的第一帧在所有的生成尺度(见补充资料视频)。
5. 结论
我们介绍了一个新的非条件生成方案SinGAN,它是从一个单一的自然图像中学习来的。我们展示了它不仅限于纹理的学习能力,并为自然复杂的图像生成多样的真实样本。与外部训练的生成方法相比,内部学习在语义多样性方面存在固有的局限性。例如,如果训练图像包含一条狗,我们的模型将不会生成不同犬种的样本。不过,我们的实验证明,SinGAN可以为广泛的图像处理任务提供一个非常强大的工具。