对于pix2pix的介绍以及实现

article/2025/8/27 4:57:02

最近读了pix2pix的相关文章,也是关于对抗生成的。它与之前接触的GAN有挺大的不同。比如从训练集来说,它是进行成对的训练(接下来会介绍),损失函数的不同比如加入了L1损失,以及生成器的输入,以及判别器都有了很大的不同,接下来会为大家一一介绍。

1  生成器UNET

首先先介绍生成器的部分,生成器使用了UNET的生成网络结构如下图

这个图我是在github中截取的。简单的介绍一下生成器的结构。首先从上图最左边输入一张图片,经过两次的卷积变成64个通道,紧接着经过一次池化层不改变通道数,只是把图像的大小变为原来的一半,紧接着操作类似,直到变成最底下的1*512*32*32的这种类型(batchsize=1,通道数为512,图片大小32*32)再次经过两个卷积层变成1*1024*28*28这种类型。之后在看中间的这个箭头它的意思就是合并举个例子就是说,图片最下面的第一个箭头它是由左边的1*512*64*64和右边的经过上采样之后得到的图片1*512*56*56进行通道的拼接。可以看到这里的图片的大小并不是不同的,经过查资料发现可能是做了一些修剪,之后接下来的过程以此类推,不断的进行拼接,最后生成图像。

到这里其实已经没有什么问题了,但是在实现代码中发现,我的生成器结构与文中的略有不同比如我没有使用过池化层或者是连续的两次卷积,经过请教其实多一点少一点并不会有多大的问题,只要好用就行了,如果你的效果比他还好的话,那么就相当于一个小小的创新,不要太在意这些细节,抓住主要的即可。

2  判别器PATCHGAN

刚读文章的时候,文章里介绍会把图片分割成70*70的图片,判断每一个图片的真实值,之后再取平均。我一开始以为是把图片分成70块,判断每一块的真实值,但实际在代码中却是一个个卷积层,并没有看到分割的过程,所以查了一查后来发现分割操作其实卷积层已经完成了,这里涉及到感受野的部分,你可以把它理解一个卷积核可以覆盖的范围,经过最后的计算,最后确实是70*70的大小。这里不过多的介绍感受野,可能以后会写一些关于这部分的内容下面给出鉴别器的结构图:

 3  pix2pix结构图

首先先把结构图给大家看看:

 首先从左边生成器开始讲,我认为它的结构和cgan相同,首先是一个真实的轮廓或者是标签图片放入生成器中进行训练,之后再将生成的假图片和真实的也就是刚刚放入生成器中的真实轮廓放入鉴别器中,在代码中是合并在一起变成6个通道进行训练。鉴别器是放入真实的图片和它的轮廓图片放在一起进行训练。整体结构较为简单,实际效果还不错。具体的损失函数比较简单就是一个生成对抗损失加上一个生成图片和真实图片的L1损失加起来,放入生成器优化器中进行训练。

 4  实验结果

最后给出我的运行结果:

 如果大家需要这个代码,大家可以在评论区回复,我再把链接发给大家,因为这是很久之前跑的程序,找起来还是有点麻烦。

大家和我要的代码我一般看见了就发了,一般三到七天吧因为我不经常看,大家要是收到的话可以回我一下,我怕大家没有收到。之后我自己其实也学了一些其他的gan比如stylegan之类的文章,只是因为其他人写的特别好,我就没怎么写,大家有关gan的问题可以问问我,如果我知道的话我一定会给大家解答的,gan真的是比较有意思。


http://chatgpt.dhexx.cn/article/j6AQDGSl.shtml

相关文章

GAN系列之 pix2pixGAN 网络原理介绍以及论文解读

一、什么是pix2pix GAN 论文:《Image-to-Image Translation with Conditional Adversarial Networks》 pix2pix GAN主要用于图像之间的转换,又称图像翻译。图像处理的很多问题都是将一张输入的图片转变为一张对应的输出图片,端到端的训练。 …

pix2pix算法原理与实现

一、算法名称 Pix2pix算法(Image-to-Image Translation,图像翻译) 来源于论文:Image-to-Image Translation with Conditional Adversarial Networks 二、算法简要介绍、研究背景与意义 2.1介绍 图像处理、图形学和视觉中的许多问题都涉及到将输入图像转换为相应…

Java字符串按照字节数进行截取

本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java字符串按照字节数进行截取 - joshua317的博客 一、问题 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个&#xff0…

JAVA中截取字符串中指定字符串

JAVA中截取指定字符串 举个例子,需要截取“abcdef”中的“cde”。 场景1:获取该字符串的下标。输出“cde”。 public static void main(String[] args) {// TODO Auto-generated method stubString data "abcdef";String out data.substri…

Java字符串截取 方法

在 String 中提供了两个截取字符串的方法,一个是从指定位置截取到字符串结尾,另一个是截取指定范围的内容。 方法的重载: public String substring(int beginIndex) {}public String substring(int beginIndex, int endIndex) {}例子演示&am…

java截取某个字符之前的字符串

1.截取"-"之前字符串 代码如下(示例): //java截取某个字符之前的字符串 public static void substringTest01(){String str "1627579713907351556-202302200018";//截取-之前字符串String str1 str.substring(0, str.…

java中字符串截取,调用substring()方法

substring() 方法返回字符串的子字符串。在java中 substring()方法有两种用法, 第一种 public String substring(int beginIndex) 第二种 public String substring(int beginIndex, int endIndex) 参数的意思 beginIndex -- 起始索引(包括&#xff09…

java截取指定字符串中的某段字符

利用字符串的substring函数来进行截取。 其中,substring函数有两个参数: 1、第一个参数是开始截取的字符位置。(从0开始) 2、第二个参数是结束字符的位置1。(从0开始) indexof函数的作用是查找该字符串中…

Java截取某个特殊字符前后的字符串

思路:想要根据某个特殊字符进行截取字符串,最终是要用到substring()函数,那么关键,是要找到特殊字符所在的位置,也就是要用到函数indexOf()和laseIndexOf()两个函数。 举例: String str "abc_def_gh…

java字符串截取后几位

字符串中截取后几位,或从后面数第几位到第几位! public class demo4 {public static void main(String[] args) {String str "(P)UA000110222(S)4123222200005";//截取后四位String substring str.substring(str.length() - 4);System.out.…

Java字符串截取,截取某个字符之前或者之后的字符串

提示:java截取某个字符之前或者之后的字符串 文章目录 一、java截取某个字符之前或者之后的字符串:1. 截取"_"之前字符串2. 截取"_"之后字符串 二、截取正数第二个"_"后面的内容 一、java截取某个字符之前或者之后的字符串: 1. 截取…

java实现爬虫_手把手教你从零开始用Java写爬虫

本文将手把手地教大家从零开始用Java写一个简单地爬虫! 目标 爬取全景网图片,并下载到本地 收获 通过本文,你将复习到: IDEA创建工程IDEA导入jar包爬虫的基本原理Jsoup的基本使用File的基本使用FileOutputStream的基本使用ArrayLi…

java爬虫 webcollector_Java爬虫-WebCollector | 学步园

爬虫简介: WebCollector是一个无须配置、便于二次开发的JAVA爬虫框架(内核),它提供精简的的API,只需少量代码即可实现一个功能强大的爬虫。 爬虫内核: WebCollector致力于维护一个稳定、可扩的爬虫内核,便于开发者进行…

Java爬虫高级教程-动力节点

作为网络爬虫的入门采用Java开发语言,内容涵盖了网络爬虫的原理以及开发逻辑,Java网络爬虫基础知识,网络抓包介绍,jsoup的介绍与使用,HttpClient的介绍与使用等内容。本课程在介绍网络爬虫基本原理的同时,注…

java 爬虫处理数据_Java语言实现爬虫实战

引言 网络上有许多信息,我们如何自动的获取这些信息呢?没错,网页爬虫~! 在这篇博文中,我将会使用java语言一步一步的编写一个原型的网页爬虫,其实网页爬虫并没有它听起来那么难。 紧跟我的教程,我相信你会在…

2021年Java爬虫技术教程(一小时实现)

Java爬虫开发 操作要点 正则表达式 Java网络通信:URL IO流 Map—HashMap 字符串操作 异常处理 项目已上传本人码云(gitee)传送门 如果这篇博客对你有一点点小帮助,希望您能给我来波一键三连; 前言 python优点&am…

java 爬虫大型教程(一)

java 爬虫大型教程(一) 写在开始前,既然是大型教程,那就从最初始的环境变量开始搭建说起。 电脑环境:我的电脑是macbook pro,因此系统环境变量配置是和Windows不一样的,如果你的电脑是Windows系统&#x…

java 爬虫 sessionid_java爬虫实战之模拟登陆

使用jsoup工具可以解析某个URL地址、HTML文本内容,是java爬虫很好的优势,也是我们在网络爬虫不可缺少的工具。本文小编带领大家使用jsoup 实现java爬虫模拟登陆,通过省力的API,很好的实现java爬虫模拟登陆。 一、使用工具&#xf…

java爬虫框架视频_Java爬虫博客采集系统视频教程

资源介绍 教程名称:Java爬虫博客采集系统视频教程xa0 教程目录: 【java爬虫博客采集系统】视频教程第00讲[20分钟] - 系统演示xa0 【java爬虫博客采集系统】视频教程第01讲[08分钟] - 博客爬虫模块Axa0 【java爬虫博客采集系统】视频教程第02讲[21分钟] …

Java版爬虫,爬网页,爬小说,完整教程,一看就会

昨天小编看到了一部不错的小说,但是没有办法下载,只能一页一页地看,于是想到了爬虫,现在Java也有了爬虫的框架,很简单,就算小白也能轻易入门,话不多说,直接上手。 1.首先引入相关依…