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