基于YOLOv5的车牌识别系统(YOLOv5+LPRNet)

news2025/2/25 23:05:01

YOLOv5网络结构图

YOLOv5s的网络结构如图1所示,该结构分为四个部分输入端、Backbone(主干网络)、Neck网络和Prediction(输出端)。

各部分具有的主要功能结构如下:

输入端:Mosaic数据增强、自适应锚框计算,以及自适应图片缩放。

主干网络:Focus结构、CSP结构。

Neck网络:FPN+PAN结构。

输出端:GIOU_Loss。

输入端

(1) Mosaic数据增强

输入端使用的数据增强方式是Mosaic方式,对数据集合采取随机缩放、随机剪裁、随机排布。

主要有两个优点:

第一,提高了数据集的复杂度:对多张图片,进行随机的缩放以及剪裁,之后再随机分布,进行拼接,使数据集得到极大地丰富,特别是进行随机缩放操作,可以增加许多小目标,训练得到的模型,鲁棒性会更好;

第二,减少 GPU 内存使用:使得 Mini-batch 也就是一个批次从数据集读取进行训练的图片张数,不需要设置的很大,因此,训练时使用一个GPU也能达到比较好的训练效果。

(2) 自适应锚框计算

YOLO系列检测算法中,针对不同目标,都会初始设定好默认长宽的锚框,进行训练时,在初始设定好的锚框基础上,输出一个预测框,将标注的真实框和预测框做对比,并且计算它们的差距,之后再反向更新,迭代网络结构中的参数。在 YOLOv3、YOLOv4中,训练不同的数据集时,计算初始锚框的值是通过单独的程序运行的,但在YOLOv5中将此功能嵌入到算法结构中,每次训练时,自适应的计算不同训练集中的最佳锚框值。

(3) 自适应图片缩放

在目标检测算法中,针对数据集中图片长宽一般不相同的问题,经常是将原始图片先缩放成一个统一的标准尺寸,全部处理后,再送入检测网络中,将长宽800*600的图像进行缩放,使用黑色背景来填充,填充后会出现大区域的黑边。在项目实际使用时,图片的长宽比几乎都不相同,因此缩放填充后,黑边大小都不同,如果填充的比较多,则存在信息冗余,影响网络推理速度。

因此,在最新的 YOLOv5 算法中进行了改进,这也是 YOLOv5算法推理速度能够变快的一个方面。该算法对原始图像进行缩放操作时,可以根据图片尺寸,自适应的添加最少黑边,图像的黑边明显变少了,这样处理后,在推理时,计算量也会得到减少,从而使得网络的目标检测速度会得到提高。

通过这种自适应缩放的优化改进,YOLOv5的推理速度得到了提升,把长宽 800*600 的图像缩放填充为 416*416 尺寸的图像为例,介绍自适应图片缩放的三步:

第一步,计算长宽的缩放比例,将原始图像尺寸 800*600,分别除以缩放后的尺寸 416*416,可以计算出长边的缩放系数为0.52,宽边的缩放系数为0.69。

第二步,选择较小的缩放系数 0.52,将原始图像的长宽都乘以0.52,计算出此时的长边是416,宽边是312。

第三步,计算需要填充的黑色区域,宽边312和需要缩放到的 416相差104,差值除以 2,就得到了两端需要填充的黑色区域的高度。

主干网络

   (1) Focus结构

Focus结构中关键的是切片操作,切片操作演示过程,将4×4×3的特征图经过切片处理,变成2×2×12的特征图。将608×608×3 的三通道图像输进 Focus 结构,经过切片操作,先变成304×304×12 的特征图,之后,经过使用 32 个卷积核的卷积操作,最终变成 304×304×32 的特征图。需要注意的是,YOLOv5s网络结构中的 Focus 结构使用32个卷积核,进行卷积操作,而其他三种网络结构,使用的卷积核数量有所增加。

(2) CSP结构

YOLOv5中有两种结构的CSP,CSP1_X结构在Backbone主干网络中,另一种CSP2_X结构在Neck中。对于Backbone的主

干网络结构,CSP 模块中的卷积核大小都是 3*3,步进值为 2,假如输入的图像尺寸是 608*608,那么它的特征图变化的规律

是:608*608 -> 304*304 -> 152*152 -> 76*76 -> 38*38 -> 19*19,最终得到了一个19*19大小的特征图。

使用CSP模块的优点:

一是增强网络的学习能力,使得训练出的模型,既能保持轻量化,又能有较高的准确性。

二是降低计算瓶颈。

三是降低内存成本。

 Neck网络

(1) FPN+PAN

FPN 是自顶向下的,通过上采样操作,将高层的特征信息和低层特征进行融合,计算出预测的特征图。YOLOv5网络结构中在FPN层后面,还添加了一个特征金字塔,自下向上,其中有两个PAN 结构,通过下采样操作,将低层的特征信息和高层特征进行融合,输出预测的特征图。

优点:通过自顶向下的FPN层,传达强语义特征,而通过自底向上的特征金字塔,传达强定位特征,从不同的主干层,对不同的检测层,进行参数聚合。

输出端

(1) GIOU_Loss损失函数

目标检测算法的损失函数一般由 Classification Loss(分类损失函数)以及 Bounding Box Regression Loss(回归损失函数)两大部分组成。回归损失函数在近几年的发展过程是:

Smooth L1 Loss -> IOU _Loss(2016)-> GIOU_Loss(2019)-> DIOU_Loss(2020)-> CIOU_Loss(2020)。

假设预测框和真实框的交集为A,并集为B,IOU定义为交集A除以并集B,IOU的Loss为:

IOU_Loss = 1-IOU=1-AB      (1)

IOU的Loss比较简单,但存在两个问题。

问题1:预测框和真实框不相交的情况,此时 IOU 为 0,无法反应出预测框和真实框距离的远近,此时损失函数不能求导,IOU_Loss损失函数无法优化预测框和真实框不相交的情况。

问题 2:当预测框和真实框大小相同,IOU 也可能会相同,此时 IOU_Loss 损失函数也不能区分这两种情况的不同。

因此使用GIOU_Loss来进行改进。令预测框和真实框的最小外接矩形为集合C,差集定义为集合C和并集B的差,则GIOU_Loss为:

GIOU_Loss=1-GIOU=1-(IOU-|差集||C |)  (2)

GIOU_Loss损失函数提高了衡量相交尺度的方式,减少了单纯IOU_Loss时的不足。

 YOLOv5网络结构分析

YOLOv5的4种网络结构YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x内容基本一样,只在深度和宽度上不同,通过depth_multiple 和 width_multiple 两个参数来进行控制,其中前者控制网络深度,后者控制网络宽度。现在分析4 种网络结构的差异。

网络结构深度

YOLOv5 网络结构中有两种CSP结构,分别是CSP1和CSP2,其中CSP1结构存在于Backbone主干网络中,CSP2结构存在于Neck网络中,四种网络中每个CSP结构的深度都是不同的。

图5 YOLOv5四种网络的CSP结构

以 YOLOv5s为例,第一个CSP1中,使用了1个残差组件,因此是CSP1_1,在YOLOv5m中,增加了网络的深度,在第一个CSP1中,使用了2个残差组件,因此是CSP1_2,YOLOv5l中,同样的位置,则使用了3个残差组件,YOLOv5x中,使用了4个,其余CSP也是同样的原理,使用残差组件的个数如图5所示。

在CSP2结构中,以第一个CSP2结构为例,YOLOv5s中使用了1组2*1等于2的卷积,因此是 CSP2_1,而YOLOv5m中使用了2 组,YOLOv5l中使用了3组,YOLOv5x中使用了4组,其他的四个CSP2结构,同理。YOLOv5的四种网络结构,随着不断加深网络层数,网络的特征提取能力以及特征融合能力也不断提高。
 

1,实现流程

  1. 训练车牌识别数据集  ,得到.pt文件
  2. 定义detect函数来执行目标检测和车牌识别的操作。
  3. 初始化一些设置,包括设备选择、输出文件夹、模型加载等。
  4. 根据输入来源(摄像头或图像/视频文件)设置数据加载器。
  5. 获取目标类别名称和颜色信息。
  6. 遍历数据集中的每个图像或帧,并执行目标检测。
  7. 应用非极大值抑制(NMS)来移除重叠的边界框。
  8. 如果启用车牌识别,应用LPRNet模型来识别车牌号。
  9. 处理检测结果,包括绘制边界框和标签。
  10. 如果需要,将结果保存到图像或视频文件中。

1.1 LPRNet模型介绍

LPRNet(License Plate Recognition Network)是一个专门用于车牌号码识别的深度学习模型。它的主要目标是从图像中准确地提取和识别车牌上的字符和数字。车牌号码识别是计算机视觉中的一个重要应用,通常用于自动化停车场管理、交通监控系统、道路收费、安全监控等领域。

LPRNet通常是一个端到端的神经网络,它接受输入图像,并通过一系列卷积神经网络层和循环神经网络(RNN)层来实现字符识别。该模型的主要组成部分包括:

  1. 卷积神经网络(CNN):用于特征提取。这些层帮助模型从车牌图像中学习重要的特征,例如字符的形状和纹理。

  2. 循环神经网络(RNN):RNN通常用于处理字符序列,因为车牌号码是一个字符序列。RNN层能够捕捉字符之间的依赖关系和顺序。

  3. CTC 损失函数(Connectionist Temporal Classification):用于训练模型。CTC损失函数有助于将模型的输出与标签对齐,从而实现字符识别。

LPRNet的训练通常涉及大规模的车牌数据集,其中包含各种不同地区和国家的车牌号码样本。模型通过反向传播算法进行训练,逐渐提高其在字符识别任务上的性能。

一旦训练完成,LPRNet可以用于实时车牌识别应用,它可以自动识别和提取图像中的车牌号码,为各种应用提供了高效的解决方案。

1.2 检测代码展示

  1. 先进行图片中车牌的识别定位
  2. LPRNet进行从图像中准确地提取和识别车牌上的字符和数字

1.3主函数展示

进行检测函数调用,以及pyqt界面设计

2,效果展示

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1087747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式设备时间同步(校时)

文章目录 二、校时方案三、chrony 介绍和使用3.1 chrony 介绍3.2 chrony 使用示例3.3 chrony.conf3.4 chronyd3.5 chronyc 四、gpsd chrony pps 介绍和使用4.1 gpsd 介绍4.1.3 gpsd 交叉编译 4.2 pps 和 pps-tools 介绍和使用 x.参考资料五、比较两个设备时间差5.1 date 命令…

python+opencv+深度学习实现二维码识别 计算机竞赛

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 pythonopencv深度学习实现二维码识别 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:3分创新点:3分 该项目较为新颖&…

Vue—大文件分片上传

背景 如题,最近遇到大文件上传慢的问题,用户需要经常上传一些超过一百多M的文件,系统由于历史原因上传功能并没有做分片上传的功能,是整个文件上传,并且服务器带宽限制和NGINX对文件大小的限制等问题,所以…

亳州市的自然风光与旅游资源:欣赏安徽省中部的壮丽景色

亳州市是中国安徽省的一个地级市,位于该省的中部。 亳州市辖区包括谯城区、涡阳县、蒙城县和利辛县等地。亳州市拥有悠久的历史和丰富的文化遗产,同时也以其独特的自然风光而闻名。 首先,让我们来了解一下亳州的历史和景点。亳州的历史可以…

机器人硬件在环仿真:解决实体开发与测试挑战,提升效率与安全性

工业机器人具备出色的灵活性和运动能力,广泛应用于工业制造领域。它们可以完成装配、焊接、喷涂、搬运、加工、品质检测等任务,提高了生产效率,保证了产品质量。此外,在医疗领域也有辅助手术等特殊应用,展现了其在多个…

pdf处理工具 Enfocus PitStop Pro 2022 中文 for mac

Enfocus PitStop Pro 2022是一款专业的PDF预检和编辑软件,旨在帮助用户提高生产效率、确保印刷品质量并减少错误。以下是该软件的一些特色功能: PDF预检。PitStop Pro可以自动检测和修复常见的PDF文件问题,如缺失字体、图像分辨率低、颜色空…

在 Elasticsearch 中实现自动完成功能 2:n-gram

在第一部分中,我们讨论了使用前缀查询,这是一种自动完成的查询时间方法。 在这篇文章中,我们将讨论 n-gram - 一种索引时间方法,它在基本标记化后生成额外的分词,以便我们稍后在查询时能够获得更快的前缀匹配。 但在此…

高质量!推荐一些免费自学网站

大家好,我是 jonssonyan 说到自学网站,大家第一印象肯定是”菜鸟教程“、”w3school“、B 站大学。这些教程当然非常的好,而且适合入门学习,但是存在一些缺点,第一,知识点比较分散,没有一个整体…

【EI检索征稿】第五届机器学习、大数据与商务智能国际会议(MLBDBI 2023)

第五届机器学习、大数据与商务智能国际会议(MLBDBI 2023) 2023 5th International Conference on Machine Learning, Big Data and Business Intelligence 由浙江财经大学信息管理与人工智能学院主办,AEIC学术交流中心作支持单位的第五届机器…

Squids DBMotion新增多款同构数据库迁移

秋天的第一次数据传输! 又双叒叕,丝滑的零停机数据库在线迁移工具Squids DBMotion再发新版! Squids DBMotion继续横向扩展数据库能力,本次不仅增加了PostgreSQL、GaussDB和openGauss的同构数据库能力,也提供了这些数…

自己在家给电脑重装系统Win10教程

自己在家怎么给电脑重装系统Win10?Win10电脑系统如果操作时间特别长了,就可能出现卡顿、蓝屏等系统问题,这时候用户就想给电脑重装系统,却不知道重装具体的操作步骤,下面小编给大家详细介绍自己在家给电脑重装Win10系统…

架构必备能力——kafka的选型对比及应用场景

系列文章目录 上手第一关,手把手教你安装kafka与可视化工具kafka-eagle Kafka是什么,以及如何使用SpringBoot对接Kafka 架构必备能力——kafka的选型对比及应用场景 系列文章目录一、Kafka的模型与优势1. Kafka 模型2. Kafka 优势 二、Kafka与竞争对手的…

【@胡锡进】大模型量化分析- 南京银行 601009.SH

对于股票价格的预测,以下是几种常见的方法: SARIMA模型:SARIMA(Seasonal Autoregressive Integrated Moving Average)模型适用于具有季节性变动的时间序列数据。它结合了ARIMA模型和季节性差分的方法来预测未来的价格…

axios响应拦截器 路由导航守卫

axios响应拦截器使用场景: 1. 处理全局错误:响应拦截器可以用来统一处理API请求的错误。当后端返回错误状态码,或者响应数据不符合预期时,我们可以在拦截器中进行统一的错误处理逻辑,例如弹窗提示、记录日志等。 2. 统…

倾斜摄影三维模型的顶层构建的问题分析

倾斜摄影三维模型的顶层构建的问题分析 在构建倾斜摄影超大场景的三维模型时,常见的顶层构建问题可能包括以下几个方面: 1、数据质量问题:倾斜摄影所获取的原始数据可能存在噪点、缺失、重叠或者变形等问题,这些问题会直接影响到…

Hadoop问题:start-all.sh显示未找到命令

在sbin文件夹下是start-all.sh可以运行的,但是到了别的文件夹下就不行了,于是想到了是文件路径问题,因为hadoop环境是和java环境一起配置的导致sbin写成了bin 解决办法: 打开.bashrc配置hadoop的环境变量 sudo vim ~/.bashrc …

热电厂蒸汽流量如何无线传输至无纸记录仪上显示?

某数码影像材料制造集团生产目前主要消耗蒸汽和电能源,蒸汽用能情况较为复杂,需要用5公里的蒸汽管线将较远区域某热电厂的蒸汽接入厂内,每周专人巡查一次管线,部分蒸汽管线位置特别偏僻,不易出入。 为了监控蒸汽流量&…

Java NIO到底是个什么东西?

Java NIO到底是个什么东西? 面试官:这次咱们就来聊聊Java 的NIO呗?你对NIO有多少了解? 候选者:嗯,我对Java NIO还是有一定的了解的,NIO是JDK 1.4 开始有的,其目的是为了提高速度。NIO翻译成 n…

GIS地图学知识

一、投影坐标系 "WGS 1984"坐标系墨卡托投影分度带(UTM ZONE)的选择: 北半球区选取最后字母为N的带,带数(经度的整数/6)31,如113.25,34.12中带数(113/6)3149,选取WGS 1984 UTM ZONE 49N 二、投影分带 经度中三度分带投…

Flink测试利器之DataGen初探 | 京东云技术团队

什么是 Flinksql Flink SQL 是基于 Apache Calcite 的 SQL 解析器和优化器构建的,支持ANSI SQL 标准,允许使用标准的 SQL 语句来处理流式和批处理数据。通过 Flink SQL,可以以声明式的方式描述数据处理逻辑,而无需编写显式的代码…