![logo_t](./demo_images/logo.png)
## HyperLPR 高性能开源中文车牌识别框架
#### [![1](https://badge.fury.io/py/hyperlpr.svg "title")](https://pypi.org/project/hyperlpr/)[![1](https://img.shields.io/pypi/pyversions/hyperlpr.svg "title")](https://pypi.org/project/hyperlpr/)
### 一键安装
`pip install hyperlpr`
###### 支持python3,支持Windows Mac Linux 树莓派等。
###### 720p cpu real-time (st on MBP r15 2.2GHz haswell).
#### 快速上手
```python
#导入包
from hyperlpr import *
#导入OpenCV库
import cv2
#读入图片
image = cv2.imread("demo.jpg")
#识别结果
print(HyperLPR_PlateRecogntion(image))
```
#### Q&A
Q:Android识别率没有所传demo apk的识别率高?
A:请使用[Prj-Linux](https://github.com/zeusees/HyperLPR/tree/master/Prj-Linux/lpr/model)下的模型,android默认包里的配置是相对较早的模型
Q:车牌的训练数据来源?
A:由于用于训练车牌数据涉及到法律隐私等问题,本项目无法提供。开放较为大的数据集有[CCPD](https://github.com/detectRecog/CCPD)车牌数据集。
Q:训练代码的提供?
A:相关资源中有提供训练代码
Q:关于项目的来源?
A:此项目来源于作者早期的研究和调试代码,代码缺少一定的规范,同时也欢迎PR。
#### 相关资源
- [python配置教程](https://www.jianshu.com/p/7ab673abeaae)
- [Linux下C++配置教程](https://blog.csdn.net/lu_linux/article/details/88707421)
- [相关技术博客](http://blog.csdn.net/relocy/article/details/78705662)(技术文章会在接下来的几个月的时间内连续更新)。
- [带UI界面的工程](https://pan.baidu.com/s/1cNWpK6)(感谢群内小伙伴的工作)。
- [端到端(多标签分类)训练代码](https://github.com/LCorleone/hyperlpr-train_e2e)(感谢群内小伙伴的工作)。
- [端到端(CTC)训练代码](https://github.com/armaab/hyperlpr-train)(感谢群内小伙伴工作)。
### 更新
- 更新了Android实现,增加实时扫描接口 (2019.07.24)
- 更新Windows版本的Visual Studio 2015 工程至端到端模型(2019.07.03)
- 更新基于端到端的IOS车牌识别工程。(2018.11.13)
- 可通过pip一键安装、更新的新的识别模型、倾斜车牌校正算法、定位算法。(2018.08.11)
- 提交新的端到端识别模型,进一步提高识别准确率(2018.08.03)
- [增加PHP车牌识别工程@coleflowers](https://github.com/zeusees/HyperLPR/tree/master/Prj-PHP) (2018.06.20)
- 添加了HyperLPR Lite 仅仅需160 行代码即可实现车牌识别(2018.3.12)
- 感谢 sundyCoder [Android 字符分割版本](https://github.com/sundyCoder/hyperlpr4Android)
- 增加字符分割[训练代码和字符分割介绍](https://github.com/zeusees/HyperLPR-Training)(2018.1.)
### TODO
- 支持多种车牌以及双层
- 支持大角度车牌
- 轻量级识别模型
### 特性
- 速度快 720p,单核 Intel 2.2G CPU (MaBook Pro 2015)平均识别时间低于100ms
- 基于端到端的车牌识别无需进行字符分割
- 识别率高,卡口场景准确率在95%-97%左右
- 轻量,总代码量不超1k行
### 模型资源说明
- cascade.xml 检测模型 - 目前效果最好的cascade检测模型
- cascade_lbp.xml 召回率效果较好,但其错检太多
- char_chi_sim.h5 Keras模型-可识别34类数字和大写英文字 使用14W样本训练
- char_rec.h5 Keras模型-可识别34类数字和大写英文字 使用7W样本训练
- ocr_plate_all_w_rnn_2.h5 基于CNN的序列模型
- ocr_plate_all_gru.h5 基于GRU的序列模型从OCR模型修改,效果目前最好但速度较慢,需要20ms。
- plate_type.h5 用于车牌颜色判断的模型
- model12.h5 左右边界回归模型
### 注意事项:
- Win工程中若需要使用静态库,需单独编译
- 本项目的C++实现和Python实现无任何关联,都为单独实现
- 在编译C++工程的时候必须要使用OpenCV 3.3以上版本 (DNN 库),否则无法编译
- 安卓工程编译ndk尽量采用14b版本
### Python 依赖
- Keras (>2.0.0)
- Theano(>0.9) or Tensorflow(>1.1.x)
- Numpy (>1.10)
- Scipy (0.19.1)
- OpenCV(>3.0)
- Scikit-image (0.13.0)
- PIL
### CPP 依赖
- Opencv 3.4 以上版本
### Linux/Mac 编译
- 仅需要的依赖OpenCV 3.4 (需要DNN框架)
```bash
cd Prj-Linux
mkdir build
cd build
cmake ../
sudo make -j
```
### CPP demo
```cpp
#include "../include/Pipeline.h"
int main(){
pr::PipelinePR prc("model/cascade.xml",
"model/HorizonalFinemapping.prototxt","model/HorizonalFinemapping.caffemodel",
"model/Segmentation.prototxt","model/Segmentation.caffemodel",
"model/CharacterRecognization.prototxt","model/CharacterRecognization.caffemodel",
"model/SegmentationFree.prototxt","model/SegmentationFree.caffemodel"
);
//定义模型文件
cv::Mat image = cv::imread("test.png");
std::vector<pr::PlateInfo> res = prc.RunPiplineAsImage(image,pr::SEGMENTATION_FREE_METHOD);
//使用端到端模型模型进行识别 识别结果将会保存在res里面
for(auto st:res) {
if(st.confidence>0.75) {
std::cout << st.getPlateName() << " " << st.confidence << std::endl;
//输出识别结果 、识别置信度
cv::Rect region = st.getPlateRect();
//获取车牌位置
cv::rectangle(image,cv::Point(region.x,region.y),cv::Point(region.x+region.width,region.y+region.height),cv::Scalar(255,255,0),2);
//画出车牌位置
}
}
cv::imshow("image",image);
cv::waitKey(0);
return 0 ;
}
```
###
### 可识别和待支持的车牌的类型
- [x] 单行蓝牌
- [x] 单行黄牌
- [x] 新能源车牌
- [x] 白色警用车牌
- [x] 使馆/港澳车牌
- [x] 教练车牌
- [ ] 武警车牌
- [ ] 民航车牌
- [ ] 双层黄牌
- [ ] 双层武警
- [ ] 双层军牌
- [ ] 双层农用车牌
- [ ] 双层个性化车牌
###### Note:由于训练的时候样本存在一些不均衡的问题,一些特殊车牌存在一定识别率低下的问题,如(使馆/港澳车牌),会在后续的版本进行改进。
### 测试样例
![image](./demo_images/demo1.png)
![image](./demo_images/demo2.jpg)
#### Android示例
![android](./demo_images/android.png)
### 识别测试APP
- 体验 Android APP:[https://fir.im/HyperLPR](https://fir.im/HyperLPR) (根据图片尺寸调整程序中的尺度,提高准确率)
#### 获取帮助
- HyperLPR讨论QQ群1: 673071218, 群2: 746123554(已满) ,加前请备注HyperLPR交流。
### 作者和贡献者信息:
##### 作者昵称不分前后
- Jack Yu 作者(jack-yu-business@foxmail.com / https://github.com/szad670401)
- lsy17096535 整理(https://github.com/lsy17096535)
- xiaojun123456 IOS贡献(https://github.com/xiaojun123456)
- sundyCoder Android第三方贡献(https://github.com/sundyCoder)
- coleflowers php贡献(@coleflowers)
- Free&Easy 资源贡献
- 海豚嘎嘎 LBP cascade检测器训练
- Windows工程端到端模型 (https://github.com/SalamanderEyes)
- Android实时扫描实现 (https://github.com/lxhAndSmh)
没有合适的资源?快使用搜索试试~ 我知道了~
Python-HyperLPR基于kerastensorflow的车牌识别
共758个文件
hpp:178个
java:135个
h:134个
需积分: 49 34 下载量 76 浏览量
2019-08-11
08:06:32
上传
评论 3
收藏 102.06MB ZIP 举报
温馨提示
HyperLPR是一个基于Python的使用深度学习针对对中文车牌识别的实现,与开源的EasyPR相比,它的检测速度和鲁棒性和多场景的适应性都要好于EasyPR。
资源推荐
资源详情
资源评论
收起资源包目录
Python-HyperLPR基于kerastensorflow的车牌识别 (758个子文件)
libopencv_dnn.a 7.56MB
liblibprotobuf.a 6.11MB
libopencv_imgproc.a 5.03MB
libopencv_core.a 4.47MB
libIlmImf.a 2.55MB
libopencv_calib3d.a 1.9MB
libopencv_ml.a 1.38MB
libopencv_photo.a 1.24MB
libopencv_features2d.a 1.2MB
libopencv_flann.a 1.06MB
libopencv_stitching.a 1024KB
libtegra_hal.a 844KB
liblibwebp.a 815KB
libopencv_imgcodecs.a 794KB
liblibtiff.a 690KB
libopencv_objdetect.a 642KB
libopencv_videostab.a 580KB
liblibjasper.a 490KB
libtbb.a 486KB
libopencv_video.a 473KB
liblibjpeg-turbo.a 428KB
liblibpng.a 427KB
libopencv_shape.a 417KB
libopencv_videoio.a 309KB
libopencv_superres.a 260KB
libopencv_highgui.a 90KB
libcpufeatures.a 14KB
OpenCVEngineInterface.aidl 995B
gradlew.bat 2KB
SegmenationFree-Inception.caffemodel 9.36MB
SegmenationFree-Inception.caffemodel 9.36MB
CharacterRecognization.caffemodel 909KB
CharacterRecognization.caffemodel 909KB
Segmentation.caffemodel 270KB
Segmentation.caffemodel 270KB
HorizonalFinemapping.caffemodel 46KB
HorizonalFinemapping.caffemodel 46KB
android.toolchain.cmake 84KB
OpenCVModules-release.cmake 14KB
OpenCVConfig.cmake 14KB
OpenCVModules.cmake 10KB
OpenCVConfig.cmake 2KB
cmake_install.cmake 1KB
OpenCVConfig-version.cmake 418B
OpenCVConfig-version.cmake 418B
PlateSegmentation.cpp 13KB
PlateSegmentation.cpp 13KB
PlateSegmentation.cpp 13KB
PlateSegmentation.cpp 13KB
PlateSegmentation.cpp 13KB
PlateSegmentation.cpp 13KB
javaWarpper.cpp 8KB
FineMapping.cpp 8KB
FineMapping.cpp 8KB
FineMapping.cpp 7KB
FineMapping.cpp 7KB
FineMapping.cpp 7KB
FineMapping.cpp 7KB
test_pipeline.cpp 6KB
test_pipeline.cpp 6KB
Pipeline.cpp 4KB
FastDeskew.cpp 4KB
FastDeskew.cpp 4KB
FastDeskew.cpp 4KB
FastDeskew.cpp 4KB
FastDeskew.cpp 4KB
FastDeskew.cpp 4KB
Pipeline.cpp 4KB
SegmentationFreeRecognizer.cpp 4KB
Pipeline.cpp 4KB
SegmentationFreeRecognizer.cpp 3KB
SegmentationFreeRecognizer.cpp 3KB
SegmentationFreeRecognizer.cpp 3KB
SegmentationFreeRecognizer.cpp 3KB
Pipeline.cpp 3KB
Pipeline.cpp 3KB
main.cpp 3KB
Pipeline.cpp 3KB
PlateDetection.cpp 2KB
PlateDetection.cpp 2KB
test_recognization.cpp 2KB
test_recognization.cpp 2KB
test_segmentationFree.cpp 2KB
test_segmentationFree.cpp 2KB
test_segmentation.cpp 1KB
test_segmentation.cpp 1KB
PlateDetection.cpp 1KB
PlateDetection.cpp 1KB
PlateDetection.cpp 1KB
PlateDetection.cpp 1KB
test_detection.cpp 802B
test_detection.cpp 802B
Recognizer.cpp 727B
Recognizer.cpp 720B
Recognizer.cpp 720B
Recognizer.cpp 709B
Recognizer.cpp 709B
test_fastdeskew.cpp 671B
test_fastdeskew.cpp 671B
CNNRecognizer.cpp 626B
共 758 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8
资源评论
weixin_39840515
- 粉丝: 446
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于opencv的dnn模块实现Yolo-Fastest的目标检测python源码+模型+说明(高分项目).zip
- 使用Python调用微信本地ocr服务.zip
- 【精品推荐】人工智能在医疗中的应用.pptx
- 【精品推荐】电子医疗仪器人机接口-(1).ppt
- 【精品推荐】电子医疗仪器人机接口.ppt
- ubuntu镜像ubuntu镜像01
- 基于paddle搭建神经网络实现5种水果识别分类python源码+数据集(高分毕设).zip
- 【精品推荐】电子商务网店类型介绍.ppt
- 基于paddle搭建神经网络实现水果识别分类python源码+数据集(高分项目).zip
- 三菱plc编程口通信学习笔记.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功