StyleGAN系列学习笔记

StyleGAN可以无监督地分离高级属性(例如,姿态,身份)和生成图像中的随机变化(例如,雀斑,头发),控制图像不同层次的视觉特征。

StyleGAN v1

Figure 1. 传统生成器 vs. Style-based生成器

给定输入latent code z (符合均匀分布或者高斯分布的随机变量),通过由8个全连接层组成的Mapping Network将输入的潜在变量映射到与输入层()大小相同的中间潜在空间,后续得到18个样式控制向量传给生成网络,该控制向量的不同元素能够控制不同的视觉特征(在每个卷积层通过自适应实例归一化AdaIN实现特征转换)。最后,通过引入显式噪声输入,为生成器提供了生成随机细节的直接方法。

1. Mapping Network

添加Mapping Network的目标是将输入向量编码映射为解耦的中间向量,解决特征纠缠问题。

1)为什么要解决特征纠缠?

特征举例:头发长度和男子气概。按照z的分布来说,这两个特征之间存在交缠紧密的联系,如头发短了男子气概会降低或者增加。但对现实情况来说,短发男子、长发男子都可以有很强的男子气概。所以需要将latent code z进行解耦,才能更好的后续操作,来改变其不同特征。

2)为何Mapping Network能够学习到特征解缠呢?

简单来说,如果仅使用输入向量来控制视觉特征,能力非常有限,因此它必须遵循训练数据的概率密度。例如,如果黑头发的人的图像在数据集中更常见,那么更多的输入值将会被映射到该特征上。如果模型无法选择将部分输入(向量中的元素)映射到特征上,就会造成特征纠缠。通过Mapping Network可以生成一个不必遵循训练数据分布的向量,可以减少特征之间的相关性。

2. Synthesis Network

a. 控制向量(A)

生成器由于从,变换到,并最终变换到,所以它由9个生成阶段组成,而每个阶段都会受两个控制向量对其施加影响,其中一个控制向量在Upsample之后对其影响一次,另外一个控制向量在Convolution之后对其影响一次,影响的方式都采用AdaIN(自适应实例归一化)。

AdaIN的具体实现过程

通过一个可学习的仿射变换(实际上是一个全连接层)扩变为放缩因子与偏差因子,这两个因子会与标准化之后的卷积输出做一个加权求和,就完成了一次影响原始输出的过程。而这种影响方式能够实现样式控制,主要是因为它让(即变换后的)影响图片的全局信息(注意标准化抹去了对图片局部信息的可见性),而保留生成人脸的关键信息由上采样层和卷积层来决定,因此只能够影响到图片的样式信息。

特征图的均值和方差中带有图像的风格信息。所以在这一层中,特征图减去自己的均值除以方差,去掉自己的风格。再乘上新风格的方差加上均值,以实现转换的目的。StyleGAN的风格不是由图像得到的,而是生成的。

既然StyleGAN生成图像的特征是由和AdaIN控制的,那么生成器的初始输入可以被忽略,并用常量值替代。这样做的理由是,首先可以降低由于初始输入取值不当而生成出一些不正常的照片的概率(这在GANs中非常常见),另一个好处是它有助于减少特征纠缠,对于网络在只使用不依赖于纠缠输入向量的情况下更容易学习。

b. 随机噪声(B)

引入显式噪声输入是为了控制噪声仅影响图片样式上细微的变化,StyleGAN采用类似于AdaIN机制的方式添加噪声,即在AdaIN模块之前向每个通道添加一个缩放过的噪声,并稍微改变其操作的分辨率级别特征的视觉表达方式,随机改变雀斑、发髻线的准确位置、皱纹等使图像更逼真的特征。

3. 其他细节

a. Style Mixing

StyleGAN生成器在合成网络的每个级别中使用了中间向量,这有可能导致网络学习到这些级别是相关的。为了降低相关性,模型随机选择两个输入向量,并经过mapping network生成了中间向量。然后,用第一个输入向量来训练一些网络级别,然后(在一个随机点中)切换到另一个输入向量来训练其余的级别。随机的切换确保了网络不会学习并依赖于一个合成网络级别之间的相关性。

b. Truncation Trick

从数据分布来说,低概率密度的数据在网络中的表达能力很弱,直观理解就是,低概率密度的数据出现次数少,能影响网络梯度的机会也少,网络学习到其图像特征的能力就会减弱。

截断技巧用于解决该问题。首先找到数据中的一个平均点,然后计算其他所有点到这个平均点的距离,对每个距离按照统一标准进行压缩,将数据点聚拢(相当于截断了中间向量,迫使它保持接近“平均”的中间向量),但是又不会改变点与点之间的距离关系。当生成新的图像时,不用直接使用mapping network的输出,而是将转换为,其中的值定义了图像与“平均”图像的差异量(以及输出的多样性)。在仿射转换块之前,通过对每个级别使用不同的,模型可以控制每个级别上的特征值与平均特征值的差异量。


StyleGAN v2

Figure 2. 不同StyleGAN生成网络结构(每个灰框表示网络中有一种样式活动的部分)

AdaIN 对每个 feature map 的均值和方差进行归一化,有可能会破坏掉 feature 之间的信息。StyleGAN v2 去除 Adain 的归一化操作,解决生成图像中出现水珠问题(基于假设,StyleGAN v1出现的液滴伪影假象是生成器有意地将信号强度信息隐藏在实例归一化之后的结果:通过创建一个强大的、局部的峰值来主导统计数据,生成器可以有效地缩放信号)。

具体改进

  1. 去除输入开始的冗余操作,直接输入常量。

  1. 将AdaIN操作分解为归一化normalization和调制modulation两个组成部分,去掉平均值。

  1. 将偏置和噪声移到样式块之外以获得更可预测的结果,在样式块内对规范化的数据进行操作。

  1. 用“解调”操作替换实例规范化,解调技术是基于对信号的预期统计,而不是基于特征图的实际内容,因此解调技术没有显式强制,同时保留style mixing且解决其特征放大问题。【解调理解:在调制的基础上对卷积层的权值进行归一化 (revised instance normalization)。调制即基于传入样式缩放卷积的每个输入特征映射,可以通过缩放卷积权重来实现。】


StyleGAN v3

Figure 3. Alias-Free StyleGAN3网络结构

在GAN的合成过程中,某些特征依赖于绝对像素坐标,这会导致细节似乎粘在图像坐标上,而不是所要生成对象的表面,StyleGAN v3从根本上解决图像坐标与特征粘连问题(作者认为目前的生成器网络架构是卷积+非线性+上采样等结构,而这样的架构无法做到很好的等变性,“纹理粘附”在latent值变换的时候会更加明显),实现了真正的图像平移、旋转等不变性,大幅度提高了图像合成质量。

平移问题

对于某个固定的坐标切片,StyleGAN v2倾向于生成固定的纹理,而StyleGAN v3可以随移动变化纹理。

旋转问题

StyleGAN v2无法满足旋转一致性问题,主要因为:

  1. 使用图像边界参考(例如padding的使用实际上提示了图像的边界位置信息)。

  1. 像素的噪声输入(例如头发丝粘一起)。

  1. 位置编码和混叠(加入一些额外的位置信息)。

解决方法

  1. 针对边界问题,可以在稍大一点的图像边缘上进行操作。

  1. 针对像素的噪声输入,可以直接取消掉该操作。

  1. 而关于生成图像中的混叠,作者认为有两个可能的来源:

  1. 非理想上采样(如最近邻、双线性或空洞卷积)产生的像素网格的微弱的印记。

  1. 应用pointwise的非线性激活,如ReLU或者Swish。

实验表明,在StyleGAN v2时,当前的上采样滤波器在抑制混叠方面根本不够积极,而且需要具有超过100dB衰减的高质量滤波器针对这个问题,StyleGAN v3根据它们在连续域的影响,提出了一种解决点态非线性引起的混叠的原理,并对结果进行了适当的低通滤波。

生成器的具体改进

1. 傅里叶特征以及基线模型简化

  1. 利用Fourier特征(傅里叶特征)代替了StyleGAN v2生成器的常数输入,为了便于对输入进行精确的连续平移和旋转,这也具有自然定义空间无限映射的优点。

  1. 删除了逐像素噪声输入,特征的位置信息要完全继承底层粗特征。

  1. 降低了网络深度(18到14),禁用mixing regularization和path length regularization,并且在每次卷积前都使用简单的归一化。

  1. 消除了输出的skip connecton,好处主要与训练期间的梯度幅度动态有关,并在每次卷积之前使用简单的归一化更直接地解决潜在问题。

2. 边界及上采样问题优化

  1. 理论上特征映射有一个无限的空间范围,引入了一个固定大小的边缘来近似,在每一层操作之后裁剪到这个扩展的画布上。

  1. 用理想低通滤波器来代替双线性采样。

改进的边界处理和上采样得到了更好的转换等值方差(平移性),而FID降低了16%,可能是因为开始时限制了特征映射可以包含的内容。

3. 非线性滤波改进

工程化的操作,改进了非线性滤波,并将整个upsample-LReLU-downsample过程写到一个自定义的CUDA内核中

4. 非临界采样改进

为了抑制混叠,简单地将边界频率 (cutoff frequency) 降低到,这确保所有混叠频率(高于s/2)都在阻带内,丢掉浅层不重要的高频细节。

5. 傅里叶特征改进

为了应对每层的全局变换能力有限的问题,加入了一个仿射层,输出输入傅里叶特征的全局平移和旋转参数,稍微改善了FID。

6. 平移不变性

灵活的层规范提高了平移不变性,但是一些可见的伪影仍然存在。这是因为滤波器的衰减对于最低分辨率的层来说仍然是不够的,而这些层往往在其带宽限制附近有丰富的频率信息,这就需要有非常强的衰减来完全消除混叠。因此希望边界频率在最低分辨率层中较高,以最大化提高阻带的衰减;在最高分辨率层中较低,以匹配训练数据的高层细节。

7. 旋转不变性

为了得到旋转不变性网络,做出来两个改进:

  1. 将所有层的卷积核大小从替换为,一个基于的卷积操作能够产生强旋转的等变生成器,一旦适当地抑制了混叠,便可以迫使模型实现更自然的层次细化。

  1. 通过将feature map的数量增加一倍,用来弥补减少的特征容量。


参考链接

https://blog.csdn.net/a312863063/article/details/88795147

https://blog.csdn.net/xjm850552586/article/details/122027019

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值