基于生成对抗网络的图像风格转换方法研究毕业论文
2020-04-01 11:01:20
摘 要
随着2014年生成对抗网络诞生,它作为一个通过对抗过程估计生成模型的新框架,逐渐成为了人工智能界的研究热点之一。本文主要工作是以生成对抗网络和图像风格转换为基础,研究了如何将生成对抗网络应用于图像风格转换中。最后将模型效果用Web应用呈现出来。具体研究内容如下:
(1)探究了生成对抗网络的思想、学习方式、特点和应用,并拓展研究了生成对抗网络的各种变体,包括:条件生成对抗网络、深度卷积生成对抗网络、半监督生成对抗网络和信息生成对抗网络,并将生成对抗网络和其变体性能进行了比较;
(2)探究了图像风格化的思想,总结了最近基于生成模型的图像艺术化的研究成果。然后继续研究了基于生成对抗网络的三种图像风格转换模型CycleGAN、DualGAN和DiscoGAN在图像风格转换中的应用,然后对模型结构和内部细节进行了分析,并用多种数据集对模型进行了训练;
(3)设计Web应用用于展示模型训练效果,后端基于Python Flask,采用分布式任务队列Celery实现任务异步执行,并将时下流行的微服务思想应用于此Web应用,前端主要基于Bootstrap和jQuery。
关键词:生成对抗网络;风格转换;CycleGAN;DualGAN;DiscoGAN
Abstract
With the birth of the generative adversarial network in 2014, it has gradually become one of the research hotspots in the artificial intelligence community as a new framework for estimating the generative model through the adversarial process. The main work of this paper is to build up the generative adversarial network and style transfer of images, and to study how to apply the generative adversarial network to style transfer of images. Finally, the model effect is presented by web application. The specific research contents are as follows:
(1)explore the ideas, learning style, characteristics, structure and applications of generative adversarial network, and expand the research for various variants of generative adversarial network, including: CGAN, DCGAN, SGAN and InfoGAN, and will compare generative adversarial network with its various variants;
(2) explore thoughts of style transfers of images and summarize the recent research results of style transfer of images based on the generative model. Then continue to study applications of three images style transfer models, including: CycleGAN, DualGAN and DiscoGAN, which are based on generative adversarial network, and then analyzes the structure and the internal details of models, and use a variety of data sets for training models;
(3) design a web application for showing models training result, the backend is based on Python Flask, adopts the distributed task queue Celery to implement tasks executed asynchronously, and apply popular micro service ideas of nowadays on the web application, the front-end is based on the Bootstrap and jQuery.
Key Words:generative adversarial network;style transfer;cyclegan;dualgan;discogan
目 录
摘 要 I
Abstract II
第1章 绪论 1
1.1 研究背景和意义 1
1.2 国内外研究现状 1
1.3 本文研究内容 2
1.4 本文组织结构 2
第2章 生成对抗网络基础 4
2.1 生成对抗网络原理 4
2.2 生成对抗网络学习过程 5
2.3 生成对抗网络特点 5
2.4 生成对抗网络应用 6
2.4.1 图像分割 6
2.4.2 视频预测 6
2.4.3 风格迁移 6
2.5 生成对抗网络的各种变体 7
2.5.1 条件生成对抗网络 8
2.5.2 深度卷积生成对抗网络 8
2.5.3 半监督生成对抗网络 9
2.5.4 信息生成对抗网络 9
2.5.5 生成对抗网络及其变体性能的比较 10
第3章 基于生成对抗网络的图像风格转化模型 11
3.1 图像风格转化 11
3.2 基于生成模型的图像艺术风格化 11
3.3 CycleGAN 12
3.3.1 模型分析 12
3.3.2 模型训练 14
3.4 DualGAN 15
3.4.1 模型分析 16
3.4.2 模型训练 16
3.5 DiscoGAN 17
3.5.1 模型分析 18
3.5.2 模型训练 18
3.6 小结 19
第4章 基于Web的图像风格转换系统 20
4.1 WEB应用架构 20
4.2 WEB前端 20
4.3 WEB后端 22
第5章 总结与展望 24
5.1 本文工作总结 24
5.2 未来工作展望 24
参考文献 25
致 谢 26
第1章 绪论
研究背景和意义
近些年以来,人工智能获得了很大发展,尤其是深度学习方面,在很多领域都取得重大进展。但似乎这些重大进展都是和判别模型有关,而生成模型则进展缓慢,并且因为训练过于复杂而不适用于较复杂的大尺寸图像。2014年,Goodfellow 等人[1] 开创性地提出了生成对抗网络(GAN, generative adversarial network),通过两个神经网络互相博弈的方式来进行学习,这是生成模型和无监督特征学习的重大进展。GAN包含两组神经网络,一个是生成网络,一个是判别网络。其中,生成网络从潜在空间(latent space)中随机采样作为输入,尽量产生接近真实样本的输出,而判别网络一般情况下是一个二分类器,它的输入是真实样本和生成网络产生的假样本,目的则是将生成网络输出从真实样本中分辨出来。模型的优化过程是一个“二元极小极大博弈”问题,生成网络尽可能欺骗判别网络,而判别网络尽可能区分生成网络输出和真实样本,二者相互博弈,最终达到相互均衡的一个状态。生成对抗网络是对无监督学习研究,还有图像处理等领域的一个重大突破。它已经从最初的图片生成,被应用于计算机视觉的各个领域,如图像分割、视频预测、风格迁移等。
图像处理技术的不断发展,人们对图片处理有了更多的要求,尤其是在美化图片方面。例如,人们希望自己的自拍具有卡通的特点,或者希望自己拍摄的照片能像大画家的作品一样。本文就是基于最新的生成对抗网络,来研究图像风格转换的方法,产生质量更好更逼真的风格转换后的图像。
国内外研究现状
图像风格转换以往的方法主要有三类:基于基于笔触的风格化、基于纹理合成的风格化和对物理过程建模的风格化[5]。它们依赖于卷积神经网络的突破性进展,利用卷积神经网络对图像高层特征的提取,用卷积的方法提取图像在神经网络各个层的内容和风格信息,所以可以分离图像的风格和内容信息,以便进行图像的风格迁移。Gatys等利用卷积神经网络提取图像不同层级的特征,使用低层次响应描述图像的风格,使用高层次响应描述图像的内容,使用梯度下降法调整输入,经迭代多次后,输入响应是特定样式和内容的图像。Ulyanov 等提出了一种前馈卷积神经网络,产生大量任意尺寸的相同纹理,将给定照片的艺术风格迁移到任意图片上,该方法引入一个用于风格转移的生成网络,大大减少迭代的次数,提高了训练速度,缩短图片生成的时间。Liao 等提出了一种在具有相似语义结构和较大外观差异的图像之间进行视觉属性迁移的方法。该方法利用从深度卷积神经网络提取的特征在 2 张输入图像之间找到语义上有意义的稠密对应关系来构建新的“图像类比”方法,进而使用一种由粗到细的策略来建立最近邻域并生成风格化结果[5]。
监督与卷积网络学习(CNN)广泛地应用在计算机视觉领域,相较之下,CNNs的无监督较少。无监督特征学习是一个计算机视觉研究的重要领域,也是一个研究热点。传统无监督特征学习的方法是对数据进行聚类,并利用集群来提高分类分数。另一种流行的方法是训练自动编码器,一个图像编码成一个紧凑的编码,解码的代码重建图像尽可能准确。生成对抗网络的提出,是无监督特征学习的重大突破,它通过两个神经网络互相博弈来学习,并且经过不断地研究,生成对抗网络及其各种变体在计算机视觉领域应用逐渐广泛。
风格转换属于纹理转换问题,传统的方法的问题在于只能提取底层特征而非高层抽象特征。随着2014年生成对抗网络理论被提出,人们也开始研究如何将生成对抗网络应用在风格转换领域,也取得了不错的成效,主要成果有CycleGAN、DualGAN、DiscoGAN、pix2pixGAN和StarGAN等。
1.3 本文研究内容
本文以深度学习领域研究热点——生成对抗网络和新兴的图像风格转换技术为基础,研究了如何将生成对抗网络应用于图像风格转换技术中,以及分析模型原理和内部细节,然后使用horse2zebra等数据集训练模型,达到预期的效果,即看到图像的风格变换,最后编写Web应用并将训练好的模型效果呈现出来。具体研究内容如下:
(1)探究了生成对抗网络的思想、学习过程、特点和应用,并拓展研究了生成对抗网络的各种变体,并将生成对抗网络和其变体性能进行了比较;
(2)探究了图像风格化技术的概念,研究了之前基于生成模型的几种图像风格转换方法,学习其内部原理。然后重点研究了基于生成对抗网络的图像风格转换方法,主要研究了三类模型:CycleGAN、DualGAN和DiscoGAN它们在图像风格转换中的应用,对模型结构和内部细节进行了分析,并分别使用horse2zebra、sketch-photo和cityscapes数据集对CycleGAN、DualGAN和DiscoGAN模型依次进行了训练,并同时对其进行了测试,在本文中贴出了测试效果图片,最后对这三种模型进行了总结;
(3)设计并编写了一个Web应用用于展示训练后模型的图片风格转换效果,Web应用后端基于Python Flask,采用框架内置的基于python wsgi服务器,选择使用分布式任务队列Celery来实现任务的异步执行,并将时下流行的微服务思想应用于本Web应用,前端主要基于Bootstrap和jQuery,主要组件使用的Bootstrap fileinput来实现文件上传、进度条等功能,使用loading.js来实现文件上传成功后等待后端模型将图片风格转换的loading特效。
1.4 本文组织结构
本文共分为五章,详细阐述了基于生成对抗网络的图像风格转换方法的设计思想与模型的实现细节,包括生成对抗网络的研究、图像风格化的研究、常用的图像风格转换模型的研究与实现,以及如何用GUI展示模型效果,最后对本文的工作进行了总结与展望。具体章节安排如下:
第一章是绪论,讲述了本文的研究背景与意义、国内外研究现状和本文研究内容,同时展示了本文的结构。
第二章详细探究了生成对抗网络是什么,以及其学习过程和特点,还研究了它的一些应用技术,并拓展讲述了生成对抗网络的各种变体,并将生成对抗网络和其变体性能进行了比较。
第三章研究了图像风格转换技术的概念,研究了之前基于生成模型的几种图像风格转换方法,学习其内部原理。。然后重点研究了基于生成对抗网络的图像风格转换方法,主要研究了三类模型:CycleGAN、DualGAN和DiscoGAN它们在图像风格转换中的应用,对模型结构和内部细节进行了分析,并分别使用三种数据集对模型依次进行了训练,并同时对其进行了测试,在本文中贴出了测试效果图片,最后对这三种模型进行了总结;
第四章讲述了如何实现GUI来展示模型效果,选择搭建WEB应用来进行展示,从技术方案、后端和前端讲解了具体实现过程。后端基于Python Flask,前端主要基于Bootstrap和jQuery,主要使用的组件有Bootstrap fileinput和loading.js来实现文件上传和加载特效。
第五章总结了本文的主要内容,并从生成对抗网络和图像风格化两方面对未来需要研究和探讨的工作进行了总结。
第2章 生成对抗网络基础
近年来,深度学习广泛应用在计算机视觉、自然语言处理等领域中,其原因在于随之计算机算力提高,深度学习能够建立模拟人类大脑神经连接结构的模型,能为复杂非线性系统提供建模,提供更高的抽象层次,因而提高了模型的能力。深度学习领域的模型主要分为两类:判别式模型和生成式模型。目前,学术界研究成果大多都是判别式模型,这些成果主要归功于用于训练模型的反向传播(BP,back propagation)算法和 Dropout 算法。
然而,与判别式模型相比,生成式模型的研究进展相对缓慢。典型的生成式模型如受限玻尔兹曼机(RBM, restricted Boltzmann machine)及其扩展模型(如深度置信网络、深度玻尔兹曼机)、变分自编码器(VAE, variational autoencoder)和PixelRNN通常使用最大似然估计、马尔可夫链方法、近似法等,计算复杂,效率较低。这些模型训练的复杂性使得生成MNIST和CIFAR-10等简单数据集的图像成为可能,但并不适用于大规模复杂图像。
生成模型是一个非常具有挑战性的机器学习问题,主要体现在以下两点。首先,建模现实世界需要大量的先验知识。其次,现实世界中的数据通常非常复杂,建立模型所需的计算量往往非常大,甚至难以忍受。针对上述两大困难,Goodfellow 等人提出一种新型生成式模型——生成式对抗网络,通过两个神经网络互相博弈的方式来进行学习,大大提高了应用效率。GAN自开创至今已有四年的时间,研究热度在迅速攀升,并从学术界延伸到工业部门。谷歌,OpenAI和Facebook等知名的人工智能公司投入了大量的精力研究和扩展GAN的应用。
2.1 生成对抗网络原理
生成对抗网络的基本思想来自博弈论中的纳什均衡。它有一个生成器(Generator)和一个判别器(Discriminator),生成器从潜在空间中随机采样作为输入,尽量产生接近真实样本的输出,而判别器一般情况下是一个二分类器,它的输入是真实样本和生成器产生的假样本,目的则是将生成器输出从真实样本中分辨出来,二者相互博弈,相互学习。训练时固定其中一方(判别器或生成器),优化另一个的参数,交替迭代,最终达到相互均衡的一个状态。这种学习优化过程就是要在两者之间找到纳什均衡。
生成对抗网络的计算流程与结构如图2.1所示。生成器用G来表示,判别器用D来表示,输入的真实数据用x表示,随机噪声用z表示。G(z) 是G模仿真实样本生成的假样本。判别器接收真实样本和G(z),如果输入来自真实数据,则结果为1。如果输入为G(z),结果为0。D的目标是对输入数据实现二分类判别:真(真实样本)或者伪(G(z)),而G的目标是尽量欺骗D,即生成的假样本G(z)尽量和真实样本x一样,而D的目标是尽量将真实数据和生成器产生的假数据区分开来,二者相互博弈,并不断的迭代优化,这个过程中D和G的质量也越来越好,最终达到一个比较平衡的状态。
图2.1 生成对抗网络的计算流程与结构
2.2 生成对抗网络学习过程
如图2.1,信号源(通常是一个随机源)产生随机噪声z,并将其输入给生成器G,生成器G对信号源输入的随机噪声z进行处理,生成一张图片G(z)(假数据)。训练生成器G的目标是让G(z)尽可能逼真,和真实数据x一样。同时还需训练一个判别器D,目标是让D能尽可能区分真实数据x和假数据G(z),对于真实数据x,尽可能地让D(x) = 1;对于生成图片G(z),尽可能让D(z) = 0。
判别器D在这里将相当于审查员,它的任务就是审查输入图像是真实数据(即结果为1)还是生成器造出来的假数据(即结果为0)。G的目标就是让自己造出来的假数据不能被D分辨出来,让D“认为”D(G(z)) = 1。
在训练模型时,使用每个batch轮流训练判别器D和生成器G,基本步骤是:
①从x里取一张真图片(real);
②让G产生一个假图片(fake);
③拿这两张图片训练D,目标为D(real) = 1,D(fake) = 0;
④用D来训练G(此时固定D参数,即D不参与训练),目标是D(G(z)) = 1。
2.3 生成对抗网络特点
GAN的第一个特点是其可以渐进地逼近任意概率分布,如果判别器训练良好,那么生成器可以完美地学习到训练样本的分布。而另一个生成式模型VAE受限于变分方法本身,最终模拟出的概率分布一定会存在偏置;
GAN的第二个特点是它直接衡量、评估和生成整个图像,并且生成样本的运行时间更短,一次生成一个样本。相较于PixelRNN来说考虑了整体信息且速度相对较快。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: