基于YOLOv3+CRNN模型的车牌识别系统设计_第1页
基于YOLOv3+CRNN模型的车牌识别系统设计_第2页
基于YOLOv3+CRNN模型的车牌识别系统设计_第3页
基于YOLOv3+CRNN模型的车牌识别系统设计_第4页
基于YOLOv3+CRNN模型的车牌识别系统设计_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

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

目录

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

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

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

1.2.1Python简介..........................................................................................2

1.2.2PyTorch简介........................................................................................2

1.2.3YOLOv3简介..........................................................................................2

1.2.4CRNN简介..............................................................................................3

1.2.5PyCharm简介........................................................................................3

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

2需求分析....................................................................................................................4

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

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

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

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

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

2.3.3卷积神经网络原理...............................................................................6

2.3.4模型的训练与预测...............................................................................7

3数据采集....................................................................................................................8

3.1数据集需求分析..........................................................................................8

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

3.3编程实现......................................................................................................9

4数据集处理..............................................................................................................11

4.1数据预处理................................................................................................11

4.2数据增强....................................................................................................11

4.3切分训练集与测试集................................................................................13

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

5.1模型构建....................................................................................................16

I

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

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

5.1.2创建模型.............................................................................................18

5.2模型编译....................................................................................................25

5.2.1优化器设置.........................................................................................25

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

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

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

5.3.2学习率调优.........................................................................................38

5.3.3batch_size设置................................................................................38

5.4模型部署....................................................................................................39

5.4.1系统前端设计.....................................................................................39

5.4.2系统后端部署.....................................................................................39

5.4.3设计效果展示及分析.........................................................................42

6小结..........................................................................................................................44

参考资料.........................................................................................................................46

II

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

基于YOLOv3+CRNN模型的车牌识别系统设计

1引言

当下社会的科技发展速度日新月异,随之而来的互联网、物联网、移动互

联网及社交网络等技术的涌现,催生了人工智能技术的崛起。作为一个庞大的

研究领域,人工智能涵盖了多个子领域,包括机器学习、深度学习、神经网络、

计算机视觉、自然语言处理等。人工智能技术在未来的发展前景令人瞩目,它

为机器人技术、医疗技术、物流运输等领域提供全新解决方案,为人类社会带

来革命性的改变。

随着时代的变迁,人工智能正以惊人的速度融入我们的生产和生活中。它

的应用不仅能极大地提高工作效率和降低成本,还能为经济和社会发展注入新

的能量。从人脸识别登机、无人超市、多功能巡逻机器人到智慧医疗等,人工

智能技术正在不断拓展,推进着人类生产和生活方式的巨大变革。越来越多的

国家和地区已把人工智能纳入国家发展战略中,将其视为推动经济转型、改善

民生福祉的重要工具,以把握这一重要发展机遇。

1.1项目背景

随着人工智能时代的到来,人工智能技术在社会中的应用越来越广泛。在

我们日常的生活中,智能手机已不再是传统手机的简单通讯工具,它已经具备

了人脸识别、语音识别、指纹识别等人性化功能。与此同时,经济社会的快速

发展和机动车保有量的不断增长,已经成为交通拥堵和车辆管理效率低下的重

要问题。为此,设计一个车牌识别系统来监控车辆情况,以提高车辆管理效率

和缓解道路交通压力,显得十分必要。车牌号码是唯一可以在公共场合确定汽

车身份的标识证书,因此车牌识别系统成为解决这一问题的理想方案。

随着大数据和人工智能技术的不断发展,智能车牌识别已经成为现代智能

系统的重要组成部分,并得到了广泛的应用,如高速公路、停车场、十字路口

等场景。智能车牌识别技术在数据处理、自适应学习和特殊场景训练等方面得

到了显著提升,具备更强的容错性和强壮性。通过利用车牌自动识别和跟踪技

术,我们能够有效地降低车辆管理成本,规范车辆行为,从而为社会的稳定和

恢复提供坚实的保障。

1

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

1.2开发环境与工具

1.2.1Python简介

Python是一门高级编程语言,由GuidoRossum于1989年创造。2005年至

2012年期间,大量应用Python的谷歌引起了广泛关注,进一步推动了Python

语言的发展。OpenStack框架是2012年云计算的主要发展方向之一,其中

Python也扮演了重要的开发角色,使得Python在当时备受瞩目。随着2014年

人工智能的兴起,Python再度高调亮相。事实上,Python内置了大量第三方库,

非常适合用来开发算法;同时,Python具有简单易学、开发效率高等特点,因

此Python逐渐成为了AI开发的热门语言。2017年,Python也走进了普罗大众

视野,成为学科教育的一门必修课程。如今,Python已成为一门广泛应用于网

络爬虫、机器学习、数据分析和可视化等多领域的高级编程语言。最重要的是,

Python具有开源(免费)的特点、丰富的库、支持跨平台和可移植性强等优势。

1.2.2PyTorch简介

PyTorch是Facebook开源的,专为使用GPU加速深度神经网络编程的

Torch的Python版本。Torch是一种经典的张量库,用于处理多维矩阵数据,

被广泛应用于机器学习和其他数学密集型应用。PyTorch采用动态图形而不是

TensorFlow的静态图形,能够根据计算需求实时调整图形。然而,由于Torch

语言使用的是Lua,因此在国内已经较少见,并逐渐被支持Python的

TensorFlow所取代。作为经典机器学习库Torch的Python端口,PyTorch为使

用Python语言的用户提供了更为便利的编程选择。实现yolov3是通过PyTorch

来构建的。

1.2.3YOLOv3简介

YOLO(YouOnlyLookOnce)是JosephRedmon,AliFarhadi等人在2015

年提出的一种高速目标检测方法,至今已经发展出了YOLOv1,YOLO9000,以及

YOLOv3三个版本,而在保持高精度的情况下YOLOv3的检测速度仍可以达到51

ms/帧,是相对目前所有方法来说,速度最快的。YOLOv3模型相较之前复杂了许

多,可以通过改变模型结构来权衡速度和精度,而且保留了很多v2和v1的特性。

除了网络结构,其余的没有太大变化,主要是将当今一些较好的检测思路融入

到YOLO中,在保持速度优势的前提下,进一步提高检测精度,特别是小物体的

检测能力。具体来说,YOLOv3主要改进了网络结构、网络特性和后续计算。

2

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

1.2.4CRNN简介

CRNN的全称是ConvolutionalRecurrentNeuralNetwork,是一种卷积循

环神经网络结构,用于不定长度文本序列的端到端识别。相较于先切割单个文

本,CRNN采用将文本识别转化为时变序列学习问题的方式,实现基于图像的序

列识别。CRNN是一种当前广泛应用于图像识别的模型,它可以识别长文本序列。

该模型由CNN特征提取层和BLSTM序列特征提取层组成,实现了端到端的联合

训练。CRNN利用BLSTM和CTC部件学习字符图像中的上下文关系,提高了文本

识别的准确率,从而使得模型更加健壮可靠。在预测过程中,标准的CNN网络

用于提取文本图像的特征,BLSTM则通过融合特征向量来提取字符序列的上下文

特征,最终,通过转录层(CTCrule)进行预测,可得到文本序列的概率分布。

1.2.5PyCharm简介

PyCharm是一款功能齐全的Python集成开发环境(IDE),它包含了一系列能

够帮助用户提高Python编程效率的工具,比如调试器、代码语法高亮、项目管

理、代码跳转、智能提示、自动补全、单元测试及版本控制等。此外,该IDE

还提供了一些高级功能,例如支持使用Django框架进行专业的Web开发。因此,

PyCharm已成为编写Python文件的热门开发环境之一。

1.2.6Python第三方库简介

NumPy:NumPy是一款功能强大的Python库,专门用于进行多维数组计算。

该库的名称来源于Numerical和Python这两个单词,提供了许多常用的库函数

和操作,可以更加便捷地进行数值计算。NumPy在数据分析和机器学习等领域得

到广泛应用。在使用Python的第三方库之前,先进行安装。

Cv2:OpenCV2(OpenSourceComputerVisionLibrary),即开源计算机

视觉库,是一个开放源代码的平台,并提供了强大的图片处理功能。它涵盖了

图像处理和计算机视觉的很多通用算法,具有广泛的应用前景。

Tensorflow:开源的深度学习框架,广阔应用于图形分类、音频处理、系统、

