架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统

From: 深度学习技术前沿
近日 , 在Reddit上一位外国小哥发表了一篇文章 , 介绍自己使用StyleGAN2和Face Aligner在人脸之间无缝切换的项目 , 他使用了美国历届总统的图片作为演示 , 同时也在Github上开放了源码 。 让我们一起来看看他的成果吧~

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

从华盛顿到特朗普 , 无缝切换一镜到底
作者完成的这个项目使用了 StyleGAN2 & Face Aligner来生成美国历任的总统图片 。 StyleGAN2将生成一个细致的看起来真实的方形人脸图像 , 并使用优化算法探索潜在的空间 , 以便找到一个给定类型的现实生活中的例子的准确表示 。
艾森豪威尔到肯尼迪的切换也是非常流畅和逼真 , 「发际线的变化也十分的感人」

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

约翰亚当斯(1797-1801)当年的老画像到杰斐逊(1801-1809)的切换还原度也很高 。

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

在这个项目中 , 作者还使用了一个面部对齐的 python 脚本 , 它有三点作用:
1) 识别图像中的面部
2) 将其剪切出来并居中
3) 确保像眼睛这样的关键特征位于正确的 x & y 值上
作者使用了从华盛顿到川普的所有美国总统来进行演示 , 在每个相邻总统之间都线性插值了100次 。

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

作者还表示这个项目是在Google Colab中直接运行的 , 避免了很多Windows10中不易解决的兼容性问题 。
为了StyleGAN2更容易在Colab中使用 , 作者还做了一些如下改进:
1) 支持非正方形图像 , 如:768x512或640x384等 。
2) 支持垂直镜像增强 。
3) 支持自动从最新的 pkl 中继续训练 。
4) 只创建最大的 tfrecord; , 使用原始 JPEG 代替解码 numpy 数组 , 大大减少 tfrecord 创建时间和数据集大小 。
这个项目主要的计算工作是在通过对总统图像的映射以获得隐状态 。 这会消耗大约10分钟/图 , 这个时间可以通过降低图像质量来压缩 , 但作者没有这么做 。
在隐状态和生成图像之间进行插值并不需要太长的时间 , 生成4500张图像并将它们放在一个视频文件中总共需要花费20分钟 。
StyleGAN2:
StyleGAN的升级版 , 解决了伪影问题
StyleGAN是目前最先进的高分辨率图像合成方法 , 已被证明可以在各种数据集上可靠地工作 。 除了逼真的人像 , StyleGAN还可以用于生成其他动物 , 汽车甚至房间 。
然而 , StyleGAN并不完美 , 最明显的缺陷是生成的图像有时包含斑点似的 伪影(artifacts) , 而这一缺陷在StyleGAN2上也被完美解决了。
去年底 , NVIDIA的研究人员发布了StyleGAN的升级版——StyleGAN2 , 重点修复artifacts问题 , 并进一步提高了生成图像的质量 。

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

StyleGAN2生成的人脸图像

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

StyleGAN2生成的猫咪图像
主要改进包括:

  • 生成的图像质量明显更好(FID分数更高、artifacts减少)
  • 提出替代progressive growing的新方法 , 牙齿、眼睛等细节更完美
  • 改善了Style-mixing
  • 更平滑的插值(额外的正则化)
  • 训练速度更快
【架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统】
架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

(a)是原始的StyleGAN结构图 , 其中A表示从W学习的仿射变换 , 产生了一个style , (b)展示了原始StyleGAN架构的细节 。
在这里 , 将AdaIN分解为先显式归一化再调制的模式 , 对每个特征图的均值和标准差进行操作 。研究人员还注释了学习的权重(w)、偏差(b)和常量输入(c) , 并重新绘制了灰色框 , 使每个框都激活一个style 。 激活函数(leaky ReLU)总是在添加偏置后立即应用 。
(c)对原始架构做了几处改动 , 包括在开始时删除了一些冗余操作 , 将b和B的添加移动到style的活动区域之外 , 并只调整每个feature map的标准差 。
(d)是修改后的架构 , 使 研究人员能够用demodulation操作代替 instance normalization , 他们将demodulation操作应用于与每个卷积层相关的权重 。
重新设计后的StyleGAN2消除了伪影 , 同时保留了完全的可控性 。

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片


架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

同时 , StyleGAN2还使用了新方法替代Progressive growing , 细节更完美 。 具体来讲 , 它使用了一个skip generator和一个残差鉴别器 , 切换到这种设置显著地改进了FID和PPL 。
Face Alignment
Face Alignment就是通过一定量的训练集(人脸图像和每个图像上相对应的多个landmarks)来得到一个模型 , 使得该模型再输入了一张任意姿态下的人脸照片后 , 能够对该照片中的关键点进行标记 。

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

左侧是标注好的训练集 , 右侧是使用模型来对新的图片进行标注的结果 。
演示的最后是从奥巴马到特朗普的转变:

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

有位外国网友对此的评论也很有意思

架构|StyleGAN2玩出新高度!从华盛顿到特朗普,无缝切换生成历届美国总统
文章图片

作者的这个创意项目向我们展示了StyleGAN2的强大能力和Face Alignment无穷的潜力 。 StyleGAN2是目前已知的最先进的高分辨率图像合成方法 , 可以在各种数据集上可靠的工作 , 除了人像以外 , 还可以生成房间物品、汽车、动物等各种逼真图像 , 未来还具有很大的应用空间和商业价值可供开发 。
不知大家是否想体验下这个项目呢 , 快打开下面的链接尝试一下吧!
项目链接:
https://github.com/justinpinkney/stylegan2

    推荐阅读