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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GitHub 车牌检测识别项目调研

發布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GitHub 车牌检测识别项目调研 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 一,EasyOCR
      • 1.1,倉庫介紹
      • 1.2,使用記錄
    • 二,HyperLPR
      • 2.1,HyperLPR 概述
      • 2.3,使用記錄
      • 2.3,使用建議
    • 三,simple-car-plate-recognition-2
      • 3.1,倉庫介紹
      • 3.2,使用記錄
      • 3.3,使用建議
    • 四,車牌檢測-License-Plate-Detector
      • 4.1,倉庫介紹
      • 4.2,建議
    • 五,MMOCR
      • 5.1,倉庫介紹
      • 5.2,使用記錄
      • 5.3,使用建議
    • 六,推薦 YOLOv5-LPRNet-Licence-Recognition
      • 6.1,倉庫介紹
      • 6.2,使用記錄

一,EasyOCR

1.1,倉庫介紹

EasyOCR 是一個用于從圖像中提取文本的 python 庫, 它是一種通用的 OCR,既可以讀取自然場景文本,也可以讀取文檔中的密集文本。目前支持 80 多種語言和所有流行的書寫腳本,包括:拉丁文、中文、阿拉伯文、梵文、西里爾文等。

EasyOCR 倉庫 截止到 2022-11-8日,star 數為 16.2k,其文件目錄和作者給出的一些示例效果如下。

├── custom_model.md ├── Dockerfile ├── easyocr ├── easyocr.egg-info ├── examples ├── LICENSE ├── MANIFEST.in ├── README.md ├── releasenotes.md ├── requirements.txt ├── scripts ├── setup.cfg ├── setup.py ├── trainer └── unit_test

1.2,使用記錄

1,安裝較為麻煩

在自行安裝了 cuda 庫和 pytorch 的基礎上,可通過 pip install easyocr 命令安裝 easyocr 庫,但是注意卸載掉之前安裝的 opencv-python 庫(如果有)。

2,代碼自動下載模型速度很慢

下載的倉庫里面默認是不提供任何模型的,因此第一次運行快速推理腳本會自動下載對應的 ocr 模型,但是!如果網絡不穩定,其下載速度非常慢,試了 n 次,基本不可能下載成功。

所以一般必須通過 Model hub 頁面借助瀏覽器手動點擊下載對應中英文 ocr 識別模型,然后手動把模型文件移動到 ~/.EasyOCR/model 文件夾下。

EasyOCR 倉庫主要是通過 download_and_unzip 接口下載對應模型文件的,其也是通過調用 urllib 模塊提供的 urlretrieve() 函數來實現文件的下載,其定義如下:

def download_and_unzip(url, filename, model_storage_directory, verbose=True):zip_path = os.path.join(model_storage_directory, 'temp.zip')reporthook = printProgressBar(prefix='Progress:', suffix='Complete', length=50) if verbose else None# url 下載鏈接,zip_path 文件保存的本地路徑, reporthook 利用這個回調函數來顯示當前的下載進度urlretrieve(url, zip_path, reporthook=reporthook)with ZipFile(zip_path, 'r') as zipObj:zipObj.extract(filename, model_storage_directory) # 解壓到指定目錄os.remove(zip_path) # 移除下載的壓縮包文件

3,車牌場景識別準確率非常低

經過我的大量測試,其在中國車牌場景下識別率幾乎為 0,我猜測是因為作者提供的訓練模型所用的訓練數據沒有車牌場景的,而 ocr 效果又非常依賴場景數據,所以導致汽車車牌識別率幾乎為 0 ,具體實踐效果如下。

二,HyperLPR

2.1,HyperLPR 概述

HyperLPR 框架是 github 作者 szad670401 開源的基于深度學習高性能中文車牌識別框架,支持多平臺,提供了 Window、Linux、Android、IOS、ROS 平臺的支持。 Python 依賴于 Keras (>2.0.0) 和 Theano(>0.9) or Tensorflow(>1.1.x) 機器學習庫。項目的 C++ 實現和 Python 實現無任何關聯,均為單獨實現

作者提供的測試用例效果如下:

2.3,使用記錄

倉庫 README 文件描述說 HyperLPR 框架對 python 包支持一鍵安裝: pip install hyperlpr 。但是經過我實際測試發現,pip install hyperlpr 命令只能成功安裝 hyperlpr 庫.

1,快速上手的 py 代碼運行會出錯:

2,我把 demo 代碼移動到 hyperlpr_py3 目錄下運行,不再報上圖的錯誤,但是又報了 opencv 函數版本的問題。

