基于深度学习VGGNet模型的车型识别方法设计_第1页
基于深度学习VGGNet模型的车型识别方法设计_第2页
基于深度学习VGGNet模型的车型识别方法设计_第3页
基于深度学习VGGNet模型的车型识别方法设计_第4页
基于深度学习VGGNet模型的车型识别方法设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

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

目录

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

1.1项目背景和意义..................................................................................................1

1.2项目的目的和目标..............................................................................................1

2相关技术与工具介绍....................................................................................................2

2.1数据采集技术......................................................................................................2

2.2深度学习模型概述..............................................................................................2

2.3图像分类技术介绍..............................................................................................3

2.4Web框架技术(Flask).....................................................................................3

3开发环境与工具............................................................................................................3

3.1Python简介.........................................................................................................4

3.2PyCharm开发工具的简介..................................................................................4

3.3第三方库简介......................................................................................................6

3.4Pytorch深度学习框架........................................................................................7

4数据集的获取与预处理................................................................................................7

4.1数据集的获取......................................................................................................7

4.2数据集预处理......................................................................................................9

5深度学习模型选择与设计..........................................................................................10

5.1模型的选择........................................................................................................10

5.2模型的设计........................................................................................................11

5.3模型的编译........................................................................................................12

5.4模型的训练........................................................................................................12

5.5模型的评估........................................................................................................13

5.6模型的优化........................................................................................................14

6前端设计与实现..........................................................................................................14

6.1系统前端设计....................................................................................................14

6.2设计效果展示及分析........................................................................................15

7小结..............................................................................................................................17

I

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

参考文献.........................................................................................................................18

II

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

基于深度学习VGGNet模型的车型识别方法设计

1引言

1.1项目背景和意义

随着汽车数量的不断增加,交通拥堵、交通事故等问题日益严重。自动驾

驶技术通过采用先进的传感器、控制器和执行器等设备,实现了汽车行驶过程

中的环境感知、决策控制和执行操作,有助于减少交通事故、缓解交通拥堵、

降低能源消耗。在自动驾驶系统中,车型识别模块主要负责识别道路上行驶的

车辆类型,为后续行为预测和道路安全提供支持。

汽车车型的识别在智能交通方面有着极其重要的作用,它利用图像处理等

技术,根据不同汽车车型的图像特征,对其进行分类。通过车型识别技术,可

以实现对道路上行驶车辆的自动监测和统计,有助于交通管理部门更好地了解

道路使用情况,优化交通流量,提高交通管理效率。车型识别技术可以应用于

安防监控系统中,帮助警方追踪犯罪嫌疑车辆,加强对公共安全的保障。车型

识别可以应用于智能停车场系统,实现对车辆进出的自动识别和管理,提升停

车场的管理效率和用户体验。通过车型识别技术,可以收集大量车辆信息数据,

为城市规划、交通政策制定和提供重要参考依据,促进城市的智慧发展。

1.2项目的目的和目标

车型识别的主要目的是通过计算机视觉和人工智能技术,对道路上行驶的

车辆进行自动识别,从而实现交通管理、安全监控和智能停车等方面的应用。

要做到下面这些个目标:

准确识别车型:通过图像识别技术,准确识别不同类型的车辆,包括轿车、

卡车、越野车等。

实时性:能够在实时场景下快速识别车辆,以满足交通管理和安全监控的

需求。

车型分类:能够对不同种类的车辆进行分类识别。

1

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

2相关技术与工具介绍

2.1数据采集技术

从网上采集车辆图像,具体包括以下步骤:

1.搜索查找:通过百度或谷歌搜索,从网上下载车辆图像。

2.数据筛选:对抓取的图像进行筛选,去除不符合要求的图像,如分辨率过

低、模糊不清等。

3.数据清洗:对筛选后的图像进行清洗,去除噪声和模糊区域,提高图像质

2.2深度学习模型概述

Vgg16:它包含16个卷积层和3个全连接层这个模型结构简单而有效,采

用了小尺寸的3x3卷积核和最大池化层,使其在图像识别任务中表现出色。它

有以下几个特点:使用小尺寸的卷积核和最大池化层,增加了网络的深度没有

使用复杂的结构,易于理解和实现在大规模图像识别任务中表现出色,并且

VGG16是一个经典的深度学习模型,对于图像识别和特征提取任务具有重要意

义。

AlexNet:它包含5个卷积层和3个全连接层。它采用了卷积层、池化层、

ReLU激活函数和Dropout等技术。AlexNet中的卷积层和池化层交替堆叠,通

过不断减小特征图的尺寸来提取图像特征。还首次引入了ReLU激活函数,取代

了传统的Sigmoid函数,加速了训练过程并减轻了梯度消失问题。在AlexNet

中使用了LRN层,有助于提高模型的泛化能力。在全连接层中采用了Dropout

技术,有助于减少过拟合。在训练时,采用了数据增强的方法,如随机裁剪、

水平翻转等,有助于提高模型的泛化能力。它是在GPU上进行训练的,利用GPU

的并行计算能力加速了深度神经网络的训练过程。

YOLO:是一种流行的目标检测算法,它的主要特点是快速而准确。它是一

种单阶段目标检测器,与传统的两阶段方法R-CNN系列不同,它将目标检测任

务作为一个端到端的回归问题来解决,直接在单个神经网络中预测目标的类别

和位置。将图像分成网格单元,并在每个单元格中预测边界框的位置和目标类

别。这种方法使得模型可以同时检测整个图像中的多个目标,而不需要在不同

尺度上运行多个检测器。由于YOLO的设计,它非常快速,并且可以实时运行在

视频流上。YOLO通过在整个图像上进行单次前向传播来预测目标,因此速度比

2

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

较快。YOLO使用AnchorBoxes来预测边界框,这些AnchorBoxes代表了不同

形状和尺寸的目标,有助于提高模型对不同目标形状的检测能力。

2.3图像分类技术介绍

在图像分类任务中,目标是将输入的图像分为不同的类别,而不需要定位

图像中的物体。因此,我们只需要使用图像分类技术,即通过对输入图像进行

卷积和池化等操作,将图像转换为一组特征向量,然后使用这些特征向量来预

测图像所属的类别。

在VGG16模型中,我们使用卷积层和全连接层来提取图像特征和进行分类。

VGG16模型包括13个卷积层和3个全连接层,其中卷积层用于提取图像的特征,

全连接层用于将提取的特征映射到类别概率上。

因此,在车型识别分类任务中,我们需要使用PyTorch等深度学习框架来

构建VGG16模型,并使用车型数据集对模型进行训练和评估。同时,我们还需

要使用图像预处理技术来对输入图像进行归一化、缩放等处理,以提高模型的

性能和准确率。

2.4Web框架技术(Flask)

在python中,主流的web开发框架一般有:

1.Django:基于Python的高级Web框架,它提供了强大的功能和广泛的文档

支持,适用于快速开发复杂的Web应用程序。

2.Flask:另一个基于Python的轻量级Web框架,它设计简单、灵活,适用

于小型到中型规模的Web应用程序。

3.RubyonRails:基于Ruby编程语言的Web应用程序框架,它遵循约定优

于配置的原则,提供了高效的开发工具和功能。

4.Express.js:基于Node.js的灵活的Web应用程序框架,它具有简单易用

的API,适用于构建快速、可扩展的Web应用程序。

5.Angular:由Google开发的前端Web应用程序框架,使用TypeScript编写,

提供了一套完整的工具和组件来简化Web应用程序的开发。

6.React:由Facebook开发的用于构建用户界面的JavaScript库,虽然不是

完整的框架,但通常与其他库和工具(如Redux)一起使用来构建复杂的

Web应用程序。

3

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

7.Vue.js:一款轻量级、易学易用的JavaScript框架,用于构建交互式的Web

界面,它具有响应式数据绑定和组件化的特性。

本项目采用flask框架结合vue前端框架,搭建一个具有车型分类功能的前端

界面。其中还涉及的技术有:用element-ui组件搭建前端界面框架,用css调

节界面样式,用axios技术实现前后端的数据通信等。Flask的设计简单,易

于学习和使用。

它提供了基本的工具和库,让开发人员可以快速构建Web应用程序。Flask允

许开发人员根据自己的需求选择适合的库和工具,而不会强加太多约束。这种

灵活性使得开发人员可以根据项目的规模和要求来定制应用程序。:Flask的

设计是基于模块化的,开发人员可以根据需要添加或移除功能,使得应用程序

的结构更加清晰和易于维护。Flask使用Jinja2模板引擎来生成HTML页面,

这使得在页面中插入动态内容变得更加容易和灵活。Flask兼容WSGI(Web

ServerGatewayInterface),这意味着可以在多种Web服务器上运行Flask

应用程序,如Gunicorn、uWSGI等。Flask拥有大量的扩展库,可以帮助开发

人员快速集成各种功能,如数据库连接、表单验证、身份认证等。

3开发环境与工具

3.1Python简介

Python是一种广泛应用于科学计算、数据分析、人工智能等领域的编程语

言。其简洁的语法、强大的库支持以及丰富的社区资源,使得其在机器学习、

深度学习等领域具有广泛的应用。在本项目中,将使用Python编写代码,实现

数据预处理、模型构建、训练和部署等任务。

Python是一种高级、通用、解释型编程语言,由荷兰程序员Guidovan

Rossum于上世纪90年代初设计开发。Python以其简洁、易读的语法和强大的

功能而闻名,被广泛应用于Web开发、数据分析、人工智能、科学计算、网络

编程等领域。Python的设计理念强调代码的可读性和简洁性,这使得Python

成为初学者和专业开发人员都喜爱的编程语言之一。Python采用缩进来表示代

码块结构,而不是像其他语言那样使用大括号,这使得代码更具可读性,也促

使开发者编写出更整洁的代码。

Python拥有强大的标准库和丰富的第三方库,使得开发者能够轻松地处理

各种任务而无需从零开始编写代码。例如,NumPy和Pandas库使得数据分析变

得简单高效,Django和Flask等Web框架简化了Web应用程序的开发,而

4

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

TensorFlow和PyTorch等库则使得机器学习和人工智能领域的工作变得更加便

捷。

Python的跨平台性也是其优势之一,开发者可以在Windows、MacOS、Linux

等各种操作系统上编写和运行Python代码,而且Python的可移植性极强,同

一份代码可以在不同平台上无需修改即可运行。

除此之外,Python还支持面向对象、函数式和过程式等多种编程范式,使

得开发者能够根据项目需求选择最适合的编程风格。Python还具有动态类型系

统,这意味着开发者无需显式声明变量的类型,从而提高了开发效率。总的来

说,Python是一种功能强大、易学易用的编程语言,适用于各种领域的开发任

务。无论是初学者还是资深开发人员,都可以通过Python快速、高效地实现自

己的想法和项目。Python社区庞大活跃,开源精神浓厚,这使得Python不断

发展壮大,成为当今最受欢迎的编程语言之一。

3.2PyCharm开发工具的简介

Pycharm是专门为Python语言开发的一款IDE工具,提供了丰富的功能和

工具,包括代码编辑器、调试器、代码分析器、版本控制工具、测试工具、数

据库工具、Web开发工具等,可以帮助Python开发者更加高效地进行开发工作。

PyCharm是一款由JetBrains公司开发的集成开发环境(IDE),专门用于

Python语言的开发。它提供了丰富的功能和工具,旨在帮助开发人员更高效地

编写、调试和部署Python代码。PyCharm的强大功能和用户友好的界面使得它

成为许多Python开发者的首选工具之一。

首先,PyCharm具有强大的代码编辑功能。它支持代码自动补全、语法高

亮显示、代码导航和重构等功能,帮助开发者编写代码时更加高效准确。此外,

PyCharm还具有代码检查和错误提示功能,可以帮助开发者及时发现并修复代

码中的错误。

其次,PyCharm集成了调试工具,使得调试Python代码变得更加简单。开

发者可以在PyCharm中设置断点、逐行调试代码,并查看变量的值以及程序的

执行流程,帮助他们快速定位和解决问题。

此外,PyCharm还提供了强大的版本控制功能,支持与Git、Mercurial等

版本控制系统集成,方便开发团队协作开发。开发者可以在PyCharm中进行版

本控制操作,比如提交代码、拉取更新、解决冲突等,使团队合作更加高效。

5

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

PyCharm还支持各种Python框架和库,包括Django、Flask、NumPy、Pandas

等,开发者可以轻松地在PyCharm中创建和管理项目,以及使用这些框架和库

进行开发。

另外,PyCharm还具有丰富的插件生态系统,开发者可以根据自己的需求

安装各种插件,扩展PyCharm的功能,使其更符合个人的开发习惯和需求。

总的来说,PyCharm是一款功能强大、易于使用的Python集成开发环境,

为Python开发者提供了全面的工具和功能,帮助他们更高效地开发Python应

用程序。无论是初学者还是经验丰富的开发者,PyCharm都能满足他们的开发

需求,是Python开发的不可或缺的利器。

3.3第三方库简介

在本项目中,将使用以下Python第三方库:

torch:是Facebook开源的机器学习框架,提供了张量计算和动态计算图

等功能。

torchvision:是torch的图像处理库,提供了一些常用的图像处理函数和

预训练模型。

tqdm:是一个Python进度条库,可以在循环中显示进度条,方便用户了解

程序的运行进度。

netron:是一个神经网络模型可视化工具,可以用来查看、分析和调试深

度学习模型。

onnx:是一个开放式的神经网络模型表示格式,可以在不同的深度学习框

架之间进行模型转换和共享。

pyqt5:是一个PythonGUI编程库,提供了丰富的GUI控件和事件处理机

制。pillow:是Python的图像处理库,支持常见的图像格式和基本的图像处理

操作。

opencv:是一个开源的计算机视觉库,提供了图像处理、计算机视觉和机

器学习等功能。

matplotlib:是一个Python的绘图库,可以用来绘制各种类型的图表和图

形。

scikit-learn:是一个Python的机器学习库,提供了常用的机器学习算法

和工具函数。

Flask:是一个Python的Web框架,可以用来开发Web应用程序和API接

6

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

口。

werkzeug:是一个WSGI工具库,提供了一些常用的Web开发工具和中间件。

3.4Pytorch深度学习框架

torch:PyTorch的核心库,提供了张量计算和动态计算图等功能。

torch.nn:PyTorch的神经网络模块,提供了构建神经网络模型的类和函

数。

torchvision.transforms:PyTorch的图像变换模块,提供了常用的图像

变换函数,如Resize、ToTensor、Normalize等。

torchvision.models.vgg16:PyTorch的VGG16模型,提供了预训练的VGG16

模型和VGG16模型的定义。

torch.utils.data:PyTorch的数据加载和处理工具模块,提供了用于构

建数据集和数据加载器的类和函数。

torch.squeeze:PyTorch的张量操作函数,用于去掉张量中维度为1的维

度。

torch.softmax:PyTorch的张量操作函数,用于计算张量的softmax值。

torch.argmax:PyTorch的张量操作函数,用于返回张量中最大值的索引。

4数据集的获取与预处理

4.1数据集的获取

车型识别分类数据集从百度飞桨官网获取,网址:

/datasetdetail/95878/0

图4-1数据集下载

7

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

图4-2大巴车数据

图4-3小轿车数据集

图4-4SUV数据集图

8

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

图4-5面包车数据集图

数据集大小为911.32MB提供2000张标注了的车辆场景分类信息的高分辨

率图片。共有10个类别。巴士bus、出租车taxi、货车truck、家用轿车family

sedan、面包车minibus、吉普车jeep、运动型多功能车SUV、重型货车heavy

truck、赛车racingcar、消防车fireengine。

4.2数据集预处理

图4-6数据预处理

使用了PyTorch中的transforms模块,对图像数据进行预处理。以下是对

每个步骤的介绍:

transforms.RandomResizedCrop(224):这个方法首先对图像进行随机裁

剪,将图像裁剪为大小为224x224的新图像。

transforms.RandomHorizontalFlip():这一步是随机地对图像进行水平

翻转,增加训练数据的多样性。

9

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

transforms.ToTensor():将图像转换为张量形式,这会改变图像的格式从

HWC(高度、宽度、通道)到CHW(通道、高度、宽度),同时也将像素值从0-255

映射到0-1之间。

transforms.Normalize([0.485,0.456,0.406],[0.229,0.224,0.225]):

对图像进行标准化处理,这里使用了均值和标准差进行归一化,均值为[0.485,

0.456,0.406],标准差为[0.229,0.224,0.225]。

对于验证集("val"),只进行了部分处理:transforms.Resize((224,224))

将图像调整为大小为224x224,然后应用与训练集相同的

transforms.ToTensor()和transforms.Normalize()。

这些处理步骤通常在神经网络训练时用于数据预处理,以提高模型的泛化

能力。

5深度学习模型选择与设计

5.1模型的选择

可选的模型有LeNet,AlexNet,VGG,GoogLeNet和ResNet等。

LeNet

优势:是深度学习早期的经典模型,对于小规模数据集有一定效果。

劣势:在处理复杂数据集和大规模图像数据时性能不佳。

AlexNet

优势:引入了深度卷积神经网络的概念,对图像识别任务取得了巨大成功。

劣势:相对于后续的模型,它相对较深,但可能在更复杂的任务上表现不佳。

VGG

优势:结构简单清晰,易于理解和修改,在各种视觉任务中都表现良好。

劣势:相对于一些后来的模型,VGG相对较深,计算量较大。

GoogLeNet

优势:引入了Inception结构,参数效率高,适合部署在资源受限的设备上。

劣势:模型结构相对较为复杂,不太容易理解。

ResNet

优势:解决了深度神经网络训练中的梯度消失问题,使得可以训练非常深的

网络。

劣势:相对较深的网络结构可能需要更多的计算资源。

选择VGG16模型的原因是因为其结构相对简单清晰,易于理解和修改。VGG16

10

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

在各种视觉任务中都表现良好,同时相对于一些后来的模型,VGG16的深度适

中,不会过于复杂,计算量也在可接受范围内。

5.2模型的设计

图5-1vgg16结构图

本项目采用的是vgg16模型,输入一副3通道的图像,输出是模型判断这

幅图像所属的类别。

11

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

5.3模型的编译

图5-2编译过程

定义了交叉熵损失函数(CrossEntropyLoss),用于多分类问题的模型

训练。该损失函数适用于输出为类别概率分布的情况。使用Adam优化器来更

新模型的参数。Adam是一种常用的优化算法,lr=0.0001表示学习率被设置为

0.0001,用于控制每次参数更新的步长大小。

5.4模型的训练

图5-3训练过程图

本项目训练进行15轮训练,批量为32,项目中用到预训练的模型,所以

可以在进行比较少轮数的情况下获取比较好的效果。

12

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

5.5模型的评估

图5-4训练结果图

图5-5热力图

上图5-4。epoch15val_accuracy:0.925是整个验证集的准确率。上图

5-5。是每个类别的准确率经过15个epoch的训练,训练集上的损失率为0.264,

验证集上的准确率为0.925。此外,模型评估结果的矩阵表明预测的分类结果

与真实的分类结果高度一致。综合来看,该模型在给定的数据集上表现不错,

13

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

具有较好的性能。

5.6模型的优化

1.批量归一化;将输入数据进行归一化处理,有助于缓解梯度消失问题,加

速模型训练速度,并且提高了模型的泛化能力。

2.数据增强;在训练过程中对图像进行扩充和增强,例如随机裁剪、随机旋

转、随机翻转等,增加模型的泛化能力,并减少过拟合的风险。

3.使用预训练模型:可以使用在大规模数据集上预训练好的VGG16模型进行

迁移学习,通过微调部分或全部网络参数,加速模型的训练过程,并提高

模型的表现。

6前端设计与实现

6.1系统前端设计

图6-1系统前端设计图

使用Flask框架将图像分类应用程序部署为Web服务。

1.文件上传和预处理:用户可以通过/upload端点上传图像文件。上传的图像

会被保存在服务器上,并进行预处理,包括调整大小和格式转换。

2.预测图像:通过/predict端点,用户可以对上传的图像进行预测。该端点

会使用预训练的VGG16模型对图像进行分类,并返回预测结果,包括类别

和概率。

3.静态文件服务:通过/show/<path:filename>和/show/pre_show.png端点,

用户可以获取上传的图像以及预测后的图像,以便在网页上显示。

14

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

4.主页:通过根路径/,用户可以访问主页,这里可能会提供一个简单的HTML

页面,用于上传图片并展示预测结果。

5.跨域支持:使用flask_cors库解决了跨域问题,允许从不同域的客户端访

问您的API。

6.模型加载和预处理:在应用启动时,模型会被加载到内存中,并且对类别

信息进行了预处理。

通过这些端点和功能,用户可以上传图像,对其进行分类预测,并在网页上查

看预测结果。

6.2设计效果展示及分析

图6-2系统效果展示图

图6-3系统效果展示图

15

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

图6-4系统效果展示图

图6-5系统效果展示图

图6-6系统效果展示图

根据上面5张图片所识别出的结果,可以看出最低的预测概率为家用轿车

温馨提示

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

评论

0/150

提交评论