




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南商务职业技术学院毕业设计
目录
、宋体、1.5倍行距.
1引言............................................................................................................................1
1.1项目背景......................................................................................................1
1.2开发环境与工具..........................................................................................1
1.2.1YOLOv5算法简介..................................................................................1
1.2.2PyQT5.....................................................................................................1
1.2.3Opencv-python简介............................................................................2
1.2.4百度智能云API接口...........................................................................2
2需求分析....................................................................................................................2
2.1可行性需求分析..........................................................................................2
2.2数据集采集功能分析..................................................................................3
2.3关键技术分析..............................................................................................3
2.3.1数据采集技术.......................................................................................3
2.3.2数据集可视化技术...............................................................................4
2.3.3YOLOv5目标检测算法..........................................................................4
2.3.4Web框架技术(Flask/Django)........................................................6
3数据采集....................................................................................................................6
3.1数据集需求分析..........................................................................................6
3.2数据集获取分析..........................................................................................7
3.3编程实现......................................................................................................7
4数据集处理................................................................................................................8
4.1数据预处理..................................................................................................9
4.2数据增强......................................................................................................9
4.3切分训练集和测试集................................................................................10
5模型构建及评估分析..............................................................................................11
5.1模型构建....................................................................................................11
I
湖南商务职业技术学院毕业设计
5.1.1模型网络结构.....................................................................................11
5.1.2创建模型.............................................................................................12
5.2模型编译....................................................................................................12
5.2.1优化器设置.........................................................................................13
5.2.2损失函数设置.....................................................................................13
5.3模型训练与调优........................................................................................15
5.3.1模型训练设置.....................................................................................15
5.3.2学习率调优.........................................................................................15
5.3.3batch_size设置................................................................................16
5.4模型部署....................................................................................................16
5.4.1系统前端设计.....................................................................................16
5.4.2系统后端部署.....................................................................................17
5.4.3设计效果展示及分析.........................................................................18
6小结..........................................................................................................................19
参考资料.........................................................................................................................21
II
湖南商务职业技术学院毕业设计
基于YOLOv5深度学习模型的车牌识别系统设计加
1引言
二十年前,纸质信封成为了人们远距离的沟通方式,现如今只需要一键便
可联系世界。自改革开放以来,中国的经济得到了日益发展,互联网也走进了
中国的大门。科技的不断进步,互联网的蓬勃发展,生活随处可见。
1.1项目背景
随着科技的不断发展,人们生活水平质量的提高,机动车辆的数量日益增
加,汽车出行已经成为我们生活中的普遍现象。然而,这所引发出来的问题也
愈来愈严重。交通堵塞、私家车乱停放、闯红灯、超速等各种违章的问题也接
踵而来。面对庞大的车辆,执法人员难以人工管理,这个时候则需要一个完美
的车牌识别系统进行依法惩治。
我的毕业设计就是针对根据摄像头抓拍到的车辆图片进行车牌号码识别出
来并可视化,将识别出来的车牌号码存入数据到文件或者表格当中,以便以后
可以查看违规的车牌号。
1.2开发环境与工具
1.2.1YOLOv5算法简介
YOLOv5是一种单阶段目标检测算法在YOLOv4的基础上添加了一些新的改
进思路,使其速度与精度得到了极大的性能提升。主要的改进思路如下所示:
输入端:在模型训练阶段,提出了一些改进思路,主要包括Mosaic数据增
强、自适应锚框计算、自适应图片缩放;基准网络:融合其它检测算法中的一
些新思路,主要包括:Focus结构与CSP结构;Neck网络:目标检测网络在
BackBone与最后的Head输出层之间往往会插入一些层,Yolov5中添加了
FPN+PAN结构;Head输出层:输出层的锚框机制与YOLOv4相同,主要改进的是
训练时的损失函数GIOU_Loss,以及预测框筛选的DIOU_nms。
1.2.2PyQT5
PyQt是Qt框架的Python语言实现,由RiverbankComputing开发,是最
1
湖南商务职业技术学院毕业设计
强大的GUI库之一。PyQt提供了一个设计良好的窗口控件集合,每一个PyQt控
件都对应一个Qt控件,因此PyQt的API接口与Qt的API接口很接近,但PyQt
不再使用QMake系统和Q_OBJECT宏。
1.2.3Opencv-python简介
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机
器学习软件库,可以运行在Linux、Windows、Android和MacOS操作系统上。
它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、
Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算
法。
1.2.4百度智能云API接口
百度智能云于2015年正式对外开放运营,以“云智一体”为核心赋能千行
百业,致力于为企业和开发者提供全球领先的人工智能、大数据和云计算服务
及易用的开发工具。凭借先进的技术和丰富的解决方案,全面赋能各行业,加
速产业智能化。
2需求分析
2.1可行性需求分析
1.技术可行性
Python编程语言通俗易懂、是一种动态的面对对象的脚本语言。Python有
大量的第三方库,此项目用到Opencv和PyQt5,可以更加直观的可视化给用户,
让用户有更好的体验感。百度云是一家为企业和开发者提供全球领先的人工智
能、大数据和云计算的开发工具的公司,有着全面的API技术支持。
2.项目可行性
处理违章车辆一直是社会的焦点与热点,对于大量违章车辆的情况下,人
工处理是一个很困难的事情,如何高效率的解决违章车辆也就变得尤为重要。
本项目就是对于摄像头抓取到的照片进行车牌识别,利用已有的照片进行识别
车牌号,将车辆的车牌号可视化到界面,查出该车牌的归属地及所属类别(黄牌、
绿牌、蓝牌),根据需求是否保存扫描出的数据。
此项目的数据集来源于自己生活中通关摄像头拍照而得,通过多次验证本
项目可以运用到合适的实际生活场所中。
2
湖南商务职业技术学院毕业设计
2.2数据集采集功能分析
此次项目的数据集收集了约30W+的检测数据集(含蓝牌绿牌),加上在生
活中拍到的一些车牌照片,用于识别车牌信息所用。主要的数据源自于CCPD车
牌数据集,关于车牌数据集的说明,请参考超链
接:/detectRecog/CCPD。
CCPD(ChineseCityParkingDataset)是中国城市车牌数据集,共分为两类:
CCPD2019和CCPP2020,前者为蓝色车牌,而后者为新能源绿色车牌。
CCPD2019数据集包含将近30万张图片、图片尺寸为720*1160*3,共包含8
种类型图片,每种类型、数量说明如下表:
类型图片数量说明
ccpd_base199998正常车牌
ccpd_challenge10006比较有挑战的车牌
ccpd_db20001光纤较暗或较亮的车牌
ccpd_fn19999距离摄像头很近或者很远的车牌
ccpd_np3036没上牌的新车
ccpd_rotate9998水平倾斜20-50度,垂直倾斜10-40度
ccpd_till10000水平倾斜15-45度,垂直倾斜15-45度
ccpd_weather9999雨天、雪天或大雾的车牌
总共283037张车牌图
片
CCPD2019车牌数据集拍摄的车牌照片的环境复杂多变,包括了倾斜的、模
糊、雨天、雪天等多个场景的数据,并且大部分图片有且仅含有一个车牌;由于
采集人员主要在安徽省城市的停车场进行采集,导致大部分数据都是含有【皖】
的牌图片,而其他省份的车牌比较少,而一些特殊车牌的数据几乎没有。
2.3关键技术分析
2.3.1数据采集技术
从上方链接下载数据集后,打开PyCharm安装labelme,打开数据集路径(注
意路径名中不能含有中文路径名)。
将CCPD车牌数据集标注一小部分,标注形式为将图片尽可能小误差的给车
3
湖南商务职业技术学院毕业设计
牌信息标注,标注车牌四个角点,车牌水平和垂直角度以及车牌号码等信息,
并以图片文件名的方式进行命名。
2.3.2数据集可视化技术
Python可视化函数如图2-1显示:
图2-1可视化函数
2.3.3YOLOv5目标检测算法
YOLOv5目标检测算法的整体框图。对于一个目标检测算法而言,我们通常
可以将其划分为4个通用的模块,具体包括:输入端、基准网络、Neck网络与Head
输出端,对应于上图中的4个红色模块。YOLOv5算法具有4个版本,具体包括:
YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x四种,本文重点讲解YOLOv5s,其它的
版本都在该版本的基础上对网络进行加深与加宽。
输入端-输入端表示输入的图片。该网络的输入图像大小为608*608,该阶
段通常包含一个图像预处理阶段,即将输入图像缩放到网络的输入大小,并进
行归一化等操作。在网络训练阶段,YOLOv5使用Mosaic数据增强操作提升模型
的训练速度和网络的精度;并提出了一种自适应锚框计算与自适应图片缩放方
法。
4
湖南商务职业技术学院毕业设计
基准网络-基准网络通常是一些性能优异的分类器种的网络,该模块用来提
取一些通用的特征表示。YOLOv5中不仅使用了CSPDarknet53结构,而且使用了
Focus结构作为基准网络。
图2-2YOLOV5模型结构
Neck网络-Neck网络通常位于基准网络和头网络的中间位置,利用它可以
进一步提升特征的多样性及鲁棒性。虽然YOLOv5同样用到了SPP模块、FPN+PAN
模块,但是实现的细节有些不同。
图2-3SPP模块
Head输出端-Head用来完成目标检测结果的输出。针对不同的检测算法,
输出端的分支个数不尽相同,通常包含一个分类分支和一个回归分支。YOLOv4
利用GIOU_Loss来代替SmoothL1Loss函数,从而进一步提升算法的检测精度。
5
湖南商务职业技术学院毕业设计
2.3.4W
eb
框
架
技
术
(
Fl
as
k/
Dj
图2-4YOLOv5模块a
n
go)
可视化技术起源于图形学、计算机图形学、科学可视化、人工智能以及用
户界面等领域,也是当前计算机科学的一个重要研究方向,它利用计算机对抽
象信息进行直观的表示,以利于快速检索信息和怎强认知能力。
数据可视化是项目中十分重要的一环,主要通过计算机图形图像技术手段
展现出数据的基本特征或者隐含规律,它将复杂的数据转化为更容易的方式传
递给受众,并给人意想不到的洞察力,所以建立数据可视化确实可以使分析的
数据任务更清晰、更容易理解,特别是对于大规模的数据集。
3数据采集
3.1数据集需求分析
CCPD车牌数据集是属于一个免费开源的数据集,且数据集总量达到35W
左右,能够很好的作为训练模型的参数,也可用于车牌检测识别模型算法开发。
其中类型分为蓝色车牌和绿色车牌,蓝色车牌约34万张,绿色车牌约1万张。
种类丰富,应用场景多变,包括各类场景以及天气等特殊情况,利于模型训练
6
湖南商务职业技术学院毕业设计
的多变性和学习性。
3.2数据集获取分析
打开浏览器,在搜索栏中输入:/detectRecog/CCPD。
数据集说明如下:
CCPD2019:官方原始数据,主要是蓝牌数据,约34W。
CCPD2020:官方原始数据,主要是新能源绿牌数据,约1万。
CCPD2019-voc:将数据集CCPD2019转换为VOC数据格式(数据在
Annotations,JPEGImages文件夹),可以直接用于目标检测模型训练。
CCPD2020-voc:将数据集CCPD2020转换为VOC数据格式(数据在
Annotations,JPEGImages文件夹),可以直接用于目标检测模型训练。
为了方便后续训练车牌识别模型,数据集提供已经剪裁好的车牌图片,并
放在plates文件夹中。
图3-1数据集展示
3.3编程实现
导入依赖包文件,在PyCharm中terminal中下载所需库。所需要的库如图
所示。
7
湖南商务职业技术学院毕业设计
图3-2导入所需库依赖包
4数据集处理
数据集处理是指发现不恰当的数据集,并改正数据中可能识别错误的图片,
还包括检查数据一致性,处理无效值和缺失值等。其中数据集包括三种处理方
法:离散值的处理、属性归一化、分割数据集。其中后两种使用的频率较高,
尤其是分割数据集,在深度学习当中使用的频度最高。
1.离散值的处理:因为离散值的差值是没有实际意义的。比如如果用0,1,2
代表红黄蓝,1-0的差值代表黄-红,是没有意义的。因此,我们往往会把拥有d
个取值的离散值变为d个取值为0,1的离散值或者将其映射为多维向量。
2.属性归一化:归一化的目标是把各位属性的取值范围放缩到差不多的区
间,例如[-0.5,0.5]。这里我们使用一种很常见的操作方法:减掉均值,然后
除以原取值范围。
做归一化至少有以下3个理由:
1过大或过小的数值范围会导致计算时的浮点上溢或下溢。
2不同的数值范围会导致不同属性对模型的重要性不同(至少在训练的初
始阶段如此),而这个隐含的假设常常是不合理的。这会对优化的过程造成困
难,使训练时间大大的加长。
3很多的机器学习技巧/模型(例如L1,L2正则项,向量空间模型-Vector
SpaceModel)都基于这样的假设:所有的属性取值都差不多是以0为均值且取
值范围相近的。
3.分割数据集一般把数据集分为两部分,一部分为训练集,用于训练数据,
一部分为测试集,用于测试训练的数据,测试集不应过多或过少,数据较少时
训练集:测试集可以为8:2,较多时比例可以达到9:1。
8
湖南商务职业技术学院毕业设计
4.1数据预处理
图4-1高斯处理
图4-2数据预处理
4.2数据增强
数据增强也叫数据扩增,意思是在不实质性的增加数据的情况下,让有限
9
湖南商务职业技术学院毕业设计
的数据产生等价于更多数据的价值。
比如,对原始数据进行一系列的随机裁剪、旋转操作得来。
每张图对于网络来说都是不同的输入,加上原图就将数据扩充到原来的10
倍。假如我们输入网络的图片的分辨率大小是256*256,若采用随机裁剪成
224*224的方式,那么一张图最多可以产生32*32张不同的图,数据量扩充将近
1000倍。虽然许多的图片相似度太高,且实际的效果并不等价,但仅仅是这样
的简单的操作,效果已经非凡了。如果再辅助其他的数据增强方法,将会获得
更好的多样性,这就是数据增强的本质。
其中,数据增强的分类可以分为有监督的数据增强和无监督的数据增强方
法。另外,有监督的数据增强又可以分为单样本数据增强和多样本的数据增强
方法。而无监督的数据增强分为生成新的数据和学习增强策略两个方向。
4.3切分训练集和测试集
为了更好的使得模型训练,我们需要将获取的数据集进行切分成训练集与
测试集。
训练集:训练集是机器学习模型用于训练和学习的数据集。通常情况下,
训练集是原始数据集的一部分,用于训练模型的参数,模型通过训练集来学习
数据的特征,并产生一个模型,以便在预测中使用。
测试集:测试集是用于评估模型最终性能的数据集。它通常是从原始数据
集中划分出来的,与训练集和验证集互不重叠。测试集的作用是评估模型在未
见过的数据上的性能,并判断模型是否足够准确和鲁棒性。
一般情况下,我们习惯将训练集划分为80%,测试集划分20%,并且训练集
和测试集需要遵循如下的要点:
只有训练集才可以用在模型的训练过程中,测试集必须在模型完成
之后才被用来评估模型优劣的依据。
训练集中样本数量必须够多,一般至少要大于总样本数的一半。
两组子集必须从完整集合中均匀取样。
其中最后一点特别重要,均匀取样的目的是希望减少训练集/测试集与完整
集合之间的偏差(bias),但却也不易做到。一般的作法是随机取样,当样本
数量足够时,便可达到均匀取样的效果,然而随机也正是此作法的盲点,也是
经常是可以在数据上做手脚的地方。举例来说,当辨识率不理想时,便重新取
样一组训练集/测试集,直到测试集的识别率满意为止,但严格来说这样便算是
10
湖南商务职业技术学院毕业设计
作弊了。
图4-3划分数据集
5模型构建及评估分析
5.1模型构建
5.1.1模型网络结构
图5-1模型结构
训练Pipeline采用YOLOv5:/ultralytics/yolov5,原
始官方代码训练需要转换为YOLO的格式,不支持VOC的数据格式。为了适配VOC
数据,本人新增了LoadVOCImagesAndLables用于解析VOC数据集,以便正常训
练。另外,为了方便测试,还增加了demo.py文件,可支持对图片,视频和摄
11
湖南商务职业技术学院毕业设计
像头的测试。
导入相关库,创建模型,如图5-2。
图5-2导入相关库
5.1.2创建模型
项目实现了三个车牌识别模型:CRNN,LPRNet和PlateNet,其计算量和参
数量如下:
CRNN:最经典的OCR模型了,采用CNN+RNN的网络结构,提出CTC-Loss对
齐算法解决不定长序列对齐问题;原始码元是用于文字识别的,稍微改成车牌
数据集,即可用于车牌识别。
LPRNet:相比经典的CRNN模型,LPRnet没有采用RNN结构;是专门设计用
于车牌识别的轻量级的模型,整个网络结构设计高度轻量化,参数量仅有0.48。
PlateNet:LPRNet网络结构中存在MaxPool3d等算子,在端上部署时,会存
在OP不支持等问题,PlateNet模型去除MaxPool3d,改成使用MaxPool2d,保
证模型可端上部署成功。
图5-3数据展示页面
5.2模型编译
12
湖南商务职业技术学院毕业设计
5.2.1优化器设置
图5-4yaml文件
准备好数据,下一步是修改配置文件config_crnn.yaml的路径:
1.修改train_data和test_data为你自己的数据路径。
2.其他参数保存默认即可。
修改参数代码如图5-4.
5.2.2损失函数设置
13
湖南商务职业技术学院毕业设计
图5-5数据展示页面
从图5-5中可以看出大部分的车牌数据源自于安徽省,而其他省份的(如宁,
藏等省份)的车牌比较少,而一些特殊的车牌数据是几乎没有。导致数据长尾问
题。
数据长尾问题:是指数据集拍摄的照片环境复杂多变,包括了倾斜、模糊、
雨天雪天等多个场景的数据,但大部分图片有且仅含有一个车牌。【前文已经
提到CCPD数据集的采集人员来自安徽省,所以数据集多数为安徽省的车牌照】
因此我们需要进行样本均衡操作,实现该操作有两种方式:
1.手动增加一些比较稀少的数据集,如西藏等省份、警用车牌、武警
车牌的图片。使得数据丰富多样,更好的训练模型,提高模型的泛
化能力,提高模型的准确率。
2.实现Re-Sampling机制,本项目使用此机制,配置文件将resample
设置True即可。
Re-Sample说明:又称作重采样,重新采样数据集以在训练期间重新平衡类
分布,比如对多数类进行欠采样,或对少数类进行过采用。
14
湖南商务职业技术学院毕业设计
5.3模型训练与调优
5.3.1模型训练设置
图5-6运行代码(部分截图)
整套训练代码非常简单操作,项目源码已经给出CRNN、LPRNet的配置文件;
只需要修改好配置文件的数据路径,即可以开始训练了。代码如图5-6.
5.3.2学习率调优
图5-7lr设置
15
湖南商务职业技术学院毕业设计
可以看到模型设置为0.001时,准确率已经达到了0.957,后续已经达到了
0.98。因此,此时学习率已经达到了较不错的理想程度。也可以将学习率上下
微调值。运行结果如图5-7。
5.3.3batch_size设置
图5-8数据展示页面
训练模型时,设置2个epochs,并每次以64一组batch_size作为一批数
据传给模型训练。后续可以加载更多的batch_size来调优模型,避免错过最优
模型,然后在最优的模型情况下微微调参数。运行结果可以参考运行结果图
5-7。Acc值已经达到0.97,当然也可以调下lr值来确保模型的是否达到最优。
5.4模型部署
5.4.1系统前端设计
图5-9可视化窗口
16
湖南商务职业技术学院毕业设计
由于在PyCharm运行中的可视化效果没有很好的展示出来,因此,我自己
采用的PyQt5的界面自定义了一个可视化窗口。当然,如果不想重新写窗口界
面也可以采用Tensorflow自带的Tensorboard或者matplotlib库来一一展示
图片,为了可以更好的展示数据,并且让数据得到可观的体现。另外写了一个
项目,该项目调用了百度云API接口,百度云接口已经将模型已经具体实现。
只需要将识别出来的结果可视化到PyQT5即可。
PyQT5功能强大,能够自定义窗口,有强大的用户交互功能,PyQT5能够将
用户自定义窗口自动生成代码,支持浏览器的网页功能、支持CSS大部分功能。
颜色相比较tkinter多样化,美观且直观。这也是选择用PyQT5作为可视化界
面的原因之一。
5.4.2系统后端部署
图5-10后端部署代码(部分)
将读入的数据(车牌图片)进行一系列的操作,通过调用API接口得到识
别图片之后的结果。将识别出来的文字信息显示到指定的位置中,其中包括图
片的名称、识别的时间、车牌号码、车牌颜色与归属地。分别为:
图片名称:需要识别的图片,也就是我们导入的数据集车牌图片。
17
湖南商务职业技术学院毕业设计
识别时间:程序调用API接口并识别图片的具体时间。
车牌号码:识别出来的车牌照片,通常是包括是指的某个省份某个
城市加上后面跟五位字母或数字。
车牌类型:是指的车牌颜色,一般情况是蓝色车牌和绿色车牌,也
有少量的黄色车牌照片。并将识别出来的颜色作为背景色显示到窗
口中。
车牌信息:除了几个特定的直辖市,一般是指的某省某市。具体的
哪个市是由当省的字母决定,相关的参数已经另外提取到Json文
件当中。
将抓拍到的车牌位置放置到界面指定的位置,这其中涉及到图像分割的操
作。代码如图5-10(部分)。代码截图过长,因此选取特定有针对性的代码块。
5.4.3设计效果展示及分析
图5-11可视化界面
图5-12保存数据
18
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深入探讨2024年CPMM的试题及答案
- 全国高职单招综合素质测试能力职业规划篇
- 校园文化建设中的思政元素试题及答案
- 【南宁高三二模】南宁市2025届普通高中毕业班第二次适应性测试【历史试卷】
- 参与CPMM例会的试题及答案解读
- 中医骨伤知识试题及答案
- 汤姆索亚历险记读书笔记15篇
- 酒店解除合同(2025年版)
- 2025年度药店药品行业政策解读股份合作协议
- 2025年度环保项目股权质押融资协议书
- 维护医保基金安全
- 中华人民共和国各级人民代表大会常务委员监督法宣贯培训2024
- 2024年9月青少年软件编程Python等级考试二级真题试卷(含答案和解析)
- 口腔三基三严试题及答案
- 矿山开工报告范本
- AS3000-2007电气安装布线规范(中英文)
- 2024年上海市徐汇区中考英语二模试卷
- 2023年2月26日多省(市、区)公务员考试《公安专业科目》试题(含解析)
- 2024-2030年中国艾灸行业规模分析及投资前景规划研究报告
- 医院培训课件:《检验前质量控制-标本采集与送检》
- 四年级下册英语(人教PEP)高频考点每日一练
评论
0/150
提交评论