基于深度学习VGG模型的宠物分类方法设计_第1页
基于深度学习VGG模型的宠物分类方法设计_第2页
基于深度学习VGG模型的宠物分类方法设计_第3页
基于深度学习VGG模型的宠物分类方法设计_第4页
基于深度学习VGG模型的宠物分类方法设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

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

目录

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

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

1.2Python发展简介.............................................................................................1

1.2.1VGG技术简介........................................................................................2

1.2.2Pycharm简介........................................................................................2

1.2.3Python第三方库简介..........................................................................3

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

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

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

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

2.3.1VGG网络结构简介..................................................................................5

2.3.2torch技术分析......................................................................................5

2.3.3torchvision技术分析...............................................................................5

2.1.4VGG算法原理...........................................................................................6

3数据集准备................................................................................................................6

3.1数据采集......................................................................................................6

3.2数据集获取分析..........................................................................................7

3.3数据集获取实现..........................................................................................8

4数据可视化与数据集预处理....................................................................................9

4.1数据预处理..................................................................................................9

4.2导入相关库..................................................................................................9

4.3读取训练集,验证集与测试集................................................................10

4.4数据集可视化................................................................................................12

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

5.1模网络型结构................................................................................................12

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

5.1.1创建模型.............................................................................................13

5.2模型编译....................................................................................................14

5.2.1优化器设置.........................................................................................14

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

5.2.3模型训练设置.....................................................................................15

5.2.4学习率调优.........................................................................................15

5.2.5batch_size设置................................................................................16

5.3模型部署....................................................................................................16

5.3.1系统前端部署.....................................................................................16

5.3.2系统前端.............................................................................................17

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

参考资料.........................................................................................................................19

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

基于深度学习VGG模型的宠物分类方法设计

1引言

在现代社会中,养宠物已成为一种越来越普遍的生活方式。随着人们养宠

物的数量和种类的不断增多,对宠物的分类和识别的需求也日益增加。传统的

宠物分辨方法主要基于视觉特征和手工特征来进行分类,但其中存在很多不足

之处,如分类准确度较低、计算量大、特征提取不全面等。因此,本文基于深

度学习中的VGG16模型进行,提出了一种新的宠物分类方法。通过这种方法,

可以更加准确地判断出宠物的种类,同时,将宠物照片分为多个类别,能够更

好地满足人们对不同宠物种类的识别需求。通过对该方法的实验结果分析,证

明了其效果的有效性和优越性,对解决宠物分类问题具有一定的参考价值。

1.1项目背景

随着人们生活水平的提高,越来越多的人选择养宠物。可以说,现代社会

中已经有很多人将养宠物当做一种生活方式,而一些宠物爱好者更是对自己养

的宠物感到无限的喜爱和珍惜。然而,对于宠物的分类和识别来说,传统的方

法主要基于视觉特征和手工特征对宠物进行分类,但这些方法存在很多不足之

处。例如,在分类准确度方面,手动提取特征的过程中很难捕捉到宠物照片中

的一些细节信息和差异性,因此会导致分类准确度相对较低。此外,在计算量、

特征提取维度等方面也存在一定的问题。

为了解决这些问题,深度学习技术应运而生。深度学习技术在图像识别、分类

等方面显示出惊人的优势,吸引了越来越多人的关注。其中,VGG16模型作为经

典的卷积神经网络模型,拥有深层的卷积神经网络结构,可以有效地提取图像

特征,因此被广泛应用于图像分类和识别领域。同时,基于深度学习的宠物分

类方法也在其中逐渐受到关注。本项目的背景就是基于以上的需求和现状,探

索基于深度学习VGG模型的宠物分类方法,使得在宠物分类与识别方面,能够

得到更加准确、快速、高效的识别结果,为人们的宠物生活带来更多实际价值。

开发环境与工具

1.2Python发展简介

Python是一门功能强大、易于学习和高效的编程语言。该语言的历史可以

追溯到1991年,当时由GuidovanRossum创造,旨在提供一个易于理解和

1

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

使用的编程语言,适用于脚本开发。随着时间的推移,Python2.x版本和

Python3.x版本陆续推出,Python2.x版本持续了很长时间,直到2010年

左右才逐渐向Python3.x转变。Python3.x版本采用了一些新特性和不向

后兼容的变化,修复了Python2.x语言本身的一些问题。在过去几年中,Python

的应用领域不断扩大,包括数据分析、科学计算、web开发、机器学习和自动化

测试等。除了其易于学习和高效的特点之外,Python还拥有极其丰富的第三方

库和工具,使得Python编程变得更加容易和快速。Python的发展还可以追溯到

它的开源社区。它非常开放和友好,有数百万的活跃开发者一起为持续开发和

维护Python语言生态系统。Python正在成为最流行的编程语言之一,并在未来

继续发展和壮大。。

1.2.1VGG技术简介

VGG全称是VisualGeometryGroup,因为是由Oxford的VisualGeometry

Group提出的。AlexNet问世之后,很多学者通过改进AlexNet的网络结构来提

高自己的准确率,主要有两个方向:小卷积核和多尺度。而VGG的作者们则选

择了另外一个方向,即加深网络深度。

二、网络架构

卷积网络的输入是224*224的RGB图像,整个网络的组成是非常格式化的,

基本上都用的是3*3的卷积核以及2*2的maxpooling,少部分网络加入了1

*1的卷积核。因为想要体现出“上下左右中”的概念,3*3的卷积核已经是最

小的尺寸了。

1.2.2Pycharm简介

PyCharm是一种由JetBrains开发的Python开发环境,旨在改善开发者的

工作流程。它提供了一套完整的工具,可以帮助您更快地编写代码,更快地找

到和修复错误,更快地测试代码以及更快地部署应用程序。PyCharm的主要特点

包括:智能代码补全,语法高亮,调试,代码重构,单元测试,版本控制,可

视化接口,自动部署以及更多。它不仅可以帮助您更容易地编码,还可以帮助

您更好地管理和维护您的代码。它支持多种Python解释器,可以与多种数据库

和Web服务器进行集成。PyCharm是一款功能强大的Python集成开发环境,可

以帮助您更有效地完成开发任务。

2

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

1.2.3Python第三方库简介

Python拥有丰富的第三方库,这些库提供了丰富的功能和工具,使Python

编程变得更加简单和高效。下面是一些最受欢迎和常用的Python第三方库:

NumPy:NumPy被广泛用于科学计算、数据分析和机器学习等领域,它为

Python提供了一种高性能的多维数组对象,以及处理这些数组的各种函数。

NumPy旨在提供与MATLAB相似的使用体验。

Pandas:Pandas是用于数据分析的Python库。Pandas支持处理包括时间

序列和结构化数据在内的各种形式的数据。它是一个强大的、高效的数据操作

库,经常被用于数据科学领域。

SciPy:SciPy是用于科学计算的Python库。它提供了许多有用的科学计算

工具,如最小二乘回归、傅里叶变换和信号处理等。SciPy还包含了许多其他的

子函数和子模块,涵盖了线性代数、数值积分、优化等众多方面。

Matplotlib:Matplotlib是一个用于数据可视化的Python库。它可以用来创建

各种图表和可视化效果,比如折线图、柱状图、散点图等。Matplotlib非常适

合在数据科学和机器学习领域中使用。

TensorFlow:TensorFlow是一个基于数据流编程的开源机器学习框架,由

Google开发和维护。TensorFlow提供了非常方便的接口,用于处理大型神经网

络和训练数据。

Keras:Keras是一个专注于构建和训练深度神经网络的高层Python库。

Keras易于使用,而且兼容多种深度学习框架,包括TensorFlow和Theano。

Requests:Requests是一个Python库,用于简化HTTP请求。Requests是

一种流行的Python库,用于处理网路请求和响应,包括GET、POST请求等等。

这些Python第三方库代表了Python编程中最流行和实用的工具。它们可以帮

助Python程序员更加有效地实现各种任务和项目。

2需求分析

2.1可行性分析

1.技术可行性

深度学习技术的发展:近年来,深度学习技术得到了快速的发展和应用,

尤其是在计算机视觉领域,如图像分类、物体检测和语义分割等方面的应用。

3

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

基于深度学习技术的VGG模型已在图像分类领域得到了广泛的应用,并且已经

证明其在识别不同品种宠物方面具有较高准确率和泛化能力。

数据集的可获取性:随着数字化时代的到来,收集和整理大型数据集变得

更加容易,特别是在宠物图片方面。现在,一些公共数据集,如ImageNet和

COCO,已经广泛被用于图像分类应用中。此外,使用网络爬虫收集宠物图片数

据集也已经成为了一种常用的手段。

现有技术的成熟度:基于深度学习的图像分类技术已经得到了较好的发展

和应用,并且许多成熟的工具和框架,如TensorFlow、PyTorch、Keras等,都

提供了易用性较高的接口和开源代码,使其更易于快速开发和部署。

综上所述,基于深度学习VGG模型的宠物分类方法设计具有较高的技术可行性,

对于实际应用提供了很好的帮助。

2.项目可行性

宠物行业的需求和市场空间:随着人们对宠物的热爱和需求增加,宠物行

业正在快速发展,具有广阔的应用市场空间。而自动分类技术的应用,则将极

大地提高工作效率和服务质量,为企业带来更多的商业机会。

宠物图像数据的公开易得:目前有很多公开的宠物图像数据库,如ImageNet、

COCO等,这些数据库中包含了各种不同种类的宠物图像数据,对于该项目的数

据采集提供了便利条件。

现有技术的证明和应用案例:基于深度学习VGG模型的宠物分类方法已经

在很多实际场景中得到了应用,并取得了不错的分类效果。例如,某些宠物社

交软件、宠物商城等平台,均采用了自动分类技术,提高用户体验和服务质量。

如前所述,深度学习技术在图像分类领域已经得到了广泛的应用,尤其是

基于VGG模型的图像分类方法。因此,该项目的可行性也比较高。

2.2数据采集功能分析

此次项目的数据集来源于kaggle,对采集到的宠物图片进行初步筛选和清

洗,去除不合格的图片。对采集到的宠物图片进行标注并保存相关信息,将所

有采集到的图片随机分成训练集、验证集和测试集三部分,训练集用于模型的

训练,验证集用于调整模型参数,测试集用于评估最终模型的精确度。

在实际操作中,需要考虑到数据采集过程可能出现的各种问题,如图片质

量不佳、数据不均衡等,以确保模型最终可以准确地对宠物进行分类识别。

4

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

2.3关键技术分析

2.3.1VGG模型

VGG模型是一种深度卷积神经网络,由KarenSimonyan和Andrew

Zisserman在2014年提出。VGG模型的核心思想就是使用非常小的卷积核

(3*3),并且始终使用相同数量的过滤器(filter)和池化层,从而实现网络

结构的简单化。VGG模型在ImageNet挑战赛上取得了很好的成绩,证明了其在

图像识别领域具有强大的能力。

VGG模型包含多个卷积层和全连接层,其中卷积层采用3×3大小的卷积核,

并进行多次堆叠。通过不断地堆叠卷积层,可以获取越来越多的复杂特征,并

获得更高的准确率。VGG模型中最常见的版本是VGG-16和VGG-19,其中VGG-16

包含16个卷积层和3个全连接层,VGG-19包含19个卷积层和3个全连接层。

VGG模型的一个优点是可以通过迁移学习来加快训练速度。由于该模型已经

在大规模图像数据集上进行了训练,因此可以将其用于其他图像识别任务中,

只需要微调一些参数即可获得比较好的识别结果。

2.3.2torch技术分析

torch主要以张量为基本数据结构,支持多种数值类型的张量,包括浮点数

型、整数型、布尔型等。其提供了一系列基本操作,如加、减、乘、除、矩阵

乘法等,可以方便地实现向量、矩阵和张量之间的运算。此外,torch还提供了

众多高级运算,如卷积、池化、循环神经网络等,使得开发者可以便捷地构建

复杂的神经网络模型。

总之,torch是一个功能丰富、易于使用、高效并且可扩展的机器学习框架,

适用于各种深度学习任务以及科学计算和数据分析领域。

2.3.3torchvision技术分析

torchvision提供了常用的图像数据集加载的接口,如MNIST、CIFAR、

ImageNet等。同时,它还提供了一些常用的图像处理工具,比如对图像进行裁

剪、缩放、旋转、反转等变换操作,使图像能够更好地适应不同场景下的使用

需求。

torchvision在可视化方面也提供了丰富的工具和接口,能够方便地进行图

像和模型的可视化,帮助用户更好地理解和优化计算机视觉任务的结果。

总之,torchvision是一个非常实用且便捷的计算机视觉处理工具,它涵盖

5

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

了数据处理、数据增强、预训模型、模型设计和可视化等多个方向,为深度学

习计算机视觉任务提供了重要的支持。

2.1.4VGG算法原理

VGG16一般采用基于随机梯度下降(StochasticGradientDescent,SGD)

的反向传播算法,通过最小化交叉熵损失函数来优化模型参数。在训练过程中,

可以使用数据增强、正则化、dropout等技术来提高模型的泛化能力和鲁棒性。

在本文中,大多数未知数的梯度求解都是很容易的。也就是我们只要循环

求解下式即可。

VGG公式(图2-1):

图2-1算法公式

3数据集准备

3.1数据采集

首先进入MicrosoftEdge浏览器,找到搜索引擎并且搜索百度照片,进

入官网输入关键字:宠物图片.

页面如下:

6

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

图3-1数据网址页面

按F12调出开发者工具,刷新页面,如图3-2。利用全局搜索工具定位所需

数据位置,点击开发者工具按Ctrl+f查找jpg图片。

图3-2数据链接页面

3.2数据集获取分析

右键以后选择检查,调出网页后台,利用全局搜索工具中搜索关键词,如

“猫”、“狗”,“兔子”等jpg或者png图片位置链接。接下来我们分析他

是以什么形式的数据存放的。显然这是一个jpg或者png数据。

于是我们就可以利用python爬虫来获取宠物的数据。

7

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

图3-3获取数据页面

3.3数据集获取实现

创建html.py进行爬取,代码如图:

图3-4代码展示图

下图为读取相关数据集图片

图3-5文件夹展示图

8

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

图3-6数据集展示图

可以看到,我们获取了25,000张宠物的图像。此文件夹中的每个图像都

有标签作为文件名的一部分。测试文件夹包含12,500张图像,根据数字ID命

名。对于测试集中的每个图像,预测其是什么宠物

4数据可视化与数据集预处理

4.1数据预处理

数据预处理是指将数据转换成易于理解和解释的图形形式,以便更好地理

解数据中的特征和模式。在宠物分类问题中,可以通过绘制每个类别的图片样

本来了解不同类别之间的差异。此外,还可以通过绘制图像的像素分布和直方

图来检查数据是否存在偏斜或异常值,这对模型的表现会有影响。

数据集预处理非常重要,因为它可以减少原始数据中的噪声和冗余信息。

同时,这些预处理步骤还能使我们更好地理解数据,并减少由于噪声和冗

余信息导致的过拟合现象。

4.2导入相关库

导入torch等系列相关库对数据进行处理操作,如下图所示

9

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

图4-1导入相关库

4.3读取训练集,验证集与测试集

1.数据集预处理

读取宠物图像数据集,并把每张图片转换为相同的大小(如224*224)和格

式(如RGB),同时进行归一化处理。

图4-2图片大小处理代码

10

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

图4-3图片大小处理效果图

2.验证集

读取验证集

图4-4验证集代码图

3.测试集

读取验证集

图4-5测试集代码图

4.划分展示:

11

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

图4-6划分代码图

4.4数据集可视化

使用Python中的Matplotlib库。该库可以用来绘制各种类型的图表,例

如条形图、饼图、折线图和散点图等。

将分类模型训练得到的分类结果导出为一个CSV文件,然后使用Python读

取该文件并将其转换为一个pandasdataframe对象。接着,利用pandas的

groupby函数对宠物类别进行分组,统计不同类别的宠物数量,并将结果绘制成

一个条形图。

可视化效果

图4-7可视化内容

5模型构建及评估分析

5.1网络模型结构

VGG网络架构:

小卷积核:相比AlexNet,将卷积核全部替换为3×33\times33×3,极

12

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

少用了1×11\times11×1;

小池化层:相比AlexNe,3×33\times33×3的池化核全部换为2×2

2\times22×2的池化核;

层数更深:VGG16为例,3→64→126→256→5123\to64\to

126\to256\to5123→64→126→256→512,卷积核专注于扩大通道数,3个通

道的特征经过经过卷积层的提取扩散到了512个通道;

特征图更窄:VGG16为例,224→112→56→28→14→7224\to

112\to56\to28\to14\to7224→112→56→28→14→7,池化层专注于缩小宽和

高;

全连接转1×11\times11×1卷积:测试阶段可以接收任意宽或高为的

输入。如下(图5.1-1)

图5-1网络模型结构图

5.1.1创建模型

模型部分,我们使用pytorch封装好的vgg模型,并且对其进行微调,因

为原始的vgg16模型是预测1000个类别,而我们的任务只有猫和狗,兔子等几

个类别,所以将最后一层的输出调整为4。在训练的时候使用前面预训练模型,

这样子加快模型的收敛,而且效果奇佳。

模型代码

13

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

图5-2结构模型

5.2模型编译

5.2.1优化器设置

优化器使用了SGD,学习率初始值为0.001,动量为0.9。同时,scheduler

设置为每7个epochs学习率下降0.1倍,以便模型更好地学习特征。

图5-3优化器设置

5.2.2损失函数设置

交叉熵损失函数是深度学习中非常常用的损失函数之一,它能够有效地

衡量模型输出的预测值与真实值之间的差异。在VGG模型中,输出层通常使

14

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

用softmax作为激活函数,将输出结果转化为分类概率。假设有C个类别,

输出层的输出为一个C维向量,其中每一维表示为一个类别的预测概率。真

实的标签y是一个C维的向量,其中只有一个元素为1,表示其属于一个类

别,其他元素均为0。

图5-4损失函数设置

5.2.3模型训练设置

使用PyTorch提供的训练循环,设定合理的超参数如学习率、训练轮数、

批大小等,按照每个批次训练模型,优化模型的损失函数,使用验证集进行模

型评估,保存该次训练的最优模型。

图5-5模型训练设置

5.2.4学习率调优

将学习率设置为0.001。

15

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

图5-6学习率

5.2.5batch_size设置

将batch_size设置为256,以及一些参数的设置。

图5-7batch_size设置

5.3模型部署

5.3.1系统前端部署

首先,确定系统所包含的功能模块。上传宠物照片、展示分类结果、查看

历史记录、分享等功能。设计系统主题和配色方案,以保证整个系统的视觉效

果协调统一。采用响应式布局,根据不同的设备自适应调整页面布局,以保证

用户在不同设备上的访问体验一致。对于上传宠物照片的功能模块,可以采用

上传组件实现。对于分类结果展示的模块,可以采用数据可视化技术,以文字

的方式将结果直观地展现出来。在系统前端设计完成后,充分测试和优化,确

保系统性能稳定和用户体验流畅。

图5-8前端设计代码展示

16

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

5.3.2系统前端

本系统基于深度学习VGG模型,旨在通过图像识别技术为用户提供宠物分

类服务。用户只需上传一张宠物照片,系统便能够自动判断出该宠物的品种。

采用resnet50损失值和准确率,准确率在85%以上。

以下是系统前端设计的效果图:

温馨提示

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

评论

0/150

提交评论