Skip to content

MrJaysong/improve-LPRNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

基于改进 LPRNet 的高效车牌识别系统:从数据构建到工业部署的完整实践(包含源码+数据集(25万张)+训练模型)

1、简介

  车牌识别(License Plate Recognition, LPR)作为智能交通与安防系统的核心模块,对算法精度、推理速度及部署灵活性提出了极高要求。LPRNet 是由 Xiang Bai 团队于 2018 年提出的一种轻量级、端到端、无需字符分割的车牌识别网络,因其结构简洁、推理高效而被广泛应用于工业场景。

  本文基于开源项目 LPRNet_Pytorch 进行深度改造与功能扩展,构建了一套全流程、可复现、支持中文特殊车牌的车牌识别系统。该系统不仅保留了原始 LPRNet 的高效特性,还新增了多数据集兼容处理、ONNX 导出、单图测试、自动旋转校正、中文路径支持等关键能力,显著提升了工程实用性与部署友好性。

  尤为关键的是,针对 PyTorch 的 nn.MaxPool3d 在 ONNX 导出时存在的兼容性问题,设计并实现了自定义的 maxpool_3d 模块,从根本上解决了模型在边缘设备和工业推理引擎中的部署障碍。

2、改进与新增功能

2.1、扩展中文车牌字符集

原始项目仅支持基础省份+字母数字,无法识别“学”、“警”、“挂”、“港”、“澳”等特殊车牌。

在 load_data.py 中重新定义字符集:

CHARS = [
    '京', '沪', '津', '渝', ..., '新',      # 31 省份
    '学', '警', '挂',                     # 新增特殊类型
    '0', '1', ..., '9',
    'A', 'B', ..., 'Z', '-',              # 注意:剔除易混淆 I/O
]

支持中国主流民用车牌、武警车牌、教练车、临时号牌等,覆盖更全面。

2.2、数据集自动化处理工具

为解决训练数据获取难题,开发了两套专用脚本,支持主流公开数据集: image

关键增强:

自动跳过含非法字符的车牌;

  • 支持中文路径读写(使用 np.fromfile + cv2.imdecode);
  • 图像统一缩放至 94×24(LPRNet 标准输入尺寸);
  • 文件名直接设为车牌号(如 京A12345.jpg),简化标签管理。

2.3、完整的训练-验证-测试闭环

在 train_LPRNet.py 和 test_LPRNet.py 中,完善了以下功能:

  • 动态学习率调度:按 [4,8,12,14,16] 轮次阶梯式衰减;
  • CTC Loss 正确实现:使用 nn.CTCLoss(blank=len(CHARS)-1);
  • Greedy Decode 解码器:去除重复字符与空白符(blank);
  • 批量测试评估:输出准确率、成功/失败样本统计;
  • 实验表明:在 24 万张混合车牌上训练 15 轮后,测试集(105 张)准确率达 90.4%

2.4、添加ONNX 导出

  • 支持动态 batch(可选);
  • 兼容 ONNX Runtime / TensorRT / OpenVINO。

2.5、推理与可视化

  • 支持 .pth(PyTorch)和 .onnx 双模型加载;
  • 内置 Hough 直线检测 + 自动旋转校正(auto_rotate_image):

3、数据集

统计数量 image

  • test_lprnet :总 105 张
  • val_lprnet:总 690 张
  • train_lprnet:总 254703 张

test_lprnet 部分测试集 image

val_lprnet 部分验证集 image

train_lprnet 部分训练集 image

详细介绍请看文章

https://blog.csdn.net/u011425939/article/details/157730256?spm=1011.2415.3001.5331

About

基于改进 LPRNet 的高效车牌识别系统:从数据构建到工业部署的完整实践(包含源码+数据集(25万张)+训练模型)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors