『7x24小时有问必答』

中文车牌识别系统(YOLO + LPRNet)

一个基于深度学习的中文车牌识别系统,集成  YOLO 目标检测  与  LPRNet 字符识别  技术,支持从单张图片、视频文件或实时摄像头流中自动检测并识别车牌信息,涵盖蓝牌、绿牌(新能源)等中国主流车牌类型。

图片检测效果

1.webp

视频检测效果

2.webp

项目特点

1、精准检测:采用 YOLO 系列模型(支持 YOLOv8 / YOLOv11),高效定位复杂场景下的车牌位置
2、高效识别:基于 LPRNet 端到端识别模型,直接输出包含中文、字母、数字的完整车牌号
3、友好界面:使用 PySide6 构建图形用户界面,一键切换图片/视频/摄像头模式
4、多源输入:无缝支持静态图像、视频文件和实时摄像头流
5、多种车牌支持:兼容蓝牌、黄牌、绿牌(新能源八位车牌)等中国常见类型
6、跨平台运行:可在 Windows、Linux 和 macOS 上部署运行

项目结构

YOLO_LPRNet_Pytorch/

├── main.py                                   # GUI 主程序入口

├── demo_integrated_lpr.py            # 集成演示脚本

├── train_yolo.py                          # YOLO 检测模型训练

├── train_LPRNet.py                       # LPRNet 识别模型训练

├── test_yolo.py / test_LPRNet.py  # 模型测试脚本

├── prepare_ccpd_data.py               # CCPD 数据集预处理

├── install_dependencies.py           # 依赖自动安装脚本

├── requirements.txt                     # 依赖清单

├── data/

│    ├── NotoSansCJK-Regular.ttc     # 中文字体(用于结果绘制)

│    └── lprnet/                             # LPRNet 训练数据

├── model/

│    └── LPRNet.py                          # LPRNet 网络定义

├── images/                                   # 示例图片与视频

├── weights/                                 # 预训练模型权重

│    ├── best.pt                             # YOLO 最佳权重

│    └── Final_LPRNet_model.pth      # LPRNet 权重

├── yolo_utils.py                          # YOLO 工具函数

├── yolo_config.yaml                     # YOLO 配置文件

└── yolov8n.pt / yolo11n.pt           # YOLO 预训练主干模型

快速开始

1、环境配置

确保已安装 Python ≥ 3.8,运行:
python install_dependencies.py

核心依赖包括:
torch >= 1.7.1torchvision
opencv-python >= 4.5.0
ultralytics >= 8.0.0(YOLOv8/v11 支持)
PySide6 >= 6.4.0(GUI)
pillow(含中文字体支持)

2、启动应用

python main.py

启动后可通过 GUI 界面选择图片、视频或开启摄像头进行实时识别。

3、功能操作

选择图片:上传单张图像进行识别
选择视频:加载本地视频文件逐帧分析
打开摄像头:调用默认摄像头实时检测
暂停/停止:控制视频或摄像头流处理状态

模型训练(可选)

1、训练 YOLO 车牌检测模型

使用 CCPD 数据集(推荐  CCPD2020  +  ccpd_green
预处理
python prepare_ccpd_data.py --ccpd_root ./data/CCPD/CCPD2020/ccpd_green --output_dir ./data/yolo

训练
python train_yolo.py --model yolov8n.pt --epochs 50 --batch_size 16

2、训练 LPRNet 字符识别模型

先用训练好的 YOLO 模型裁剪车牌区域:
python extract_ccpd_plates.py --ccpd_root ./data/CCPD/... --model_path ./weights/best.pt

再训练 LPRNet:
python train_LPRNet.py

测试与评估

单独测试 YOLO
python test_yolo.py --model ./weights/best.pt --input ./images/test.jpg --save

单独测试 LPRNet
python test_LPRNet.py

端到端集成测试
python demo_integrated_lpr.py --yolo_model ./weights/best.pt --lpr_model ./weights/Final_LPRNet_model.pth --image ./images/test.jpg

技术原理

1、YOLO 车牌检测

单阶段目标检测,一次前向传播完成定位,速度快、精度高,适应多角度、遮挡、光照变化场景。

2、LPRNet 字符识别

专为车牌设计的轻量 CNN 模型,无需字符分割,通过 CTC 损失直接输出变长车牌字符串,支持中文+字母+数字混合识别。

3、系统流程

输入 → YOLO 检测车牌 → 裁剪区域 → LPRNet 识别 → 叠加结果 → 显示/保存

常见问题与解决方案

中文乱码:确保系统有中文字体(如  SimHei  或项目内置  NotoSansCJK
模型加载失败:检查权重路径是否正确,文件是否完整
检测漏检/误检:调整  --conf(置信度)和  --iou  阈值
性能不足:改用  yolov8n  或  yolo11n  小模型,降低输入分辨率
摄像头打不开:尝试修改设备索引(如  cv2.VideoCapture(0)  →  (1)
项目源码
Gitee:https://gitee.com/CWJ991203/yolo_-lprnet_-pytorch

关键词

作者:小码编匠
出处:gitee.com/smallcore/DotNetCore
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!

END

备注【开源
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码

有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力

点分享
点收藏
点在看
点点赞

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

上一主题上一主题         下一主题下一主题
QQ手机版小黑屋粤ICP备17165530号

关于我们·投诉举报· 用户帮助· 联系我们 · 本站服务 · 版权声明· 隐私政策 · 投搞指南

法律保护:PLC技术网,plcjs.com,plcjs.net等字样
Copyright 2010-2030. All rights reserved. 


微信公众号二维码 抖音二维码 百家号二维码 今日头条二维码哔哩哔哩二维码