图像处理的很多问题都是将一张输入的图片转变为一张对应的输出图片,比如灰度图、彩色图之间的转换、图像自动上色等。Pix2Pix就是在CGAN基础上升级的,只是条件变成了图片而不再是一个简单的标签。下面就是一些通过Pix2Pix GAN实现的图像翻译示例。

Pix2Pix GAN的一些例子

什么是Pix2Pix GAN?

普通的GAN接收的G部分(生成器)的输入是随机向量,输出是图像。

D部分(判别器)接收的输入是图像(生成的或是真实的),输出是对或者错这样G和D联手就能输出真实的图像。

Pix2pix GAN本质上是一个CGAN,图片x作为此cGAN的条件需要输入到G和D中。

Pix2Pix论文里的示例

Pix2Pix生成器设计

如果使用普通的卷积神经网络,那么会导致每一层都承载保存着所有的信息,这样神经网络很容易出错。

在Pix2Pix中,是使用U-Net模型。在文章『U-net图像语义分割模型(5):unet模型创建及训练』中就简要介绍个U-Net模型。但是是使用TensorFlow写的,本系列使用的是PyTorch框架进行代码的编写。

Pix2Pix生成器设计

Pix2Pix判别器设计

但是D的输入却应该发生一些变化,因为除了要生成真实图像之外,还要保证生成的图像和输入图像是匹配的。

于是D的输入就做了一些变动。D中要输入成对的图像。这类似于conditonalGAN。

在Pix2Pix论文中,判别器实现为Patch-D,所谓Patch,指无论生成的图像有多大,将其切分为多个固定大小的Patch输入进D去判断。

Pix2Pix判别器设计

损失函数

D网络损失函数(判别器)

  • 输入真实的成对图像希望判定为1
  • 输入生成图像与原图像希望判定为0

G网络损失函数(生成器)

  • 输入生成图像与原图像希望判定为1

在原始论文中,除了GAN的loss,还增加了L1的loss。最终的损失函数如下图所示:

$$ G^*=\arg\min\limits_G\max\limits_D\mathcal{L}_{cGAN}(G,D)+\lambda\mathcal{L}_{L1}(G) $$


版权声明 ▶ 本网站名称:陶小桃Blog
▶ 本文链接:https://www.52txr.cn/2023/ispix2pix.html
▶ 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行核实删除。
▶ 转载本站文章需要遵守:商业转载请联系站长,非商业转载请注明出处并附带原文链接!!
▶ 站长邮箱 [email protected][email protected] ,如不方便留言可邮件联系。

小陶的个人微信公众号

学累了就来张美女照片养养眼吧,身体是革命的本钱,要多多休息哦~ 随机美女图片

最后修改:2023 年 07 月 01 日
如果觉得我的文章对你有用,请随意赞赏!