基于深度学习AlexNet模型的运动鞋品牌识别方法设计_第1页
基于深度学习AlexNet模型的运动鞋品牌识别方法设计_第2页
基于深度学习AlexNet模型的运动鞋品牌识别方法设计_第3页
基于深度学习AlexNet模型的运动鞋品牌识别方法设计_第4页
基于深度学习AlexNet模型的运动鞋品牌识别方法设计_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

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

目录

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

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

1.2Python简介.....................................................................................................2

1.2.1AlexNet简介.........................................................................................2

1.2.2PyCharm简介........................................................................................3

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

2需求分析....................................................................................................................5

2.1项目可行性..................................................................................................5

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

2.2.1数据采集技术.......................................................................................5

2.2.2数据集可视化技术...............................................................................6

2.2.3AlexNet模型.........................................................................................6

3数据采集....................................................................................................................7

3.1运动鞋数据采集..........................................................................................7

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

3.3编程实现......................................................................................................8

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

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

4.2数据可视化..................................................................................................9

4.3切分数据集................................................................................................10

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

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

5.2模型编译....................................................................................................12

5.3结果分析....................................................................................................13

6小结..........................................................................................................................13

参考资料.........................................................................................................................15

I

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

基于AlexNet模型的运动鞋品牌识别方法设计

1引言

近年来,深度学习技术在计算机视觉领域得到了广泛应用。其中,卷积神

经网络(ConvolutionalNeuralNetwork,CNN)是一种常用的模型,具有良好

的特征提取能力和分类性能。AlexNet是第一个应用于图像分类比赛(ImageNet

LargeScaleVisualRecognitionChallenge,ILSVRC)的CNN模型,具有较高的

准确率和速度,成为了深度学习研究的一个里程碑。

运动鞋是现代时尚文化中不可或缺的元素之一,其品牌众多、款式复杂,

因此如何对不同品牌的运动鞋进行自动化识别成为了一个具有挑战性的问题。

传统的基于图像特征的分类方法需要人工定义特征并选择合适的分类器,效果

受限。而基于深度学习的分类方法可以自动学习特征,并获得更好的分类性能。

因此,本文提出了一种基于深度学习AlexNet模型的运动鞋品牌识别方法,

通过构建AlexNet模型训练数据集,利用训练好的模型对测试数据进行预测,

并评估分类性能。实验结果表明,该方法在运动鞋品牌识别方面具有很高的准

确率和鲁棒性,能够应用于实际场景中的运动鞋分类问题。

1.1项目背景

随着时尚文化的不断发展和人们生活水平的提高,运动鞋成为了现代时尚

文化中的重要元素之一。市面上有大量的运动鞋品牌,每个品牌还有多个款式

和系列,这给消费者选购带来了困难。同时,在电商、物流等领域,快速准确

地识别运动鞋品牌也是非常关键的问题。

传统的基于图像特征的分类方法需要人工定义特征并选择合适的分类器,

效果受限。而深度学习技术具有自动学习特征的能力,可以更好地解决图像分

类问题。AlexNet是第一个在ImageNet比赛中取得优异成绩的CNN模型,具有

较高的准确率和速度,因此被广泛应用于图像分类和物体识别任务中。

本项目旨在设计一种基于深度学习AlexNet模型的运动鞋品牌识别方法,

通过构建数据集、训练模型和评估性能,实现对不同品牌运动鞋的自动化识别。

该方法可以应用于电商、物流等领域,提高工作效率和准确性,为用户提供更

好的服务体验。

1

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

1.2Python简介

Python是由GuidoRossum于1989年诞生。2005-2012年,Google大量应

用python,引起广泛关注,促进了python的发展。2012年云计算兴起,其中

最主要的OpenStack框架由python开发,使得python火了一把。2014年AI兴

起,AI中大量关键算法都是由python开发,因为python中含有很好的第三方

