热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ImagetoImageTranslationwithConditionalAdversarialNetworks论文研究及应用

本文研究了使用条件对抗网络进行图片到图片翻译的方法,并提出了一种通用的解决方案。通过学习输入图像到输出图像的映射和训练相应的损失函数,我们可以解决需要不同损失函数公式的问题。实验证明该方法在合成图片、重构目标和给图片着色等多个问题上都很有效。这项工作的重要发现是不再需要人为构建映射函数和损失函数,同时能够得出合理的结果。本文的研究对于图片处理、计算机图片合成和计算机视觉等领域具有重要意义。

转自:https://blog.csdn.net/m0_37231012/article/details/70331114

论文链接

摘要

我们研究条件对抗网络的目的是将之作为一种图片到图片“翻译”问题的通用的解决方法。这些网络不仅学习了从输入图像到输出图像的映射,还学习了训练这个映射的损失函数。这使得将这个一般方法解决通常需要完全不同的损失函数公式的问题成为了可能。我们证实了这个方法在从标签图来合成图片、从边缘图来重构目标以及给图片着色问题上都很有效。作为一个共同体,我们不再需要人为构建映射函数,而且这项工作发现不用人为构造损失函数,我们也能得出合理的结果。

在图片处理、计算机图片合成和计算机视觉的许多问题都能被视作是一种从输入图片到相对应输出图片的“翻译”问题。正如一个概念能用英语或者法语表示一样,一个场景可能用RGB图像、梯度场、边缘图、一个语义标签图等等来表达。在与语言自动翻译的比喻中,我们将图片到图片的自动转化定义为在已给训练集足够的情况下,将一个场景的可能表示转化成另一个。

内容

a) 目的

:传统的图片到图片的“转化”通常需要人为构造复杂且合理的损失函数,针对不同的问题都必须采用特定的机制,虽然他们的背景都是从像素到像素的映射(pix2pix)。但是,GAN是一个不需要构建复杂损失函数的结构,它会自动学习从输入到输出图片的映射。因此,应用这个到图片“翻译”问题中,就可以实现一个泛化的模型。

b) 结果贡献

:论证了条件GAN能在广泛领域的问题中产生合理的结果;提出了一个能达到很好结果的简单框架,并且分析了重要结构的选择原因。

c) 目标函数

:这一块儿和普通的CGAN大同小异,

G网络目标是最小化目标函数,D网络目标是最大化目标函数。 
这篇论文作者又考虑到将传统的损失函数也应用到整个模型,因为过去的方法证明这个很有效,但是作者没有使用L2范数而是直接使用的L1范数,即是输入输出的差值,炉温提到这样可以对高频结构进行建模。得到最终的目标函数:

d) 网络结构

:与传统的encoder-decoder网络结构不同的是,本论文中,作者用了U-NET结构来作为生成器,与传统结构的不同之处在于,所有的信息流不用全部通过所有的层,而且这样让输入与输出有一个低级的结构类似(不是镜像的)可以得到很好的效果。(不知道为什么)

在判别器上,作者提出了一种PatchGAN的结构,只对小块规模上对结构做出奖惩调整。并且在N×N batch中,当N远小于图片规模时也可以得到很好的结果,但是却具有参数少、训练快且能应用在任意图片上。(有点类似于我毕设中的D网络用CNN结构,也算是对输入的一种高层次特征的学习)

e) 训练过程

:交替训练D网络和G网络,而且步数相同。这个训练的次数问题可以随具体任务的不同而定,每一篇论文都有不同的训练超参数。

f) 实验结果

:作者用了很多数据集进行训练测试,结果都比原来的好~

g) 最后作者用控制变量法分别测试了GAN和CGAN,L1+GAN和GAN的优劣,最终得出L1+CGAN效果最好的结论。分析之下,L1可以让输出的分布比输入更窄,从而得到平均化的结果。而CGAN可以让结果更加锐利不模糊,使得输出更加接近真实,目的达成。

h) 后面的appendix部分暂时没看,而具体的代码也暂时没有实现~

2.心得体会

a) GAN为什么能适用于多个场景?因为对于以前的任务,我们想要生成特定的输出,必须采用专业知识来构造特定的损失函数,结果却不尽如人意,生成的输出很模糊,不能达到生成尖锐的、真实的输出的目的。但是GAN只是明确了一个高等级的目标,即直接对输出做出是否与真实数据可分辨,这样就自动得到了一个满足目标的损失函数。 
b) 作者在目标函数构建的那一部分,提出将传统的损失也作为目标加入进去。这里和我的毕设中,训练之前都用MLE进行预训练的原理相似。D网路部分用PatchGAN也和毕设中D网络用CNN类似。开始不太理解毕设里面模型采用这些机构的作用,现在理解了一些:预训练可以让结果靠近真实分布,用在预训练可以加速训练进程,因为GAN的训练过程太慢,难度太高;而CNN也是学习局部特征,避免参数过多,避免过拟合。


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PHP图片截取方法及应用实例
    本文介绍了使用PHP动态切割JPEG图片的方法,并提供了应用实例,包括截取视频图、提取文章内容中的图片地址、裁切图片等问题。详细介绍了相关的PHP函数和参数的使用,以及图片切割的具体步骤。同时,还提供了一些注意事项和优化建议。通过本文的学习,读者可以掌握PHP图片截取的技巧,实现自己的需求。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • 生成对抗式网络GAN及其衍生CGAN、DCGAN、WGAN、LSGAN、BEGAN介绍
    一、GAN原理介绍学习GAN的第一篇论文当然由是IanGoodfellow于2014年发表的GenerativeAdversarialNetworks(论文下载链接arxiv:[h ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • C# WPF自定义按钮的方法
    本文介绍了在C# WPF中实现自定义按钮的方法,包括使用图片作为按钮背景、自定义鼠标进入效果、自定义按压效果和自定义禁用效果。通过创建CustomButton.cs类和ButtonStyles.xaml资源文件,设计按钮的Style并添加所需的依赖属性,可以实现自定义按钮的效果。示例代码在ButtonStyles.xaml中给出。 ... [详细]
author-avatar
哦是你的嘛_416
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有