pix 2 pix 简介 cGANs | 走向 AI
Pix2Pix 网络基本上是一个条件 GANs****【cGAN】学习从输入图像到输出图像的映射。你可以在我之前的帖子这里和它的应用这里阅读条件句。在这篇文章中,我将试着解释一下 Pix2Pix 网络。
https://arxiv.org/pdf/1611.07004.pdf
图像到图像转换是将图像的一种表示转换成另一种表示的过程。
发电机网络采用基于 U-Net 的架构。 U-Net 的架构类似于自动编码器网络,除了一点不同。 U-Net 和自动编码器网络都有两个网络编码器和解码器。
优信网的架构
- U-Net 的网络在编码器层和解码器层之间有跳跃连接。
- 如图所示,第一层编码器的输出直接通过传到最后一层解码器,第二层编码器的输出传到倒数第二层解码器,以此类推。
- 我们来考虑一下,如果 U-Net 的(包括中间层)总共有 N 层,那么从编码器网络的第 k 层到解码器网络的第(N-k+1)层会有一个跳跃连接。其中 1 ≤ k ≤ N/2。
自动编码器的架构
- 如图所示自动编码器在编码器层和解码器层之间没有跳跃连接。
- 发电机 T21 网络由这两个网络组成。
- 编码器网络是一个下采样器。
- 解码器网络是一个上采样器。
发电机的结构
- 发生器网络的编码器网络有七个卷积块。
- 每个卷积块都有一个卷积层,后跟一个 LeakyRelu 激活函数。
- 除了第一卷积层之外,每个卷积块还具有批量归一化层。
- 发生器网络的解码器网络有七个上采样卷积块。
- 每个上采样卷积块具有上采样层,其后是卷积层、批量归一化层和 ReLU 激活函数。
这里是一个发电机网络中的六个跳跃连接。串联沿着通道轴发生。
- 第一个编码器模块的输出连接到第六个解码器模块。
- 第二个编码器模块的输出连接到第五个解码器模块。
- 第三个编码器模块的输出连接到第四个解码器模块。
- 第四个编码器模块的输出连接到第三个解码器模块。
- 第五个编码器模块的输出连接到第二个解码器模块。
- 第 6 个编码器模块的输出连接到第 1 个解码器模块。
鉴频器网络采用 PatchGAN 架构。PatchGAN 网络包含五个卷积块。
鉴频器架构
甘的建筑
Pix2Pix 是一个条件 GANs。条件 GANs 的损失函数可以写成如下形式。
条件甘的损失函数
我们必须最小化重建图像和原始图像之间的损失。为了使图像不那么模糊,我们可以使用 L1 或 L2 正则化。
- L1 正则化是每个数据点的绝对误差之和。
- L2 正则化是每个数据点的平方损失之和。
- 对于单个图像,L1 正则化损失函数可以如下所示。
L1 正则化损失函数
其中 y 是原始图像,G(x,z)是由生成器网络生成的图像。L1 损失通过原始图像的所有像素值和生成图像的所有像素值之间的所有绝对差的总和来计算。
Pix2Pix 的最终损失函数如下所示。
Pix2Pix 的总损失函数
伴随 jupyter 本帖的笔记本可以在Github上找到。
Pix2Pix cGANs 可用于将黑色&白色图像转换为彩色图像,将草图转换为照片,将白天图像转换为夜晚图像,将卫星图像转换为地图图像。
我希望这篇文章能帮助你开始构建自己的pix 2 pixcgan。我认为它至少会提供一个关于pix 2 pixcgan 的很好的解释和理解。**