python tensorflow pytorch 深度学习 车牌识别
車牌識別相關資料收集整理
1、License Plate Detection with RetinaFace
鏈接:https://github.com/zeusees/License-Plate-Detector
利用單物體檢測算法Retinaface進行了車牌檢測模型的訓練,通過測試,檢測效果和適用性都更突出,支持的模型也更為豐富。
開源版本的檢測算法經過了多個版本迭代,考慮到檢測的效率跟準確率,原始版本逐步淘汰,從最初的基于LBP和Harr特征的車牌檢測,感興趣的小伙伴可以參考 train-detector(https://github.com/openalpr/train-detector) 這個倉庫;到后來逐步的采用深度學習的方式,我們的上一個版本采用基于mobilenet-ssd的算法進行檢測,大家可以移步 (https://gitee.com/zeusees/Mobilenet-SSD-License-Plate-Detection) 這里進行查看,后續請盡量采用新模型進行測試。
該版本的檢測模型的訓練,結合了CCPD數據集跟我們自有的數據,能夠做到更多車牌種類的支持。
Clone and install
git clone?https://github.com/zeusees/License-Plate-Detector.git
Pytorch version 1.2.0
Python 3.6
python detect.py
基于C++的NCCNN模型測試
Source Code Compile
cd Prj-ncnn
cmake .
make
支持車牌種類
- 藍色單層車牌
- 黃色單層車牌
- 綠色新能源車牌、民航車牌
- 黑色單層車牌
- 白色警牌、軍牌、武警車牌
- 黃色雙層車牌
- 綠色農用車牌
- 白色雙層軍牌
參考
- Retinaface (Pytorch)
- Pytorch_Retina_License_Plate
- CCPD
2、License-Plate-Recognition-Items
https://github.com/Haveoneriver/License-Plate-Recognition-Items
車牌識別的思路
車牌識別的思路其實就是和驗證碼識別是一樣的道理,在中國的車牌中一共有7位字符可以對這7個字符進行one-hot編碼生成一個向量 一張車牌對應一個車牌標簽即這7個字符生成的向量
使用google的colaboratory訓練resnet34模型
train.ipynb是在colaboratory中運行的
在model.fit_generator()可以調參,我沒有調參使用的默認的參數,調參數可以上keras查看模型調參函數的設置
#訓練的時候每輪1000個樣本共5輪,一個batch_size=32,所以一共有16W張圖片
model.fit_generator(gen(), samples_per_epoch=1000,nb_epoch=5, nb_worker=1, pickle_safe=True, validation_data=gen(), nb_val_samples=1280)
test.py是使用訓練好的模型進行測試
調用評價函數時: 跑完后的是每個字符的準確率不是整張圖片的準確率
3、百度paddle
https://gitee.com/paddlepaddle/PaddleOCR/blob/develop/deploy/hubserving/readme.md
基于OCR的方法識別車牌,
4、Python+Tensorflow+CNN實現車牌識別
https://blog.csdn.net/weixin_43397593/article/details/102372100
自己生成車牌和采用簡單的CNN模型做深度學習,
本次項目目標是實現對自動生成的帶有各種噪聲的車牌識別。在噪聲干擾情況下,車牌字符分割較困難,此次車牌識別是將車牌7個字符同時訓練,字符包括31個省份簡稱、10個阿拉伯數字、24個英文字母('O’和’I’除外),共有65個類別,7個字符使用單獨的loss函數進行訓練。
(運行環境:tensorflow1.14.0-GPU版)
本次構建的CNN模型較為簡單,只有6卷積層+3池化層+1全連接層,可以通過增加模型深度以及每層之間的神經元數量來優化模型,提高識別的準確率。此次訓練數據集來源于自動生成的車牌,由于真實的車牌圖像與生成的車牌圖像在噪聲干擾上有所區分,所以識別率上會有所出入。如果使用真實的車牌數據集,需要對車牌進行濾波、均衡化、腐蝕、矢量量化等預處理方法。
5、TensorFlow車牌識別完整版(含車牌數據集)
https://blog.csdn.net/u011808673/article/details/81215459
在之前發布的一篇博文《MNIST數據集實現車牌識別--初步演示版》中,我們演示了如何使用TensorFlow進行車牌識別,但是,當時采用的數據集是MNIST數字手寫體,只能分類0-9共10個數字,無法分類省份簡稱和字母,局限性較大,無實際意義。
經過圖像定位分割處理,博主收集了相關省份簡稱和26個字母的圖片數據集,結合前述博文中貼出的python+TensorFlow代碼,實現了完整的車牌識別功能。本著分享精神,在此送上全部代碼和車牌數據集。
車牌數據集下載地址(約4000張圖片):https://pan.baidu.com/s/1RyoMbHtLUlsMDsvLBCLZ2w
省份簡稱訓練+識別代碼(保存文件名為train-license-province.py)(拷貝代碼請務必注意python文本縮進,只要有一處縮進錯誤,就無法得到正確結果,或者出現異常):
6、基于MNIST數據集實現車牌識別--初步演示版
和5是姊妹篇
https://blog.csdn.net/shadown1ght/article/details/78078499
?
7、車牌識別github資源
資源比較老舊
https://blog.csdn.net/yang_daxia/article/details/90449150
8、HyperLPR
開源的第三方庫,車牌識別,和1類似
https://github.com/zeusees/HyperLPR
9、FakeLPR車牌識別(3) ----- 車牌端到端識別
介紹
前一篇介紹了車牌的角點定位,這一篇就到端到端識別車牌了
1.粗定位
2.角點檢測矯正
3.端到端識別字符
本文介紹第三步,端到端識別車牌,思路和前一篇中的角點檢測一樣,通過 caffe 實現多標簽分類來識別車牌
10、使用騰訊云 GPU 學習深度學習系列之五:文字的識別與定位
基于CNN和OCR識別,方法和4類似
https://cloud.tencent.com/developer/article/1005199
?
11、keras-ocr
采用深度學習 同8的方法類似,但沒中文的OCR識別,
https://github.com/faustomorales/keras-ocr
12、基于u-net,cv2以及cnn的中文車牌定位,矯正和端到端識別軟件
https://blog.csdn.net/qq_32194791/article/details/106748685
https://github.com/duanshengliu/End-to-end-for-chinese-plate-recognition
整體思路:1.利用u-net圖像分割得到二值化圖像,2.再使用cv2進行邊緣檢測獲得車牌區域坐標,并將車牌圖形矯正,3.利用卷積神經網絡cnn進行車牌多標簽端到端識別
實現效果:拍攝角度傾斜、強曝光或昏暗環境等都能較好地識別,甚至有些百度AI車牌識別未能識別的圖片也能識別
環境:python:3.6, tensorflow:1.15.2, opencv: 4.1.0.25
方法同4、10
13、keras+resnet34實現車牌識別
https://blog.csdn.net/weixin_38226321/article/details/107299660
自己生產車牌,然后訓練
14、通過GAN網絡生成車牌
https://www.cnblogs.com/kevin-dx/p/13900592.html
?
?
?
總結
以上是生活随笔為你收集整理的python tensorflow pytorch 深度学习 车牌识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell脚本字符串截取
- 下一篇: Keras tensorflow Res