简单理解Pix2Pix

论文名:Image-to-Image Translation with Conditional Adversarial Networks
论文地址:https://arxiv.org/abs/1611.07004
代码链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix


Pix2Pix是做什么的

图像风格迁移,一个例子如下所示:
在这里插入图片描述

即,输入一张图像,输出一张风格改变后的图像。


Pix2Pix的网络结构

在这里插入图片描述
在训练的时候,输入为一个图像对,包含待变换的原始图像 x x x,以及相应的变换后的真值 y y y。实际使用中可能还会有一个额外的噪声输入 z z z,以提升输出结果的多样性。

Pix2Pix的一个关键思想是,判别器在输入时不仅只包含生成器的预测结果 G ( x ) G(x) G(x),而且包含原始图像 x x x,这样就可以限制生成器的预测结果应与原始图像的内容相匹配(而不是随便生成张"看起来真实"的图像来欺骗判别器)。从这里可以看到,Pix2Pix属于一种条件GAN,其中的条件是原始图像 x x x自身。

至于网络的具体结构,生成器采用的是UNet,而判别器采用的是PatchGAN。


Pix2Pix的损失函数

总的损失函数如下所示: G ∗ = arg ⁡ min ⁡ G max ⁡ D L c G A N ( G , D ) + λ L L 1 ( G ) G^{*}=\arg \min _{G} \max _{D} \mathcal{L}_{c G A N}(G, D)+\lambda \mathcal{L}_{L 1}(G) G=argGminDmaxLcGAN(G,D)+λLL1(G) 可以发现包含两个部分,条件GAN损失 L c G A N ( G , D ) \mathcal{L}_{c G A N}(G, D) LcGAN(G,D)与L1损失 L L 1 ( G ) \mathcal{L}_{L 1}(G) LL1(G)

先看简单的 L L 1 ( G ) \mathcal{L}_{L 1}(G) LL1(G)。该损失函数只作用在生成器上,用于约束生成图像与真实图像 y y y之间的差异,具体来说的话可以简单理解为边缘对齐与颜色还原 L L 1 ( G ) = E x , y , z [ ∥ y − G ( x , z ) ∥ 1 ] \mathcal{L}_{L 1}(G)=\mathbb{E}_{x, y, z}\left[\|y-G(x, z)\|_{1}\right] LL1(G)=Ex,y,z[yG(x,z)1] 再看 L c G A N ( G , D ) \mathcal{L}_{c G A N}(G, D) LcGAN(G,D),这个的作用就是进行对抗训练了: L c G A N ( G , D ) = E x , y [ log ⁡ D ( x , y ) ] + E x , z [ log ⁡ ( 1 − D ( x , G ( x , z ) ) ] \mathcal{L}_{c G A N}(G, D)= \mathbb{E}_{x, y}[\log D(x, y)]+\mathbb{E}_{x, z}[\log (1-D(x, G(x, z))] LcGAN(G,D)=Ex,y[logD(x,y)]+Ex,z[log(1D(x,G(x,z))]


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值