- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于CycleGAN的图像风格转换;所谓图像风格转换,是指利用算法学习一类图像的风格,然后将学习到的风格应用到另外一张图像上的技术。
随着深度学习的兴起,图像风格迁移获得了进一步的发展,并取得了一系列突破性的研究成果,其出色的风格迁移能力引起了学术界和工业界的广泛关注,具有重要的研究价值。
本案例将使用艺术风格图像与现实风景图像数据集,构建CycleGAN网络,进行图像风格转换。
一是将艺术风格图像转换成现实风景图像风格。
二是将现实风景图像转换成艺术风格。;;在使用神经网络进行图像风格迁移之前,图像风格迁移的程序设计有一个共同的思路:分析某一种风格的图像,并为该风格建立一个数学或统计模型,再将模型应用到待迁移的图像中。
因此带来了一个问题,一个程序基本只能做某一种风格或某一个场景间的转换,存在较高的局限性。
所以,传统的风格转换研究的实际应用非常有限。
图像风格转换的核心在于获得输入图像的特征表达。
卷积神经网络对于图像高层特征的抽取,使得获取特征的表达变得相对容易。
因此,随着深度学习技术的兴起,图像风格转换再次回到了大众的视野。
;生活中,图像风格转化的实际运用较少,多数运用偏娱乐性,例如,智能手机相机里的卡通滤镜功能,可以将拍摄的图像转换成卡通风格。
本案例将基于CycleGAN进行图像风格转换。
CycleGAN是图像风格转换中常用的网络,其特点是样本数据无需配对即可实现转换,例如,将斑马转换成马,如图所示。;CycleGAN特点就是图像会经过两次风格转换。
首先将图像从风格A转换到风格B。
然后再从风格B转换回风格A。
如果两次转换的效果都比较好,那么转换后的图像应该与输入的图像基本一致。
CycleGAN通过对比转换前后的图像,形成了有监督学习,提升了转换效果。;本小节主要介绍图像风格转换的相关背景、运用领域以及本案例的分析目标和相关流程。
利用艺术风格与现实风景图像数据集,可以实现以下目标。
让模型将现实风景图像的风格转换成艺术风格。
让模型将艺术风格图像转换成现实风景图像的风格。
本案例的总体流程主要包括以下4个步骤。
??载数据,加载艺术风格与现实风景图像数据集。
构建网络,包含残差网络、生成器、判别器及缓存队列。
训练网络,计算生成器和判别器的损失,从而对生成器和判别器进行训练。
结果分析,对迭代中输出的风格转换图像进行分析。
;本案例的总体流程图如图所示,主要包括加载数据、构建网络、训练网络、结果分析4个步骤。;本案例基于PyTorch 1.8.1、CUDA 10.2和cuDNN 8.2.0环境下运行,其中PyTorch 1.8.1也可以是CPU版本。
本案例的目录包含三个文件夹,分别是code、data和tmp。如右上图所示。
所有原始图像数据存放在data文件夹,其中包含了四个文件夹,分别是trainA、trainB、testA、testB,如右下图所示。
;所有的代码文件放在code文件夹,如图所示。
代码运行过程中生成的转换图像会放入tmp文件夹中,如图所示。
构建网络包括构建残差网络、生成器、判别器以及缓存队列。
其中生成器与判别器是CycleGAN的主要组成部分。
;;本案例使用的数据是艺术风格图像与现实风景图像数据集,包含了四个子数据集。
testA文件夹里包含了263张艺术风格图像。
testB文件夹里包含了751张现实风景图像。
trainA文件夹里包含了562张艺术风格图像。
trainB文件夹里包含了6287张现实风景图像。;;?;使用残差网络增加浅层网络到深层网络的信息传输,可以解决网络拥有层数较多时,网络准确度出现饱和,甚至出现下降的问题。
在定义残差网络block时,ResidualBlock类继承自父类Module,并通过block_layer对象定义残差模块中的网络层。
;生成器的目的是对输入的图像进行风格的转换,生成能够以假乱真的图像。
同时,生成器所生成的图像也将作为输入对象提供给下一个生成器或判别器。
在生成器中,使用了镜像填充卷积(ReflectionPad2d)由低维的特征生成高维特征,同时使用图像生成的归一化层(InstanceNorm2d)加速模型收敛,最终得到了生成的图像x。
;判别器的目的是对输入的图像进行判断,判断图像是真实的图像或生成的图像。
在判别器中,使用了大量的卷积层用于提取输入图像的特征,在网络的结尾使用avg_pool2d函数进行均值池化。
均值池化前的特征维度为torch.Size([10,1,14,14]),池化时对10个[14,14]大小的向量求均值并返回结果。
;训练网络时,每个周期都会读取一定批量大小的数据用于训练。
需要注意艺术风格图像与现实风景图像是成对被读取的,图像对中的固定搭配可能会被网络学习到。
因此,需要将输入数据的顺
您可能关注的文档
- PyTorch与深度学习实战-全套PPT课件.pptx
- 《PyTorch与深度学习实战》第1章 深度学习概述.pptx
- 《PyTorch与深度学习实战》第2章 PyTorch深度学习通用流程.pptx
- 《PyTorch与深度学习实战》第3章 PyTorch深度学习基础.pptx
- 《PyTorch与深度学习实战》第4章 手写汉字识别.pptx
- 《PyTorch与深度学习实战》第5章 文本生成.pptx
- 《PyTorch与深度学习实战》第7章 基于TipDM大数据挖掘建模平台实现文本生成.pptx
- 年开采水泥用灰岩100万吨可行性研究报告申请建议书.docx
- 钛酸钡项目可行性研究报告-申请备案.docx
- 树脂新材料新建项目可行性研究报告建议书申请格式范文.docx
文档评论(0)