基于深度学习AlexNet模型的艺术画风格识别方法设计_第1页
基于深度学习AlexNet模型的艺术画风格识别方法设计_第2页
基于深度学习AlexNet模型的艺术画风格识别方法设计_第3页
基于深度学习AlexNet模型的艺术画风格识别方法设计_第4页
基于深度学习AlexNet模型的艺术画风格识别方法设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南商务职业技术学院毕业设计

目录

1引言............................................................................................................................1

1.1项目背景......................................................................................................1

1.2开发环境与工具..........................................................................................1

1.2.1Python简介..........................................................................................1

1.2.2Tensorflow简介..................................................................................2

1.2.3Jypyternotebook简介......................................................................2

1.2.4Python第三方库简介..........................................................................2

2需求分析....................................................................................................................3

2.1可行性需求分析..........................................................................................3

2.2数据集采集功能分析..................................................................................3

2.3关键技术分析..............................................................................................4

2.3.1AlexNet模型与传统的图画分类........................................................4

2.3.2卷积神经网络原理...............................................................................4

2.3.3Web框架技术(Flask/Django)........................................................4

3数据采集....................................................................................................................5

3.1数据集获取分析..........................................................................................5

3.2数据集需求分析..........................................................................................7

3.3编程实现......................................................................................................7

4数据集处理................................................................................................................8

4.1数据预处理..................................................................................................8

4.2数据增强......................................................................................................9

4.3切分训练集和测试集................................................................................10

5模型构建及评估分析..............................................................................................10

5.1模型构建....................................................................................................10

5.1.1模型网络结构.....................................................................................10

5.1.2创建模型.............................................................................................11

I

湖南商务职业技术学院毕业设计

5.2模型编译....................................................................................................13

5.2.1优化器设置.........................................................................................13

5.2.2损失函数设置.....................................................................................13

5.3模型训练与调优........................................................................................13

5.3.1模型训练设置.....................................................................................13

5.3.2学习率调优.........................................................................................13

5.3.3batch_size设置................................................................................15

5.4系统部署....................................................................................................15

5.4.1基于python和Android的系统设计实现.......................................15

5.4.2图片识别功能.....................................................................................16

5.4.3信息展示功能.....................................................................................16

6小结..........................................................................................................................18

参考资料.........................................................................................................................20

II

湖南商务职业技术学院毕业设计

基于深度学习AlexNet模型的艺术画风格识别方法设计

1引言

一个图画作品主要是由内容和风格组成,对于内容相同的图画、不同图画

风格的作者会使得最后作品的感触也不尽相同。近几年随着AI和深度学习的

发展,我们可以使用神经网络提取作品的图画风格、使之融合到我们自己的作

品上。

1.1项目背景

据网络统计显示、社交软件WeChat每一个月的使用用户已达到10亿之

多。如何让自己在上面的发送出去的图片更有特色,它成为一个值得我们去思

考探讨的课题。随着技术的提升、由深度学习所引发的AI热潮,已经开始越

来越广泛地影响到社会中的各层各面,例如人脸识别、在线翻译等。在这其中

AI和图像的风格碰在一起产生了火花。在深度学习和艺术中引起了关注,也降

低了人们创作作品的难度。

一个图像的内容在人们看来是一目了然的,但是图画中却是完全不同的。

我们虽然可以轻易的描述出图画的内容,但是对于图画的风格我们只能粗略的

道出其中的冰山一角。图像的气概发展至今、已经出现了各种各样的派系。

图画在计算机看来中就是一个个像素点、图画的内容和气概的信息就蕴藏在这

些由一个个像素点组成的矩阵中。

1.2开发环境与工具

1.2.1Python简介

Python是由GuidoRossum于1989年诞生。

2005-2012年,Google大量应用python,引起广泛关注,促进了python

的发展。

2012年云计算兴起,其中最主要的OpenStack框架由python开发,使得

python火了一把。2014年AI兴起,AI中大量关键算法都是由python开发,

因为python中含有很好的第三方库特别适合做算法,加上入门低、开发效率

高,这样又进一步促使python的火爆。

2017年python走进大众视野(指非IT人士),走进学科教育。

1

湖南商务职业技术学院毕业设计

如今已经发展成一门广泛使用的高级编程语言。它可应用于网络爬虫、机

器学习、数据分析和可视化等多种领域。它的特点是开源(免费)、丰富的

库、简单易学、支持跨平台而且可移植性强。

1.2.2Tensorflow简介

作为数据可视化的产品,与数据库相连接,呈现波动的数据变化,更加直

觉的进行数据分析和可视化呈现。它实现数据与图形的完满嫁接,它的程序很

容易动手,各公司可以用它将较多的数据拖放至数字“画表”上,瞬间就能创

建好各种图表。这一软件的理念是,每一个界面的数据越容易操作,公司对自

己在所在业务范围里的工作到底是正确还是错误,就能了解得越渗透。

1.2.3Jypyternotebook简介

它是一种Web应用,它能使得用户将文本、方程、代码和其他所有的内

容全部组合到一个方便分享的文件中,非常方便研究和教学。在初始的python

与ipython中,打印显示在单独的弹窗中进行,而文字以及各种函数和类底

本包含在独立的文件中。但是它能将这一切集中到一点,让用户看起来跟明

了。

它特别适合做数据的预处理,而且用途可以包括数据清洗和探索、深度

学习和大数据的分析。

安装它,最简单的方法就是使用anaconda,其版本附带并包含了它。

1.2.4Python第三方库简介

最和睦的网络爬虫功能库requests,是实现的简单易用的HTTP库,使用

起来比其他的库更简便很多,Python的三方库在使用之前要先进行安装。

正则表达式re解析和处理功能库,里面包含了多种字符串匹配的方法。

作为HTML和XML的解析库,BeautifulSoup可以对HTML、XML格式进行

刨析,从中提取信息;还可以对所提供的任何式子进行相关的数据爬取,而且

对它进行无规则解析。

NumPy库是Python数据分析的基础,是处理数组的Python库,NumPy库

的数据结构比Python自带的更加高效。

pandas库数据分析并保存为csv文件,python数据分析高层次应用库,

还可以进行数据清洗。

matplotlib绘图库,主要是偏向于二维绘图包括折线图、条形图、扇形

2

湖南商务职业技术学院毕业设计

图、散点图、直方图等等。

pyecharts:绘图。

statsmodels:统计建模。

wordcloud、scipy、jieba:生成中文词云的。

pylab:设置画图能显示中文。

2需求分析

2.1可行性需求分析

1.技术可行性

Python编程语言通俗易懂、是一种动态的面对对象的脚本语言。这让它对

于爬虫领域有着巨大的优势,是当前爬虫的首选语言。本项目便是利用python

采集数据,通过python第三方库进行数据分析、与数据可视化的展示。

Tableau是一款对人操作十分友好的软件,利用它对数据可视化进行展示和分

析也十分便捷。

2.项目可行性

随着计算机技术图像处理方向的不断发展和推广,古代壁画图像也向着数

字化时代迈进,如何去使用这些巨量数字资源是一个有待解决的问题,严重的

需求就是确定探究对象。对图画进行筛选与分开,方便更直观快速有效地从数

字图画库中搜罗目标图像,以便对图像进行有秩序地管理和维护。与传统的特

点的提取方式有一定的效果,但需要丰富的学习知识,同时它获取到的特征会

存在表达不充分和缺乏能力的问题。因此需要将卷积神经网络用于图画分类,

借鉴经典的神经网络构造,通过所具有的多向扩展特点的网络模型来实现图画

图像的有效分类。

2.2数据集采集功能分析

传统的画像的分类模型框架包括特征的提取、特征的编码、特征的汇聚和

分类器4部分。这个时期特征提取原理是上是人工进行设计,所以特征的提取

的好坏会直接影响到分类后模型的性能。为解决图画图像特征的提取各种各样

的问题,将卷积神经网络使用到图像的分类,然后借鉴经典的卷积网alexnet

的网络结构,从主体上考虑壁画数据的量和网络结构对其影响的各种因素。

3

湖南商务职业技术学院毕业设计

2.3关键技术分析

2.3.1AlexNet模型与传统的图画分类

模型的结构如图片2-1所示;

图2-1AlexNet模型展示图2-2Alexnet模型

AlexNet是首个成功展示卷积神经网络的潜力的模型,网络结构如图2-2

Alexnet模型所示,size是卷积核和池化核大小与数目,stride表示为步长,

drop—outrate是输出的概率,class是各个类别的个数。由图可以看出,

AlexNet网络是由5个卷积层与3个全连接层相互组织而成,并且采用的是双通

道的结构,因为这有限于当时的局限条件,Krizhevsky等人采用仅两台的gpu

服务器并行来继续模型训练速度。从中看到,从最后的卷积层到全连接层的大

小或数量并没有减半,主要由于考虑到参数大部分集中在全连接层。

2.3.2卷积神经网络原理

可视化起源于图形学、计算机的图形学、科学、AI以及用户的界面等领

域,也是当前计算机科学的一个重点研究的方向,它使用计算机对较多的信息

进行直接的表示,以便于快速检索信息和简单识别的能力。

数据可视化是项目中十分重要的一环,主要通过计算机图形图像技术手段

展现出数据的基本特征或者隐含规律,它将复杂的数据转化为更容易的方式传

递给受众,并给人意想不到的洞察力,所以建立数据可视化确实可以使分析的

数据任务更清晰、更容易理解,特别是对于大规模的数据集。

2.3.3Web框架技术(Flask/Django)

可视化技术起源于图形学、计算机图形学、科学可视化、人工智能以及用

4

湖南商务职业技术学院毕业设计

户界面等领域,也是当前计算机科学的一个重要研究方向,它利用计算机对抽

象信息进行直观的表示,以利于快速检索信息和怎强认知能力。

数据可视化是项目中十分重要的一环,主要通过计算机图形图像技术手段

展现出数据的基本特征或者隐含规律,它将复杂的数据转化为更容易的方式传

递给受众,并给人意想不到的洞察力,所以建立数据可视化确实可以使分析的

数据任务更清晰、更容易理解,特别是对于大规模的数据集。

3数据采集

3.1数据集获取分析

如图3-1数据集训练及筛选流程所示;

首先,提取壁画图像一层的边缘等边缘特征;之后采用结构不同的多通道

网络对提取的一层特征进行二层的深层笼统,得到两个通道的特征;

最后,融合两个通道的特征,一块构建损失的函数得到筛选的结果,从而

提高模型的韧性和特征表达能力。

图3-1数据集训练及筛选流程

所需的数据来自于《中国敦煌壁画全集》与《中国丝绸之路的墓室壁画》

画册中的扫描版,时间上至汉代,下至清代,从地域上跨越东部、中部与西

部,覆盖了不同朝代与不同地区的壁画题材。

收集到的不同形态图片如图3-2所示,不同朝代的图片如图3-3所示,同

地域图片如图3-4所示;

5

湖南商务职业技术学院毕业设计

图3-2不同形态的图片

图3-3不同朝代的图片

6

湖南商务职业技术学院毕业设计

图3-4不同地域图片

3.2数据集需求分析

针对单网络可能对图像的特点学习不够充分,结合宽度的影响条件,以经

典alexnet模型为基础,将网络拓展到两个通道充分提取图画特征,提出了一

种结合特征结合思想的网络模型用于传统图画图像的快速筛选分离。

图3-5网络拓展流程

如图3-5所示为网络拓展流程。

3.3编程实现

导入所需库,如3-6所示;

7

湖南商务职业技术学院毕业设计

图3-6导入所需库页面

设置请求头,伪装成浏览器访问服务器,定义position_data存放所有数

据,用于最后数据保存循环网页。

4数据集处理

数据的清洗是指发现并修改数据文本中可辨别的错误的最后一个运行程

序,包括检查数据相同性,处理不相关值和缺失的数据。

数据的质量评审重要方法还包括数据的预处理,数据处理是实现所有数据

序列化的必要过程,是检查数据的重要环节,也是实现数据共享的重要步骤。

对天气的预报、图书的存放、超级市场、马路铁路、航天、工农业、军方

的事务,数据的预处理深入其中,人类的发展从古至今都离开不了数据的处

理,现代的社会,人们生活与数据处理联系越来越密切,离开了数据处理将无

法生存。

没有了数据处理,股票市场、银行、铁路局、天气预报都将无法正常进

行。

4.1数据预处理

通过对收集的传统图画艺术图画进行研究,将数据集的分类设定为佛、

萨、祥、世俗、弟子、动植物和建筑等艺术形象。对采集到的数据进行缩小放

大、亮度改变、降噪和旋转等数据集加强算法来进行扩展。

8

湖南商务职业技术学院毕业设计

图4-1图画分类数据集示例

4.2数据增强

为了分析卷积层数和全连接层数对图像图像特征表达的影响,选择的学习

率为0.000l的Aclam优化器用于模型的训练,每个实验均运行一万步,并

且目标的优化函数、参数更新方式都是一样的。在双通道特征提取层Conv.33

结构的基础上,各选择2,3,4层全连接层进行对比实验。图4-2是运行时

间对比。图4-2是在不同全连接层模型准确率随迭代变化的曲线。

9

湖南商务职业技术学院毕业设计

图4-2不同全连接层准确率迭代曲线

4.3切分训练集和测试集

二进制:保存爬取的图片、动态频、音频等不同式子的数据。

这里我用to_csv()方法保存清洗后的数据,文件名为data,index=false

输出不显示索引值,编码方式为gbk,如图4-3所示。

图4-3数据存储页面

5模型构建及评估分析

5.1模型构建

5.1.1模型网络结构

导入相关库,使用pandas加载源数据,如图5-1所示。

10

湖南商务职业技术学院毕业设计

图5-1数据准备页面

5.1.2创建模型

图5-2比较结果

与结合预设计的经典的模型相比,准确度大概有1%-5%的提升,如图5-3

显示。主要是因为模型并未在这样的数据集上进行预处理,而是直接从图画自

身开始训练模型,提取的特征更接近壁画图像特点,说明自然图画与融合了人

的客观设计思想的壁画图像在特点提取方面有一定的差距。

11

湖南商务职业技术学院毕业设计

图5-3与结合处理的模型相比

与一些改过的神经模型相比,准确度均有大约5%的提高,如图5-4显示。

说明模型的设计的网络层可以学习到更加丰富的特征,同时不同的积核的使用

也丰富了网络的表现能力。

图5-4与改过的神经模型相比

12

湖南商务职业技术学院毕业设计

5.2模型编译

5.2.1优化器设置

随机梯度:基本是通过梯度的下降法,使得网络的参数不断扩散到全部

(或者局部)min值,但是由于网络层太多,需要通过反向的传播算法,把误

差层层地从输出传播到输入,更新网络参数。由于方向是函数值变大的最快的

方向,因此负梯度方向则是函数变小的最快的方向。沿着负梯度方向一步一步

变化,便能快速地到函数min值。实现SGD优化算法,带动量优化算法,带动

量SGD优化算法,并且可拥有多项。

5.2.2损失函数设置

图5-5数据展示页面

如图5-5,平均绝对误差,即计算预测值与真实值的差的绝对值,衡量预

测值与真实值之间距离的平均误差幅度,范围为0到无穷大。

5.3模型训练与调优

5.3.1模型训练设置

数据、损失函数、模型、迭代训练。这五个步骤中数据和损失函数是没法

改变的,而在迭代训练的过程中模型的一些参数和优化器中的一些缓存是会变

的,需要保留这些信息,另外还需要保留次数和学习率。

5.3.2学习率调优

梯度更新公式:θ=θ−η∂∂θJ(θ);

根据上述公式,如果学习率较大,那么参数的更新度就会很快,可以加快

网络的速度,但如果学习率过大,可能会导致参数在最优解附近变化,代价函

数难以改变,甚至可能会错过最优解,导致参数向错误的方向,代价函数不仅

不收敛反而可能爆炸(如图5-6(a)所示)。如果学习率较小,网络可能不

会错过最优点,但是网络学习速度变慢。同时,如果学习率小,则很可能会陷

13

湖南商务职业技术学院毕业设计

入局部最优点(如图5-6(b)所示)。

因此,找到合适的学习率,才能使代价函数以较快的速度逼近全局最优

解。

图5-6不同学习率下的梯度更新

在不同的学习阶段指定的学习率,在每段内学习率相同。该过程可为:

boundaries=[100,200]#指定学习率改变的边界点为100和200;

values=[1.0,0.5,0.1]#指定不同区间下的学习率大小;

learning_rate=1.0;

学习率成指数衰减,每次将当前学习率乘以给定的衰减率得到下一个学习

率。指数衰减的为:new_learning_rate=last_learning_rate*gamma;

每次将当前学习率乘以给定的衰减率的自然指数得到下一个学习率。其公

式表达为new_learning_rate=learning_rate*푒―푔푎푚푚푎∗푒푝표푐ℎ;学习率按照

指定的轮数间隔进行衰减,该过程learning_rate=0.5#学习率初始,

step_size每训练30个epoch进行一次衰减。

gamma=0.1#衰减率;

learning_rate=0.5ifepoch<30

learning_rate=0.05if30<=epoch<60

learning_rate=0.005if60<=epoch<90;

学习率按特定间隔进行衰减,与间隔衰减的区别在于:间隔衰减的epoch

间隔是单一且固定的,而多间隔衰减中的epoch间隔是预先指定的多间隔。该

过程为:

learning_rate=0.5#学习率初始值

milestones=[30,50]#指定轮数间隔

14

湖南商务职业技术学院毕业设计

gamma=0.1#衰减率

learning_rate=0.5ifepoch<30

learning_rate=0.05if30<=epoch<50

learning_rate=0.005if50<=epoch;

当loss停止下降时,降低学习率。其思想是:一旦模型表现不再提升,

将学习率降低2-10倍对模型的训练往往有益。此外,每降低一次学习率后,

将会进入一个冷静期。在冷静期内不会监控loss变化也不会进行衰减。当冷

静期结束后,会继续监控loss的上升或下降。

5.3.3batch_size设置

在训练中通常会将batch_size设置较大,从而使得GPU或者CPU满载运

行,提高训练的速度。并且会使梯度下降的方向更加准确。并且不使用较小的

batch_size,如果batch_size为1时,因为每一个样本都具有自己独特的特

征,会对梯度的计算产生波动,即模型的收敛是不利的。梯度的方差表示为:

1

Var(g)=Var(∑푚,))

푚푖=1푔(푥푖푦푖

公式解读:D(cx)=c^2D(x);

m即BATCH_SIZE设置大小,即增大BATCH_SIZE的大小可以使得梯度方差

的大小减小。直接使梯度更加准确。

但在测试中:我们通常会将batch_size设置为1,主要是因为一些将数据

统一的操作来使其可以放到一个batch中(例如:cv领域中的将图像调整大小

致相同,NLP领域中Bert模型也会将token长度的向同一个batch中最大的长

度对齐),这样就会带来一个问题,模型效果的降低,所以在测试时:为了尽

可能的表现模型的能力,将其设置batch_size为1。

5.4系统部署

5.4.1基于python和Android的系统设计实现

在Python中开发基于Android的APP相对来说比较便捷,需要调用

Python的APP开发库kivy。

使用kivy库开发APP的时候,可使用kv描述文档与各模块的参数和动作

来进行更加简洁的APP开发。

获取图片分别有两种方式,一种可以通过文件选择器然后在设备内存中获

取,另外一种方法就是通过调用摄像头拍照获取。通过文件选择器在设备内存

15

湖南商务职业技术学院毕业设计

中获取图片,用到了kivy库中的FileChooser模块。

使用该模块的FileChooserIconView子模块,可以小视图的方式浏览文件

夹。然后当用户选择文件时,获取改文件的完整路径,后台可从该路径读取图

片数据。

调用摄像头拍照,用到了kivy库中的核心模块Camera,使用这个模块即

直接调用摄像头,然后通过获取截图摄像头内的画面,以达到拍照的效果。

5.4.2图片识别功能

所有该功能进行访问本地文件,将数据输入已训练好的模型获取输出结

果。这一步的需要用到TensorFlow库import_meta_graph函数,通过meta文

件加载已训练好的模型结构和参数。然后使用TensorFlow中的

get_default_graph获取已加载的模型。获取到模型之后,还要获取输入节点

和输出节点,需要通过get_tensor_by_name来获取节点,直至获取到对应的

节点,就可传入数据并进行预测和输出。结果如图5-7所示。

图5-7识别图片结果对比

5.4.3信息展示功能

将预测的结果处理后展示在信息显示界面。识别图片功能预测输出的是独

热编码,而信息展示功能第一个读取num_name.npy文件获取保存的字典格式信

息(字典中,独热编码作为键,与独热编码对应的图像名称作为值),再通过预

测独热编码在字典获取其对应的图像名称,然后读取info.npy文件获取键值分

别为图像名称与图像介绍信息的字典格式信息,然后在字典中通过图像名称获

16

湖南商务职业技术学院毕业设计

取对应的图像介绍信息。结果如图5-8所示。

图5-8信息展示界面

实际应用时,为保证结果能更好的满足用户需求,需要在实际应用时做一

些额外的处理以扩大预测的结果集。首先将用户需要识别的图片copy为100

份,再将100份数据使用已训练好的模型进行识别预测,然后统计其识别结果

中每种结果出现的频率,取频率出现最高的五种结果,最后将结果和其对应的

图像展示在信息显示界面,其流程如图5-9所示;实验结果如图5-10所示。

图5-9用户输入到结果展示处理过程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论