1.車牌檢測和識別項目介紹
車牌的檢測和識別的應用非常廣泛,比如交通違章車牌追蹤,小區或地下車庫門禁。在對車牌識別和檢測的過程中,因為車牌往往是規整的矩形,長寬比相對固定,色調紋理相對固定,常用的方法有:基于形狀、基于色調、基于紋理、基于文字特征等方法,近年來隨著深度學習的發展也會使用目標檢測的一些深度學習方法。該項目主要的流程如下圖所示:
1.輸入原始圖片,通過二值化,邊緣檢測,和基于色調的顏色微調等辦法檢測出原圖中的車牌號的位置;
2.把檢測到的車牌(ROI)裁剪,為車牌號的識別做準備;
3.基于裁剪的車牌號,使用直方圖的波峰波谷分割裁剪的車牌號(如上圖中的第3步)
4.訓練機器學習模型做車牌識別,這里訓練了2個SVM,一個SVM用來識別省份簡稱(如 魯),另一個SVM用來識別字母和數字。
5.通過PyQt5把整個算法封裝成GUI程序,并打包發布安裝軟件。
2.項目代碼解析
下圖描述了整個項目的代碼結構,可以訪問https://github.com/DataXujing/vehicle-license-plate-recognition 查看,其結構如下:
3.項目演示
可以通過訪問項目地址 ( https://github.com/DataXujing/vehicle-license-plate-recognition )查看整個應用,或者訪問安裝程序下載地址 (https://pan.baidu.com/s/1IazbGFLlQkb8BQmK_EAeRA 提取碼:v103 )安裝安裝程序進行測試,這里展示一些識別結果和測試視頻:
4.TODO
目前識別的效果針對于某些場景下仍然很不理想,技術層面上的主要原因有兩個,一個是車牌檢測算法并沒有檢測到車牌(這主要是檢測算法的問題),可以嘗試一些目標檢測的算法,比如Faster R-CNN(速度可能慢一些),YOLO系列, SSD系列等的經典的目標檢測算法,然后做矯正或進一步的區域篩選;另一個原因是是在識別算法上,本次我們僅是基于少量的訓練數據訓練了SVM,可以嘗試增加訓練集并把模型替換成一些更復雜的機器學習模型如XGBoost,LightGBM,CatBoost等模型或使用CNN訓練一個多分類的深度學習模型, 亦或者是直接考慮一些基于Attention的CNN-RNN架構的OCR識別模型。
-
python
+關注
關注
56文章
4801瀏覽量
84878 -
深度學習
+關注
關注
73文章
5510瀏覽量
121345
發布評論請先 登錄
相關推薦
評論