项目特点
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.1、torchvision
ultralytics >= 8.0.0(YOLOv8/v11 支持)
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 162、训练 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
声明:网络内容,仅供学习,尊重版权,侵权速删,歉意致谢!
方便大家交流、资源共享和共同成长
纯技术交流群、需要的小伙伴请扫码
有收获?不妨分享让更多人受益
关注「程序员开源栈」,共同提升技术实力
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!