Quantcast
Channel: 小蓝博客
Viewing all articles
Browse latest Browse all 3145

EasyPR-开源精准的中文车牌识别系统

$
0
0

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 具备以下显著特点:

  1. 基于OpenCV 🖥️
    EasyPR 依托于强大的开源库 OpenCV,这不仅使得源代码完全开放,还能够轻松移植到所有 OpenCV 支持的平台上。
  2. 支持中文车牌识别 🀄
    能够准确识别包含中文字符的车牌。例如,对于车牌“苏EUK722”,EasyPR 能够精确输出字符串 "苏EUK722"。
  3. 高识别率 📈
    在图像清晰的情况下,车牌检测与字符识别的精度可达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-can1.5EasyPR-DLL-CSharp
Androidgoldriver1.4EasyPR\_Android
LinuxMicooz1.6已整合
iOSzhoushiwei1.3EasyPR-iOS
Maczhoushiwei, Micooz1.6已整合
Javafan-wenjie1.2EasyPR-Java
懒人版fan-wenjie1.5git/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);

步骤解析

  1. 创建识别对象
    创建 CPlateRecognize 对象 pr 并设置相关属性。
  2. 设置属性

    pr.setResultShow(false);
    pr.setDetectType(PR_DETECT_CMSER);
    • setResultShow(false):关闭结果展示窗口,提高运行效率。
    • setDetectType(PR_DETECT_CMSER):选择车牌定位算法,可以组合使用多种算法。
  3. 执行识别
    读取图像并进行车牌识别,结果存储在 plateVec 中。返回值 result 为0表示识别成功。

识别结果

CPlate 类包含车牌的各种信息:

  • plateMat:车牌图像
  • rrect:车牌位置的可旋转矩形
  • license:车牌字符串,如“蓝牌:苏EUK722”

目录结构 📂

EasyPR项目的目录结构如下:

目录说明
src所有源文件
include所有头文件
test测试程序
model机器学习模型
resources/text中文字符映射表
resources/train训练数据与说明
resources/image测试图片
resources/doc相关文档
tmp训练数据读取目录,需要自建

src目录子结构

目录说明
core核心功能
preprocessSVM预处理
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 致力于提供一个高效、准确且易于使用的中文车牌识别解决方案,欢迎社区贡献与交流,共同提升系统性能与应用广度!


Viewing all articles
Browse latest Browse all 3145

Trending Articles