社区计算机视觉课程文档
StyleGAN 变体
并获得增强的文档体验
开始使用
StyleGAN 变体
本章您将学到什么
- Vanilla GAN 缺少什么
- StyleGAN1 的组件和优点
- StyleGAN1 的缺点以及 StyleGAN2 的必要性
- StyleGAN2 的缺点以及 StyleGAN3 的必要性
- StyleGAN 的用例
Vanilla GAN 缺少什么
生成对抗网络(GANs)是一类生成逼真图像的生成模型。但很明显,您无法控制图像的生成方式。在 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 传递给合成网络的较低块可以控制高级方面,如姿势、一般发型、脸型和眼镜;而将其传递给合成网络的较高分辨率块可以控制较小尺度的面部特征、发型、眼睛开合等。
自适应实例归一化 (AdaIN)
AdaIN 通过允许根据来自独立源的样式信息动态调整归一化参数(均值和标准差)来修改实例归一化。此样式信息通常源自潜在代码 w。
在 StyleGAN 中,潜在代码不直接传递到合成网络,而是将仿射变换 w,即 y,传递到不同的块。y 被称为“样式”表示。这里,和是样式表示 y 的均值和标准差,并且和是特征图 x 的均值和标准差。
AdaIN 使生成器能够在生成过程中动态调整其行为。这在生成的输出不同部分可能需要不同样式或特性的场景中特别有用。
噪声向量的串联
在传统的 GAN 中,生成器必须自行学习随机特征。我所说的随机特征是指那些微小但重要的细节,例如头发的位置、皮肤毛孔等,它们应该在每次图像生成时有所不同,并且不应保持不变。在传统的 GAN 中没有任何明确的结构,这使得生成器很难做到这一点,因为它需要自行在每一层中引入像素级别的随机性,这通常无法生成多样化的随机特征。
相反,在 StyleGAN 中,作者假设通过在合成网络(也称为生成器)的每个块中向特征图添加噪声图,每一层都可以利用这些信息生成多样的随机性质,而无需像传统 GAN 那样尝试自行完成所有操作。这取得了很好的效果。
StyleGAN1 的缺点以及 StyleGAN2 的必要性
StyleGAN 在数据驱动的无条件生成图像建模方面取得了最先进的结果。然而,其现有架构设计仍然存在一些问题,这些问题在下一版本 StyleGAN2 中得到了解决。
为了使本章易于阅读,我们避免深入探讨架构细节,而是陈述第一版中发现的特征性伪影以及质量如何进一步提高。
本文主要解决了两个主要的伪影,即常见的斑点状伪影和由于现有渐进式增长架构引起的定位偏好伪影。
您可以在上图中看到斑点结构,作者声称它起源于 StyleGAN1 的归一化过程。因此,下图 (d) 是克服该问题的提议架构。
(ii) 修复渐进式 GAN 结构中强烈的定位偏好伪影。
在上图中,每张图像都是通过插值潜在代码 w 来调节姿势而获得的。这导致了尽管具有高视觉质量,但仍相当不真实的图像。
使用跳跃生成器和残差判别器来克服该问题,而无需渐进式增长。
StyleGAN2 中还引入了其他更改,但上述两点是首先要了解的重要内容。
StyleGAN2 的缺点以及 StyleGAN3 的必要性
StyleGAN2 的同一批作者发现合成网络对绝对像素坐标的不健康依赖。这导致了所谓的锯齿效应。
上面,动画是通过插值潜在代码 w 生成的。您可以清楚地看到,在左侧图像中,纹理像素固定在某个位置,只有高级属性(面部姿势/表情)发生变化。这在生成此类动画时暴露了人工性。StyleGAN3 从根本上解决了这个问题,您可以从右侧的动画中看到结果。
用例
StyleGAN 生成照片级逼真图像的能力为各种应用打开了大门,包括图像编辑、隐私保护甚至创意探索。
图像编辑
- 图像修复:以无缝逼真的方式填充缺失的图像区域。
- 图像风格迁移:将一种图像的风格迁移到另一种图像。
隐私保护应用
- 生成合成数据:用逼真的合成数据替换敏感信息,用于训练和测试目的。
- 图像匿名化:模糊或更改图像中的可识别特征以保护个人隐私。
创意探索
- 生成时尚设计:StyleGAN 可用于生成逼真多样的时尚设计。
- 创建沉浸式体验:StyleGAN 可用于创建逼真的虚拟环境,用于游戏、教育和其他应用。例如,Stylenerf:一种基于风格的 3D 感知生成器,用于高分辨率图像合成。
这只是一份不完全的列表。