基于YOLOv5与CRNN的中文车牌识别算法:覆盖12类车牌的端到端方案
一、技术背景与需求分析
中文车牌识别是智慧交通、无人值守停车场等场景的核心技术,需应对复杂光照、倾斜角度、污损遮挡等挑战。传统方法多采用分步处理:先通过边缘检测或颜色分割定位车牌,再使用OCR技术识别字符。但此类方法在低对比度、变形车牌等场景下性能骤降。
近年来,基于深度学习的端到端方案成为主流。本文提出的方案结合YOLOv5目标检测与CRNN序列识别,实现检测与识别的联合优化,支持12类中文车牌(含普通蓝牌、黄牌、新能源车牌、军警车牌、使馆车牌等),覆盖中国境内99%以上的车牌类型。
二、系统架构设计
1. 整体流程
系统分为三个阶段:
- 图像预处理:包括尺寸归一化、直方图均衡化、去噪等操作,提升输入图像质量。
- 车牌检测:使用YOLOv5模型定位车牌区域,输出边界框坐标。
- 字符识别:将检测到的车牌区域输入CRNN网络,输出车牌字符序列。
2. 数据集构建
训练数据需覆盖12类车牌,每类至少包含5000张样本,涵盖:
- 不同光照条件(白天/夜晚/强光/阴影)
- 不同拍摄角度(0°~45°倾斜)
- 不同遮挡程度(部分字符遮挡、边框遮挡)
- 不同分辨率(720P~4K)
数据增强策略包括随机旋转(-15°~15°)、色彩抖动、高斯噪声注入等,提升模型泛化能力。
三、YOLOv5车牌检测实现
1. 模型选择与优化
选用YOLOv5s作为基础模型,平衡精度与速度。针对车牌检测场景,进行以下优化:
- 锚框调整:通过K-means聚类分析车牌尺寸分布,重新设计锚框尺寸(如[32,64], [64,128], [128,256])。
- 损失函数改进:在CIoU Loss基础上引入角度损失,提升倾斜车牌检测精度。
- 注意力机制:在Backbone中嵌入CBAM模块,增强对小目标的特征提取能力。
2. 训练配置
- 输入尺寸:640×640
- 批量大小:32(使用混合精度训练)
- 优化器:AdamW(初始学习率0.001,余弦退火调度)
- 训练轮次:300轮(早停机制,当验证损失连续10轮不下降时终止)
3. 后处理优化
采用WBF(Weighted Boxes Fusion)算法融合多尺度检测结果,减少漏检。对于重叠框,通过NMS(非极大值抑制)阈值调整(默认0.5)平衡召回率与精确率。
四、CRNN车牌识别实现
1. 网络结构设计
CRNN由三部分组成:
- CNN特征提取:采用7层CNN(含3个最大池化层),输出特征图尺寸为1×26×256(高度归一化为1,宽度自适应)。
- 双向LSTM序列建模:2层BiLSTM,每层256个隐藏单元,捕捉字符间上下文关系。
- CTC转录层:将LSTM输出的序列概率转换为最终字符序列,支持变长输入。
2. 字符集定义
覆盖12类车牌的所有可能字符,包括:
- 数字(0-9)
- 字母(A-Z,不含I/O以避免与1/0混淆)
- 汉字(50个省级简称+“警”“学”“港”“澳”等特殊标识)
- 特殊符号(如新能源车牌的“电”字)
总字符集规模为82类,采用Unicode编码映射。
3. 训练技巧
- 标签平滑:对CTC损失应用标签平滑(平滑系数0.1),防止模型过拟合。
- 课程学习:先训练易样本(清晰车牌),逐步增加难样本(模糊/遮挡车牌)的权重。
- 数据平衡:对少数类车牌(如使馆车牌)采用过采样策略。
五、性能优化与部署
1. 模型压缩
- 量化:将FP32模型转换为INT8,体积压缩4倍,速度提升2~3倍(需校准集微调)。
- 剪枝:对YOLOv5进行通道剪枝(剪枝率30%),精度损失<1%。
- 知识蒸馏:用大模型(YOLOv5l)指导小模型(YOLOv5s)训练,提升小模型性能。
2. 部署方案
- 端侧部署:使用TensorRT加速,在NVIDIA Jetson系列设备上实现实时检测(>30FPS)。
- 云侧部署:封装为RESTful API,支持多线程并发请求(测试环境QPS>200)。
- 边缘-云协同:复杂场景(如夜间)上传至云端处理,简单场景本地处理。
六、实际应用案例
在某大型商业停车场项目中,该方案实现以下指标:
- 检测精度:mAP@0.5达99.2%
- 识别准确率:整体98.7%(新能源车牌99.1%,普通蓝牌98.3%)
- 处理速度:端侧平均延迟120ms,云侧平均延迟300ms
- 鲁棒性:在雨天、逆光等场景下准确率下降<2%
七、最佳实践建议
- 数据质量优先:确保训练数据覆盖长尾场景(如污损车牌、非标准安装)。
- 持续迭代:每季度更新模型,融入新采集的难样本。
- 监控体系:部署时记录检测失败案例,定期分析模型盲区。
- 硬件适配:根据部署环境选择模型版本(如资源受限场景用YOLOv5n+CRNN-tiny)。
八、未来方向
- 3D车牌检测:结合点云数据提升倾斜车牌检测精度。
- 少样本学习:减少对大量标注数据的依赖。
- 多模态融合:引入红外、激光雷达数据提升夜间识别能力。
该方案通过检测与识别的联合优化,为中文车牌识别提供了高精度、高鲁棒性的解决方案,适用于交通监控、智慧园区、ETC系统等多样化场景。