和自然语言处理等,是深度学习中非常热门的框架。

PIL:Pillow是Python中常用的基础图像处理库,主要用于图像的基本操

作,例如裁剪、大小调整和颜色处理等。相比之下,OpenCV和Scikit-image功

能更为丰富,但使用复杂度也更高,它们主要应用于机器视觉、图像分析等领

域,例如人脸识别。

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

3

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

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

torchvision:torchvision是一个独立于PyTorch的Python库,其中包括

流行数据集、模型架构和常见计算机视觉图像转换工具。主要面向图像操作方

面的应用。

tqdm:tqdm是一个快速、易于扩展的进度条提示模块。

Scipy:Scipy是一个基于Numpy的Python模块,集成了多种数学算法和方

便的函数。

H5py:读写超过内存的大数据。

2需求分析

2.1可行性需求分析

1.技术可行性

深度学习是一种特殊的机器学习,是借鉴了人脑由很多神经元组成的特性

而形成的一个框架。相对于普通的机器学习,深度学习在海量数据情况下的效

果要比机器学习更为出色。可以说目前所有应用了人工智能的行业,基本都用

到了深度学习模型。当今时代,卷积神经网络是目前深度学习领域非常热门的

技术,在计算机视觉领域表现尤为突出。它在图像目标检测、跟踪、行为识别、

图像分类和图像分割等领域广泛应用。而用Python来实现深度学习具有开发效

率高,简单、免费、兼容性、面向对象、丰富的库、规范的代码、可扩展性和

可嵌入性,修改容易,不需考虑垃圾回收内存泄露。利用Pycharm作为Python

的编译平台可以更快速编写代码,便于调试。

2.项目可行性

车牌识别在社会日常中有广泛的应用,无论是小区,停车场,路口,还是

高速公路,对车辆进行身份检测的地方都会用到。本项目主要对车牌各种汉字,

数字与字母的组成进行检测和识别,利用YOLOv3对图片内容是否存在车牌进行

检测,通过CRNN进行识别后的内容是否与真实车牌号一致,从网上下载VOC2007

标准数据集(已进行标注)准备数据集,并进行数据集处理和网络训练,最后

进行训练结果预测,进而可以输入图片进行任意检测。

2.2数据采集功能分析

此次项目的数据来源中科大团队在ECCV2018国际会议上发表了论文,题为

4

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

《TowardsEnd-to-EndLicensePlateDetectionandRecognition:ALarge

DatasetandBaseline》。该论文提出了一种端到端的车牌检测和识别方法,并

提供了一个大型的车牌数据集和基线模型。,网址如下:

/mirrors/detectrecog/ccpd?utm_source=csdn_git

hub_accelerator

CCPD2019车牌数据集是用来识别车牌的大型数据量的数据集,源于中科大

的科研人员收集而构成的。数据集全都采集于安徽合肥的各种车型(不包括新

能源汽车),数据集包括近30万张图片,大小为720*1160*3。

其中各类别车牌介绍有如图2-1所示:

图2-1车牌类别

2.3关键技术分析

2.3.1数据采集技术

数据采集技术主要通过下载中科大团队建立的CCPD2019数据集,于源项目

下图2-2给出的网盘地址下载:

5

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

图2-2数据集下载

2.3.2数据集可视化技术

把数据通过可视化传达出数据的见解的技术,主要是数据以信息图形的形

式展示,用以了解数据中的关系。通过数据的可视化,可以清晰直观地了解图

片信息之间的相关属性与联系。

可视化技术在计算机系统的大量数据以图片形式呈现,给予分析任务有很

大的帮助,了解各种车牌在不同时间,不同地点,不同角度等不同环境下的可

视化,以供研究。

2.3.3卷积神经网络原理

卷积神经网络是一种用于分析视觉图像的人工神经网络,使用卷积运算来

代替矩阵乘法。它主要用于图像识别和处理。卷积神经网络的工作过程可以分

为两个主要步骤:第一步是通过卷积、激活函数和池化来提取特征;第二步是

通过全连接层进行分类识别。图2-3为目标识别卷积神经网络结构图。

6

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

图2-3手写识别卷积网络结构图

2.3.4模型的训练与预测

在深度学习中模型模型不断的训练与预测,从而达到预测精准,效果最佳,

