概要

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的目录,将开源库中的Fontmodel拷到此目录,创建一个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 进行车牌识别的更多相关文章

  1. Python+Keras+TensorFlow车牌识别

    这个是我使用的车牌识别开源项目的地址:https://github.com/zeusees/HyperLPR Python 依赖 Anaconda for Python 3.x on Win64 Ke ...

  2. 毕业设计 python opencv实现车牌识别 界面

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  3. 毕业设计 python opencv实现车牌识别 形状定位

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  4. 毕业设计 python opencv实现车牌识别 预处理

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  5. 毕业设计 python opencv实现车牌识别 码云地址

    码云地址:https://gitee.com/yinghualuowu/Python_VLPR 删除了冗余代码,可以更加便于运行.其实是为了那些进不去github准备的~

  6. 毕业设计 python opencv实现车牌识别 矩形矫正

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  7. 毕业设计 python opencv实现车牌识别 颜色判断

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  8. 毕业设计 python opencv实现车牌识别 颜色定位

    主要代码参考https://blog.csdn.net/wzh191920/article/details/79589506 GitHub:https://github.com/yinghualuow ...

  9. 使用Python基于HyperLPR/Mask-RCNN的中文车牌识别

    基于HyperLPR的中文车牌识别 Bolg:https://blog.csdn.net/lsy17096535/article/details/78648170 https://www.jiansh ...

随机推荐

  1. UI高级组件

    今天继续学习UI高级组件 网格视图 GridView 用GridView标签添加,显示网格视图,需要用到适配器,共有四种适配器 ArrayAdapter,SmipleAdapter,SmipleCou ...

  2. k8s集群应用例如jenkins启动问题排查思路

    k8s集群应用例如jenkins启动问题排查思路 待办 rancher上的事件报告>pods日志>pods内容器日志(现获取容器id再查看容器日志,获取容器id 使用的是相应问题pod的名 ...

  3. [前端] html限制input输入数字和小数

    限制input只能输入数字和小数 html代码 <input type="text" style="width:50px" name="widt ...

  4. 文件上传plupload组件使用

    这段时间一直在使用文件上传,简要的介绍一下文件上传的组件使用,先上一段代码. var uploader = new plupload.Uploader( { //用来指定上传方式,指定多个上传方式请使 ...

  5. 959F - Mahmoud and Ehab and yet another xor task xor+dp(递推形)+离线

    959F - Mahmoud and Ehab and yet another xor task xor+dp+离线 题意 给出 n个值和q个询问,询问l,x,表示前l个数字子序列的异或和为x的子序列 ...

  6. Unity相机跟随

    固定相机跟随 这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动 using UnityEngine; using System.Collections; public c ...

  7. fileupload插件调用upload.parseRequest(request)解析得到空值问题

    得到的list长度是0,项目配置不能改变,没办法了,只能将HttpServletRequest强换成DefaultMultipartHttpServletRequest ,直接获取表单中的字段了.方法 ...

  8. C# 程序集(Assembly)

    程序集 程序集是代码进行编译是的一个逻辑单元,把相关的代码和类型进行组合,然后生成PE文件.程序集只是逻辑上的划分,一个程序集可以只由一个文件组成,也可由多个文件组成.不管是单文件程序集还是多文件程序 ...

  9. UNICODE编码UTF-16 中的Endian(FE FF) 和 Little Endian(FF FE)

    从网上找到的两篇不错的文章,由于被网上多处转载,所以不知道源处,未能注明出处,希望作者见谅,如有意见请发信给我,谢谢! 第一篇很清晰. 介绍Unicode之前,首先要讲解一些基础知识.虽然跟Unico ...

  10. Mac系统升级后git没法使用的问题

    今天更新了mac系统(Catalina)发现之前的项目没法提交,然后大概查了一下啊mac更新方面的问题 mac每次更新时系统就会卸载xcode 在终端输入  xcode-select --instal ...