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