本文会介绍cGAN和pix2pix,并在 TensorFlow 中使用 pix2pix 模型。
一、cGAN原理
使用GAN可以无监督生成全新的图片,比如使用GAN生成MNIST数字,虽然可以生成数字,但是不能生成确定的数字。如果希望控制生成的结果,例如生成数字1,此时就要用到cGAN了。
cGAN 的全称为 Conditional Generative Adversarial Networks, 即条件对抗生成网 络,它为生成器、判别器都额外加入了一个条件 y, 这个条件实际是希望生成的标签 。 生成器 G 必须要生成和条件 y 匹配的样本,判别器不仅要判别图像是否真实,还要判别图像和条件y是否匹配。cGAN的输入输出为:
(1)生成器 G, 输入一个噪声 z, 一个条件 y,输出符合该条件的图像 G(z[y)。
(2)判别器 D ,输入一张图像、一个条件 y,输出该图像在该条件下的真实概率 D(x[y)。
cGAN损失定义:在GAN的优化目标中加入条件y,即:
二、pix2pix模型的原理
在自然语言处理领域,机器翻译,也就是将中文译成英文,对应的,在图像领域,也有图像翻译。例如:将白天的图片转换为夜晚的图片、将街景的标注图像变为真实图片。使用pix2pix可以处理这类问题,模型结构如下:</