概要
HyperLRP是一個開源的荷辕、基于深度學(xué)習(xí)高性能中文車牌識別庫宝穗,由北京智云視圖科技有限公司開發(fā)瓣俯,支持PHP讯檐、C/C++绷旗、Python語言癣朗,Windows/Mac/Linux/Android/IOS 平臺碌尔。本文將根據(jù)官網(wǎng)指引苍匆,進行一個車牌識別的入門探索它碎。
特性
速度快 720p 函荣,單核 Intel 2.2G CPU (macbook Pro 2015)平均識別時間低于100ms
基于端到端的車牌識別無需進行字符分割
識別率高,僅僅針對車牌ROI在EasyPR數(shù)據(jù)集上,0-error達(dá)到 95.2%, 1-error識別率達(dá)到 97.4% (指在定位成功后的車牌識別率)
輕量 總代碼量不超1k行
目前可識別的車牌為
單行藍(lán)牌
單行黃牌
新能源車牌
白色警用車牌
使館/港澳車牌
教練車牌
武警車牌
注意
閱讀本文前扳肛,您可能需要熟悉Python的開發(fā)環(huán)境傻挂,一些基本語法,Jupyter Notebook的使用挖息,會使用git 客戶端工具金拒,知道 Tensorflow等等。
工具
Anaconda for Python 3.x on Win64
Tensorflow
過程
1套腹、安裝Anaconda
進入官網(wǎng)绪抛,點擊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會一直報找不到相應(yīng)的模塊宛官。
?
下載界面
2、安裝相關(guān)的python庫
Anaconda已經(jīng)包含了pip安裝器瓦糕,我們需要進入?C:\Users\您的計算機用戶名\Anaconda3\Scripts下運行pip進行安裝底洗。
在開始菜單中輸入cmd,右鍵以管理員運行咕娄, 執(zhí)行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
安裝過程中可能出現(xiàn)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不克隆歷史滑负,只取最新的一個版本,對我們使用者來說可以節(jié)少大量的時間用含,因為歷史版本對我們沒有什么意義矮慕。
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復(fù)制到C:\Users\您的計算機用戶名\Anaconda3\Lib下,并改名為hyperlpr啄骇,完整路徑為C:\Users\您的計算機用戶名\Anaconda3\Lib\hyperlpr
?
路徑及文件
然后痴鳄,我們在桌面\Jupyter\下創(chuàng)建一個LPR的目錄,將開源庫中的Font和model拷到此目錄肠缔,創(chuàng)建一個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執(zhí)行,大約幾秒后即可出現(xiàn)結(jié)果。
?
識別結(jié)果1
?
識別結(jié)果2
?
識別結(jié)果3
至此亲雪,我們成功地使用開源python庫進行車牌識別勇凭,本次提供的三個樣本顯示出識別需要質(zhì)量較高的圖像,對于低質(zhì)量圖像或有逆光干擾的時候义辕,會有多個結(jié)果供選擇虾标,我們可以根據(jù)置信度,或提高圖像分辨率進行處理與選擇灌砖。