前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Improved Techniques for Training Single-Image GANs

Improved Techniques for Training Single-Image GANs

作者头像
狼啸风云
发布2023-10-07 15:21:41
1830
发布2023-10-07 15:21:41
举报
文章被收录于专栏:计算机视觉理论及其实现

摘要

 最近,人们对从单个图像而不是从大型数据集学习生成模型的潜力产生了兴趣。这项任务意义重大,因为它意味着生成模型可以用于无法收集大型数据集的领域。然而,训练一个能够仅从单个样本生成逼真图像的模型是一个难题。在这项工作中,我们进行了大量实验,以了解训练这些方法的挑战,并提出了一些最佳实践,我们发现这些实践使我们能够比以前的工作产生更好的结果。一个关键点是,与之前的单图像生成方法不同,我们以顺序的多阶段方式同时训练多个阶段,使我们能够用较少的阶段来学习提高图像分辨率的模型。与最近的最新基线相比,我们的模型训练速度快了六倍,参数更少,并且可以更好地捕捉图像的全局结构。

介绍

 最近,人们对从单个图像而不是从大型数据集学习生成模型的潜力产生了兴趣。这项任务意义重大,因为它意味着生成模型可以用于无法收集大型数据集的领域。然而,训练一个能够仅从单个样本生成逼真图像的模型是一个难题。在这项工作中,我们进行了大量实验,以了解训练这些方法的挑战,并提出了一些最佳实践,我们发现这些实践使我们能够比以前的工作产生更好的结果。一个关键点是,与之前的单图像生成方法不同,我们以顺序的多阶段方式同时训练多个阶段,使我们能够用较少的阶段来学习提高图像分辨率的模型。与最近的最新基线相比,我们的模型训练速度快了六倍,参数更少,并且可以更好地捕捉图像的全局结构。

 SinGAN以多阶段和多分辨率方法进行训练,其中训练在第一阶段以非常低的分辨率(例如25×25像素)开始。训练经过几个“阶段”,每个阶段都会向生成器添加更多的层,并提高图像分辨率。在每个阶段,所有先前训练的阶段(即生成器的较低层)都被冻结,并且只有新添加的层被训练。我们发现,如何准确处理多阶段和多分辨率训练至关重要。特别是,在给定的时间只训练一个阶段限制了不同阶段之间的交互,并且将图像而不是特征图从一个生成器阶段传播到下一个生成器步骤会对学习过程产生负面影响。相反,端到端训练所有阶段会导致单图像场景中的过度拟合,其中网络崩溃,只生成输入图像。我们对这种平衡进行了实验,并得出了一个有希望的折衷方案,即在降低学习率的情况下并行训练多个阶段,并得出结论,这改进了学习过程,从而在较少的训练时间内获得更逼真的图像。此外,我们展示了如何直接权衡图像质量和图像方差,其中并行训练更多阶段意味着以较小的方差为代价获得更高的全局图像一致性。

我们还对重新缩放参数的选择进行了实验,即我们如何决定在每个阶段以何种图像分辨率进行训练。我们观察到,当没有足够的小分辨率训练阶段时,生成的图像的质量,特别是整体图像布局的质量会迅速下降。我们的实验表明,分辨率较小的较低阶段对整体图像布局很重要,而分辨率较大的较高阶段对最终图像纹理和颜色很重要。我们发现,为了仍然生成具有正确纹理的图像,我们只需要相对较少的高分辨率图像训练阶段。

因此,我们在训练过程中对较小分辨率的图像给予了更高的权重,同时使用较少的阶段对高分辨率图像进行训练。最后,由于我们的模型并行训练了几个阶段,我们可以引入一个任务特定的调整阶段,该阶段可以在任何训练的模型上执行。对于一些任务,我们展示了如何在给定的特定图像上对训练后的模型进行微调,以进一步改进结果。这显示了只需500次额外训练迭代的好处,因此速度非常快(在我们的硬件上不到两分钟)。

