chapter 9 pix2pix模型与自动上色技术

本章主要讲解2方面的内容:1)cGAN和pix2pix的原理;2)tensorflow下pix2pix的实现;

一、cGAN 和 pix2pix

(一)cGAN

我们在上一章中,讲了GAN的原理,通过GAN能够生成一个新的样本,但是,GAN无法确切控制样本的类型。本节讲的cGAN能够有效解决这个问题,如,只要给cGAN(conditional generative adversarial network)一个样本类型,cGAN就能生成相对应的样本。下面,我们探讨一下其具体工作原理:
在展开论述前,首先回顾一下GAN的输入和输出:

  • 生成器G,输入为一个噪声z,输出为一个图像G(z);
  • 判别器D,输入为一个图像x,输出该图像为真实的概率D(x);
  • 在GAN中的损失函数为:V(D,G) = Ex~px(data)[logD(X)] + Ez~p(z)[ln(1-D(G(z)))]
    与GAN相比,cGAN的输入和输出如下:
  • 生成器G,输入为一个噪声z,一个条件y,输出符合该条件的图像G(z|y);
  • 判别器D,输入为一个图像x,一个条件y,输出该图像在该条件下为真实的概率D(x|y);
  • 在cGAN中的损失函数为:V(D,G) = Ex~px(data)[lnD(x|y)] + Ez~p(z)[ln(1-D(G(z|y))]
    从上述对比可以看出,cGAN与GAN相比,其input中多了一个条件y,即要生成的数据类别,通过y的输入,可以控制cGAN生成图片的类别。
    以生成数字为例,当向cGAN中输入一个条件y=3 和 一个噪声z 时,cGAN将生成一个“数字3”的image。
    以下为cGAN的工作示意图:
(二)pix2pix

我们都知道“机器翻译”,比如将中文翻译成英文,在图像领域,也有类似的图像翻译问题,比如:
将街景的标注图像变为真实照片;
将建筑标注转换为照片;
将卫星图像转换为地图;
将白天的图片转换为夜晚的图片;
将边缘轮廓线转换为真实物体;

所谓pix2pix原理,就是利用cGAN的结构,来实现这种“图像翻译”功能,其具体工作原理,如下图所示:
pix2pix同样由G,D两类网络组成,假设我们想要将Y类的图像转换为X类的图像,则G,D的任务分别如下:
G的输入是一个Y类图像(Y相当于cGAN中的条件输入y),其输出为G(y);
D的输入是X类图像x,Y类图像y,D需要判断x是否为y相对应的图像,并输出一个概率值。
pix2pix中,与cGAN较大的一个不同点是,G的输入中,没有噪声z,这是因为,在实验中发现,z的输入与否,对生成图像并不会造成太大影响,因此,为了简洁,在pix2pix的G网络中,将z省去了。
以下为pix2pix的网络结构:

有了D,G网络之后,便可对pix2pix定义类似于cGAN的损失函数LcGAN,并且,还可在此基础上,在加一个损失,即:“生成图像和真实图像之间的L1损失 或 L2损失”。该项的加入,可以加快模型收敛以及提高生成图像的精度。
L1损失可以表示为:||x - G(y) ||1;
下图依次为:input image y,真实图像x,使用L1损失,使用cGAN损失,使用LcGAN + L1损失,训练生成的图像对比:

从上图可以看出,L1 + LcGAN 损失,生成图像最好,LcGAN次之;
在pix2pix中,除了:1)在G网络中忽略 噪声z 的输入;2)对损失函数加入L1;3)还对判别网络做了一定的改动,即,在cGAN中,是通过整张图片计算probability,而在pix2pix中,则是通过PatchGAN,来计算图像的probability。所谓PatchGAN,是对图像中每个NxN小块计算概率值,然后在将这些概率求平均值作为整体的输出。这样做,可以加快计算速度以及加快收敛。实验证明,只要NxN选取得当,可以兼顾“生成图像质量”和“计算速度”。

二、Tensorflow中的pix2pix模型

在本节中,主要对pix2pix的实现code进行解析,具体列表如下:
download_dataset.py
pix2pix.py

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sarah ฅʕ•̫͡•ʔฅ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值