图像转换是将一张输入图片转换为不同的输出图片,如将一张灰度图变成彩色图,素描图换成实物图(见下图),这在现实生活中有很多应用场景。这类问题本质上是要建立输入和输出图像像素点之间的映射关系,而CNN网络正适合担当这个角色。从另外一个角度看,这类问题其实是建立生成模型,GAN架构是一种很好的解决方案。这里介绍的pix2pix模型就是通过GAN来实现图像转换的,不过其训练过程需要成对的输入和输出样本,这个条件在很长情况下会限制其应用。相对应地,CycleGAN模型前进了一步,不需要成对的样本就可以训练出较好的图像转换模型。
点击查看大图
01
GAN和cGAN介绍
生成对抗模型(Generative Adversarial Net, GAN)是非常火的生成模型,被广泛应用在图像生成领域。GAN包括两个对抗的网络:用于拟合数据分布的生成器G,和用于判别数据真实性的判别器D。对于数据
z,G要学习到其数据分布,并给定噪音
z可以生成“真实”的数据
G(z),而D要能够识别数据的真假性。这是一种零和博弈:
点击查看大图
对于G,其训练目标是最大化
logD(G(z)),而D的训练目标是同时最大化
log(1-D(G(z)))和
log(D(x))。
给定噪音
z,生成器G的自由度很高,可以生成任何符合
x分布的数据。有时候,我们可以给模型加入一些额外条件
y,那么这就变成了条件GAN,即cGAN,其优化目标变成:
点击查看大图
对于cGAN,其实现也是比较容易的,只需要在G和D的输入中加入
y即可以,如下图所示:
点击查看大图
GAN和cGAN是后面要介绍的pix2pix和CycleGAN模型的基础,两者本质都是GAN架构的应用。
02