Pix2Pix如何工作?

一、说明

        在本指南中,我们将重点介绍 Pix2Pix [1],它是用于配对图像翻译的著名且成功的深度学习模型之一。在地理空间科学中,这种方法可以帮助传统上不可能的广泛应用,在这些应用中,我们可能希望从一个图像域转到另一个域,即图像到地图,RGB到多光谱图像,SAR到图像,DSM到图像等。

二、图像到图像的转换

        图像到图像转换被定义为在给定来自两组场景的训练数据量的情况下,将场景的一种可能的表示或风格转换为另一种的任务。目前 arcgis.learn 模块中实现了两种类型的图像到图像转换模型:Pix2Pix 和 CycleGAN。

图 1.使用 Pix2Pix 进行地图翻译的卫星图像

        

        为了遵循下面的指南,我们假设您对卷积神经网络 (CNN) 概念有一些基本的了解。您可以通过阅读这篇简短的论文“深度学习卷积算术指南”和用于视觉识别的卷积神经网络 [2] 课程来更新您的 CNN 知识。此外,我们建议阅读这篇关于生成对抗网络:概述的论文,并在阅读本文之前先阅读 fast.ai GAN 课程。Pix2Pix 是一种称为条件 GAN 的 GAN 架构。因此,了解 GAN 的基础知识对我们来说很重要。

三、生成对抗网络 (GAN) 的基础知识

        GAN 是一种通过对抗过程估计生成模型的框架,其中两个模型同时训练,称为生成器 (G) 和判别器 (D) 模型。生成器模型学习生成可能的数据,而判别器模型学习区分 G 生成的假数据和真实数据 [3]。因此,用于训练 GAN 的目标函数 and 可以表示为一个双人最小-最大博弈,其中生成器 G 的目标是最小化目标,而判别器 D 试图最大化目标。

        这种训练方法导致生成器 G 估计或生成样本数据,这些数据可以随着训练的进行而欺骗判别器 D,最终判别器 D 在区分真实和虚假数据方面变得很糟糕,其准确性降低。GAN的基本架构如图2所示[4]。

图2.基本 GAN 架构

 

四、Pix2Pix概要

        Pix2Pix 基于连接 GAN 架构。条件 GAN 或 cGAN 是一种 GAN 架构。cGAN 在来自两个领域的配对图像或场景集上进行训练,用于翻译。由于 GAN 被训练为从整套训练数据集生成假样本,因此通常会导致结果不佳。因此,我们根据输入图像或一些辅助信息对生成器和鉴别器进行条件调整,从而从目标域有针对性地生成图像。这使得 cGAN 适用于图像到图像的转换任务,在该任务中,我们以输入图像为条件并生成相应的输出图像。

        pix2pix 的架构由一个生成器 G 和一个鉴别器 D 组成。Generator G 是具有跳过连接的编码器-解码器网络或 U-Net,而 Discriminator 是一种补丁 GAN 架构,它以补丁的规模进行惩罚。

五、模型架构

5.1 U-Net发电机

        U-net最初被发明并首先用于生物医学图像分割。它的架构可以被广泛地认为是一个编码器网络,然后是解码器网络。

  • 编码器是架构图的前半部分(图 3)。它通常是像 VGG/ResNet 这样的分类网络,您可以在其中应用卷积块,然后应用 maxpool 下采样,将输入图像编码为多个不同级别的特征表示。
  • 解码器是架构的后半部分。目标是将编码器学习的判别特征(较低分辨率)投影到像素空间(较高分辨率)上,以获得密集值。解码器由上采样和串联组成,然后是常规卷积操作。

图3.U-Net 中的跳过连接将其与标准的编码器-解码器架构区分开来

        生成器损耗是生成图像和 Array of Images 之间的 S 形交叉熵损耗(gan 对抗损耗)和生成图像和目标图像之间的 L1 损耗,也称为 MAE(平均绝对误差)。因此,总生成的损失变为 gan 对抗性损失 + LAMBDA * l1 损失,其中 LAMBDA = 100 [1]。

        在网络中,输入通过一系列层,这些层逐渐下采样(编码器),直到瓶颈层,此时过程被逆转(解码器)。这样的网络要求所有信息流都经过所有层,包括瓶颈。为了捕获输入和输出之间共享的每个低级信息,我们在每层 i 和层 n − i 之间添加跳过连接,其中 n 是总层数。每个跳过连接只是将第 i 层的所有通道与第 n 层 − i 的所有通道连接起来(图 3)。

5.2 Patch-GAN 鉴别器

        patch-GAN 鉴别器是添加到 pix2pix 架构中的独特组件。它的工作原理是将图像中的 (n*n) 片段分类为真实和虚假,而不是将整个图像分类为真实和虚假。这迫使更多的约束,并鼓励清晰的高频细节。这比对整个图像进行分类更快,并且参数更少。判别器接受两个图像对作为输入,输入图像,目标图像和输入图像,生成图像。我们将这两个输入对连接起来。

        鉴别器损失由两个损失组成,一个是真实图像和 1 数组之间的 S 形交叉熵损失,另一个是生成的图像和零数组之间的 S 形交叉熵损失。总鉴别器损耗是这两个损耗的总和。有关架构和超参数的详细说明,请参阅本文

        图 4 中所示的 Pix2Pix 模型架构正在从简单的样式化映射转换为目标样式化映射域。[4]

图4.Pix2Pix 模型架构

六、在arcgis.learn

        首先,我们必须使用 ArcGIS Pro 中提供的深度学习导出训练数据工具以导出切片元数据格式导出图像芯片,方法是在输入栅格和附加输入栅格中提供两个影像域,然后将路径提供给 arcgis 中的prepare_data 函数.学习创建数据束。...        

   data = arcgis.learn.prepare_data(path=r"path/to/exported/data")

        默认情况下,我们在初始化Pix2Pix对象时创建 U-Net 生成器和 patch-GAN 鉴别器。我们可以简单地这样做,如下所示:

model = arcgis.learn.Pix2Pix(data=data)

        这里的数据是一个fastai数据包,从函数返回的对象,更多解释可以在fast.ai的文档中找到[6prepare_data]

然后我们可以继续arcgis.learn基本的工作流程。

有关 API 和模型应用程序的更多信息,请转到 API 参考和示例笔记本。

七、总结

在本指南中,我们了解了图像到图像转换模型的各种细节,以及如何在Pix2Pixarcgis.learn

八、引用

  • [1] Isola, Phillip, Jun-Yan Zhu, Tinghui 周, and Alexei A. Efros.“使用条件对抗网络进行图像到图像转换。”IEEE计算机视觉和模式识别会议论文集,第1125-1134页。2017.
  • [2] CS231n:用于视觉识别的卷积神经网络。Stanford University CS231n: Deep Learning for Computer Vision
  • [3] Goodfellow、Ian、Jean Pouget-Abadie、Mehdi Mirza、Bing Xu、David Warde-Farley、Sherjil Ozair、Aaron Courville 和 Yoshua Bengio。“生成对抗网络。”在《神经信息处理系统进展》中,第 2672-2680 页。2014.
  • [4] ACGAN Architectural Design - coding.2020年11月27日访问。
  • [5] Kang、Yuhao、Song Gao 和 Robert E. Roth。“使用生成对抗网络传输多比例地图样式。”国际制图学杂志 5, no. 2-3 (2019): 115-141.
  • [6] Fast.ai 文档。| fastai。2020年11月27日访问。
  • [7] Fast.ai 的 GAN 课程。Deep Learning For Coders—36 hours of lessons for free。2020年11月27日访问。

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

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

相关文章

vue3基础知识一,安装及使用

一、安装vue3 需要安装node,然后在项目所在目录命令行执行以下代码。 npm create vuelatest 回车后需要配置以下内容。 二、安装所需的依赖包并运行 cd到项目目录,执行以下代码安装依赖包 npm i 运行项目 npm run dev 打开浏览器查看结果 ok&#…

重温MySQL之索引那些事

文章目录 前言一、概念1.1 索引作用1.2 索引类型1.3 B树索引结构1.4 B树索引源码分析 二、查询计划2.1 explain2.2 id2.3 select_type2.4 table2.5 partitions2.6 type2.7 possible_keys2.8 key2.9 key_len2.10 ref2.11 rows2.12 filtered2.13 Extra 三、索引优化3.1 索引失效3…

【sql】MyBatis Plus中,sql报错LIKE “%?%“:

文章目录 一、报错详情:二、解决:三、扩展: 一、报错详情: 二、解决: 将LIKE “%”#{xxx}"%"改为LIKE CONCAT(‘%’, #{xxx}, ‘%’) 三、扩展: MyBatis Plus之like模糊查询中包含有特殊字符…

爬虫详细教程第1天

爬虫详细教程第一天 1.爬虫概述1.1什么是爬虫?1.2爬虫工具——Python1.3爬虫合法吗?1.4爬虫的矛与盾1.4.1反爬机制1.4.2反爬策略1.4.3robots.txt协议 2.爬虫使用的软件2.1使用的开发工具: 3.第一个爬虫4.web请求4.1讲解一下web请求的全部过程4.2页面渲染…

如何协调建筑技术集成、互操作性和安全性

尽管进行了大量时间和精力的准备和执行,但建筑集成通常无法按预期或根据需要进行工作,无法满足日益常见的能源报告要求或组织可持续发展目标。 当谈到运营技术 (OT) 部署的最终状态时,“这不是我所要求的”这句话太常见了。在许多情况下&…

每个AI/ML工程师必须了解的人工智能框架和工具

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…

固定本机在局域网中的 IP 地址

说明:以将 IP 地址固定为 192.168.1.107 为例 Step1、打开终端,输入以下命令查看网络信息: ipconfig -all 记住子网掩码、默认网关、DNS 服务器(首选和备用)信息,后面要用: Step2、进入 “控制…

mac上使用Navicat Premium 在本地和生产环境中保持数据库同步

Navicat Premium 是一款功能强大的数据库管理和开发工具,支持多种数据库系统,如 MySQL、Oracle、SQL Server 等。作为程序员,我深知在开发过程中需要一款方便、高效的数据库管理工具来提升工作效率。而 Navicat Premium 正是这样一款不可多得…

windows go环境安装 swag

windows 下载依赖包 go get github.com/swaggo/swag/cmd/swag编译swag cd $GOPATH\pkg\mod\github.com\swaggo\swagv1.16.2\cmd\swagps: go env 获取 GOPATH位置 go installps: 此时 $GOPATH\bin下出现了 swag.exe 项目根目录下执行swag 初始化 swag init生成结果

swing快速入门(三十四)输入对话框

🌼注释很详细,直接上代码 🌷新增内容 🥀字符串输入型 输入对话框用法 🥀下拉选项输入型输入对话框用法 🪴完整代码: package swing31_40;import javax.swing.*; import java.awt.*; import ja…

【已解决】若依系统前端打包后,部署在nginx上,点击菜单错误:@/views/system/role/index

​ 上面错误,是因为/views/system/role/index动态路由按需加载时候,错误导致。 解决办法: 如果您的前端项目访问时候,需要带有项目名称的话,参考凯哥上一篇文章:【已解决】若依前后端分离版本&#xff0…

【Linux】Linux 下基本指令 -- 详解

无论是什么命令,用于什么用途,在 Linux 中,命令有其通用的格式: command [-options] [parameter] command:命令本身。-options:[可选,非必填]命令的一些选项,可以通过选项控制命令的…

YOLOv8主干改进 更换柱状神经网络RevCol

一、Reversible Column Networks论文 论文地址:2212.11696.pdf (arxiv.org) 二、Reversible Column Networks结构 Reversible Column Networks 是一种用于量子计算的新型结构。它由一系列可逆操作组成,可以在量子计算中进行高效的信息传递和处理,具有可扩展性、灵活性、…

2.2数据通信的基础知识

目录 2.2数据通信的基础知识2.2.1数据通信系统的模型数据通信常用术语 2.2.2 有关信道的几个基本概念(1)常用编码方式(2)基本的带通调制方法 2.2.3 信道的极限容量(1)信道能够通过的频率范围(2)信噪比练习 2.2数据通信…

Git:常用命令(一)

取得项目的Git 仓库 从当前目录初始化 1 git init 初始化后,在当前目录下会出现一个名为.git 的目录,所有Git 需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还…

电池管理系统BMS中SOC算法通俗解析(二)

下面简单介绍下我们BMS保护板使用的SOC估算方法。我们算法的主要是针对电流积分法计算SOC的局限性进行改进: ●电池包第一次上电使用开路电压法估算SOC。第一次上电,根据电池包厂家给出的电压和剩余容量二维关系图大概估算出目前电池包的剩余容量即SOC。…

开关电源反馈环路重要参数设计,PC817和TL431实例计算和取值详解

author:小高霸气 data:2021.04.16 下面介绍开关电源重要的反馈电路PC817和TL431设计和应用。 在开关电源当中,对稳压反馈电路的设计通常会使用TL431和PC817来配合使用。在TOP 及3842等单端反激电路中的反馈电路很多都采用TL431和PC817作为参考、隔离、取…

【MyBatis】操作数据库——入门

文章目录 为什么要学习MyBatis什么是MyBatisMyBatis 入门创建带有MyBatis框架的SpringBoot项目数据准备在配置文件中配置数据库相关信息实现持久层代码单元测试 为什么要学习MyBatis 前面我们肯定多多少少学过 sql 语言,sql 语言是一种操作数据库的一类语言&#x…

2023-12-16 LeetCode每日一题(统计区间中的整数数目)

2023-12-16每日一题 一、题目编号 2276. 统计区间中的整数数目二、题目链接 点击跳转到题目位置 三、题目描述 给你区间的 空 集,请你设计并实现满足要求的数据结构: **新增:**添加一个区间到这个区间集合中。 **统计:**计算…

QGIS003:【08选择工具栏】-按范围选择、按属性选择、按位置选择

摘要:QGIS工程工具栏包括按范围选择、按属性选择、按位置选择、取消选择等选项,本文介绍各选项的基本操作。 实验数据: 链接:https://pan.baidu.com/s/15GfuR15CxA2OQzURjmjwaQ?pwd=u8sf 提取码:u8sf 一、按范围选择 有矩形框选、多边形选择、手绘选择以及按半径扩展…