車牌檢測和識別的Python應用軟件實現

徐靜 AI圖像算法工程師

個人主頁: https://dataxujing.github.io/

項目地址:

https://github.com/DataXujing/vehicle-license-plate-recognition (歡迎Issues)

安裝程序下載地址:

https://pan.baidu.com/s/1IazbGFLlQkb8BQmK_EAeRA 提取碼:v103



1.車牌檢測和識別項目介紹


車牌檢測和識別的Python應用軟件實現

車牌的檢測和識別的應用非常廣泛,比如交通違章車牌追蹤,小區或地下車庫門禁。在對車牌識別和檢測的過程中,因為車牌往往是規整的矩形,長寬比相對固定,色調紋理相對固定,常用的方法有:基於形狀、基於色調、基於紋理、基於文字特徵等方法,近年來隨著深度學習的發展也會使用目標檢測的一些深度學習方法。該項目主要的流程如下圖所示:

車牌檢測和識別的Python應用軟件實現

1.輸入原始圖片,通過二值化,邊緣檢測,和基於色調的顏色微調等辦法檢測出原圖中的車牌號的位置;
2.把檢測到的車牌(ROI)裁剪,為車牌號的識別做準備;
3.基於裁剪的車牌號,使用直方圖的波峰波谷分割裁剪的車牌號(如上圖中的第3步)
4.訓練機器學習模型做車牌識別,這裡訓練了2個SVM,一個SVM用來識別省份簡稱(如 魯),另一個SVM用來識別字母和數字。
5.通過PyQt5把整個算法封裝成GUI程序,並打包發佈安裝軟件。

2.項目代碼解析

下圖描述了整個項目的代碼結構,可以訪問https://github.com/DataXujing/vehicle-license-plate-recognition 查看,其結構如下:

車牌檢測和識別的Python應用軟件實現


3.項目演示

可以通過訪問項目地址 ( https://github.com/DataXujing/vehicle-license-plate-recognition )查看整個應用,或者訪問安裝程序下載地址 (https://pan.baidu.com/s/1IazbGFLlQkb8BQmK_EAeRA 提取碼:v103 )安裝安裝程序進行測試,這裡展示一些識別結果和測試視頻:

車牌檢測和識別的Python應用軟件實現

車牌檢測和識別的Python應用軟件實現


4.TODO

目前識別的效果針對於某些場景下仍然很不理想,技術層面上的主要原因有兩個,一個是車牌檢測算法並沒有檢測到車牌(這主要是檢測算法的問題),可以嘗試一些目標檢測的算法,比如Faster R-CNN(速度可能慢一些),YOLO系列, SSD系列等的經典的目標檢測算法,然後做矯正或進一步的區域篩選;另一個原因是是在識別算法上,本次我們僅是基於少量的訓練數據訓練了SVM,可以嘗試增加訓練集並把模型替換成一些更復雜的機器學習模型如XGBoost,LightGBM,CatBoost等模型或使用CNN訓練一個多分類的深度學習模型, 亦或者是直接考慮一些基於Attention的CNN-RNN架構的OCR識別模型。

Reference

  1. https://blog.csdn.net/sumkee911/article/details/79435983
  2. 車牌號識別 python + opencv
  3. License-Plate-Recognition
  4. .車牌識別(一)-車牌定位
  5. 在PyQt5中美化和裝扮圖形界面

【年薪30w工程師吐血整理資料大合集】

領取IT資料大合集:http://image.qbangmang.com/counselor.html


車牌檢測和識別的Python應用軟件實現


分享到:


相關文章: