传知代码-自动车牌识别检测系统(论文复现)

news2024/11/24 22:42:44

代码以及视频讲解

本文所涉及所有资源均在传知代码平台可获取

YOLO V8实现多种车牌检测+识别!

在这里插入图片描述

一、概述

使用yolov8进行车牌检测(训练+测试+演示+部署)

二、支持类型

我们的车牌识别检测系统支持多种类型的车牌
具体支持类型如下:
1.单行蓝牌
2.单行黄牌
3.新能源车牌
4.白色警用车牌
5.教练车牌
6.武警车牌
7.双层黄牌
8.双层白牌
9.使馆车牌
10.港澳粤Z牌
11.双层绿牌
12.民航车牌

三、车牌检测训练

  1. 下载CCPD数据集,本文附件已经进行了标签,生成train.txt和test.txt标签文件;
  2. 修改ultralytics/datasets/yolov8-plate.yaml train和val路径,换成你的数据路径:
train: /mnt/mydisk/xiaolei/plate_detect/new_train_data # train images (relative to 'path') 4 images
val: /mnt/mydisk/xiaolei/plate_detect/new_val_data # val images (relative to 'path') 4 images
  1. 训练
yolo task=detect mode=train model=yolov8s.yaml  data=./ultralytics/cfg/datasets/plate.yaml epochs=120 batch=32 imgsz=640 pretrained=False optimizer=SGD 

四、YOLO V8介绍

YOLO V8一种用于实时检测飞行物体的通用模型,可用于迁移学习和进一步研究,以及一种改进的模型,可实现飞行物体检测的最新结果。我作者通过在包含40个不同类别飞行物体的数据集上训练我们的第一个(广义)模型来实现这一点,迫使模型提取抽象的特征表示。然后使用这些学习到的参数对更能代表“真实的世界”环境的数据集(即更高频率的遮挡、非常小的空间尺寸、旋转等)进行迁移学习。同时,生成精细模型飞行物体的目标检测仍然是具有挑战性的,以及大物体的变化空间大小/纵横比,速度,遮挡,和集群的背景。为了解决一些挑战,同时最大限度地提高性能,作者提出了当前最先进的单次检测器YOLOv 8,试图找到推理速度和平均精度(mAP)之间的最佳权衡。

  • 损失函数和更新规则
    广义损失函数和权重更新过程可以定义如下:

L ( θ ) = λ box N pos L box ( θ ) + λ cls N pos L cls ( θ ) + λ dfl N pos L dfl ( θ ) + ϕ ∥ θ ∥ 2 2    ( 1 ) L(\theta) = \frac{\lambda_{\text{box}}}{N_{\text{pos}}}L_{\text{box}}(\theta) + \frac{\lambda_{\text{cls}}}{N_{\text{pos}}}L_{\text{cls}}(\theta) + \frac{\lambda_{\text{dfl}}}{N_{\text{pos}}}L_{\text{dfl}}(\theta) + \phi\frac{\|\theta\|^2}{2} \ \ (1) L(θ)=NposλboxLbox(θ)+NposλclsLcls(θ)+NposλdflLdfl(θ)+ϕ2θ2  (1)

V t = β V t − 1 + ∇ θ L ( θ t − 1 )    ( 2 ) V_t = \beta V_{t-1} + \nabla_{\theta}L(\theta_{t-1})\ \ (2) Vt=βVt1+θL(θt1)  (2)

θ t = θ t − 1 − η V t    ( 3 ) \theta_t = \theta_{t-1} - \eta V_t \ \ (3) θt=θt1ηVt  (3)
(1)是包含个体损失权重和具有权重衰减的正则化项的广义损失函数,(2)是具有动量β的速度项,以及(3)是具有η作为学习率的权重更新规则

具体的YOLOv8损失函数可以定义为:

L = λ box N pos ∑ x , y ( 1 c x , y ∗ ( 1 − q x , y + ) ∥ b x , y − b ^ x , y ∥ 2 2 ρ 2 + α x , y ν x , y ) L = \frac{\lambda_{\text{box}}}{N_{\text{pos}}} \sum_{x,y} \left( 1_{c^*_{x,y}} \left(1-q_{x,y}^+\right) \frac{\|b_{x,y} - \hat{b}_{x,y}\|^2}{2\rho^2} + \alpha_{x,y} \nu_{x,y} \right) L=Nposλboxx,y(1cx,y(1qx,y+)2ρ2bx,yb^x,y2+αx,yνx,y)

$$

  • \frac{\lambda_{\text{cls}}}{N_{\text{pos}}} \sum_{x,y} \sum_{c \in \text{classes}} \left( y_c \log(\hat{y}_c) + (1 - y_c) \log(1 - \hat{y}_c) \right)
    $$

$$

  • \frac{\lambda_{\text{dfl}}}{N_{\text{pos}}} \sum_{x,y} \left( 1_{c^*{x,y}} \left[ - (q{(x,y)+1} - q_{x,y}) \log(\hat{q}{x,y}) + (q{x,y} - q_{(x,y)-1}) \log(\hat{q}_{(x,y)+1}) \right] \right)
    $$

具体解释如下:

  1. IoU
    q x , y = IoU x , y = β x , y ∩ β ^ x , y β x , y ∪ β ^ x , y q_{x,y} = \text{IoU}_{x,y} = \frac{\beta_{x,y} \cap \hat{\beta}_{x,y}}{\beta_{x,y} \cup \hat{\beta}_{x,y}} qx,y=IoUx,y=βx,yβ^x,yβx,yβ^x,y
    q x , y q_{x,y} qx,y 表示在位置 ( x , y ) (x,y) (x,y) 处的交并比 I o U IoU IoU,即预测边界框 β ^ x , y \hat{\beta}_{x,y} β^x,y 与真实边界框 β x , y \beta_{x,y} βx,y 之间的交集和并集之比。

  2. 纵横比损失
    ν x , y = 4 π 2 ( arctan ⁡ ( w x , y h x , y ) − arctan ⁡ ( w ^ x , y h ^ x , y ) ) 2 \nu_{x,y} = \frac{4}{\pi^2} \left( \arctan\left(\frac{w_{x,y}}{h_{x,y}}\right) - \arctan\left(\frac{\hat{w}_{x,y}}{\hat{h}_{x,y}}\right)\right)^2 νx,y=π24(arctan(hx,ywx,y)arctan(h^x,yw^x,y))2
    这个公式计算预测框和真实框的纵横比差异,并将其作为损失的一部分。

  3. 权重因子
    α x , y = ν x , y 1 − q x , y \alpha_{x,y} = \frac{\nu_{x,y}}{1 - q_{x,y}} αx,y=1qx,yνx,y
    这个权重因子用于对损失函数中的各个部分进行加权,结合 IoU 和纵横比信息。

  4. 预测的类别概率
    y ^ c = σ ( ⋅ ) \hat{y}_c = \sigma(\cdot) y^c=σ()
    这里的 y ^ c \hat{y}_c y^c 是通过 sigmoid 函数 σ ( ⋅ ) \sigma(\cdot) σ() 计算得到的预测类别概率。

  5. 预测的 IoU 分数
    q ^ x , y = softmax ( ⋅ ) \hat{q}_{x,y} = \text{softmax}(\cdot) q^x,y=softmax()
    这个公式表示使用 softmax 函数来计算预测的 IoU 分数。

符号说明:

  • N pos N_{\text{pos}} Npos 表示包含目标的网格单元的总数。
  • 1 c x , y ∗ 1_{c^*_{x,y}} 1cx,y 是指示函数,用于标识包含目标的网格单元。
  • β x , y \beta_{x,y} βx,y 是表示真实边界框的元组,包括 (x 坐标, y 坐标, 宽度, 高度)。
  • β ^ x , y \hat{\beta}_{x,y} β^x,y 是相应网格单元的预测框。
  • b x , y b_{x,y} bx,y 是表示真实边界框中心点的元组。
  • y c y_c yc 是类别 c 的真实标签(不是网格单元 c),适用于输入中的每个网格单元 (x,y),无论是否存在目标。
  • q ( x , y ) + / − 1 q(x,y)+/-1 q(x,y)+/1 是最近的预测框 IoU(左和右)在 c x , y ∗ c^*_{x,y} cx,y 中。
  • w x , y w_{x,y} wx,y h x , y h_{x,y} hx,y 分别是边界框的宽度和高度。
  • ρ \rho ρ 是覆盖预测框和真实框的最小包围框的对角线长度。

每个网格单元然后确定其最合适的候选者来预测目标的边界框。这个损失函数包括由 Zheng 等人提出的完整 IoU(CIoU)损失作为框损失,标准的二元交叉熵作为分类损失(允许每个单元预测多个类别),以及 Li 等人提出的分布焦点损失作为第三项。
在这里插入图片描述

五、车牌识别

  1. 环境配置
    WIN 10 or Ubuntu 16.04
    PyTorch > 1.2.0 (may fix ctc loss)?
    yaml
    easydict
    tensorboardX

  2. 下载数据集车牌识别数据集CCPD+CRPD,本文已经帮大家打好标签并在附件中/datasets目录下提供标签文件;

  3. 将train.txt val.txt路径写入lib/config/360CC_config.yaml 中

DATASET:
  DATASET: 360CC
  ROOT: ""
  CHAR_FILE: 'lib/dataset/txt/plate2.txt'
  JSON_FILE: {'train': 'datasets/train.txt', 'val': 'datasets/val.txt'}
  1. 训练
python train.py --cfg lib/config/360CC_config.yaml

六、测试效果


python demo.py --model_path saved_model/best.pth --image_path images/test.jpg
                                   or your/model/path

七、demo结果展示

在这里插入图片描述

附件说明

附件内容包括已训练好的模型(.pt)文件,用于测试demo效果,以及重新标注的数据,分为3类(train.txt, test.txt, val.txt),推理代码onnx/yolov8_plate_onnx_infer.py

源码下载

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

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

相关文章

云渲染农场可以用哪些CG软件!

随着数字内容创作的需求日益增长,3D艺术家们不断寻求更高效、更强大的渲染解决方案。云渲染农场以其灵活性和可扩展性,成为了许多创作者的首选。这些平台支持多种流行的CG软件,如Maya、3ds Max、Cinema 4D、Blender等,以及各种插件…

go 语言学习路线图

1. Go语言简介 Go语言的历史背景和设计理念Go的优势:简洁、高效、并发支持强Go的应用场景:微服务、云计算、系统编程 2. 开发环境设置 安装Go语言开发环境 在Windows、macOS、Linux系统上的安装方法 配置环境变量:GOROOT 和 GOPATH验证安装…

认知战认知作战:作战机构深陷的两大战略误解阵营

认知战认知作战:作战机构深陷的两大战略误解阵营 认知战认知作战:作战机构深陷的两大战略误解阵营 关键词:认知战, 认知作战, 作战机构, 如临大敌派, 水到渠成派, 战略误解, 务实之道,认知作战,新质生产力,人类命运共同体,认知战,认知域,认…

ROS理论与实践学习笔记——5 ROS机器人系统仿真之URDF集成Rviz基本流程

实现流程: (1)创建功能包,导入依赖 创建一个新的功能包,名称自定义,导入依赖包:urdf与xacro。 在当前功能包下,再新建几个目录: urdf: 存储 urdf 文件的目录 meshes:机…

如何使用ssm实现办公OA系统0

TOC 10907ssm办公OA系统10907ssm0 第一章 绪 论 1.1背景及意义 系统管理也都将通过计算机进行整体智能化操作,对于办公OA系统所牵扯的管理及数据保存都是非常多的,例如管理员;主页、个人中心、公司公告管理、设备分类管理、办公设备管理、…

入门C语言基础

文章目录 入门C语言基础1 基础语法1.1 整形1.2 浮点型1.3 常量1.4 运算符1.4.1 算数运算符1.4.2 关系运算1.4.3 逻辑运算1.4.4 赋值运算符1.4.5 其他 1.5 if判断1.6 循环1.7 函数1.8 字符串和字符串1.9 数组 2 指针2.1 定义指针类型变量和取变量地址2.2 指针类型变量解引用2.3 …

一文讲明白初学者怎么入门大语言模型(LLM)?

关于如何入门LLM,大多数回答都提到了调用API、训练微调和应用。但是大模型更新迭代太快,这个月发布的大模型打榜成功,仅仅过了一个月就被其他模型超越。训练微调也已经不是难事,有大量开源的微调框架(llamafactory、fi…

工业物联网关-系统说明

系统介绍 如下图所示,网关采集终端数据,经解析,运算,组成网络报文后上送云端服务器。从下而上分别是设备数据采集层,数据缓存计算层,云端对接层。主要功能模块包括虚拟产品、设备管理,数据缓存…

2024大模型新书《大模型基础》教材发布,开源!

我已将这本大模型资料 免费分享 出来,需要的小伙伴可以扫取。 浙江大学DAILY实验室毛玉仁研究员、高云君教授领衔撰写的《大模型基础》教材第一版付梓。本教材为开源教材,旨在为对大语言模型感兴趣的读者系统地讲解相关基础知识、介绍前沿技术。作者团…

【LLM大模型】RAG早已经过时,RAG-Fusion正当时

人工智能和自然语言处理正在以惊人的速度发展,现在比以往任何时候都更需要更好、更可靠的信息获取途径和使用方式。正如我们现在所面对的,传统系统往往难以结合丰富的上下文以最相关的方式回答我们的提问。以谷歌为例,通常需要进行多次搜索才…

性价比之王!三角型(单体式)电动采光排烟天窗

三角型(单体式)电动采光排烟天窗是一种在厂房、仓库等大型建筑屋顶上常用的通风、采光和排烟设备。一、基本概念 三角型(单体式)电动采光排烟天窗是指其窗扇与安装面形成一定角度(通常为30),整体呈“三角”形状,并通过电动装置实现开合的采光排烟天窗&am…

7. BBP 控制板首次运行步骤说明

7.1. 概述 BBP 控制板在硬件焊接安装完成之后, 就可以通过烧写器将控制程序烧写到控制板的 MCU 上, 此步骤与通常的stm32单片机程序烧写完全一致。 烧写完成在程序能够正常运行后, 还需要执行至少一次机载参数初始化工作. 在后续调试及开发过程中, 如果参数系统内容未发生改变…

让你一看就懂,Javascript的原型和原型链

自己的话: 你是否看过很多关于javascript的原型,和原型链的技术文章?但是看完后仍然是一头雾水? 没关系,希望我的这一篇文章,能让你一看就懂。 原型和原型链是JavaScript实现继承和共享属性的重要机制。…

零样本主题驱动图像生成新方法!EZIGen:在保持灵活性的同时保留主题身份!

今天给大家介绍一个零样本主题驱动图像生成方法EZIGen,它会从你提供的主体图像中提取出重要特征,就像是给图像做一个“身份识别”,确保生成的新图像能够保留主体的独特特征。接下来,EZIGen会根据你输入的文本提示,生成…

怎么高效恢复硬盘和u盘里的数据:全面指南

在数字时代,数据已成为我们生活与工作中不可或缺的一部分。无论是个人珍贵的照片、视频,还是企业至关重要的文档、项目资料,一旦硬盘或U盘中的数据丢失,都可能带来不可估量的损失。幸运的是,随着技术的发展&#xff0c…

.Net基础1

.NET框架 项目结构 Connected Services是第三方服务MVC框架appsettings.json配置文件Program.cs控制台应用程序Properties里的json文件是配置启动方式 1. 基本开发 出现这个bug是因为防火墙没有把浏览器加入白名单,可以暂时先用http启动代替 第一步创建控制器&am…

希亦超声波清洗机是智商税吗?百元级超声波清洗机旗舰机皇真相大揭秘!

在深入探讨这个问题之前,我们先来了解一下超声波清洗机的工作原理。超声波清洗机利用高频振动波,通过液体介质传递能量,产生无数微小的气泡。这些气泡在压力作用下迅速闭合,形成强大的冲击波,能够深入清洁物品表面难以…

苹果秋季盛典:iPhone 16系列引领未来科技潮流

9月10日,苹果公司在众人瞩目中举办了2024年的秋季特别活动,发布了备受期待的iPhone 16系列。 尽管网络发布会已经持续了一整年,但熬夜观看的果粉们仍然热情不减,因为每一次苹果的新品发布都代表着科技界的一次重大飞跃。 iPhone …

汽车销量预测系统

项目介绍 此项目服务于汽车经销商、汽车生产商,旨在成为用于使企业充分了解消费者诉求,预见市场未来的需求量和可能存在的销售变化趋势,合理规划产能,正确制定生产计划,实施以销定产的生产策略的交流平台,…

应对专利过期的有效方法与补救措施

专利作为创新成果的重要保护手段,在一定期限内为所有者提供了独家的权利。然而,当专利过期时,情况会变得较为复杂,需要采取不同的应对方法,以下将分别针对忘记缴纳年费以及保护期限届满这两种常见情况进行要点解析。 一…