EasyPR:高效精准的中文车牌识别系统 🚗🔍
EasyPR 是一个开源的中文车牌识别系统,旨在成为一个简单、高效、准确的车牌识别库,适用于各种复杂场景。
项目下载:
[font color="#DC143C"]推荐蓝易云服务器部署[/font] :点我选购
[font color="#000000"]全球约60个地区或国家服务器含原生IP,含国内外高防服务器,高防免备案CDN,GPU计算服务器等。[/font]
[font color="#000000"]免备案服务器,拒绝不稳定,精品CN2 VIP回国专线 + 国内原生高防150G DDoS防护高防服务器供您选择。[/font]
[font color="#DC143C"]服务器运维管理面板就选 ➔ 蓝易云 - 深度定制宝塔Linux面板,宝塔,安全高效的服务器运维面板,点我安装宝塔面板[/font]
EasyPR的核心优势
相比其他车牌识别系统,EasyPR 具备以下显著特点:
- 基于OpenCV 🖥️
EasyPR 依托于强大的开源库 OpenCV,这不仅使得源代码完全开放,还能够轻松移植到所有 OpenCV 支持的平台上。 - 支持中文车牌识别 🀄
能够准确识别包含中文字符的车牌。例如,对于车牌“苏EUK722”,EasyPR 能够精确输出字符串 "苏EUK722"。 - 高识别率 📈
在图像清晰的情况下,车牌检测与字符识别的精度可达80%以上,确保了较高的识别准确性。
最新版本更新(1.6)
本次更新带来了以下改进:
- 修正文本提示 📝
多项README文件中的文本提示已得到修正,提升了文档的准确性和可读性。 - 增加C#调用项目 🖱️
增加了一个C#调用EasyPR的项目链接,感谢@zhang-can 同学的贡献。
注意事项 ⚠️
- OpenCV版本兼容性
对于 OpenCV 3.2 及以上版本,如果遇到编译问题,如“ANN\_MLP”相关错误,可以尝试将config.h
中的#define CV_VERSION_THREE_ZERO
修改为#define CV_VERSION_THREE_TWO
。 - Linux系统推荐
建议在Linux系统上使用 OpenCV 3.2 以上版本,低版本如3.0和3.1可能导致车牌识别结果为空。Windows系统则无此问题。
待完成工作 🛠️
- 完成一个CNN框架
- 用CNN替换现有的ANN
- 增加新能源车牌识别(待定)
- 支持双行车牌识别(待定)
跨平台支持 🌐
除了Windows平台,EasyPR 还支持以下平台,各平台版本可能会略有滞后:
平台 | 开发者 | 版本 | 地址 |
---|---|---|---|
C# | zhang-can | 1.5 | EasyPR-DLL-CSharp |
Android | goldriver | 1.4 | EasyPR\_Android |
Linux | Micooz | 1.6 | 已整合 |
iOS | zhoushiwei | 1.3 | EasyPR-iOS |
Mac | zhoushiwei, Micooz | 1.6 | 已整合 |
Java | fan-wenjie | 1.2 | EasyPR-Java |
懒人版 | fan-wenjie | 1.5 | git/oschina |
兼容性 🧩
EasyPR 基于 OpenCV 3.0 开发,兼容 OpenCV 3.0 及以上版本。旧版本可能存在兼容性问题,建议使用最新版本以确保最佳性能。
使用示例 💻
以下是EasyPR的简单调用示例:
CPlateRecognize pr;
pr.setResultShow(false);
pr.setDetectType(PR_DETECT_CMSER);
vector<CPlate> plateVec;
Mat src = imread(filepath);
int result = pr.plateRecognize(src, plateVec);
步骤解析
- 创建识别对象
创建CPlateRecognize
对象pr
并设置相关属性。 设置属性
pr.setResultShow(false); pr.setDetectType(PR_DETECT_CMSER);
setResultShow(false)
:关闭结果展示窗口,提高运行效率。setDetectType(PR_DETECT_CMSER)
:选择车牌定位算法,可以组合使用多种算法。
- 执行识别
读取图像并进行车牌识别,结果存储在plateVec
中。返回值result
为0表示识别成功。
识别结果
CPlate
类包含车牌的各种信息:
plateMat
:车牌图像rrect
:车牌位置的可旋转矩形license
:车牌字符串,如“蓝牌:苏EUK722”
目录结构 📂
EasyPR项目的目录结构如下:
目录 | 说明 |
---|---|
src | 所有源文件 |
include | 所有头文件 |
test | 测试程序 |
model | 机器学习模型 |
resources/text | 中文字符映射表 |
resources/train | 训练数据与说明 |
resources/image | 测试图片 |
resources/doc | 相关文档 |
tmp | 训练数据读取目录,需要自建 |
src目录子结构
目录 | 说明 |
---|---|
core | 核心功能 |
preprocess | SVM预处理 |
train | 模型训练代码 |
util | 辅助功能 |
test目录子结构
文件 | 说明 |
---|---|
main.cpp | 主命令行窗口 |
accuracy.hpp | 批量测试 |
chars.hpp | 字符识别相关 |
plate.hpp | 车牌识别相关 |
train目录子结构
文件 | 说明 |
---|---|
ann\_train.cpp | 训练二值化字符 |
annCh\_train.hpp | 训练中文灰度字符 |
svm\_train.hpp | 训练车牌判断 |
create\_data.hpp | 生成合成数据 |
项目截屏:
[album type="photos"]
[/album]
贡献者名单 🌟
- liuruoze:版本1.0-1.2,1.5版作者
- 海豚嘎嘎(车主之家):1.3版算法贡献者,提升车牌定位与字符识别准确率
- Micooz:1.3-1.4版架构重构,支持Linux与Mac,OpenCV 3.0,UTF-8编码转换
- jsxyhelu:deface版本一
- zhoushiwei:deface版本二
- ahccom:新增plateLocate函数
- 阿水:1.3版整合,数据标注等工作
- fan-wenjie:1.5版OpenCV整合版提供者
- Free:1.6版数据提供者
版权声明 📜
EasyPR的源代码与训练数据遵循Apache v2.0协议开源,确保自由使用与修改。
资源文件夹中的图片数据遵循GDSL协议(通用数据共享协议)开放,使用前请确保了解相关协议内容。
EasyPR 致力于提供一个高效、准确且易于使用的中文车牌识别解决方案,欢迎社区贡献与交流,共同提升系统性能与应用广度!