发挥更大作用,更便利于人们专业或日常中所需。机器通过大量数据的测试利

用,训练出模型,然后可以利用模型来进行对特定目标的预测,从而达到拟人

的识别效果。为了能够做出更好的系统,就需要对模型的不断训练和预测。典

型的机器学习的模型训练与预测如图2-4:

图2-4机器学习训练与预测图

7

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

3数据采集

车牌的数据集的采集需要采集两种:(1)是包含车牌的车辆全貌的原图片

用于预测定位,(2)是只包含车牌号码的车牌矩形框用于文字识别。

3.1数据集需求分析

车牌定位数据集于2-2数据采集中,通过下载得到CCPD数据集。打开

MicrosoftEdge浏览器进入mirrors/detectrecog/ccpd·GitCode。

在readme.md中通过百度网盘或谷歌网盘下载好CCPD数据集解压后。所使

用的数据集格式是VOC格式。自建文件夹VOC2007后,分别建立

Annotations,ImageSets和JPEGImages三个二级目录文件夹。把数据集存放入

VOC2007/JPEGImages中,展示如图3-1:

图3-1原车牌图片数据集展示

3.2数据集获取分析

车牌识别数据集就是OCR数据集,获取OCR数据集的方式有两种:一是直

接从网上下载CCPD已截出的车牌号数据集,第二种是根据车辆图片自行制作截

图车牌号图片做成数据集。车牌号识别数据集制作从CCPD数据集中的原图片截

取下来。展示为图3-2:

8

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

图3-2车牌号识别数据集展示

3.3编程实现

首先对下载好的车牌数据集进行简单的划分为训练集和验证集。

需单独找到车牌号,CCPD图片文件名的第五个字段专门表示车牌号。

需要按照三个字典表的顺序

9

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

文件解析与图片路径生成:

切出车牌大小的区域图片并标注:

10

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

保存后展示即为图3-2的车牌号识别数据集。

4数据集处理

4.1数据预处理

为了更好识别到原图片的车牌号,需要更精确获取原图片中车牌的位置,

所以要用到数据标注,数据标注是对原图片中目标内容的裁取。一般需要用

labelimg数据标注软件对目标进行标注如图4-1:

图4-1数据标注软件

4.2数据增强

缘于原来的CCPD车牌数据集数量过于庞大,标注所费事与费时过大,需要

更为快速地标注到车牌号。由于车牌的的颜色大小的普遍性与一致性,可以编

写数据标注脚本get_xml.py以便捷迅速获取车牌标注文件。

首先导入包如图4-2:

11

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

图4-2导包

解析图片与获取文件,以及对图片中车牌位置的处理:

图4-3解析与获取

文件生成入口包括各类标签名与文件保存路径,保存到

VOC2007/Annotations:

图4-4文件生成

运行后得到所有原图片中包含车牌号矩形框的数据标注文件:

图4-5get_xml运行

12

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

图4-6数据标注文件

4.3切分训练集与测试集

在有JPEGImage包含原图片和Annotations保存数据标注文件后,需要划

分训练集、测试集和验证集,这三类会生成在ImageSets中,在ImageSets中

创建Main文件夹后分别创建test.txt、train.txt、trainval.txt、val.txt

用于存放数据。

voc_annotations.py用来生成切分的训练集、测试集与验证集。

切分用的区分类别的文件路径,文件主要是名为lincese的被标注文件

图4-7分类文件路径

训练集+验证集对测试集和训练集对验证集的比例设为9:1

13

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

图4-8两个比例

指向数据集所在文件夹,默认指向根目录下的VOC数据集

图4-9指向路径

划分主要代码:

图4-10划分

14

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

生成切分为训练集、测试集和验证集

图4-11训练集测试集验证集

15

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

5模型构建及评估分析

5.1模型构建

(1)YOLOv3是一种快速的目标检测方法,首先是构建YOLOv3使用的主干

提取网络Darknet53后预测。

(2)OCR文字识别是通过图形处理和模式识别对字符进行识别,OCR文字

识别需要构建CRNN模型来实现。

5.1.1模型网络结构

(1)

图5-1Yolov3主干特征提取网络Darknet53

YOLOv3基于DarkNet53的骨干网络结构,以及使用残差网络进行特征提取

的原理。在残差卷积中,通过使用3x3的内核和步长为2的卷积操作,在压缩

16

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

输入特征层的同时获得特征层/图层。在特征层上进行连续的1x1卷积和3x3卷

积操作,并加上该层的输入,形成残差结构。

此外,Darknet53的每个卷积部分都采用独特的DarknetConv2D结构,并使

用L2正则化、BatchNormalization规范化和LeakyReLU。与正常的ReLU设置

负值为零不同,LeakyReLU为所有负值分配了一个非零斜率,在数学上可以表示

为:

图5-2LeakyReLU

从主干特征提取网络—>提取特征输入图片416x416

X3—>进行下采样,宽高压缩,通道数不断扩张—>获取特征层,表示输入

进来的图片的特征。

17

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

(2)

图5-3CRNN网络结构图

CRNN是一种网络架构,由卷积层、循环层和转录层三部分组成,如图所示。

其底层结构包括以下三个步骤:1卷积层用于提取输入图像的特征序列;2循环

层用于预测特征序列的每一帧的标签分布;3转录层将循环层每帧的预测结果转

化为标签序列。因此,CRNN的底部包含卷积层,用于自动提取特征序列;循环

层用于预测卷积层输出的特征序列的每一帧;顶部的转录层将循环层的每帧预

测转换为标签序列。虽然CRNN由不同类型的网络架构组成,如CNN和RNN,但

利用损失函数联合训练可以提高整体性能。

5.1.2创建模型

(1)Darknet53网络结构代码编程实现:

18

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

残差结构采用了1x1卷积进行通道数下降,并使用3x3卷积提取特征并实

现通道数上升。

DarkNet主干部分(展示部分)

由结构图每一个ResidualBlock块堆叠的个数是[1,2,8,8,4]

19

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

由layer3、layer4、layer5得出三次最终特征提取的结果

图5-4三次特征提取结果

YoloBody结构代码实现:

从Darknet53主干特征提取网络提取特征来获取达到Yolo模型预测结果。

Yolo主体部分

得出结构图红框的三个输出特征层。

20

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

通道上的维度发生的变化即1x1卷积和3x1x1卷积变化。

make_last_layers里面一共有七个卷积,前五个是用于提取图像特征的卷

积层。后两个是针对这些特征进行处理以获得YOLO网络预测结果的层。

测试打印三个红框的形状

结果互相对应:

图5-5三个特征层输出大小与红框对应

(2)CRNN网络模型代码的实现如下:

CRNN本体部分代码

21

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

Init输入的维度是(1,32,w)w宽度不需要限制。建立CNN模块,搭建

两层LSTM神经网络。

CNN建立的模块:

车牌号的序列信息进行特征提取后要识别信息在后接一个LSTM就可以

达到信息的预测了。双向LSTM网络层:

22

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

CNN卷积:

Forward函数部分,得到传入图片的卷积特征,B,512,1,*特征大小

BatchSize,512个通道,1指一行字符,*为宽度不确定。图像宽度传入LSTM,

通道数为特征。得到序列长度*BatchSize*预测类别

23

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

测试运行后得出:

图5-6CRNN网络模型测试结果

24

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

5.2模型编译

5.2.1优化器设置

Yolo模型优化器:

训练时需要调整的优化器设置。

需要用到的optimizer_type优化器种类为sgd,优化器内部使用momentum

参数,weitght_decay权值衰减参数为5e-4防止过拟合。

根据优化器种类选择优化器

图5-7YOLO模型优化器

CRNN模型优化器:

CRNN用的优化器简单。

Optimizer优化器放入Adam与训练学习率lr

Yolo模型计算损失函数时设置好的optimizer、lr与epoch

25

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

学习率函数lr_scheduler_func代码为:

CRNN模型采用CTCloss函数

5.2.2损失函数设置

26

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

在本项目中主要以Yolo的损失函数为主,Yolo的损失函数的构成有

loss_loc位置损失,表示标注锚框的位置准确性,loss_cls分类损失,表示框

内对应的目标内容的分类(在本项目中只有车牌一类),loss_conf置信度损失,

表示框内是否包含目标物体。

损失函数的主体,init里有anchors锚框,num_classes类别数,

input_shape输入图片大小,cuda显存设置,anchors_maskd九个先验框:

Forward函数部分:

27

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

先验框的位置调整参数与宽高调整参数:

28

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

置信度参数:

种类置信度参数

获取网络应有的结果y_true,noobj_mask,box_loss_scale:

进行结果解码是否预测与真实高度重合。重合度过大为较为正确的特征的

则忽略。Xyhw偏移量,taegets真实值标号,scaled_anchors锚框缩放的宽高,

in_h,in_w特征层大小与noobj_mask不包含物体掩码。

图5-8选择最佳效果

29

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

取得目标函数get_target的部分:

主要内容是找到真实框是使用哪些标号的先验框来调整。

首先计算图片数量,选取不包含物体的先验框

get_target主体计算过程:

对于每一张图片在BatchSize如果没有真实框便跳过。有真实框则:

30

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

31

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

get_target方法得出真实框是用具体哪个先验框调整的,用于上面结果解

码。

Get_ignore忽略方法的部分:

该方法的主要内容是找到预测的效果好但不是最佳来忽略,省去计算位置

损失。

32

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

33

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

5.3模型训练与调优

5.3.1模型训练设置

Yolo模型训练:

训练的要求:1、数据集满足VOC格式,内容有输入图片与标签(4数据集

处理中已满足)2.判断是否收敛需要损失函数3.每次训练的世代epoch包含若

干个步长step,每个训练步长step进行一次梯度下降。

训练中需要注意的设置的参数与代码调整:

Classes_path指向model_data下的txt,与训练的数据集相关

anchors_path先验框对应的文件txt与anchors_mask找到对应的先验框

对于不同数据集由于特征是通用的,因此可以使用通用的预训练权重。其

中最重要的是主干特征提取网络的权重部分,它们用于提取特征。预训练权重

文件可以从网上下载。

输入形状大小一般416x416

加载主干网络的预训练权重

冻结阶段的训练参数

Init_Epoch模型当前开始的训练世代从0开始

Freeze_Epoch冻结训练根据所需时间自行调整

Freeze_batch_size根据显存自行调整

解冻阶段的训练参数依上调整

10个epoch保存一次权值

34

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

在训练时10个epoch对验证集进行评估

训练集与验证集的图片标签路径

获取类别路径与锚框路径

开始创建yolo模型

根据预训练权重key与模型key进行加载

获取并记录loss损失函数

读取数据集对应的txt

35

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

建议步长与总训练步长

开始模型训练

训练迭代步长为0或验证迭代步长为0则数据集过小无法训练

训练gen与gen_val的数据加载,最后解冻训练

图5-9Yolo模型训练

36

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

CRNN模型训练:

OCR部分的CRNN模型训练的配置

训练时的准备:

加载CRNN模型

载入预训练模型

读入参数

训练步骤的过程:

net调整训练模式,data用于图片、目标、目标长度的遍历,optimizer用

于清理梯度,criterion是CTCloss要求的输入及batch_size参数等等

37

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

图5-10CRNN模型训练

5.3.2学习率调优

Yolo模型在开始训练前的学习率调整:

模型最大学习率1e-2与最小学习率为最大学习率的0.01

使用到的学习率下降方式为cos

根据以上batch_size的值(Freeze_batch_size)自行调整学习率

学习率下降的公式获取

5.3.3batch_size设置

yolo模型batch_size的设置跟电脑的显存大小有关,由于本人机能限制的

显存大小与batch_size受BatchNorm层影响最小为2,本项目设为4.

Freeze_batch_size为Unfreeze_batch_size的2倍,Freeze_batch_size

会影响到学习率的自行调整

38

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

5.4模型部署

5.4.1系统前端设计

本车牌识别系统有多种预测测试的模式:predict单张图片预测,video视

频预测、fps帧数测试、dir_predict遍历多张图片预测、heatmap预测结果热

力图可视化等。

实现本系统是predict.py文件,通过mode修改可以多种预测。

首先初始化Yolo模型。

在本项目中主要任务是以检测图片为主,测试最基础简单的识别系统是否

完善,即模式为predict。

crop指的是是否单张图片预测后截取目标,count指是否对目标计数

当模

温馨提示

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

评论

0/150

提交评论