日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

HyperLPR Python3车牌识别系统的入门使用

發(fā)布時間:2025/3/11 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HyperLPR Python3车牌识别系统的入门使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概要

HyperLRP是一個開源的、基于深度學(xué)習(xí)高性能中文車牌識別庫,由北京智云視圖科技有限公司開發(fā),支持PHP、C/C++、Python語言,Windows/Mac/Linux/Android/IOS 平臺。

github地址:?https://github.com/zeusees/HyperLPR

TODO

  • 支持多種車牌以及雙層
  • 支持大角度車牌
  • 輕量級識別模型

特性

  • 速度快 720p,單核 Intel 2.2G CPU (MaBook Pro 2015)平均識別時間低于100ms
  • 基于端到端的車牌識別無需進行字符分割
  • 識別率高,卡口場景準(zhǔn)確率在95%-97%左右
  • 輕量,總代碼量不超1k行

模型資源說明

  • cascade.xml:檢測模型 - 目前效果最好的cascade檢測模型
  • cascade_lbp.xml:召回率效果較好,但其錯檢太多
  • char_chi_sim.h5:Keras模型-可識別34類數(shù)字和大寫英文字 使用14W樣本訓(xùn)練
  • char_rec.h5:Keras模型-可識別34類數(shù)字和大寫英文字 使用7W樣本訓(xùn)練
  • ocr_plate_all_w_rnn_2.h5:基于CNN的序列模型
  • ocr_plate_all_gru.h5:基于GRU的序列模型從OCR模型修改,效果目前最好但速度較慢,需要20ms。
  • plate_type.h5:用于車牌顏色判斷的模型
  • model12.h5:左右邊界回歸模型

可識別和待支持的車牌的類型

HyperLPR的檢測流程

  • 使用opencv的HAAR Cascade檢測車牌大致位置
  • Extend檢測到的大致位置的矩形區(qū)域
  • 使用類似于MSER的方式的多級二值化和RANSAC擬合車牌的上下邊界
  • 使用CNN Regression回歸車牌左右邊界
  • 使用基于紋理場的算法進行車牌校正傾斜
  • 使用CNN滑動窗切割字符
  • 使用CNN識別字符

環(huán)境配置

首先將項目下載到本地,這里我使用了本機上配置的虛擬環(huán)境HyperLPR。
創(chuàng)建虛擬環(huán)境: conda create -n HyperLPR python=3.7

  • 操作系統(tǒng):windows10
  • IDE:Pycharm
  • python版本:Anaconda Pyhon3.7
  • tensorflow版本:tensorflow-gpu==2.1.0
  • cuda版本:10.1
  • 顯卡:RTX 2060
  • OpenCV: opencv-python==3.4.3.18
  • Keras:Keras==2.3.1

大坑之一: HyperLPR python中版本兼容太差,新版本無法兼容老版本,所以所有第三方庫,我們?nèi)恐付ò姹?br /> 安裝相關(guān)的python庫

pip install Keras==2.3.1 pip install Theano pip install Numpy pip install Scipy pip install opencv-python==3.4.3.18 pip install scikit-image pip install pillow pip install -i https://pypi.tuna.tsinghua.edu.cn/simple tensorflow-gpu==2.1.0

下載車牌識別庫

打開Git CMD,輸入下面的指令,將倉庫克隆到本地,–depth=1不克隆歷史,只取最新的一個版本,對我們使用者來說可以節(jié)少大量的時間,因為歷史版本對我們沒有什么意義。

git clone --depth=1 https://github.com/zeusees/HyperLPR.git
  • 1

等待克隆完成

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ù)制到虛擬環(huán)境…\anaconda3\envs\HyperLPR\Lib下,并改名為hyperlpr,完整路徑為…\anaconda3\envs\HyperLPR\Lib\hyperlpr。

然后,我們創(chuàng)建一個LPR的目錄,將開源庫中的Font和model拷到此目錄,創(chuàng)建一個 data的目錄,放置待識別車牌的車輛照片。

在lpr.py文件中寫入如下代碼

from hyperlpr import pipline as pp import cv2 # 自行修改文件名 image = cv2.imread("data/001.jpg") image, res = pp.SimpleRecognizePlate(image) print('-------------') print(res)

執(zhí)行后, 大約幾秒后即可出現(xiàn)結(jié)果

(241, 289, 3) 校正角度 h 0 v 90 keras_predict [0.15456393 0.88673264] 0f96bd6b e2e: ('浙B5HC51', 0.896134112562452) 校正 1.6333682537078857 s 分割 0.13702082633972168 254 尋找最佳點 0.021014928817749023 字符識別 0.2136836051940918 分割和識別 0.3737204074859619 s 車牌: 浙B5HC51 置信度: 0.8446585088968277 2.1401290893554688 s ------------- ['浙B5HC51']

至此,我們成功地使用開源python庫進行車牌識別,本次提供的樣本顯示出識別需要質(zhì)量較高的圖像,對于低質(zhì)量圖像或有逆光干擾的時候,會有多個結(jié)果供選擇,我們可以根據(jù)置信度,或提高圖像分辨率進行處理與選擇。

錯誤調(diào)試
第一次執(zhí)行的時候,有可能會報如下錯誤。

numpy.AxisError: axis 3 is out of bounds for array of dimension 3

需要對程序進行部分修改。

將data= np.expand_dims(data,3)中的3改為2。

這里主要關(guān)系到np.expand_dims函數(shù)的作用。這個函數(shù)是用來調(diào)整數(shù)組維度的。比如有一個二維數(shù)組data(1,2),但是你需要輸入3維數(shù)組,然后你就需要把數(shù)據(jù)再加一維。但是需要選擇加在哪一維。二維數(shù)組就有三個位置(0, 1,2)。注意axis的值是從0開始的。

總結(jié)

以上是生活随笔為你收集整理的HyperLPR Python3车牌识别系统的入门使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。