You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
EasyPR/README.md

143 lines
4.9 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# EasyPR
EasyPR是一个开源的中文车牌识别系统其目标是成为一个简单、高效、准确的车牌识别库。
相比于其他的车牌识别系统EasyPR有如下特点
* 它基于openCV这个开源库。这意味着你可以获取全部源代码并且移植到opencv支持的所有平台。
* 它能够识别中文。例如车牌为苏EUK722的图片它可以准确地输出std:string类型的"苏EUK722"的结果。
* 它的识别率较高。图片清晰情况下车牌检测与字符识别可以达到80%以上的精度。
### 更新
当前master分支处于开发状态要下载稳定版本请选择release
opencv3.x系列的请下载1.4标签版本在tag或者release里选择
opencv2.x系列的请下载1.3分支在branch里选择。
### 跨平台
目前除了windows平台以外还有以下其他平台的EasyPR版本。一些平台的版本可能会暂时落后于主平台。
|版本 | 开发者 | 版本 | 地址
|------|-------|-------|-------
| android | goldriver | 1.3 | [linuxxx/EasyPR_Android](https://github.com/linuxxx/EasyPR_Android)
| linux | Micooz | 1.4 | 已跟EasyPR整合
| ios | zhoushiwei | 1.3 | [zhoushiwei/EasyPR-iOS](https://github.com/zhoushiwei/EasyPR-iOS)
| mac | zhoushiwei,Micooz | 1.4 | 已跟EasyPR整合
| java | fan-wenjie | 1.2 | [fan-wenjie/EasyPR-Java](https://github.com/fan-wenjie/EasyPR-Java)
### 兼容性
当前EasyPR是基于opencv3.0版本开发的3.0及以上的版本应该可以兼容,以前的版本可能会存在不兼容的现象。
### 例子
假设我们有如下的原始图片,需要识别出中间的车牌字符与颜色:
![EasyPR 原始图片](resources/doc/res/plate_locate.jpg)
经过EasyPR的第一步处理车牌检测PlateDetect以后我们获得了原始图片中仅包含车牌的图块
![EasyPR 车牌](resources/doc/res/blue_plate.jpg)
接着我们对图块进行OCR过程在EasyPR中叫做字符识别CharsRecognize。我们得到了一个包含车牌颜色与字符的字符串
“蓝牌苏EUK722”
### 版权
EasyPR的源代码与训练数据遵循Apache v2.0协议开源。
EasyPR的resources/image/general_test文件夹下的图片数据遵循[GDSL协议](image/GDSL.txt)(通用数据共享协议)进行开放。
请确保在使用前了解以上协议的内容。
### 目录结构
以下表格是本工程中所有目录的解释:
|目录 | 解释
|------|----------
| src | 所有源文件
| include | 所有头文件
| test | 测试程序
| etc | 中文字符映射表
| resources/model | 机器学习的模型
| resources/train | 训练数据与说明
| resources/image | 测试用的图片
| resources/doc | 相关文档
以下表格是resources/image目录中子目录的解释:
|目录 | 解释
|------|----------
| general_test | GDTS通用数据测试集
| native_test | NDTS本地数据测试集
| tmp | Debug模式下EasyPR输出中间图片的目录
以下表格是src目录中子目录的解释:
|目录 | 解释
|------|----------
| core | 核心功能
| preprocess | SVM预处理
| train | 训练目录,存放模型训练的代码
| util | 辅助功能
以下表格是src目录下一些核心文件的解释与关系:
|文件 | 解释
|------|----------
| plate_locate | 车牌定位
| plate_judge | 车牌判断
| plate_detect | 车牌检测,是车牌定位与车牌判断功能的组合
| chars_segment | 字符分割
| chars_identify | 字符鉴别
| chars_recognise | 字符识别,是字符分割与字符鉴别功能的组合
| plate_recognize | 车牌识别,是车牌检测与字符识别的共有子类
| feature | 特征提取回调函数
| plate | 车牌抽象
| core_func.h | 共有的一些函数
以下表格是test目录下文件的解释:
|文件 | 解释
|------|----------
| main.cpp | 主命令行窗口
| accuracy.hpp | 批量测试
| chars.hpp | 字符识别相关
| plate.hpp | 车牌识别相关
### 使用
请参考[这里](Usage.md)
### 获取帮助
详细的开发与教程请见[介绍与开发教程](http://www.cnblogs.com/subconscious/p/3979988.html)。
如果你在使用过程中遇到任何问题,请在[这里](https://github.com/liuruoze/EasyPR/issues)告诉我们。
EasyPR讨论QQ群号是366392603加前请注明EasyPR学习讨论。
### Contributors
* liuruoze1.0-1.2版作者
* 海豚嘎嘎(车主之家)1.3版算法贡献者,提升了车牌定位与字符识别的准确率
* Micooz1.3-1.4版架构重构linux与mac支持opencv3.0支持utf-8编码转换
* jsxyheludeface版本一
* zhoushiweideface版本二
* ahccom新的plateLocate函数
* 阿水1.3版整合,数据标注等工作
### 鸣谢
taotao1233邱锦山唐大侠jsxyhelu如果有一天(zhoushiwei)学习奋斗袁承志圣城小石匠goldriverMicooz梦里时光Rain Wang任薛纪ahccom星夜落尘海豚嘎嘎(车主之家)刘超以及所有对EasyPR贡献数据的热心同学。