探索 Python + HyperLPR 进行车牌识别
概要
HyperLRP是一个开源的、基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司
开发,支持PHP、C/C++、Python语言,Windows/Mac/Linux/Android/IOS 平台。本文将根据官网指引,进行一个车牌识别的入门探索。
特性
- 速度快 720p ,单核 Intel 2.2G CPU (macbook Pro 2015)平均识别时间低于100ms
- 基于端到端的车牌识别无需进行字符分割
- 识别率高,仅仅针对车牌ROI在EasyPR数据集上,0-error达到 95.2%, 1-error识别率达到 97.4% (指在定位成功后的车牌识别率)
- 轻量 总代码量不超1k行
目前可识别的车牌为
- 单行蓝牌
- 单行黄牌
- 新能源车牌
- 白色警用车牌
- 使馆/港澳车牌
- 教练车牌
- 武警车牌
注意
阅读本文前,您可能需要熟悉Python的开发环境,一些基本语法,Jupyter Notebook的使用,会使用git 客户端工具,知道 Tensorflow等等。
工具
- Anaconda for Python 3.x on Win64
- Tensorflow
过程
1、安装Anaconda
进入官网,点击Windows -> Python 3.6 version -> 64-Bit Graphical Installer(631 MB)进行下载;下载完成后打开一直下一步直至安装完成。整个安装过程需要10分钟左右。
Q: 为什么要python3.6呢?
A : 因为在windows下,tensorflow不支持Python 2.7,请各位看官注意。在2.7下用pip安装ttensorflow会一直报找不到相应的模块。
下载界面
2、安装相关的python库
Anaconda已经包含了pip安装器,我们需要进入 C:\Users\您的计算机用户名\Anaconda3\Scripts
下运行pip进行安装。
在开始菜单中输入cmd,右键以管理员运行, 执行cd C:\Users\您的计算机用户名\Anaconda3\Scripts
,在些输入pip命令安装依赖的模块
pip install pyinstaller -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
pip install Keras
pip install Theano
pip install Numpy
pip install Scipy
pip install opencv-python
pip install scikit-image
pip install pillow
pip install tensorflow
安装过程中可能出现Time out错误如下
raise ReadTimeoutError(self._pool, None, 'Read timed out.')
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
不要慌,重新输入一次安装命令。如:pip install pillow
若遇到多次这种情况,您可能需要一架梯子。
3、下载车牌识别库
打开Git CMD,输入下面的指令,将仓库克隆到本地,--depth=1
不克隆历史,只取最新的一个版本,对我们使用者来说可以节少大量的时间,因为历史版本对我们没有什么意义。
git clone --depth=1 https://github.com/zeusees/HyperLPR.git
等待克隆完成
Blackice@Blackice-PC MINGW64 /d/Projects
$ git clone --depth=1 https://github.com/zeusees/HyperLPR.git
Cloning into 'HyperLPR'...
remote: Counting objects: 793, done.
remote: Compressing objects: 100% (605/605), done.
remote: Total 793 (delta 170), reused 709 (delta 149), pack-reused 0
Receiving objects: 100% (793/793), 92.86 MiB | 86.00 KiB/s, done.
Resolving deltas: 100% (170/170), done.
Checking out files: 100% (714/714), done.
所有文件如下
整个开源库的文件
我们需要把hyperlpr_py3
复制到C:\Users\您的计算机用户名\Anaconda3\Lib
下,并改名为hyperlpr
,完整路径为C:\Users\您的计算机用户名\Anaconda3\Lib\hyperlpr
路径及文件
然后,我们在桌面\Jupyter\
下创建一个LPR
的目录,将开源库中的Font
和model
拷到此目录,创建一个car的目录,放置一张待识别车牌的车辆照片,命名为1.jpg
,2.jpg
,3.jpg
。
1.jpg
2.jpg
3.jpg
4、运行DEMO
整个安装完后,打开 Jupyter Notebook,在Desktop\Jupyter\LRP
新建一个 Python3的Notebook,输入如下代码:
from hyperlpr import pipline as pp
import cv2
# 自行修改文件名
image = cv2.imread("./car/1.jpg")
image,res = pp.SimpleRecognizePlate(image)
print(res)
按shift + Enter执行,大约几秒后即可出现结果。
识别结果1
识别结果2
识别结果3
至此,我们成功地使用开源python库进行车牌识别,本次提供的三个样本显示出识别需要质量较高的图像,对于低质量图像或有逆光干扰的时候,会有多个结果供选择,我们可以根据置信度,或提高图像分辨率进行处理与选择。
探索 Python + HyperLPR 进行车牌识别相关推荐
- HyperLPR Python3车牌识别系统的入门使用
概要 HyperLRP是一个开源的.基于深度学习高性能中文车牌识别库,由北京智云视图科技有限公司开发,支持PHP.C/C++.Python语言,Windows/Mac/Linux/Android/IO ...
- 2021-01-07 python opencv实现车牌识别 颜色定位
python opencv实现车牌识别 颜色定位 主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https ...
- Python+Opencv简易车牌识别(二):形态学运算,HSV颜色空间筛选与图像分割
注:这是依然一个简单的车牌识别demo 1.前言 在上一篇Python+Opencv简易车牌识别(一):基于HSV颜色空间的图像分割中,我们讲了如何仅基于颜色来进行简单粗暴的车牌分割.今天我们考虑对图 ...
- yolov3 python含新能源车牌识别系统有pyqt5界面
yolov3 python含新能源车牌识别系统有pyqt5界面 # First download Darknet project $ git clone https://github.com/pjre ...
- Python3 HyperLPR 中文车牌识别
HyperLPR 高性能开源中文车牌识别框架 github地址: https://github.com/szad670401/HyperLPR 在使用的过程中真的踩了好多坑,GitHub中项目文件很多 ...
- 【开源分享】基于Python+OpenCV+PyQt5车牌识别(GUI界面)
亲测无错:基于Python+OpenCV+PyQt5车牌识别(GUI界面)绝对可以用的!!!!! 基于Python+OpenCV+PyQt5车牌识别(GUI界面) 参考文档
- 摄像头的车牌识别(用hyperlpr的车牌识别,python版本)
Python版本 需要安装:cv2.hyperlpr hyperlpr的安装 pip install hyperlpr -i https://pypi.tuna.tsinghua.edu.cn/sim ...
- 基于HyperLPR的车牌识别
摘要: HyperLPR 是一个高性能开源中文车牌识别框架,基于keras-tensorflow实现,支持android,linux,windows,ios等多种平台. 目前已有C++实现版本和Pyt ...
- HyperLPR 开源车牌识别系统搭建踩坑全记录
(介绍略) 一个开源的车牌识别系统. github地址:https://github.com/szad670401/HyperLPR 一.下载 git clone https://github.com ...
最新文章
- proxool数据库连接池用法
- 前台分页,感觉一般还能优化
- 2021 整理的最全学习资源,送给每一个努力着的人
- primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
- 无人驾驶出租车遭警察拦截后欲“潜逃”,AI 是原罪?
- 一图看懂云栖大会「云原生」发布
- [译]机器人操作系统简介:终极机器人应用框架(上)
- php this validate,php扩展ZF——Validate扩展
- MongoDB副本集成员状态
- Android屏幕旋转时Activity不重新调用onCreate的方法
- C语言如何动态分配空间:malloc
- php框架启动过程,框架启动方式 - CrossPHP 框架文档
- 软件工程 超市库存管理系统 可行性研究-需求分析
- 直连测速服务器异常,求证! 网件R7800, Speedtest测速的怪现象,200M宽带+R7800者进...
- Html+CSS实现奥运五环的制作超详细讲解,附源码下载
- Hive常用函数大全(一)(关系/数学/逻辑/数值/日期/条件/字符串/集合统计/复杂类型)
- 玩转NFT夏季:这份工具宝典值得收藏
- STM32F103_study55_The punctual atoms(STM32 PWM output experimental theoretical knowledge)
- linux swap交换分区
- Java 已知三边求三角形求面积
热门文章
- mysqld: [Warning] World-writable config file ‘/etc/my.cnf‘ is ignored.问题解决
- linux命令passwd各个参数含义
- linux下环境变量PATH的用法
- 开机出现GRUB error22的解决办法
- FMS 中文帮助 (下载)
- 《老子》中国古代先秦诸子百家经典欣赏
- 用 node.js 脚本替代复杂的 npm script
- 当 Egg 遇到 TypeScript,收获茶叶蛋一枚 #27
- Spring Security 示例教程
- 各种云计算平台和云计算管理平台介绍