[Pytorch系列-64]:生成对抗网络GAN – 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:第1章关键参考信息1.1项目详细论文:Image-to-ImageTranslationwithConditionalAdversarialNetworks论文链接:https://arxiv.org/abs/1611.07004代码链接:https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix1.2GAN工作原

大家好,又见面了,我是你们的朋友全栈君。

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122044727


目录

第1章 关键参考信息

1.1 项目详细

1.2 GAN工作原理

1.3 pix2pix的演进

第2章 pix2pix简介

2.2 什么是图像到图像的翻译?

2.3 pix2pix的基本思想

第3章 pix2pix的算法

3.1 pix2pix网络

3.2 G网络的训练与优化目标(使用训练样本)

3.3 D网络的训练与优化目标(使用训练样本)

3.4 pix2pix网络的对抗

3.5 训练好后模型的输出 

第4章 pix2pix网络的使用


第1章 关键参考信息

1.1 项目详细

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

1.2 GAN工作原理

[人工智能-深度学习-61]:生成对抗网络GAN – 图像融合的基本原理与案例_文火冰糖(王文兵)的博客-CSDN博客作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:目录第1章 什么是图像融合1.1 什么是常规的图像合成1.2 图像融合的系统框架1.3 图像融合的案例第2章图像融合涉及到的基本概念第3章 图像融合的常见方法3.1直接剪切粘贴技术(cut-and-paste)3.2 Alpha融合3.3 多频段融合参考:第1章 什么是图像融合1.1 什么是常规的图像合成图像融合(Image Fusion)是指…[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]https://blog.csdn.net/HiWangWenBing/article/details/121939961

1.3 pix2pix的演进

