社区计算机视觉课程文档
StyleGAN 变体
并获得增强的文档体验
开始使用
StyleGAN 变体
你将在本章学到什么
- Vanilla GAN 中缺少什么
- StyleGAN1 的组件和优势
- StyleGAN1 的缺点和对 StyleGAN2 的需求
- StyleGAN2 的缺点和对 StyleGAN3 的需求
- StyleGAN 的用例
Vanilla GAN 中缺少什么
生成对抗网络 (GAN) 是一类生成模型,可以生成逼真的图像。但很明显,你无法控制图像的生成方式。在 Vanilla GAN 中,你有两个网络:(i) 生成器和 (ii) 判别器。判别器以图像作为输入,并返回它是真实图像还是生成器合成生成的图像。生成器接收噪声向量(通常从多元高斯分布中采样),并尝试生成看起来相似但不完全相同的图像,就像训练样本中可用的图像一样,最初,它将是垃圾图像,但从长远来看,生成器的目标是欺骗判别器,使其相信生成器生成的图像是真实的。
考虑一个训练好的 GAN,假设 z1 和 z2 是从高斯分布中采样的两个噪声向量,它们被发送到生成器以生成图像。假设 z1 被转换为包含戴眼镜男性的图像,而 z2 被转换为包含不戴眼镜女性的图像。如果你需要一张戴眼镜女性的图像怎么办?这种显式的控制决策无法通过 Vanilla GAN 直观地实现,因为特征是纠缠的(下面会详细介绍)。理解这一点,当你看到 StyleGAN 实现的功能时,你会更深入地理解它。
总结;StyleGAN 只是对生成器的架构风格进行了特殊的修改,而判别器保持不变。StyleGAN 的这种修改后的生成器提供了根据用户意愿生成图像的自由,并提供了对高级(姿势、面部表情)和随机(低级特征,如皮肤毛孔、头发的局部位置等)特征的控制。除了这种灵活的图像生成能力外,多年来,StyleGAN 还被用于其他一些所谓的下游任务,如隐私保护、图像编辑等。
StyleGAN 1 的组件和优势
让我们直接深入了解 StyleGAN 中引入的特殊组件,这些组件赋予了 StyleGAN 我们上面描述的功能。不要被上面的图吓到,这是最简单但功能强大的想法之一,你可以很容易理解。
正如我已经说过的,StyleGAN 仅修改生成器,而判别器保持不变,因此上面没有提及。图 (a) 对应于 ProgessiveGAN 的结构。ProgessiveGAN 只是一个 Vanilla GAN,但它不是生成固定分辨率的图像,而是逐步生成更高分辨率的图像,目的是生成逼真的高分辨率图像,即,生成器的块 1 生成 4x4 分辨率的图像,生成器的块 2 生成 8x8 分辨率的图像,依此类推。图 (b) 是提出的 StyleGAN 架构。它具有以下主要组件
- 映射网络
- AdaIN(自适应实例归一化)
- 噪声向量的连接
让我们逐一分解。
映射网络
与传统 GAN 中将潜在代码(也称为噪声向量)z 直接传递给生成器不同,现在它通过一系列 8 个 MLP 层映射到 w。生成的潜在代码 w 不仅像 ProgessiveGAN 中那样作为输入传递给生成器的第一层,而是传递给生成器网络的每个块(在 StyleGAN 术语中,它被称为合成网络)。这里有两个主要思想
- 将潜在代码从 z 映射到 w 可以解开特征空间。解开纠缠的含义是,在维度为 512 的潜在代码中,如果你只更改其中一个特征值(比如在 512 个值中,你只增加或减少第 4 个值),那么理想情况下,在解开纠缠的特征空间中,应该只更改一个真实世界的特征。如果第 4 个特征值对应于真实世界的特征“微笑”,那么更改 512 维潜在代码的第 4 个值应该生成微笑/不微笑/介于两者之间的图像。
- 将潜在代码传递到每一层对控制的真实特征类型有深远的影响。例如,将潜在代码 w 传递到 Synthetis 网络的较低块对姿势、总体发型、脸型和眼镜等高级方面有控制作用,而将潜在代码 w 传递到 synthetis 网络较高分辨率的块对较小规模的面部特征、发型、眼睛睁开/闭合等有控制作用。
自适应实例归一化 (AdaIN)
AdaIN 通过允许根据来自单独来源的风格信息动态调整归一化参数(均值和标准差)来修改实例归一化。这种风格信息通常来自潜在代码 w。
在 StyleGAN 中,潜在代码不是直接传递到合成网络,而是仿射变换器 w,即 y 被传递到不同的块。y 被称为“风格”表示。这里,和是风格表示 y 的均值和标准差,以及和是特征图 x 的均值和标准差。
AdaIN 使生成器能够在生成过程中动态地调整其行为。这在生成的输出的不同部分可能需要不同的风格或特征的情况下特别有用。
噪声向量的连接
在传统 GAN 中,生成器必须自行学习随机特征。我所说的随机特征是指那些微小的但重要的细节,如头发的位置、皮肤毛孔等,这些细节应该在不同的图像生成之间变化,而不应保持不变。在传统 GAN 中,没有任何显式结构,这使得生成器难以完成任务,因为它需要完全依靠自身从一层到另一层引入像素级的随机性,而这通常不会产生多样化的此类随机特征集。
相反,在 StyleGAN 中,作者假设通过在合成网络(也称为生成器)的每个块中向特征图添加噪声图,每一层都可以利用此信息来产生多样化的随机性质,而无需像传统 GAN 中那样尝试完全依靠自身完成所有操作。结果证明效果很好。
StyleGAN1 的缺点和对 StyleGAN2 的需求
StyleGAN 在数据驱动的无条件生成图像建模方面产生了最先进的结果。然而,其现有的架构设计仍然存在一些问题,这些问题在下一个版本 StyleGAN2 中得到了解决。
为了使本章易于阅读,我们避免深入探讨架构的细节,而是说明在第一个版本中发现的特征伪影以及质量如何进一步提高。
本文解决了两个主要的伪影,即常见的斑点状伪影和由于现有的渐进式增长架构而产生的位置偏好伪影。
你可以在上面的图像中看到斑点状结构,作者声称这源于 StyleGAN1 的归一化过程。因此,下面 (d) 是提出的克服该问题的架构。
(ii) 修复 Progessive GAN 结构中强位置偏好伪影。
在上图中,每个图像都是通过插值潜在代码 w 来调节姿势获得的。这导致了相当不真实的图像,尽管其视觉质量很高。
使用了跳跃生成器和残差判别器来克服这个问题,而没有渐进式增长。
StyleGAN2 中还引入了其他更改,但以上两个是首先需要了解的重要更改。
StyleGAN2 的缺点和对 StyleGAN3 的需求
StyleGAN2 的同一组作者发现合成网络以不健康的方式依赖于绝对像素坐标。这导致了称为混叠效应的现象。
上面,动画是通过插值潜在代码 w 生成的。你可以清楚地看到,在左侧图像中,纹理像素有点固定在位置上,只有高级属性(面部姿势/表情)发生变化。这暴露了生成此类动画时的人为性。StyleGAN3 从根本上解决了这个问题,你可以从右侧动画中看到结果。
用例
StyleGAN 生成逼真图像的能力为各种应用打开了大门,包括图像编辑、保护隐私,甚至创造性探索。
图像编辑
- 图像修复:以无缝且逼真的方式填充缺失的图像区域。
- 图像风格迁移:将一个图像的风格转移到另一个图像。
隐私保护应用
- 生成合成数据:用逼真的合成数据替换敏感信息,用于训练和测试目的。
- 匿名化图像:模糊或更改图像中可识别的特征,以保护个人隐私。
创造性探索
- 生成时尚设计:StyleGAN 可用于生成逼真且多样化的时尚设计。
- 创建沉浸式体验:StyleGAN 可用于为游戏、教育和其他应用创建逼真的虚拟环境。例如,Stylenerf:基于风格的。用于高分辨率图像合成的 3d 感知生成器。
这些只是一个非详尽的列表。
参考文献
- StyleGAN - repository, Paper
- StyleGAN2 - repository, Paper
- StyleGAN3 - repository, Paper