hyperlpr) root@crowd-max:/framework/HyperLPR/hyperlpr_py3# python test.py (1, 3, 150, 400) 40 22 335 123 Traceback (most recent call last):File "test.py", line 7, in <module>print(HyperLPR_plate_recognition(image))File "/opt/miniconda3/envs/hyperlpr/lib/python3.8/site-packages/hyperlpr/__init__.py", line 8, in HyperLPR_plate_recognitionreturn PR.plate_recognition(Input_BGR,minSize,charSelectionDeskew)File "/opt/miniconda3/envs/hyperlpr/lib/python3.8/site-packages/hyperlpr/hyperlpr.py", line 311, in plate_recognitioncropped_finetuned = self.finetune(cropped)File "/opt/miniconda3/envs/hyperlpr/lib/python3.8/site-packages/hyperlpr/hyperlpr.py", line 263, in finetuneg = self.to_refine(image_, pts)File "/opt/miniconda3/envs/hyperlpr/lib/python3.8/site-packages/hyperlpr/hyperlpr.py", line 231, in to_refinemat_ = cv2.estimateRigidTransform(org_pts, target_pts, True) AttributeError: module 'cv2' has no attribute 'estimateRigidTransform'

3,ubuntu16.04+python3.8+cuda11.0 環境下,pip install -r requirements.txt 命令安裝依賴包依然會出錯。

2.3,使用建議

個人建議直接使用 C++ 版本,截止到 2022-11-8 日為止,純 Python 版本還是有各種問題。

三,simple-car-plate-recognition-2

3.1,倉庫介紹

simple-car-plate-recognition-2倉庫 簡稱:簡易車牌字符識別 2-Inception/CTC 。

作者使用的字符識別模型是參考 HyperLPR 里面的一個叫 SegmenationFree-Inception 的模型結構,并改用 pytorch 框架實現,然后訓練模型,最后測試用整張車牌圖片進行字符識別。

作者所用的車牌訓練集,是利用 generateCarPlate 這個車牌生成工具生成的。

3.2,使用記錄

直接用車牌做識別,實際測試下來,不管用作者給的模型,還是自己訓練的模型,效果都很差

3.3,使用建議

雖然代碼簡單,模型結構容易看懂,但是不建議使用,效果不穩定和太差。

四,車牌檢測-License-Plate-Detector

4.1,倉庫介紹

License-Plate-Detector 倉庫 作者利用 Yolov5 模型進行了車牌檢測,訓練集使用 CCPD 數據集,測試效果如下:

4.2,建議

不建議使用,代碼寫的不夠整潔,使用不夠方便,使用 yolov5** 用作車牌檢測的模型**的方法還是可以參考下。

五,MMOCR

5.1,倉庫介紹

mmocr 是商湯 + openmmlab 實驗室開發的 OCR 框架。MMOCR 是基于 PyTorch 和 mmdetection 的開源工具箱,專注于文本檢測,文本識別以及相應的下游任務,如關鍵信息提取。 它是 OpenMMLab 項目的一部分。

主分支目前支持 PyTorch 1.6 以上的版本。mmocr 庫的安裝,可參考我之前的文章-ubuntu16.04安裝mmdetection庫。

5.2,使用記錄

1,官方提供中文字符識別模型只有一個,其使用步驟如下:

  • 創建 mmocr/data/chineseocr/labels 目錄;
  • 為了模型推理成功,下載中文字典,并放置到 labels 目錄;
  • wget -c https://download.openmmlab.com/mmocr/textrecog/sar/dict_printed_chinese_english_digits.txt mv dict_printed_chinese_english_digits.txt mmocr/data/chineseocr/labels
  • 運行推理腳本。
  • python mmocr/utils/ocr.py --det DB_r18 --recog SAR_CN demo/car1.jpeg --output='./'

    車牌識別效果不好,測試結果如下:



    2,官方提供的通用場景測試用例的推理效果如下:

    5.3,使用建議

    官方提供的不管是中文還是英文文本識別模型,在車牌場景下識別效果都不好,不推薦在車牌識別場景下使用,更適合通用場景。

    六,推薦 YOLOv5-LPRNet-Licence-Recognition

    6.1,倉庫介紹

    YOLOv5-LPRNet-Licence-Recognition 項目是使用 YOLOv5s 和 LPRNet 對中國車牌進行檢測和識別,車牌數據集是使用 CCPD。

    車牌字符識別的準確率如下:

    model數據集epochsaccsize
    LPRNetval10094.33%1.7M
    LPRNettest10094.30%1.7M

    總體模型速度:(YOLOv5 + LPRNet)速度:47.6 FPS(970 GPU)。

    6.2,使用記錄

    作者提供的模型實際測試下來效果還不錯,部分示例如下:


    總結

    以上是生活随笔為你收集整理的GitHub 车牌检测识别项目调研的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。