论文 Image-to-Image Translation with Conditional Adversarial Networks ( pix2pix ) 学习笔记

本文介绍了一种基于条件对抗网络(Conditional Adversarial Networks)的图像风格转换方法,通过结合cGAN损失与L1损失,实现了从输入图像到目标风格的通用转换,无需针对不同风格调整损失函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 模型简介

作者提出的条件对抗网络(Conditional Adversarial Networks)是一种解决图像风格转换(image-to-image translation)问题的通用方法。网络不仅学到了从输入图片到输出图片的映射,同时还学到了促成这种映射关系的损失函数。相比传统方法,作者提出方法对于不同风格图像的转换无需采用不同的损失函数,因此其通用性是这篇文章的亮点所在。


2. 方法实施

作者设计的损失函数为 conditional GAN(cGAN)的损失函数与传统 L1 损失的混合(L2 也可以,这里作者使用的是 L1)。前者促使输出图像尽量真实,难以被模型中的判别函数区分,后者则能够使输出图像尽量贴近 ground truth(仅有 L1 或 L2 会使得输出图像模糊,不真实)。

cGAN 的损失函数为:
LcGAN(G,D)=Ex,y[logD(x,y)]+Ex,z[log(1−D(x,G(x,z))]\mathcal{L}_{cGAN}(G,D)=\mathbb{E}_{x,y}[logD(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))] 作者在实验中还测试了在判别函数中不加入输入图像 xxx 的损失函数:
LcGAN(G,D)=Ex,y[logD(y)]+Ex,z[log(1−D(G(x,z))]\mathcal{L}_{cGAN}(G,D)=\mathbb{E}_{x,y}[logD(y)]+\mathbb{E}_{x,z}[log(1-D(G(x,z))]LcGAN(G,D)=Ex,y[logD(y)]+Ex,z[log(1D(G(x,z))] 下图比较形象地说明了 cGAN 的过程。与 GAN 不同的是在生成器和判别器中,都加入了输入图像 xxx(下图的生成器中并未画输入噪声 zzz,因为作者在实验中发现加入输入噪声 zzz,或者在模型内部加入噪声,均不能使结果产生随机性,这也是作者认为该方法存在的一个问题)。
在这里插入图片描述
L1 损失函数为:
LL1(G)=Ex,y,z[∥y−G(x,z)∥1]\mathcal{L}_{L1}(G)=\mathbb{E}_{x,y,z}[\lVert y-G(x,z) \rVert_1]LL1(G)=Ex,y,z[yG(x,z)1] 最终损失函数为:
G∗=argmin⁡Gmax⁡DLcGAN(G,D)+λLL1(G)G^*=arg\min\limits_G\max\limits_D\mathcal{L}_{cGAN} (G,D)+\lambda\mathcal{L}_{L1}(G)G=argGminDmaxLcGAN(G,D)+λLL1(G)

下图为不同损失函数的最终输出结果。
在这里插入图片描述


3. 网络结构

3.1. 生成器(U-Net)

网络中的生成器采用的是 U-Net 结构,如下图。
在这里插入图片描述
U-Net 中的 “跳连接” 能够使得输出获得更多的原始图像的细节信息。下图可以看出使用 Encoder-decoder 和 U-Net 的区别。
在这里插入图片描述

3.2. 判别器(PatchGAN)

网络中的判别器采用的是 PatchGAN 模型,即将图像切分成多个 N×NN \times NN×N patch 图片,判别器网络的输入图像的维度也是 N×NN \times NN×N,将所有 patch 图片都放进判别器中,并统计最终输出的平均值,来确定判别的真假情况。下图为采用不同大小的 patch 的最终输出结果。
在这里插入图片描述
PatchGAN 的优点是:

  1. 减少计算量;
  2. 更加关注图像细节信息,产生的最终输出图像边缘会更加丰富;
  3. 因为开始要把图象进行切分,因此对原始输入图像大小没有限制。训练时图像的大小和预测时图像大小可以不同,下图展现的结果就能说明这点。
    在这里插入图片描述
    训练时图像大小为 256×256256 \times 256256×256,预测时图像大小为 512×512512 \times 512512×512

4. 模型评估

  1. 在 Amazon Mechanical Turk(AMT)上进行测试,简单来说就是在某个平台上发布任务:弄出不同方法生成的一大堆图片,选择认为效果最好、最真实的图片。就像问卷调查一样,因为是有偿的,所以会有很多人去帮忙做任务。最后将调查结果进行统计,从而评估不同模型的好坏。
  2. 使用 FCN-score 。FCN 是用于语义分割的网络结构,作者认为对于好的生成图片,在 FCN 网络中应当会有更加准确的分割结果。

5. 更多图片效果展示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值