将这些拟议的架构和训练修改相结合,使我们能够以更少的阶段生成逼真的图像,并显著减少总体训练时间(20-25分钟,而在最初的SinGAN工作中为120-150分钟)。总之,我们的主要贡献是:

1.我们以不同的学习率并行训练几个阶段,并且可以权衡生成图像的方差与它们与原始训练图像的一致性。

2.我们不在中间阶段生成图像,而是将特征从一个阶段直接传播到下一个阶段。

3.我们改进了多阶段训练的重新缩放方法,使我们能够在更少的阶段进行训练。

4.我们引入了一个最终调整阶段,该阶段可用于预先训练的模型,以获得特定类别和任务的最佳结果。

2、相关工作

已知学习单个图像的斑块的统计和分布可以提供强大的先验,因为单个图像内斑块的经验熵小于图像分布内斑块的体验熵[48]。通过使用该先验,许多任务,如修复、去噪、去模糊、重定目标和分割,可以仅用单个图像来解决。特别是,单个图像的图像超分辨率和编辑已被证明是成功的,大量工作专门集中在这项任务上。最近的工作还表明,通过自我监督和数据增强在单个图像上训练模型就足以学习强大的特征提取层。

在单个图像上训练GAN模型的方法仍然相对罕见,并且通常基于图像摘要的双向相似性度量[36]。一些方法不使用自然图像,而是仅在纹理图像上进行训练。目前,只有少数模型能够在单个“自然”图像上进行训练。其他新颖的方法针对的是仅使用两个图像作为训练数据的图像到图像翻译等应用。 与我们的方法最相关的工作是SinGAN,它是唯一一个在单个自然图像上训练后可以执行无条件图像生成的模型。SinGAN在不同图像分辨率的多个阶段上训练生成器和鉴别器,因为学习不同图像尺度上的图像块的统计信息是有用的。每个阶段的输出是用作下一阶段的输入的图像,并且在前一阶段保持冻结的同时单独训练每个阶段。

3、方法论

我们现在更详细地描述了我们的发现,从多阶段架构的训练开始,然后是我们在训练过程中发现的在不同阶段缩放学习率和图像分辨率的最佳实践。多阶段训练多尺度图像生成至关重要,然而,有多种方法可以实现这一点。SinGAN只训练其发电机的当前(最高)级,并冻结所有先前级的参数。ProGAN提出了一种渐进增长方案,该方案在所有权重未冻结的情况下增加级别,最近联合训练整个金字塔。

在这项工作中,我们研究了模型是否可以端到端地训练,而不是在中间阶段固定训练,即使是在单个图像任务中。然而,我们发现,训练所有阶段都会导致过度拟合(见图3),即生成器只生成原始训练图像,没有任何变化。我们开发了一种新的渐进式增长技术,可以同时训练多个阶段,但不是所有阶段,同时在较低阶段使用逐渐降低的学习率。由于我们为单个图像同时训练模型的几个阶段,我们将我们的模型称为“并发单个图像GAN”(ConSinGAN)。

训练ConSinGAN从粗分辨率开始进行多次迭代,学习从随机噪声向量z到低分辨率图像的映射(参见图1中的“生成器:阶段0”)。一旦阶段n的训练收敛,我们就通过添加三个额外的卷积层来增加生成器的大小。与SinGAN不同的是,每个阶段都会获得前一阶段的原始特征作为输入,并且前一层不会固定。我们将原始特征的残差连接[15]添加到新添加的卷积层的输出中(参见图1中的“生成器:阶段1”)。我们重复这个过程N次,直到达到我们想要的输出分辨率。我们在每个阶段向特征添加额外的噪声[19,47],以提高多样性。在我们的默认设置中,我们共同训练生成器的最后三个阶段(请参见图1中的“生成器:阶段N”)。虽然可以同时训练三个以上的阶段,但我们观察到这会迅速导致严重的过度适应(图3)。 我们使用与原始SinGAN相同的补丁鉴别器[19]架构和损失函数。这意味着,随着阶段数量的增加,与生成图像大小相关的感受场变得更小,这意味着鉴别器在较低分辨率下更关注全局布局,在较高分辨率下更专注于纹理。与SinGAN相比,我们没有在更高阶段增加鉴别器的容量,而是在每个阶段使用相同数量的参数。我们用前一阶段n-1的鉴别器在所有阶段的权重初始化给定阶段n的鉴别剂。在给定的阶段n,我们优化对抗性损失和重建损失的总和:

是WGAN-GP对抗性损失,而重建损失用于提高训练稳定性(对于我们所有的实验,

\alpha
\alpha

=10)。对于重建损失,生成器

G_n
G_n

获得原始图像(

x_N
x_N

)的下采样版本(

x_0
x_0

)作为输入,并且被训练为以阶段n的给定分辨率重建图像:

 鉴别器总是以相同的方式进行训练,即它获得生成的或真实的图像作为输入,并进行训练以最大化

。然而,根据最终任务的不同,我们的生成器的训练略有不同。

 任务规范生成器训练对于每个任务,我们使用原始图像

x_n
x_n

作为重建损失

。然而,对抗性损失的输入取决于任务。对于无条件图像生成,生成器的输入只是

的随机采样噪声向量。然而,我们发现,如果预先知道所需的任务,那么通过使用不同的输入格式进行训练可以获得更好的结果。例如,对于图像协调,我们可以使用原始图像进行训练,并应用增强变换作为输入。直觉是,用于图像协调的模型不需要学习如何从随机噪声中生成逼真的图像,而是应该学习如何协调不同的对象和颜色分布。为了模拟这项任务,我们在每次迭代时将增强技术的随机组合(如加性噪声和颜色变换)应用于原始图像xN。生成器获取增强图像作为输入,并需要将其转换回与原始分布相似的图像。

 学习率缩放每个阶段的所有学习率的空间很大,对最终图像质量有很大影响。在任何给定的阶段n,我们发现,不是用相同的学习率训练所有阶段

,而是在早期阶段

使用较低的学习率有助于减少过度适应。如果较低阶段的学习率太大(或者同时训练了太多阶段),模型生成器会迅速崩溃,只生成训练图像(图3)。因此,我们建议用一个因子

\delta
\delta

来衡量学习率

\eta
\eta

。这意味着,对于生成器

G_n
G_n

,阶段

n
n

以学习率

\delta^0_\eta
\delta^0_\eta

进行训练,阶段n−1以学习率

\delta^1_\eta
\delta^1_\eta

进行训练。阶段n−2以

\delta^2_\eta
\delta^2_\eta

进行训练等。在我们的实验中,我们发现设置

\delta=0.1
\delta=0.1

在图像清晰度和多样性之间有很好的折衷(见图3和图4)。

 改进的图像重缩放另一个关键的设计选择是使用什么样的多尺度金字塔。SinGAN最初建议对每个阶段

n
n

的图像

x
x

进行因子

r^{N-n}
r^{N-n}

的下采样,其中

r
r

是默认值为0.75的标量。因此,SinGAN通常在八到十个阶段进行训练,以获得250宽度或高度的分辨率。当图像被更积极地下采样时(例如,

r
r

=0.5),需要更少的阶段,但是生成的图像失去了它们的大部分全局一致性。我们观察到,当在低分辨率下没有足够的级(在较长的一侧大约少于60个像素)时,就会出现这种情况。当在高分辨率图像上进行训练时,全局布局已经“决定”,并且只有纹理信息是重要的,因为鉴别器的感受场总是11×11。为了实现特定的全局图像布局,我们需要一定数量的低分辨率阶段(通常至少三个),但我们不需要许多高分辨率阶段。我们将重新缩放调整为不是严格的几何(即

),而是保持低分辨率级的密度高于高分辨率级的浓度:

 例如,对于重新缩放标量r=0.55,我们得到了具有以下分辨率的六个阶段,并且我们观察到,与原始重新缩放方法(第一行)相比,我们的新重新缩放方法有更多具有较小分辨率的阶段(第二行):

25×34、38×50、57×75、84×112、126×167、188×250,

25×34、32×42、42×56、63×84、126×167、188×250。

