近日,在Reddit上一位外国小哥发表了一篇文章,介绍自己使用StyleGAN2和FaceAligner在人脸之间无缝切换的项目,他使用了美国历届总统的图片作为演示,同时也在Github上开放了源码。
从华盛顿到特朗普,无缝切换一镜到底
作者完成的这个项目使用了StyleGAN2facealigner来生成美国历任的总统图片。StyleGAN2将生成一个细致的看起来真实的方形人脸图像,并使用优化算法探索潜在的空间,以便找到一个给定类型的现实生活中的例子的准确表示。
艾森豪威尔到肯尼迪的切换也是非常流畅和逼真,「发际线的变化也十分的感人」。
约翰亚当斯(-)当年的老画像到杰斐逊(-)的切换还原度也很高。
在这个项目中,作者还使用了一个面部对齐的python脚本,它有三点作用:
1)识别图像中的面部
2)将其剪切出来并居中
3)确保像眼睛这样的关键特征位于正确的xy值上
作者使用了从华盛顿到川普的所有美国总统来进行演示,在每个相邻总统之间都线性插值了次。
作者还表示这个项目是在GoogleColab中直接运行的,避免了很多Windows10中不易解决的兼容性问题。
为了StyleGAN2更容易在Colab中使用,作者还做了一些如下改进:
1)支持非正方形图像,如:x或x等。
2)支持垂直镜像增强。
3)支持自动从最新的pkl中继续训练。
4)只创建最大的tfrecord;,使用原始JPEG代替解码numpy数组,大大减少tfrecord创建时间和数据集大小。
这个项目主要的计算工作是在通过对总统图像的映射以获得隐状态。这会消耗大约10分钟/图,这个时间可以通过降低图像质量来压缩,但作者没有这么做。
在隐状态和生成图像之间进行插值并不需要太长的时间,生成张图像并将它们放在一个视频文件中总共需要花费20分钟。
StyleGan2--StyleGAN的升级版,解决了伪影问题
StyleGAN是目前最先进的高分辨率图像合成方法,已被证明可以在各种数据集上可靠地工作。除了逼真的人像,StyleGAN还可以用于生成其他动物,汽车甚至房间。
然而,StyleGAN并不完美,最明显的缺陷是生成的图像有时包含斑点似的伪影(artifacts),而这一缺陷在StyleGAN2上也被完美解决了。
去年底,NVIDIA的研究人员发布了StyleGAN的升级版——StyleGAN2,重点修复artifacts问题,并进一步提高了生成图像的质量。
图:StyleGAN2生成的人脸图像
图:StyleGAN2生成的猫咪图像
主要改进包括:
生成的图像质量明显更好(FID分数更高、artifacts减少)
提出替代progressivegrowing的新方法,牙齿、眼睛等细节更完美
改善了Style-mixing
更平滑的插值(额外的正则化)
训练速度更快
(a)是原始的StyleGAN结构图,其中A表示从W学习的仿射变换,产生了一个style,(b)展示了原始StyleGAN架构的细节。
在这里,将AdaIN分解为先显式归一化再调制的模式,对每个特征图的均值和标准差进行操作。我们还注释了学习的权重(w)、偏差(b)和常量输入(c),并重新绘制了灰色框,使每个框都激活一个style。激活函数(leakyReLU)总是在添加偏置后立即应用。
(c)对原始架构做了几处改动,包括在开始时删除了一些冗余操作,将b和B的添加移动到style的活动区域之外,并只调整每个featuremap的标准差。
(d)是修改后的架构,使我们能够用「demodulation」操作代替instancenormalization,我们将demodulation操作应用于与每个卷积层相关的权重。
重新设计后的StyleGAN2消除了伪影,同时保留了完全的可控性。
同时,StyleGAN2还使用了新方法替代Progressivegrowing,细节更完美。StyleGAN2使用了一个skipgenerator和一个残差鉴别器,切换到这种设置显著地改进了FID和PPL。
FaceAlignment
facealignment就是通过一定量的训练集(人脸图像和每个图像上相对应的多个landmarks)来得到一个模型,使得该模型再输入了一张任意姿态下的人脸照片后,能够对该照片中的关键点进行标记。
左侧是标注好的训练集,右侧是使用模型来对新的图片进行标注的结果。
演示的最后是从奥巴马到特朗普的转变:
有位外国网友对此的评论也很有意思:
作者的这个创意项目向我们展示了StyleGAN2的强大能力和facealignment无穷的潜力,styleGAN2是目前已知的最先进的高分辨率图像合成方法,可以在各种数据集上可靠的工作,除了人像以外,还可以生成房间物品,汽车,动物等各种逼真图像,未来还具有很大的应用空间和商业价值可供开发。
不知大家是否想体验下这个项目呢,快打开下面的链接尝试一下吧!
项目链接: