Pix2Pix理论与实战

 本文为🔗365天深度学习训练营 中的学习记录博客
 原作者:K同学啊|接辅导、项目定制

我的环境:

1.语言:python3.7

2.编译器:pycharm

3.深度学习框架Pytorch 1.8.0+cu111


一、引入

  在之前的学习中,我们知道GAN网络可用作图像的生成,但GAN的一个问题是它无法对生成模型生成的数据进行控制,为了解决这个问题,我们学习了条件GAN,它 提出了将在生成模型和判别模型中都加入条件信息来引导模型的训练,实现了生成内容的可控。

  我们今天所要学习的 Pix2Pix是一个以CGAN为基础,用于图像翻译的通用框架,旨在将一个图像域中的图像转换成另一个图像域中的图像,它实现了模型结构和损失函数的通用化,并在诸多图像翻译数据集上取得了令人瞩目的效果。

二、背景知识

2.1、图像翻译

图像内容:是指图像中呈现出来的视觉信息或图案,它可以包括物体、场景、人物等。图像内容是通过像素的排列和颜色等信息来呈现的,是图像的可视化表达。

图像域:是指图像在空间中的范围或维度。在二维图像中,图像域通常由横轴和纵轴组成,表示图像的宽度和高度。图像域的概念在图像处理和计算机视觉领域中经常被使用,用于描述图像的空间特征和位置信息。

图像翻译:是将一种语言的图像内容翻译成另一种语言的过程。这可以涉及到将图像中的文本、标志、物体等翻译成目标语言。图像翻译通常使用计算机视觉和自然语言处理技术,结合图像识别和机器翻译的方法来实现。

2.2、CGAN

CGAN引入了条件的概念。在普通的GAN中,生成器是无条件地生成数据,而在CGAN中,生成器的输出受到条件信息的影响。这个条件信息可以是类别标签、文本描述等,使得生成器能够按照给定条件生成相应的数据。

具体来说,CGAN的训练过程中,生成器的输入不仅包括一个随机噪声向量,还包括一个条件向量,用于指导生成过程。判别器则需要判断输入的数据是真实数据还是生成器生成的数据,并考虑条件信息。通过这种方式,CGAN可以更有针对性地生成符合特定条件的数据,例如生成特定类别的图像。

CGAN的应用包括图像生成、图像转换、风格迁移等领域。通过引入条件信息,CGAN使得生成模型更具有控制性,能够更灵活地生成符合用户需求的数据。

2.3、U-Net

U-Net是一种用于图像分割任务的卷积神经网络架构,由医学图像分割领域的研究者提出,其结构特点使得它在分割任务中表现出色。U-Net的名字来源于其网络结构的形状,其整体形状类似字母 "U"。

以下是U-Net网络的主要特点和组成部分:

  1. 编码器-解码器结构: U-Net采用了编码器-解码器的结构。编码器部分用于捕获图像的上下文信息,通过卷积和池化操作逐渐减小空间分辨率。解码器部分则通过上采样和反卷积操作将编码器提取的特征图还原到原始图像的分辨率,以保留更多的空间信息。

  2. 跳跃连接(Skip Connections): U-Net引入了跳跃连接,将编码器的某一层的特征图与解码器对应层的特征图相连接。这种结构有助于传递更多的局部信息,帮助解码器更好地还原细节。

  3. U形结构: U-Net的整体结构形状呈现出“U”字形,由一个下采样路径和一个上采样路径组成。这样的结构使得网络能够同时关注图像的全局信息和局部细节,适用于图像分割任务。

  4. 最后的卷积层: U-Net的最后一层是一个卷积层,用于生成最终的分割结果。这一层通常采用 1x1 的卷积核,生成与输入图像相同分辨率的分割图。

  5. 应用领域: U-Net最初设计用于医学图像分割,如肺部和细胞图像的分割。然而,由于其优越的性能,U-Net被广泛应用于其他图像分割任务,包括道路分割、人体分割等。

总的来说,U-Net网络通过其独特的结构,特别是编码器-解码器结构和跳跃连接,使其在图像分割任务中表现出色,成为一个重要的图像分割模型。

三、Pix2Pix解析

  生成器G用到的是Unet结构,输入的轮廓图x编码再解码成真是图片,判别器D用到的是作者自己提出来的条件判别器PatchGAN,判别器D的作用是在轮廓图x的条件下,对于生成的图片G(x)判断为假,对于真实图像判断为真。 

3.1、损失函数

根据CGAN可以写出损失函数:

 生成器的作用是迷惑鉴别器,产生一个跟真图像相似的图像。Pix2Pix使用L1 loss生成高质量图像。

最终的目标函数为:
 

3.2、模型结构 

 生成器:

Pix2Pix生成器的结构是基于U-Net的编码器-解码器结构,并在此基础上进行了一些改进。下面是Pix2Pix生成器的主要组成部分和结构特点:

  1. 编码器(Encoder): Pix2Pix生成器的编码器部分负责捕获输入图像的上下文信息。通常采用卷积层和池化层,逐渐减小输入图像的空间分辨率,同时提取图像的特征。

  2. U-Net结构: 生成器的整体结构采用了U-Net结构,包括编码器和解码器。U-Net结构的特点是具有跳跃连接,将编码器的某一层的特征图与解码器对应层的特征图相连接。这有助于保留更多的局部信息,帮助生成器还原细节。

  3. 解码器(Decoder): 解码器部分通过上采样和反卷积操作将编码器提取的特征图还原到原始图像的分辨率。这一部分的目标是逐渐生成与目标图像相似的输出。

  4. 跳跃连接: 跳跃连接是U-Net结构的一个关键特点,在解码器的每一层都连接了相应编码器层的特征图。这样的连接有助于传递更多的局部信息,改善生成图像的质量。

  5. 生成层: 生成器的最后一层是一个卷积层,输出生成的目标图像。在Pix2Pix中,通常使用tanh激活函数来确保输出的像素值在[-1, 1]范围内。

判别器:
传统GAN蚕蛹整张图作为判别器的输入导致生成的图像普遍比较模糊。Pix2Pix将输入图像分块,然后将这些图像块依次传递给判别器。这种方法被命名为PatchGAN。

四、代码运行

 

 Pix2Pix的缺点及总结:

  作者在论文中也承认,使用这样的结构其实学到的是xy的一对一映射。也就说,pix2pix就是对ground truth的重建:输入轮廓图→经过Unet编码解码成对应的向量→解码成真实图。这种一对一映射的应用范围十分有限,当我们输入的数据与训练集中的数据差距较大时,生成的结果很可能就没有意义,这就要求我们的数据集中要尽量涵盖各种类型。

   Pix2Pix通过生成对抗网络(GAN)进行图像到图像的转换。它通过对抗训练,结合条件生成,以学习输入图像和目标输出图像之间的映射关系。生成器的目标是生成逼真的目标图像,而判别器的任务是区分真实目标图像和生成器生成的伪造图像。Pix2Pix借用了U-Net结构,包括编码器和解码器,以及跳跃连接,以便更好地捕获局部信息。这种方法在图像生成和转换任务中取得了成功,广泛应用于图像翻译、语义分割到真实图像等领域。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/640286.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Haar小波下采样模块

论文原址:Haar wavelet downsampling: A simple but effective downsampling module for semantic segmentation - ScienceDirect 原文代码:HWD/HWD.py at main apple1986/HWD (github.com) 介绍 深度卷积神经网络 (DCNN) 通…

springboot中一些注解

springboot中一些注解 1:项目启动时会去扫描启动的注解,一般是启动时就想要被加载的方法: 2:springBoot中MSApplication启动类的一些其他注解: EnableAsync:这是一个Spring框架的注解,它用于开启方法异步调用的功能。当…

2017年认证杯SPSSPRO杯数学建模B题(第一阶段)岁月的印记全过程文档及程序

2017年认证杯SPSSPRO杯数学建模 跨年龄人脸识别模型的建立与分析 B题 岁月的印记 原题再现: 对同一个人来说,如果没有过改变面容的疾病、面部外伤或外科手术等经历,年轻和年老时的面容总有很大的相似性。人们在生活中也往往能够分辨出来两…

2.【SpringBoot3】用户模块接口开发

文章目录 开发模式和环境搭建开发模式环境搭建 1. 用户注册1.1 注册接口基本代码编写1.2 注册接口参数校验 2. 用户登录2.1 登录接口基本代码编写2.2 登录认证2.2.1 登录认证引入2.2.2 JWT 简介2.2.3 登录功能集成 JWT2.2.4 拦截器 3. 获取用户详细信息3.1 获取用户详细信息基本…

一周时间,开发了一款封面图生成工具

介绍 这是一款封面图的制作工具,根据简单的配置即可生成一张好看的封面图,目前已有七款主题可以选择。做这个工具的初衷来自平时写文章,都为封面图发愁,去图片 网站上搜索很难找到满意的,而且当你要的图如果要搭配上文…

【JavaEE进阶】 关于⽇志框架(SLF4J)

文章目录 🌳SLF4j🌲⻔⾯模式(外观模式)🚩⻔⾯模式的定义🚩⻔⾯模式的优点 🍃关于SLF4J框架🚩不引⼊⽇志⻔⾯🚩引⼊⽇志⻔⾯ ⭕总结 🌳SLF4j SLF4J不同于其他⽇志框架,它不是⼀个真正…

