车牌识别平台开源(支持蓝牌、绿牌,准确率高达96%)
效果:
??
此項(xiàng)目在基于u-net,cv2以及cnn的中文車牌定位,矯正和端到端識別軟件_不啻逍遙然的博客-CSDN博客的基礎(chǔ)上增強(qiáng)了綠牌識別,綠牌訓(xùn)練數(shù)據(jù)近10萬。結(jié)合博主開源的藍(lán)牌模型,目前完美匹配藍(lán)、綠牌識別場景。識別準(zhǔn)確率達(dá)96%以上。
用了什么技術(shù),原理是什么?
技術(shù)架構(gòu)
- Python:輕量框架,搭建簡單,更專注于業(yè)務(wù)功能
- opencv:跨平臺計(jì)算機(jī)視覺庫,用作圖像處理
- Tensorflow: 機(jī)器學(xué)習(xí)的框架,用作大量數(shù)據(jù)需要處理,或是深度學(xué)習(xí)
- cnn: 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,簡稱CNN),是一種前饋神經(jīng)網(wǎng)絡(luò),人工神經(jīng)元可以響應(yīng)周圍單元,可以進(jìn)行大型圖像處理。卷積神經(jīng)網(wǎng)絡(luò)包括卷積層和池化層
- unet: 對圖像中的每個(gè)像素點(diǎn)分類,即像素級別的分類任務(wù)
識別出一個(gè)車牌,計(jì)算機(jī)做了哪些工作?
機(jī)器識圖的過程:機(jī)器識別圖像并不是一下子將一個(gè)復(fù)雜的圖片完整識別出來,而是將一個(gè)完整的圖片分割成許多個(gè)小部分,把每個(gè)小部分里具有的特征提取出來(也就是識別每個(gè)小部分),再將這些小部分具有的特征匯總到一起,就可以完成機(jī)器識別圖像的過程了
??????????????
怎么做一個(gè)車牌識別應(yīng)用?
簡單分為兩個(gè)階段,第一階段是訓(xùn)練模型,第二階段是使用模型做識別。難點(diǎn)主要在模型的訓(xùn)練,訓(xùn)練又分為unet和cnn兩個(gè)模塊,最終會得到兩個(gè)相應(yīng)的模型,一個(gè)用作定位,一個(gè)用作識別。車牌識別屬于Supervised Learning(監(jiān)督學(xué)習(xí)),下面會講到機(jī)器學(xué)習(xí)的分類。
unet訓(xùn)練
我們可以通過圖像分割算法對一張輸入圖片進(jìn)行分割,分割后的圖形其實(shí)是對原圖中的區(qū)域進(jìn)行的分類標(biāo)注,例如這里我們可以將原圖標(biāo)注為2類,一類就是車牌區(qū)域,還有一類就是無關(guān)的背景區(qū)域使用,用于訓(xùn)練unet模型。u-net部分的數(shù)據(jù)集我一共標(biāo)注了1500多張,最終效果很棒,達(dá)到了定位的效果。
cnn訓(xùn)練
cnn訓(xùn)練我準(zhǔn)備了10萬張左右的有效牌照數(shù)據(jù)。每張圖片都是統(tǒng)一的寬240,高80的車牌圖片,要實(shí)現(xiàn)車牌的端到端識別,顯然是多標(biāo)簽分類問題,每張輸入圖片有8個(gè)標(biāo)簽(8個(gè)字符),模型輸出前的結(jié)構(gòu)都是可以共享的,只需將輸出修改為8個(gè)即可,8個(gè)輸出對應(yīng)了8個(gè)loss,總loss就是8個(gè)loss的和,使用keras可以很方便地實(shí)現(xiàn)。
最終,訓(xùn)練集上準(zhǔn)確率acc1(即車牌省份字符)為95%,其余字符均為99%左右,本地測試集準(zhǔn)確率為95%,識別效果較佳。
訓(xùn)練、優(yōu)化不再贅述了,重點(diǎn)說下使用方式:
github :?GitHub - leo187/End-to-end-for-chinese-plate-recognition: 基于u-net,cv2以及cnn的中文車牌定位,矯正和端到端識別軟件,其中unet和cv2用于車牌定位和矯正,cnn進(jìn)行車牌識別,unet和cnn都是基于tensorflow的keras實(shí)現(xiàn)
1.修改配置
2.啟動應(yīng)用
訓(xùn)練不易,如有幫助請幫忙點(diǎn)贊,多謝!
總結(jié)
以上是生活随笔為你收集整理的车牌识别平台开源(支持蓝牌、绿牌,准确率高达96%)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MATLAB使用及介绍
- 下一篇: COMSOL激光烧蚀仿真模型