基於pytorch的無需分割字符的車牌識別

傳統車牌識別

傳統的車牌識別需要先檢測出車牌,檢測出車牌後通過“像素映射”或者“聯通區查找”的方法分割出單個的文字,然後單獨識別每個文字。傳統的車牌識別不僅繁瑣,而且切割文字的效果也很難令人滿意。因此,能不能繞開字符分割的問題,直接識別車牌中的字符呢?當然可以的。有兩種方法:

  1. crnn+ctc
  2. 卷積only

crnn+ctc是自然場景下ocr比較通用的方法,用來識別車牌當然可以的,但是難免有點殺雞用牛刀了。因爲車牌本身是比較特殊的,車牌號碼的數量也是基本固定的。

有了這個設想,今天做了簡單的嘗試,效果很好,因此開源出來和大家交流。源碼已上傳至github: 

車牌識別, 如果對你有幫助,給個star鼓勵下,謝謝!

以下是該項目的簡單介紹。

數據集

這個項目中,使用了自動生成訓練和識別的車牌,因此,你需要尋找車牌數據集,不需要做任何數據處理,就能輕鬆愉快的完成車牌識別的訓練與預測。

隨機生成的車牌示例:

車牌1

一般的車牌檢測模型應該都能檢測到這個水準,因此這個這牌是比較接近真實情況下的車牌的。

模型

神經網絡

使用

第一步:生成訓練和測試數據集  
    cd generateCarPlate
    python3 genCarPlate.py

第二步:訓練
    cd pytorch_model
    python3 train.py 30 0.0001

30是在訓練集訓練的次數,)0.0001是學習速率  
第三步:測試
    python3 test.py

將會輸出準確率,我訓練的car_plate_javer.pt模型能達到98.2的準確率(由於訓練和測試數據集都是隨機生成的,因此可能不同人測試有差異)。
這個準確率不算高,由於我的筆記本算力有限,沒能進一步訓練更大、更好的模型,不過我想,這個項目已足以證明不分割直接識別車牌的可行性

 

 

發佈了116 篇原創文章 · 獲贊 247 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章