[人工智能-深度学习-63]:生成对抗网络GAN – 图片创作:普通GAN, pix2pix, CycleGAN和pix2pixHD的演变过程_文火冰糖(王文兵)的博客-CSDN博客作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122015783目录第1章 传统计算机视觉基本原理(图像的建模)1.1 传统的计算机视觉1.2 不足第2章 基于深度学习DNN的计算机视觉的基本原理(图像的判定)2.1 基于深度学习的计算机视觉DNN2.2 DNN的不足第3章 常规生成对抗网络GAN的基本原理(不受控.[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]https://blog.csdn.net/HiWangWenBing/article/details/122015783

第2章 pix2pix简介

2.1 概述

论文发表在CVPR2017,简称pix2pix,是将GAN应用于有监督图像到图像翻译的经典论文,有监督表示训练数据是成对的。相当于给输入图片打了一个标签图片。有了标签图片,神经网络在图像转换的时候,就有了学习的依据,知道如何在输入图片和输出图片之间建立某种关联。

2.2 什么是图像到图像的翻译?

图像到图像的翻译(image-to-image translation)是GAN很重要的一个应用方向,其实就是基于一张输入图像得到想要的输出图像的过程,可以看做是图像和图像之间的一种映射(mapping)。

我们常见的图像修复、超分辨率其实都是图像到图像翻译的例子。

这篇论文列举了一些图像到图像翻译的例子,包括从标签到图像的生成、图像边缘或轮廓到完整图像的生成等过程。如下图所示:

在这里插入图片描述
 

2.3 pix2pix的基本思想

GAN算法的生成器是基于一个随机噪声生成图像,难以控制输出。

pix2pix基于GAN实现图像翻译,更准确地讲是基于cGAN(conditional GAN,也叫条件GAN),因为cGAN可以通过添加条件信息指导图像生成,因此在图像翻译中就可以将输入图像作为条件,学习从输入图像到输出图像之间的映射,从而得到指定的输出图像。

其他基于GAN完了来做图像翻译,基本上通过方式来指导或约束图像生成,而不是利用cGAN,这是pix2pix和其他基于GAN做图像翻译的差异。

第3章 pix2pix的算法

3.1 pix2pix网络

pix2pix算法的示意图如下图所示:

在这里插入图片描述

在上图中,以基于图像边缘或轮廓生成完整图像为例,介绍pix2pix的工作流程(过程):

前置说明:

输出图像用y表示,输入图像的边缘图像用x表示,pix2pix在训练时需要成对的图像(x和y)。

步骤:

(1)x作为生成器G的输入得到生成图像G(x)

改进之一:用有意义的图像替代GAN网络的随机噪声。

GAN网络的随机噪声z在图中并未画出,去掉z不会对生成效果有太大影响,但假如将x和z合并在一起作为G的输入,可以得到更多样的输出。

[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

但这也就产生了新的问题:我们怎样建立输入和输出的对应关系?

  • 此时G网络的输出如果是下面这样,D网络会判断是真图:

[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

  •  此时G网络的输出如果是下面这样,D网络亦然会判断是真图:

[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

 很显然,此时输出的猫,与输入的猫之间,虽然都是猫这种抽象关系,属于“神似”,但“形状不相似”。怎么才能让输出与输入之间有“形似”呢?

(2)将G(x)和x基于通道维度合并在一起,送入判决网络。

改进之二:判决网络的输入不仅仅是生成图片,还包括输入图片。

(3)判决器对合并后的图片进行判决

判别器D,根据输入得到预测概率值,该预测概率值表示输入是否是一对真实图像,概率值越接近1表示判别器D越肯定输入是一对真实图像。

改进之三:判决器判决生成图片是否为真实图片的条件

  • 输出图片符合真实图片的特征
  • 输出图片与输入图片具备成对的特征。

(4)判决网络的训练

改进之四:用于训练的样本图片必须是成对出现的图片,而不是单独的图片,如下图所示:

也就是说,pix2pix的判决网络,不仅仅是判决输入图片局部真实图片的特征,还就要判决,输入与输出整合在一起之后是否为真实图片。

也就说,判别器D的训练目标就是:

  • 在输入不是一对真实图像(x和G(x))时输出小的概率值(比如最小是0),
  • 在输入是一对真实图像(x和y)时输出大的概率值(比如最大是1)。

(5)生成器G的训练

生成器G的训练目标就是:使得生成的G(x)和x作为判别器D的输入时,判别器D输出的概率值尽可能大,这样就相当于成功欺骗了判别器D。

与GAN网络相比,生成器G并没有改进 。

3.2 G网络的训练与优化目标(使用训练样本)

[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

 G网络的训练与优化目标: 尽可能的伪装

  • 浅蓝色网络:在锁定D网络的情况下,通过调整W/B参数,确保G网络生成的图片,能够骗过D网络,使得D网盘判断为真实图片,与标签图片“神似”
  • 浅绿色网络:在锁定D网络的情况下,通过调整W/B参数,确保G网络生成的图片,与标签图片“形似”。
  • 综合loss_G最小

3.3 D网络的训练与优化目标(使用训练样本)

[Pytorch系列-64]:生成对抗网络GAN - 图像生成开源项目pytorch-CycleGAN-and-pix2pix : 有监督图像生成pix2pix的基本原理[通俗易懂]

 D网络的训练与优化目标能够尽快识别真假。

  • 在锁定G网络的情况下,如果D网络的输入=真实输入图片+生成图片, 则判决为假
  • 在锁定G网络的情况下,如果D网络的输入=真实输入图片+成对图片, 则判决为真
  • 综合loss_D最小

3.4 pix2pix网络的对抗

pix2pix与GAN网络一样,通过G网络与D网络的对抗,不断的优化和演进,最后得到最优的网络。

3.5 训练好后模型的输出 

(1)创作的图片:来自G网络

(2)仿真效果(概率):来自D网络

第4章 pix2pix网络的使用

最后放一下pix2pix的生成图像,可以基于图像边缘得到图像、基于语义分割的标签得到图像、背景去除、图像修复等。更多结果可以参考原论文,效果还是很不错的。

(1)案例1:输入脸部轮廓,输出完整的脸部图片

在这里插入图片描述

(2)输入街景轮廓,输出完整的街景图片

在这里插入图片描述


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122044727

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128296.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 公司怎么建局域网_大型局域网组建教程

    公司怎么建局域网_大型局域网组建教程什么是局域网局域网(LocalAreaNetwork,LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程

  • JAVA反射机制

    JAVA反射机制

  • SDIO WIFI_主板usb接口没反应

    SDIO WIFI_主板usb接口没反应SDIO接口的WIFI:1、WIFI是一个sdio卡设备2、具备wifi功能SDIO接口的WIFI驱动就是在WIFI外面套上一个SDIO驱动的外壳SDIO部分代码结构:drivers/mmc下有mmc卡、sd卡、sdio卡驱动。|-mmc||-card//因为记忆卡都是块设备,当然需要提供块设备的驱动程序,这部分是实现将你的SD卡如何实现为块设备的||-core//是整个MMC的核心存,

  • Java求最大公约数和最小公倍数[通俗易懂]

    Java求最大公约数和最小公倍数[通俗易懂]importjava.util.Scanner;/**输入两个数,求这两个数的最大公约数和最小公倍数*算法思想:(非递归)最大公约数和最小公倍数*最大公约数:for循环从二者最小的数到1遍历,能共同被整除的最大整数即为最大公约数*最小公倍数:最大公约数*两个数与最大公约数的商*/publicclassMain{staticScan…

  • 流量精灵刷流量的实例教程

    流量精灵刷流量的实例教程流量精灵大概是去年的这个时候出来的一款提升网站访问量的软件,由于软件比较优秀,当时我就及时关注这款软件,现在时隔一年的时候,流量精灵在低调的发展下,版本也更新到了2.1.7。而以前只是写了一下流量精灵的测评文章,感觉已不能满足大家的需求,所以今天为广大的新手及新站长朋友写上详细的使用教程。流量精灵的功能介绍:主要就是刷流量的。这里的流量主要是指网站的流量,网站流量简单一点说就是访…

  • 动态规划经典题目_动态规划详解

    动态规划经典题目_动态规划详解一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。问总共有多少条不同的路径?示例 1:输入:m = 3, n = 7输出:28示例 2:输入:m = 3, n = 2输出:3解释:从左上角开始,总共有 3 条路径可以到达右下角。向右 -> 向下 -> 向下向下 -> 向下 -> 向右向下 -> 向右 -&gt

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号