库特别适合做算法,加上入门低、开发效率高,这样又进一步促使python的火

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

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

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

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

1.2.1AlexNet简介

AlexNet是Hinton和他的学生AlexKrizhevsky在2012年ImageNet挑战

赛中使用的模型结构,刷新ImageClassification的错误率,从此深度学习方

法在Image这块开始一次次超过state-of-art,甚至于搭到打败人类的地步,

看这边文章的过程中,发现了很多以前零零散散看到的一些优化技术,但是很

多没有深入了解。

AlexNet中包含了几个比较新的技术点,也首次在CNN中成功应用了ReLU、

Dropout和LRN等Trick。同时AlexNet也使用了GPU进行运算加速。

AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的

网络中。AlexNet主要使用到的新技术点如下。

(1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超

过了Sigmoid,成功解决了Sigmoid在网络较深时的梯度弥散问题。虽然ReLU

激活函数在很久之前就被提出了,但是直到AlexNet的出现才将其发扬光大。

(2)训练时使用Dropout随机忽略一部分神经元,以避免模型过拟合。

Dropout虽有单独的论述,但是AlexNet将其实用化,通过实践证实了它的效果。

在AlexNet中主要是最后几个全连接层使用了Dropout。

(3)在CNN中使用重叠的最大池化。此前CNN中普遍使用平均池化,

AlexNet全部使用最大池化,避免平均池化的模糊化效果。并且AlexNet中提出

让步长比池化核的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升了特

征的丰富性。

(4)提出了LRN层,对局部神经元的活动创建竞争机制,使得其中响应比

2

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

较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能

力。

(5)使用CUDA加速深度卷积网络的训练,利用GPU强大的并行计算能力,

处理神经网络训练时大量的矩阵运算。AlexNet使用了两块GTX580GPU进行训

练,单个GTX580只有3GB显存,这限制了可训练的网络的最大规模。因此作者

将AlexNet分布在两个GPU上,在每个GPU的显存中储存一半的神经元的参数。

因为GPU之间通信方便,可以互相访问显存,而不需要通过主机内存,所以同

时使用多块GPU也是非常高效的。同时,AlexNet的设计让GPU之间的通信只在

网络的某些层进行,控制了通信的性能损耗。

(6)数据增强,随机地从256*256的原始图像中截取224*224大小的区域

(以及水平翻转的镜像),相当于增加了2*(256-224)^2=2048倍的数据量。如

果没有数据增强,仅靠原始的数据量,参数众多的CNN会陷入过拟合中,使用

了数据增强后可以大大减轻过拟合,提升泛化能力。进行预测时,则是取图片

的四个角加中间共5个位置,并进行左右翻转,一共获得10张图片,对他们进

行预测并对10次结果求均值。同时,AlexNet中提到了会对图像的RGB数据进

行PCA处理,并对主成分做一个标准差为0.1的高斯扰动,增加一些噪声,这

个Trick可以让错误率再下降1%。

1.2.2PyCharm简介

PyCharm是一种PythonIDE(集成开发环境),带有一整套可以帮助用户

在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、

代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了

一些高级功能,以用于支持Django框架下的专业Web开发。本设计的代码统一

用PyCharm来运行和展示。

1.2.3Python第三方库简介

Keras:数式模型接口是用户定义多输出模型、非循环有向模型或具有共享

层的模型等复杂模型的途径。一句话,只要你的模型不是类似VGG一样一条路

走到黑的模型,或者你的模型需要多于一个的输出,那么你总应该选择函数式

模型。

Matplotlib:一个用Python实现的绘图库。现在很多机器学习,深度学习

教学资料中都用它来绘制函数图形。在学习算法过程中,Matplotlib是一个非

常趁手的工具。

3

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

NumPy:常与SciPy(ScientificPython)和Matplotlib(绘图库)一起

使用。这种组合广泛用于替代MatLab,是一个流行的技术计算平台。但是,

Python作为MatLab的替代方案,现在被视为一种更加现代和完整的编程语言。

Pandas:一个免费、开源的第三方Python库,是Python数据分析必不可

少的工具之一。其基于numPy库开发而来,提供了两种数据结构,Series(一

维数组结构)与DataFrame(二维数组结构),这两种数据结构极大地增强的了

Pandas的数据分析能力。

Seaborn:基于matplotlib的图形可视化python包。它提供了一种高度交

互式界面,便于用户能够做出各种有吸引力的统计图表。

Sklearn:称scikit-learn,是python中的机器学习库,建立在numpy、

scipy、matplotlib等数据科学包的基础之上,涵盖了机器学习中的样例数据、

数据预处理、模型验证、特征选择、分类、回归、聚类、降维等几乎所有环节,

功能十分强大,目前sklearn版本是0.23。与深度学习库存在pytorch、

TensorFlow等多种框架可选不同,sklearn是python中传统机器学习的首选库,

不存在其他竞争者。

TensorFlow:采用数据流图(dataflowgraphs)来计算,所以首先我们得

创建一个数据流流图,然后再将我们的数据(数据以张量(tensor)的形式存在)

放在数据流图中计算.节点(Nodes)在图中表示数学操作,图中的边(edges)

则表示在节点间相互联系的多维数据数组,即张量(tensor)。训练模型时

tensor会不断的从数据流图中的一个节点flow到另一节点,这就是

TensorFlow名字的由来。

Keras:数式模型接口是用户定义多输出模型、非循环有向模型或具有共享

层的模型等复杂模型的途径。一句话,只要你的模型不是类似VGG一样一条路

走到黑的模型,或者你的模型需要多于一个的输出,那么你总应该选择函数式

模型。

函数式模型是最广泛的一类模型,序贯模型(Sequential)只是它的一种

特殊情况。使用通用模型,首先要使用Input函数将输入转化为一个tensor,

然后将每一层用变量存储后,作为下一层的参数,最后使用Model类将输入和

输出作为参数即可搭建模型。

4

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

2需求分析

2.1项目可行性

基于深度学习AlexNet模型的运动鞋品牌识别方法在技术上是可行的。以

下是几方面说明:

数据集构建:数据集的数量和质量对于深度学习模型的训练至关重要。在

运动鞋品牌识别任务中,可以通过网络爬虫、手工采集等方式获取大量具有代

表性的图像进行构建。同时,采用数据增强技术可以增加数据集的多样性和数

量,提高模型的泛化能力。

AlexNet模型应用:AlexNet是第一个成功应用于ImageNet比赛并取得优

异成绩的CNN模型,其具有较好的特征提取性能和分类性能。在本项目中,可

以利用预训练的AlexNet模型作为基础模型,并使用迁移学习的方法对模型进

行微调,以适应运动鞋品牌识别任务。

模型评估:模型的评估方法主要包括准确率、召回率、F1值等指标。可以

将构建好的数据集分为训练集和测试集,在训练集上训练模型,在测试集上进

行测试和评估,得到模型的性能指标。

实时性要求:模型的实时性要求取决于具体应用场景。在一些应用场景中,

如物流、电商等领域,需要对图像进行快速准确的识别,因此需要对模型进行

优化和加速。可以采用深度学习框架提供的GPU加速、模型压缩等方法来满足

实时性要求。

综上所述,基于深度学习AlexNet模型的运动鞋品牌识别方法在技术上是

可行的,可以通过数据集构建、AlexNet模型应用、模型评估和实时性优化等方

面来实现。

2.2关键技术分析

2.2.1数据采集技术

网络爬虫也叫网络机器人,顾名思义就是代替人类手工,利用程序或脚本

来自动穿梭互联网,并进行数据信息的采集。网络爬虫按照实现的技术和结构

可以分为通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫等类

型。

通用网络爬虫:主要由初始URL集合、URL队列、页面爬行模块、页面分析

5

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

模块、页面数据库、链接过滤模块等构成。

聚焦网络爬虫:主要由初始URL集合、URL队列、页面爬行模块、页面分析

模块、页面数据库、链接过滤模块、内容评价模块、链接评价模块等构成。

增量式网络爬虫:用来爬取新产生的网页或者内容被更新的网页数据,这

样可以有效地减少网页的下载量,减少访问时间和存储空间的耗费,但是增加

了网页抓取算法的复杂度和实现难度,所以主要用在有更新需求的数据。

深层网络爬虫:主要由URL列表、LVS列表(LVS指的是标签/数值集合,

即填充表单的数据源)、爬行控制器、解析器、LVS控制器、表单分析器、表单

处理器、响应分析器等部分构成。

本篇的需求来说,我们选取的是聚焦网络爬虫。聚焦网络爬虫的基本工作

流程:

先获取初始的URL、根据初始的URL爬取页面,并从中选取新的目标URL,

从新的URL中过滤掉与爬取目标无关的链接;再将过滤后的链接放到URL队列

中,对新URL进行爬取;直至爬取到所需数据时停止爬行;最后对数据进行处

理后存储。

2.2.2数据集可视化技术

数据可视化,是关于数据视觉表现形式的科学技术研究。其中,这种数据

的视觉表现形式被定义为,一种以某种概要形式抽提出来的信息,包括相应信

息单位的各种属性和变量。

数据可视化主要旨在借助于图形化手段,清晰有效地传达与沟通信息。而

本篇主要利用简单的数据可视化技术,来展示获取不同品牌鞋子的共性或差异

等信息,有助于指导后续的数据采集和模型优化。

2.2.3AlexNet模型

AlexNet模型包含五个卷积层和三个全连接层,最后一层输出每个类别的概

率分布。与传统的神经网络不同,AlexNet使用ReLU(rectifiedlinear

unit)作为激活函数,大大加速了训练速度。此外,AlexNet还使用了Dropout

技术来防止过拟合。

AlexNet模型结构如下图所示。

6

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

图2-1模型结构

lexNet的创新之处在于它将深度学习方法应用于图像分类任务,并且证明

了深度卷积神经网络可以取得非常好的性能。

3数据采集

3.1运动鞋数据采集

从网络上收集运动鞋图片,可以选取一些已知的网站,例如淘宝、京东、

天猫。如图所示。

图3-1数据集

3.2数据集获取分析

1.数据收集:需要从不同的运动鞋品牌中收集图像数据,以覆盖多个品牌、

型号和颜色等不同特征。可以在互联网上搜索、采集或购买相关数据,也可以

通过自行拍摄等方式进行收集。

2.数据清洗:对于收集到的图像数据,需要进行清洗,去除模糊、重叠、

异常、重复等无用数据,确保数据的准确性和可用性。同时需要对每个图像进

行标注,即给每个图像打上标签、标注品牌、型号等信息。

3.数据划分:将数据集划分为训练集、验证集和测试集。通常可以将数据

集的80%用于训练集,10%用于验证集和测试集。训练集用于模型训练,验证集

用于模型选择和调优,测试集是最终评估模型性能的关键。

7

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

4.数据增强:通过数据增强技术,将已有的图像数据进行多样化处理,以

增加数据集的多样性和复杂性。可以使用旋转、翻转、剪裁、缩放、亮度、对

比度、颜色等方式进行数据增强。

5.数据预处理:在将数据输入到AlexNet模型之前,需要进行一系列的预

处理操作,包括图像归一化(将图像大小、像素值、颜色等进行统一化)、缩

放、裁剪、标准化等操作。

基于以上数据集分析,可以构建适合于AlexNet模型运动鞋品牌识别的数

据集,并进行深度学习模型的训练和评估。

3.3编程实现

创建train.py进行解析,代码如下图所示。

图3-2数据集解析代码

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

4.1数据集预处理

数据可视化技术的基本思想是将数据库中每一个数据项作为单个图元元素

8

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

表示,大量的数据集构成数据图像,同时将数据的各个属性值以多维数据的形

式表示,可以从不同的维度观察数据,从而对数据进行更深入的观察和分析。

为了更直观的展示数据集,以便于后续对模型的改进与评估,本篇用饼图和词

云图来进行数据可视化。

数据预处理(datapreprocessing)是指在主要的处理以前对数据进行的一

些处理。为了更好的训练效果要将数据集切分成训练集、测试集和验证集。

4.2数据可视化

为了直观的看见我们可以将训练好的模型中的参数可视化出来,以了解每

个权重和偏置的取值范围、分布情况等信息。具体代码如下所示。

图4-1数据集可视化代码

运行代码main.py后查看,得到如下效果。

9

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

图4-2数据集可视化效果

4.3切分数据集

为了更好的训练、测试、优化、评估模型,需要对准备的数据集进行切分。

数据集一般会被切分为三种:训练集、测试集和验证集。

1、训练集(trainset):用于训练模型以及确定参数。

2、验证集(validationset):用于确定网络结构以及调整模型的超参数。

3、测试集(testset):用于检验模型的泛化能力。

本次数据切分采用分层切分数据集的方法。下面是具体的代码。

图4-3数据集切分

5模型构建及评估分析

5.1模型构建

数据集准备,收集足够数量的各品牌的运动鞋图片,并进行数据预处理,

如图像大小调整、色彩空间转换等。

10

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

图5-1数据集准备代码

模型构建,使用AlexNet作为基础模型,一般包括五个卷积层和三个全连

接层,通过修改AlexNet最后的输出层,训练出适用于运动鞋品牌识别的模型。

其中ConvolutionalNeuralNetworks(CNNs)通常表现优异,最后一层可根据具

体问题设定,可以是softmax函数或者sigmoid函数。

图5-2模型构建代码

训练模型:使用已经准备好的数据集对模型进行训练,通常采用随机梯度

下降(StochasticGradientDescent)和反向传播算法(BackPropagation

Algorithm)进行优化,使得模型能够较好地识别不同品牌的运动鞋。

11

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

图5-3模型训练代码

模型测试:将预先保留的测试集数据输入到训练好的模型中,以评估模型

的性能表现。

模型优化:根据实验结果调整模型参数,重新训练模型,提高模型性能。

5.2模型编译

为了能够使用基于深度学习AlexNet模型的运动鞋品牌识别方法,需要先

定义输入数据的形状和类别数,然后搭建AlexNet模型结构,并对其进行编译。

图5-4模型编译代码

在编译时,通常需要指定损失函数、优化器和评估指标等参数,以便在训

练过程中可以得到合适的反馈信息。本次采用交叉熵损失函数

categorical_crossentropy、随机梯度下降优化器(SGD)和准确率评估指标等

参数,同时还需要注意设置学习率、动量等超参数,以保证模型能够快速收敛

到较好的精度。

最后,还需要使用model.summary()输出模型的结构和参数信息,以便更好

地观察模型的特点和性能表现。整个模型编译的流程包括模型构建、模型编译

12

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

和模型结构输出三个步骤,这些步骤都需要仔细调试和优化,以获得最佳的模

型性能。

5.3结果分析

为了评估模型的性能表现,我们使用测试集数据进行验证,并计算出分类

精度等相关指标。在本次实验中,我们将准确率作为主要评估指标,计算出正

确分类的样本数占总样本数的比例,以此来评估模型的性能表现。具体地,我

们使用测试集数据输入到训练好的模型中,获取测试损失值和测试精度。测试

精度即为分类精度,表示模型对测试集数据进行分类时,正确分类的数

温馨提示

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

评论

0/150

提交评论