汽车车牌识别系统实现(四)--字符识别+代码实现
字符識(shí)別
一、字符識(shí)別算法的實(shí)現(xiàn)
車牌字符識(shí)別是車牌識(shí)別中的最后一步,也是決定車牌識(shí)別成功與否的關(guān)鍵步驟。字符識(shí)別是對(duì)經(jīng)過車牌定位、車牌糾正和車牌字符劃分后得到的各個(gè)車牌字符進(jìn)行識(shí)別的過程。字符識(shí)別利用BP反饋神經(jīng)網(wǎng)絡(luò)對(duì)字符進(jìn)行識(shí)別。BP反饋神經(jīng)網(wǎng)絡(luò)是一種基于誤差反向傳播的神經(jīng)網(wǎng)絡(luò),它不同于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)采用數(shù)值微分法計(jì)算梯度以使損失函數(shù)達(dá)到最小值,這種做法雖然原理簡(jiǎn)單且容易實(shí)現(xiàn),但計(jì)算較費(fèi)時(shí),而BP神經(jīng)網(wǎng)絡(luò)采用誤差反向傳播的方法,該方法較數(shù)值微分法更為高效。所以本文采取比數(shù)值微分法高效的BP反饋神經(jīng)網(wǎng)絡(luò)對(duì)劃分出的各個(gè)車牌字符進(jìn)行識(shí)別。
1.1 神經(jīng)網(wǎng)絡(luò)組成部分介紹
1.1.1 激活函數(shù)
常用的激活函數(shù)有ReLU和Softmax函數(shù),本文使用ReLU函數(shù)作為隱藏層的激活函數(shù),使用ReLU函數(shù)作為激活函數(shù)的優(yōu)點(diǎn)主要有兩個(gè),第一是ReLU函數(shù)計(jì)算簡(jiǎn)單,可以提升模型的運(yùn)算速度;第二是反向傳播時(shí)要計(jì)算偏導(dǎo)數(shù),如果傳遞過來的值很大,Sigmoid函數(shù)的梯度會(huì)變得非常小,使得模型收斂的速度會(huì)非常慢,而使用ReLU函數(shù)可以有效的解決模型收斂速度慢的問題。使用Softmax函數(shù)作為輸出層的激活函數(shù)。ReLU激活函數(shù)的數(shù)學(xué)表達(dá)式如式(4-1),圖像如圖4-1所示。
1.1.2 損失函數(shù)
神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中所用的性能評(píng)判標(biāo)準(zhǔn)被稱為損失函數(shù),本文使用交叉熵誤差損失函數(shù)作為衡量神經(jīng)網(wǎng)絡(luò)性能的指標(biāo)。交叉熵誤差的計(jì)算公式如式(4-2)。
1.1.3 神經(jīng)網(wǎng)絡(luò)梯度
1.2 神經(jīng)網(wǎng)絡(luò)原理與訓(xùn)練算法流程
1.2.1 相關(guān)符號(hào)說明
1.2.2 前向傳播過程
1.2.3 反向傳播過程
1.2.4 訓(xùn)練算法流程
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練步驟如下:
- 1.初始化神經(jīng)網(wǎng)絡(luò)的權(quán)重參數(shù)、偏置參數(shù)、學(xué)習(xí)步長(zhǎng)等。
- 2.讀取訓(xùn)練數(shù)據(jù),隨機(jī)抽取訓(xùn)練樣本以及對(duì)應(yīng)的訓(xùn)練標(biāo)簽。
- 3.計(jì)算隱藏層和輸出層的輸出
- 4.計(jì)算損失函數(shù)值,并判斷是否達(dá)到最大迭代次數(shù)
- 5.計(jì)算損失函數(shù)關(guān)于權(quán)重參數(shù)和偏置參數(shù)的偏導(dǎo)數(shù)
- 6.更新權(quán)重參數(shù)和偏置參數(shù)
二、車牌識(shí)別算法實(shí)現(xiàn)
2.1 開發(fā)工具及數(shù)據(jù)集說明
2.2 字符識(shí)別網(wǎng)絡(luò)實(shí)現(xiàn)
在車牌識(shí)別算法進(jìn)行之前,需要先訓(xùn)練好具體的字符識(shí)別網(wǎng)絡(luò),這是車牌識(shí)別算法的前提。本文訓(xùn)練了兩個(gè)識(shí)別網(wǎng)絡(luò)分別用來識(shí)別漢字、字母與數(shù)字。在深度學(xué)習(xí)中,一般將數(shù)據(jù)分為訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)兩部分來進(jìn)行神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)和測(cè)試等。劃分為監(jiān)督數(shù)據(jù)和測(cè)試數(shù)據(jù)的目的是能夠正確評(píng)價(jià)神經(jīng)網(wǎng)絡(luò)模型的泛化能力,泛化能力是指處理未被觀察過的數(shù)據(jù),也就是不包含在監(jiān)督數(shù)據(jù)范圍內(nèi)的數(shù)據(jù)。根據(jù)車牌特點(diǎn),車牌中包含7個(gè)字符,分別是第1個(gè)字符是各省級(jí)行政區(qū)的簡(jiǎn)稱,共34個(gè);第2個(gè)字符是城市代號(hào),由A-Z組成,為了不與1和0混淆,其中不包括字母I和O,共24個(gè);第3-7個(gè)字符是由數(shù)字和字母共同組成,共10個(gè)數(shù)字和24個(gè)英文大寫字母,共34個(gè)。如圖5-2所示,整個(gè)識(shí)別網(wǎng)絡(luò)分為兩個(gè)識(shí)別網(wǎng)絡(luò),漢字識(shí)別網(wǎng)絡(luò)用來識(shí)別各省級(jí)行政區(qū)的簡(jiǎn)稱,字母數(shù)字識(shí)別網(wǎng)絡(luò)用來識(shí)別車牌上剩余的大寫英文字母和阿拉伯?dāng)?shù)字。
2.2.1 漢字識(shí)別網(wǎng)絡(luò)
2.2.2 字母數(shù)字識(shí)別網(wǎng)絡(luò)
可以看到損失函數(shù)的值逐漸減少,識(shí)別網(wǎng)絡(luò)的訓(xùn)練結(jié)果也很理想,這是BP神經(jīng)網(wǎng)絡(luò)正在從大量數(shù)據(jù)中正確學(xué)習(xí)的表現(xiàn)。
2.3 識(shí)別算法流程及實(shí)驗(yàn)結(jié)果
2.3.1 識(shí)別算法流程及實(shí)驗(yàn)結(jié)果
2.3.2 實(shí)驗(yàn)分析
三、不足
汽車車牌識(shí)別系統(tǒng)的實(shí)現(xiàn)是我大學(xué)本科的畢業(yè)論文,當(dāng)時(shí)還沒接觸神經(jīng)網(wǎng)絡(luò)這方面的知識(shí),所以當(dāng)時(shí)很傻的用了BP神經(jīng)網(wǎng)絡(luò)來進(jìn)行圖片的識(shí)別,結(jié)果當(dāng)然是非常不理想了,其中有錯(cuò)誤的地方請(qǐng)各位及時(shí)批評(píng)指正。CNN更加適用圖像識(shí)別,研究生期間研究方向就是深度學(xué)習(xí),所以在之后的三年時(shí)間內(nèi)我會(huì)陸續(xù)更新深度學(xué)習(xí)的相關(guān)知識(shí)。雖然最后的實(shí)驗(yàn)結(jié)果不太理想,但是應(yīng)付畢業(yè)論文應(yīng)該夠用了!在這即將畢業(yè)的學(xué)弟學(xué)妹畢業(yè)順利!!
四、代碼實(shí)現(xiàn)
代碼實(shí)現(xiàn)我直接把當(dāng)時(shí)做的項(xiàng)目上傳,有需要的各位可以參考一下。不需要積分下載,一個(gè)關(guān)注就是我及時(shí)更新最大的動(dòng)力!
總結(jié)
以上是生活随笔為你收集整理的汽车车牌识别系统实现(四)--字符识别+代码实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年上半年金融科技动向
- 下一篇: 如何设计销售CRM×运营CRM×社交化S