构建高效外卖系统:技术实践与代码示例

外卖系统在现代社会中扮演着重要的角色,为用户提供了便捷的用餐解决方案。在这篇文章中,我们将探讨构建高效外卖系统的技术实践,同时提供一些基础的代码示例,帮助开发者更好地理解和应用这些技术。 1. 技术栈选择 构建外卖系统…

BP蓝图映射到C++笔记1

教程链接:示例1:CompleteQuest - 将蓝图转换为C (epicgames.com) 1.常用的引用需要记住,如图所示。 2.蓝图中可以调用C函数,也可以实现C函数 BlueprintImplementableEvent:C只创建,不实现,在蓝图中实现 B…

C++提高编程---模板---类模板

目录 一、类模板 1.模板 2.类模板的作用 3.语法 4.声明 二、类模板和函数模板的区别 三、类模板中成员函数的创建时机 四、类模板对象做函数参数 五、类模板与继承 六、类模板成员函数类外实现 七、类模板分文件编写 八、类模板与友元 九、类模板案例 一、类模板 …

软件测试的需求人才越来越多,为什么大家还是不太愿意走软件测试的道路?

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

【动态规划】【C++算法】801. 使序列递增的最小交换次数

作者推荐 【动态规划】【广度优先搜索】【状态压缩】847 访问所有节点的最短路径 本文涉及知识点 动态规划汇总 数组 LeetCode801使序列递增的最小交换次数 我们有两个长度相等且不为空的整型数组 nums1 和 nums2 。在一次操作中,我们可以交换 nums1[i] 和 num…

路飞项目--03

二次封装Response模块 # drf提供的Response,前端想接收到的格式 {code:xx,msg:xx} 后端返回,前端收到: APIResponse(tokneasdfa.asdfas.asdf)---->{code:100,msg:成功,token:asdfa.asdfas.asdf} APIResponse(code101,msg用户不存在) ---…

学习笔记-李沐动手学深度学习(一)(01-07,概述、数据操作、tensor操作、数学基础、自动求导)

个人随笔 第三列是 jupyter记事本 官方github上啥都有(代码、jupyter记事本、胶片) https://github.com/d2l-ai 多体会 【梯度指向的是值变化最大的方向】 符号 维度 (弹幕说)2,3,4越后面维度越低 4…

Java 面向对象案例 02 (黑马)

代码: public class foodTest {public static void main(String[] args) {//1、构建一个数组food[] arr new food[3];//2、创建三个商品对象food f1 new food("apple","123",3.2,500);food f2 new food("pear","456",4…

临时工说:AI 人工智能化对于DBA 的工作的影响

这开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, Oceanbase, Sql Server等有问题,有需求都可以加群群内,可以解决你的问题。加群请联系 liuaustin3 ,(共1900人左右 1 2 3 4 5&#xf…

ChatGPT:关于 OpenAI 的 GPT-4工具,你需要知道的一切

ChatGPT:关于 OpenAI 的 GPT-4工具,你需要知道的一切 什么是GPT-3、GPT-4 和 ChatGPT?ChatGPT 可以做什么?ChatGPT-4 可以做什么?ChatGPT 的费用是多少?GPT-4 与 GPT-3.5 有何不同?ChatGPT 如何…

开源堡垒机JumpServer本地安装并配置公网访问地址

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统。JumpS…

ONLYOFFICE服务器无法连接,请联系管理员问题解决

1、现象 部署好了nextcloud和onlyoffice后,新建文本文档报错ONLYOFFICE服务器无法连接,请联系管理员。 用快捷键“F12”进入控制台,点开错误提示栏,找到有“api.js“文件,“https://ONLYOFFICED的地址/web-apps/apps/…

书法AI全自动切字+识别算法2.0版发布,草书篆书行书楷书识别准确率超过90%,覆盖书法单字30万张

我们开发的业界识别最准覆盖作品最全的书法AI小程序上线了 书法AI全自动切字识别算法2.0版发布,草书篆书行书楷书识别准确率超过90%,准确率甩百度OCR一条街,覆盖书法单字30万张,遥遥领先同行 我们还可为客户提供书法AI全自动切字a…

借助文档控件Aspose.Words,将 Word DOC/DOCX 转换为 TXT

在文档处理领域,经常需要将 Word 文档转换为更简单的纯文本格式。无论是出于数据提取、内容分析还是兼容性原因,将 Word(.doc、.docx)文件转换为纯文本(.txt)的能力对于开发人员来说都是一项宝贵的技能。在…