当前位置:   article > 正文

对抗网络之PG-GAN,无条件下生成更真实的人脸图像[3]_基于tensorflow的对抗神经网络生成不同的人脸

基于tensorflow的对抗神经网络生成不同的人脸

1. 介绍

GAN在2015年DCGAN[1]论文提出之后,开始迅速的被关注和被应用到各个领域。比较有影响力的应用,比如Image translation; Image Inpainting; Face image manipulation 以及 Semi-supervised learning等。当然作为当前最有竞争力的生成模型,相对于VAE, GAN虽然不稳定,相对于PixelCNN, GAN虽然没有提供明确的likelihood, 但是GAN在较短的训练之后就可以生成及其真实的样本。生成更加真实的样本在GAN领域也是一个研究的热点。就像刚才提到了,GAN能火,一方面就是因为DCGAN生成的质量很高的64x64 像素的样本。也只有当样本能达到一定真实度的时候,GAN本身才可能被关注,以及应用到Image transformation[5]。
我们将GAN分为两类,一类是无条件下的生成;另一类自然是基于条件信息的生成。之所以要分开,是因为基于条件本身可以作为一个优化,一般来说,把无条件的GAN加上条件会提高样本的质量。无条件下的样本生成,可以关注以下论文:

[1]DCGAN(https://arxiv.org/abs/1511.06434)
[2]WGAN(https://arxiv.org/abs/1701.07875)
[3]LS-GAN(https://arxiv.org/abs/1611.04076)
[4]WGAN-GP(https://arxiv.org/abs/1704.00028)

以及今天要讲解的PG-GAN: PROGRESSIVE GROWING OF GANS FOR IMPROVED QUALITY, STABILITY, AND VARIATION.

从DCGAN到PG-GAN,在我的测试下,生成的人脸质量变得越来越高。尤其是PG-GAN。一个过程化生成,在celebA-hq数据集下生成1024x1024 的及其真实的样本,要知道WGAN-gp生成128x128已经相当困难而且质量得不到保证。那么PG-GAN是如何生成如此惊人的样本的呢?

2. 理解PG-GAN

2.1 论文给出的1024的样本

这里写图片描述
Figure: 第一行为生成样本;第二行为真实样本

PG-GAN的生成样本质量是惊人的,但是PG-GAN并不是完美的。后面会提到它的一些缺点。
对PG-GAN的一句话总结就是: 过程化的生成方式使得生成高质量,高分辨率的样本成为了可能,使用的一些trick即使没有太多的启发性,但是在本文中却出奇的有效。

2.2 PG-GAN中过程化训练

PG-GAN可以生成1024 pixels的样本,很明显,使用单纯的GAN,建立从latent code 到 1024x1024 pixels样本的映射网络G,肯定是很难工作的。
过程化的训练方式也就是不采用一步到位,而是先试着生成低分辨率或者低质量的图像,然后不断地增加分辨率或者细节。我将过程化的训练方式分为两种: 一种是不改变网络的;一种是需要改变的。
不改变网络:意味着网络结构不变,所以肯定是建立从latent code 到1024的映射,但是训练数据是从低质量的样本开始,然后不断地增加细节,当然我们需要把训练数据先下采样都要resize到 1024。PG-GAN是属于第二种情况,也就是网络结构先从 4x4的生成,然后不断地给D和G添加层,然后最终输出1024x1024的。

这里写图片描述
Figure:过程化的训练方式

这种改变网络,过程化生成的方式是一个符合人类直觉,而且很容易想到的。但是PG-GAN能达到如此惊人的效果是和它的一些trick及细节处理分不开的。

2.3 PG-GAN的trick的作用

为了确保完全理解这篇论文,我使用tensorflow复现了PG-GAN。在celebA数据集上训练,生成的64x64的样本质量也是相当好的。Github地址:

https://github.com/zhangqianhui/PGGAN-tensorflow

下面是我的实验结果:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/600491
推荐阅读
相关标签
  

闽ICP备14008679号