为了总结我们的主要发现,我们在每个阶段生成特征图而不是图像,我们同时训练多个阶段,我们提出了一个改进的重新缩放金字塔,并提出了一种任务特定的训练变化。

4、结果

 我们详细评估了ConSinGAN在无条件图像生成和图像协调方面的作用。由于空间原因,我们关注这两个应用程序,但注意到ConSinGAN也可能有其他应用程序。我们在补充材料中显示了其他任务的示例,如图像重定目标、编辑和动画。

4.1、无条件图像生成

 由于我们的架构是完全卷积的,我们可以改变输入噪声向量的大小,以在测试时生成各种分辨率的图像。图2显示了我们的方法对一组具有挑战性的图像的结果的概述,这些图像需要生成全局结构以使图像看起来逼真。我们观察到,即使我们在测试时修改了图像分辨率,ConSinGAN也能够成功地捕捉这些全局结构。例如,在巨石阵的例子中,我们可以看到当图像宽度增加时如何添加“石头”,当图像高度增加时如何在渡槽图像中添加“层”。

消融

我们进一步研究了学习率标度和同时训练的阶段数量之间的相互作用(图3),并评估了学习率δ(第3节)的变化如何影响训练(图4)。如图3所示,对于大多数设置,δ=0.1的训练会导致不同的图像,随着同时训练的阶段数量的增加,多样性略有下降。当使用δ=0.5进行训练时,我们观察到即使仅同时训练两个阶段,图像多样性也会大幅下降。因此,同时训练的阶段数量和学习率缩放δ在生成图像的多样性和清晰度之间进行了权衡。 图4可视化了具有三个同时训练阶段的模型的生成图像中的方差如何随着δ的减小而增加。例如,当我们看左上角的例子(滨海湾金沙)时,我们观察到,对于δ=0.5,图像的整体布局保持不变,但在塔的外观等方面略有变化。然而,当δ=0.1时,塔的外观变化更大,有时甚至会在生成的图像中添加额外的塔。除非另有提及,否则用于用户研究的所有图示示例和所有图像都是由我们在δ=0.1的情况下同时训练三个阶段的模型生成的。

基线比较 我们将我们的模型与图5中的SinGAN模型进行了比较。对于SinGAN,我们显示了默认重新缩放方法(8-10个阶段)和我们的重新缩放方法的结果(5-6个阶段)。在第一个例子中,我们观察到SinGAN很难对生成的图像中的重复结构(人脸)进行建模。在第二个例子中,我们观察到全局结构的损失与训练的阶段数量无关。我们的多阶段训练有助于确保全球结构更加一致。 图6通过显示每个模型在使用新的或旧的重新缩放技术训练后生成的图像的详细比较,进一步突出了我们方法的优势。每列描绘了来自每个模型的三个随机采样的图像。无论训练阶段的数量如何,我们都可以看到重新缩放技术对两个模型的积极影响。此外,我们可以看到,我们的模型在这两种情况下都保持了更好的全球一致性。

定量评估

Fre´chet起始距离(FID)比较了一组生成图像和真实图像之间预先训练的网络激活的分布。单图像FID(SIFID)是FID对单图像域的自适应,并比较两个单独图像(生成的和真实的)之间网络激活的统计数据。在我们的实验中,我们发现SIFID在不同的图像中表现出非常高的方差(得分范围从1e−06到1e01),而没有明确区分哪个“更好”或“更差”。在这项工作中,我们主要关注定性分析和用户研究,以进行评估,但也报告SIFID进行比较。 我们在两个数据集上进行了定量评估。第一个数据集与SinGAN使用的数据集相同,由来自“地点”数据集几个类别的50张图像组成。然而,这些图像中的许多并没有呈现出全局布局或结构。因此,我们还构建了第二个数据集,从LSUN数据集的十类中的每一类中抽取五个随机样本。该数据集包含诸如“教堂”和“桥梁”之类的类,它们展示了更多的全局结构。我们为两个数据集中的50幅图像中的每一幅都训练了SinGAN模型和我们的模型,并将结果用于我们的评估。

图像多样性 与原始SinGAN模型相比,我们使用与SinGAN相同的度量来评估图像的多样性:对于给定的训练图像,我们计算100个生成图像的通道轴上所有像素值的标准偏差的平均值。然后,我们通过训练图像中像素值的标准偏差来归一化该值。在“Places”数据集的数据上,SinGAN获得了0.52的多样性得分,而我们的模型的多样性相似,得分为0.50。当我们通过设置δ=0.5而不是默认的δ=0.1来提高较低阶段的学习率时,随着模型学习到训练图像的更精确表示,我们观察到0.43的较低多样性得分(图4)。在LSUN数据上,SinGAN获得了更高的多样性得分0.64。这是由于它经常无法对全局结构进行建模,并且由此生成的图像与训练图像有很大不同。另一方面,我们的模型获得了0.54的多样性分数,这与“地点”数据集上的分数相似,表明我们的模型确实可以学习复杂图像的全局结构。

用户研究:“地点”

我们遵循与先前工作[19,33,43]相同的评估程序,在先前[33]中使用的相同训练图像上,将我们的模型与SinGAN进行比较。向用户展示我们生成的图像及其各自的训练图像各一秒钟,并要求他们识别真实图像。我们用自己训练的SinGAN和ConSinGAN模型复制了SinGAN论文中的用户研究。正如我们在表1中看到的,我们的模型获得了与SinGAN模型类似的结果。然而,我们的模型在更少的阶段和更少的参数上进行训练,与SinGAN的0.09相比,获得了更好的SIFID分数0.06。此外,ConSinGAN生成的图像通常仍然表现出更好的全局结构,但一秒钟的时间不足以让用户识别这一点。

用户研究:“LSUN”

由于来自LSUN数据集的图像比来自“Places”数据集中的图像更具挑战性,我们不将生成的图像与真实图像进行比较,而是将SinGAN生成的图像和ConSinGAN产生的图像进行比较。我们为每个训练图像生成10个图像,从而分别从SinGAN和ConSinGAN生成500个图像,并使用这些图像来比较两个不同用户研究中的模型。

在这两个版本中,参与者看到两个模型生成的两个图像,并且需要判断哪个图像更好。我们没有强制规定时间限制,所以参与者可以在选择的时间内观看这两张图片。两个版本的用户研究的区别在于我们如何对生成的图像进行采样。在第一个版本(“随机”)中,我们从生成的SinGAN和ConSinGAN图像集中随机抽取一张图像。这意味着这两个图像可能来自不同的类别(例如“教堂”与“会议室”)。在第二个版本(“配对”)中,我们对从同一训练图像生成的两个图像进行采样。我们使用Amazon Mechanical Turk进行了两项用户研究,50名参与者对每项研究的60对图像进行了比较。

表2显示了用户为两种设置中的每一种选择由给定模型生成的图像的频率。我们看到,在这两种设置中,用户都更喜欢ConSinGAN生成的图像,并且,我们的模型再次实现了更好的SIFID。尽管我们的模型只在六个阶段进行训练,参数比SinGAN少,训练时间也更短,但情况依然如此。LSUN的图像在难度和全局结构上各不相同。这可能解释了为什么我们的模型在配对设置中表现得更好,因为这个设置保证了我们总是在相同难度的图像上比较两个模型。总体而言,我们的实验表明,ConSinGAN允许生成更可信的图像,特别是当它们表现出一定程度的全局结构时,与SinGAN相比,训练时间更少,模型更小。

4.2、图像和谐化 我们现在展示了图像协调示例的结果,并将我们的模型与高分辨率图像的SinGAN和Deep Painterly harmonization进行了比较。

训练信息

我们对所有图像使用相同的超参数训练ConSinGAN,而不对不同图像的超参数进行任何微调。一般架构与无条件图像生成相同,但是,我们只为每个图像训练恰好三个阶段的模型。我们每个阶段训练1000次迭代,并从不同的数据增强技术中随机采样,以在每次迭代时获得“新的”训练图像,如第3节所述。当我们在给定的特定图像上微调模型时,我们使用在一般风格图像上训练的模型,并直接使用目标图像作为输入(而不是带有随机增强变换的风格图像)来训练模型进行额外的500次迭代。

与SinGAN的比较

图7显示了SinGAN和ConSinGAN之间的比较。前两列显示了我们训练的原始图像,以及在测试时作为我们训练模型输入的原始剪切和粘贴图像。接下来的三张图像显示了经过训练的SinGAN模型的结果,其中前两张是经过完全训练的模型的结果。我们在模型的所有阶段插入天真图像,并选择两个最佳结果,而第三个图像是我们仅在三个阶段训练SinGAN时的结果。最后两列显示了ConSinGAN的结果。当图像的粗糙面具有250像素的分辨率时,训练ConSinGAN对于给定的图像需要不到10分钟的时间。在特定图像上微调模型大约需要2-3分钟。训练SinGAN和以前一样大约需要120分钟,因为我们需要训练整个模型,即使在测试时只使用了一些后期阶段。

我们看到,尽管我们只训练了3个阶段,但ConSinGAN的表现与SinGAN相似或更好。ConSinGAN通常也会在协调图像中引入较少的伪影,而SinGAN经常会更改添加对象的表面结构。例如,见图7中的第一行,其中SinGAN将工件添加到汽车上,而ConSinGAN保持原始对象的一致性。当我们在特定的图像上调整ConSinGAN模型时,我们可以得到更有趣的结果,例如,汽车被更多地吸收到整个背景的颜色中。图7的底部两行显示了当我们将彩色物体添加到黑白绘画中时的结果。当像ConSinGAN一样只在三个阶段训练SinGAN时,它通常无法在测试时完全协调对象。即使是在8-10个阶段训练SinGAN后协调的图像也经常包含一些原始颜色,而ConSinGAN则设法将对象完全转换为黑白版本。同样,在特定图像上进一步微调ConSinGAN会导致对物体更强的“吸收”。

与DPH的比较 图8显示了适用于协调高分辨率图像的ConSinGAN和深度绘画协调(DPH)之间的比较。与SinGAN示例使用的250个像素相比,图像的长边分辨率约为700个像素。为了生成这些高分辨率图像,我们在ConSinGAN架构中添加了另一个阶段,即我们现在训练四个阶段,每个图像的训练时间增加到大约30-40分钟。这与许多风格转移方法和DPH形成了鲜明对比,后者具有额外的超参数,如风格和内容权重,需要针对特定风格的图像进行微调。 我们可以看到,ConSinGAN的输出通常与DPH的输出不同,但仍然逼真且视觉愉悦。甚至在我们的模型从未在训练时看到过天真的复制和粘贴图像,而只在测试时使用它的情况下也是如此。与此相反,DPH需要样式输入、原始副本和过去的输入,以及指定复制对象在图像中位置的掩码。同样,微调我们的模型有时会得到更好的结果,但即使是仅使用随机图像增强训练的模型也表现良好。虽然我们的训练时间很长,但我们只需要为给定的图像训练一次模型,然后在测试时在不同的位置添加不同的对象。这在DPH中是不可能的,每当复制的对象发生更改时,都需要对DPH进行重新训练。

5、结论

 我们介绍了ConSinGAN,这是一种GAN,其灵感来自于为训练单图像GAN而发现的许多最佳实践。我们的模型是根据顺序提高图像分辨率进行训练的,首先学习图像的全局结构,然后再学习纹理和风格细节。与其他模型相比,我们的方法允许通过调整并行训练阶段的数量和较低阶段的学习率缩放来控制训练图像的内部补丁分布的学习程度。通过这一点,我们可以决定我们希望生成的图像具有多大的多样性。我们还介绍了一种新的图像重新缩放方法,该方法允许在比以前更少的图像尺度上进行训练。我们证明,我们的方法可以在单个图像上进行训练,并可用于无条件图像生成、协调、编辑和动画等任务,同时比以前的模型更小、更有效地进行训练。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档