董天宇,陳至坤,李 燊
(華北理工大學(xué) 電氣工程學(xué)院,河北 唐山 063210)
基于BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別改進方法
董天宇,陳至坤,李 燊
(華北理工大學(xué) 電氣工程學(xué)院,河北 唐山 063210)
提出一種基于BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別優(yōu)化算法,設(shè)計了一種四層結(jié)構(gòu)的BP神經(jīng)網(wǎng)絡(luò)模型。該模型通過加入一個隱含層和動量項實現(xiàn)了更加準(zhǔn)確識別車牌字符的功能,通過BP網(wǎng)絡(luò)各層之間信息的快速傳遞實現(xiàn)了車牌字符的識別,為緩解交通問題提供了切實有效的解決方案。
車牌識別;BP神經(jīng)網(wǎng)絡(luò);字符識別算法
汽車牌照識別系統(tǒng)的主要研究步驟包括汽車圖像的采集、圖像的預(yù)處理、車牌的定位分割、車牌字符的自動識別。該系統(tǒng)主要應(yīng)用在學(xué)校、政府、機關(guān)部門、各大超市和商場、甚至高速公路ETC出入口。在圖像采集過程中,各種環(huán)境的綜合影響使得圖像采集后的車牌照片模糊不清、難以使用計算機進行確認(rèn),導(dǎo)致最終識別效果不佳。因此,提出一種能夠快速有效地識別車牌字符的方法迫在眉睫。車牌字符識別方法的研究能夠為緩解交通問題提供切實有效的幫助。
近20年間,國內(nèi)外許多專家和學(xué)者都在致力于車牌字符識別方法的研究,這期間有許多優(yōu)秀的成果,但仍存在許多問題,如利用兩層BP神經(jīng)網(wǎng)絡(luò)進行識別,識別正確率不到90%,而且系統(tǒng)受照明條件影響較大[1]。用SVW支持向量機的方法識別車牌,該方法對車牌的傾斜、大小、顏色甚至照明強弱的影響具有魯棒性,SVW模型較為復(fù)雜,識別時間相對較長[2]。借助車牌的顏色特征對其中字符識別,但不足之處是對光照敏感,車牌污損使識別率下降[3]。參數(shù)被模糊化的二維加博濾波器對獲取的圖像進行識別,這樣的系統(tǒng)魯棒性較差[4]。用三層BP神經(jīng)網(wǎng)絡(luò)對字符識別,但系統(tǒng)沒有做到完全收斂[5]。提取出的字符與現(xiàn)有模板進行匹配,這種方法對車牌有污損的情況識別率不足[6]。字符有污損的情況下依然可以獲得較高的識別率,但對于字符缺損或污染較大的情況不能準(zhǔn)確識別[7]。采用彩色數(shù)字圖像模式識別方法,該方法受自然光照影響較大,故不適合用于實際環(huán)境中的識別工作[8]。通過改進目標(biāo)函數(shù)方法提高識別率,但系統(tǒng)對于一些易混淆的字符不容易識別[9]。將特征匹配與神經(jīng)網(wǎng)絡(luò)相結(jié)合的方法,該方法對易混淆的字符識別效果較好,但對于隱含層層數(shù)和節(jié)點數(shù)的選取缺乏科學(xué)的實驗研究,容易導(dǎo)致收斂速度慢[10]。
通過上述問題的研究,提出為原有的三層BP神經(jīng)網(wǎng)絡(luò)添加一個隱含層以及動量項。設(shè)計一個添加了動量項的四層BP神經(jīng)網(wǎng)絡(luò)模型,該模型將通過輸入信息在各層之間的傳遞實現(xiàn)對大量不同車牌字符的準(zhǔn)確識別。本文算法在解決以上問題,在車牌字符準(zhǔn)確識別方面具有巨大前景。
2.1BP網(wǎng)絡(luò)的結(jié)構(gòu)
在各種類型的神經(jīng)網(wǎng)絡(luò)中,BP神經(jīng)網(wǎng)絡(luò)具有三層或三層以上結(jié)構(gòu),層與層之間無反饋,層內(nèi)無互聯(lián)。BP神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,其中信息開始輸入的一層為輸入層,輸出的一層為輸出層,中間各層稱為隱含層(也稱中間層)。
2.2BP網(wǎng)絡(luò)的學(xué)習(xí)算法
2)隨機選取一個輸入樣本(Xk,Yk)輸入給網(wǎng)絡(luò)。
3)計算輸入層的輸出。輸入層的輸出向量與輸入向量保持一致。
4)按照式(1)和式(2)計算隱含層各個神經(jīng)元的凈輸入和輸出
(1)
(2)
5)按照式(3)和式(4)計算輸出層各個神經(jīng)元的凈輸入與實際輸出
(3)
(4)
6)根據(jù)給定的期望輸出,按照式(5)計算輸出層各個神經(jīng)元的校正誤差
(5)
7)按照式(6)計算隱含層各個神經(jīng)元的校正誤差
(6)
8)按照式(7)和式(8)修正隱含層至輸出層的連接權(quán)值V和輸出層神經(jīng)元的閾值,表示學(xué)習(xí)速率,0?1
(7)
(8)
9)按照公式(9)和公式(10)修正輸入層至隱含層的連接權(quán)值W和隱含層神經(jīng)元的閾值,其中表示學(xué)習(xí)速率,0?1
(9)
(10)
10)給網(wǎng)絡(luò)輸入下一組樣本,返回3),m個樣本學(xué)習(xí)結(jié)束后對訓(xùn)練完畢。
11)審查全局誤差E是否小于規(guī)定大小。若滿足則轉(zhuǎn)至13),否則繼續(xù)。
12)查看網(wǎng)絡(luò)學(xué)習(xí)的次數(shù),若小于初始要求次數(shù),返回2)。
13)結(jié)束。
在以上步驟中,3)~5)為輸入樣本按照網(wǎng)絡(luò)進行正向傳播過程,6)~9)為誤差按照網(wǎng)絡(luò)進行逆?zhèn)鞑サ倪^程,到步驟10)為止網(wǎng)絡(luò)完成了學(xué)習(xí)訓(xùn)練,11)~12)判斷誤差是否達到初始要求。
BP神經(jīng)網(wǎng)絡(luò)不間斷的對學(xué)習(xí)樣本進行處理,學(xué)習(xí)過程的同時把得到的誤差沿輸出層至輸入層進行反向傳播,使網(wǎng)絡(luò)的連接權(quán)值和閾值不斷地進行更正,最終使得實際輸出值無限向期望輸出值靠攏。收斂即指的是這一過程。對于BP神經(jīng)網(wǎng)絡(luò),要使網(wǎng)絡(luò)收斂一般要經(jīng)過幾十次至數(shù)千次的重復(fù)學(xué)習(xí)過程。
3.1增加動量項的BP算法
標(biāo)準(zhǔn)BP算法在調(diào)整連接權(quán)值時,通常疏忽前一次誤差變化時權(quán)值和閾值變化對本次調(diào)整的影響,因而網(wǎng)絡(luò)的收斂過程常常發(fā)生震蕩。引入動量項后,本次連接權(quán)值的調(diào)整就會按照上一次誤差變化的趨勢進行,即相當(dāng)于一個緩沖,避免了震蕩問題的發(fā)生。我們將連接權(quán)值調(diào)整公式如下:
(11)
式中,(n-1)為動量項,其中n為學(xué)習(xí)次數(shù),η為動量系數(shù),0<η<1。
3.2適當(dāng)選取隱含層層數(shù)及節(jié)點數(shù)
隱含層不同于輸入層和輸出層,可以從輸入信號中提取特征,對不同信息進行綜合處理。增加一個隱含層可以提高BP神經(jīng)網(wǎng)絡(luò)對車牌中易混淆字符的處理能力,使字符的識別率得到提高。
科學(xué)的選擇隱含層節(jié)點數(shù),通常要求通過試驗來確定,在BP神經(jīng)網(wǎng)絡(luò)中先設(shè)置較少的隱含層節(jié)點,然后逐漸增加隱含層節(jié)點數(shù),同時使用同一學(xué)習(xí)樣本進行訓(xùn)練,網(wǎng)絡(luò)誤差最小時對應(yīng)的隱含層節(jié)點數(shù)即為最優(yōu)。在實際設(shè)計中,也可以選擇經(jīng)驗公式對個數(shù)進行粗略確定。
(12)
式中,m表示輸入層神經(jīng)元數(shù),n表示輸出層神經(jīng)元個數(shù),s表示隱含層神經(jīng)元個數(shù)。
3.3BP神經(jīng)網(wǎng)絡(luò)的構(gòu)建
在把樣本輸入到網(wǎng)絡(luò)前需要將樣本進行特征提取,即設(shè)置特征向量P。利用K-L變換將100個35*20的字符樣本統(tǒng)一變?yōu)?2維列向量輸入到網(wǎng)絡(luò),最后設(shè)置好目標(biāo)向量T后就可以進行訓(xùn)練了。
1)權(quán)值和偏置的初始化
在輸入提取好的特征矩陣P進行訓(xùn)練前還需要初始化每一層權(quán)值和偏置:
net.layers{1}.initFcn=‘initwb’
net.inputWeights{1,1}.initFcn=‘rands’
net.bias{1,1}.initFcn=‘rands’
net.bias{2,1}.initFcn=‘rands’
net=init(net)
2)網(wǎng)絡(luò)對象的建立
使用newff函數(shù)可以創(chuàng)建一個具有四層結(jié)構(gòu)的BP神經(jīng)網(wǎng)絡(luò)。這個函數(shù)由四個參數(shù)組成,第一個參數(shù)用來定義輸入向量的最大值和最小值。第二個參數(shù)用一個數(shù)組表示每層神經(jīng)元個數(shù)。第三個參數(shù)是網(wǎng)絡(luò)每一層轉(zhuǎn)移函數(shù)的類型。最后一個參數(shù)定義了訓(xùn)練所用的函數(shù)類別。
網(wǎng)絡(luò)開始訓(xùn)練前還需要對參數(shù)進行設(shè)置,輸入層神經(jīng)元個數(shù)根據(jù)試驗后確定為32個。輸出層神經(jīng)元個數(shù)用公式N=INT來表示(N表示網(wǎng)絡(luò)輸出層神經(jīng)元個數(shù),a為車牌字符個數(shù),即a=7)。INT為取整符號, INT=1。以漢字為例,隱含層節(jié)點一層為28個,二層為20個,構(gòu)建以下網(wǎng)絡(luò):
net=newff(minmax(P),[32,28,20,1],{‘logsig’, ‘logsig’, ‘logsig’, ‘purelin’},‘trainrp’);
net.inputWeights{1,1}.initFcn =‘randnr’;
net.layerWeights{2,1}.initFcn =‘randnr’;
net.trainparam.epochs=5000;
net.trainparam.show=50;
net.trainparam.goal=0.0000000001;
net=init(net); [net,tr]=train(net,P,T);
A=sim(net,P)
MSE=mse(E)
3)用實驗樣本進行測試
為每一個字符設(shè)計了一個網(wǎng)絡(luò),并分別給每個網(wǎng)絡(luò)輸入了100個取自不同環(huán)境的字符樣本測試最終識別率。輸出值result3接近“1”的程度代表了識別率。
W1=net.IW{1,1};
B1=net.b{1,1};
W2=net.LW{2,1};
B2=net.b{2,1};
W3=net.LW{3,2};
B3=net.b{3,1};
A=imread('recog.bmp','bmp');
AA=reshape(A,700,1);
test=X(:,:)'*im2double(AA);
result1=logsig(W1*test+B1);
result2=logsig(W2*result1+B2);
result3=purelin(W3*result2+B3);
仿真結(jié)果對比如圖2、圖3所示。
從仿真結(jié)果可以看出,添加了動量項以后系統(tǒng)振蕩次數(shù)明顯減少,系統(tǒng)魯棒性更強。
從大量不同環(huán)境車牌中分別分割出了漢字、數(shù)字、字母的100個樣本輸入到BP網(wǎng)絡(luò)進行訓(xùn)練,由仿真結(jié)果可以看出,在原有的BP網(wǎng)絡(luò)添加了動量項以后明顯震蕩次數(shù)有所減少,系統(tǒng)更加趨于穩(wěn)定,魯棒性更強。跟以往的識別方法相比,改進后的網(wǎng)絡(luò)在識別的準(zhǔn)確率上高于模板匹配法和傳統(tǒng)三層BP算法[11],錯誤率即輸入到網(wǎng)絡(luò)中的實驗樣本最終不能接近預(yù)期值的個數(shù)明顯減少,網(wǎng)絡(luò)達到收斂時誤差的傳遞次數(shù)即比三層少了10次左右,如圖3所示,訓(xùn)練速度得到了提高。從表1可以看出,在對傳統(tǒng)的算法進行改進后,漢字、數(shù)字、字母的識別率明顯高于從前。
表1 算法改進前后字符識別率比較
本文對車牌字符識別的方法進行了改進,通過對三層BP神經(jīng)網(wǎng)絡(luò)添加隱含層和動量項,使得字符的識別的準(zhǔn)確率相對以往算法得到了提高,降低了像“O,D,Q”、“4,A”、“B,8”、“漢字豫,贛”這些易混淆的字符誤識率。還有其他一些基于BP神經(jīng)網(wǎng)絡(luò)的改進方法,如利用共軛梯度法修正權(quán)值,這種方法或許可以加快網(wǎng)絡(luò)的訓(xùn)練速度,使最終網(wǎng)絡(luò)收斂時誤差傳遞的次數(shù)更少,有待下一步對其進行考證。
[1] Anagnostopoulos C, Anagnostopoulos I, Kayafas E,etal. A license plate recognition system for intelligent transportation system applications[J]. IEEE Transactions on Intelligent Transportation System,2006,7(3):377-392.
[2] Ying Wen,Yue Lu,Jingqi Yan,et al. An Algorithm for License Plate Recognition Applied to Intelligent TransportationSystem[J].IEEE Intelligent Transportation Systems Society,2011, 13(3): 830-845.
[3] Xifan Shi,Weizhong Zhao,Yonghang Shen.Automatic License Plate recognition sytem color image processing[C].ICASCA2005,LNC3483,1159-1168.
[4] Vladimir Tadic, Miodrag Popovic, Peter Odry. Fuzzified Gabor filter for license plate detection[J]. Engineering Applications of Artificial Intelligence,2016(48):40-58.
[5] H.Erdinc Kocer, K.Kursat Cevik.Artificial Neural Networks Based Vehicle License Plate Recognition[J]. Procedia Computer Science,2011(3):1033-1037.
[6] 王敏,黃心漢,魏武,等.一種模板匹配和神經(jīng)網(wǎng)絡(luò)的車牌字符識別方法[J].華中科技大學(xué)學(xué)報,2001(3):48-50.
[7] 胡愛明,周孝寬. 車牌圖像的快速匹配識別方法[J].計算機工程與應(yīng)用,2003(7):90-91,110.
[8] 趙光輝,李男男. 基于彩色數(shù)字圖像的車牌識別研究[J].電子設(shè)計工程,2011(22):84-87.
[9] 陸安江,金力,楊家紅,等. 基于改進的BP神經(jīng)網(wǎng)絡(luò)在車牌識別中的應(yīng)用研究[J].貴州大學(xué)學(xué)報(自然科學(xué)版),2015(6):71-74.
[10] 楊凡,趙建民,朱信忠. 一種基于BP神經(jīng)網(wǎng)絡(luò)的車牌字符分類識別方法[J].計算機科學(xué),2005(8):192-195.
[11] 李消霞,張文靜,劉銀萍,等. 一種改進的BP神經(jīng)網(wǎng)絡(luò)車牌識別算法的研究[J]. 電腦知識與技術(shù),2016(9):223-224.
OptimizedCharacterRecognitionAlgorithmBasedonBPArtificialNeuralNetwork
DONG Tian-yu, CHEN Zhi-kun, LI Shen
(School of Electrical Engineering, North China University of Science and Technology,Tangshan 063210, Hebei, China)
The recognition of vehicle license plate belongs to the field of image processing and recognition, which plays an important role in the intelligent transportation system. The main steps include image segmentation, license plate location, and license plate character recognition. Due to the impact of environment, the license plate in the acquisition process will inevitably blur, causing a certain impact on the final recognition. In this paper, we propose a matlab neural network based on Improved BP Neural Network Algorithm in License Plate Recognition, namely the design and implementation of a four layer BP neural network model. Repeated experiments proved that the recognition rate of complex two hidden layers BP neural network in different environments is highly solving the problems of previous experiments in which the speed of recognition is slow, and the recognition efficiency is not high.
recognition of vehicle license plate; BP neural network; algorithm of character recognition
TP391.41
A
1008-9446(2017)04-0053-06
2017-01-17
董天宇(1992-),男,吉林梨樹人,在讀碩士研究生,主要從事車牌識別相關(guān)方向研究,E-mail:15132586742@163.com。