摘 要:車牌識別系統(tǒng)是智能交通中的一個重要分支,本文針對傳統(tǒng)的模板匹配算法存在識別準確率低的問題,提出了一種基于神經網絡的車牌字符識別算法。該方法對分割、歸一化后的字符進行特征提取獲取其特征向量,把這個特征向量送到BP網絡中進行訓練,可以得到訓練好的權值,以此權值對車牌字符進行識別。實驗表明,本算法對車牌圖像的識別率達90%以上。
關鍵詞:字符識別;BP神經網絡;車牌識別
中圖分類號:TP391.41 文獻標識碼:A
1 引言(Introduction)
汽車牌照的識別是計算機視覺與模式識別應用于的重要研究課題,車牌識別的準確率和高效性是識別的關鍵。由于車牌圖像難免會受到光照、天氣等因素影響,車牌圖像質量會有所下降,為了對車牌字符的進行有效地識別,首先要對其進行去噪、增強等預處理,之后應用識別算法對其進行識別[1]。本文研究了用BP神經網絡方法對汽車牌照字符的識別算法。首先對分割、歸一化后的字符特征進行提取,所提取的特征向量記錄的就是字符的特征。把這個特征向量送到BP網絡中進行訓練,就可以得到訓練好的權值,用這個權值對車牌字符進行識別。對于車牌圖像的識別率達90%以上,表明該方法是有效的。
2 字符識別的原理(The principle of character
recognition)
字符識別的基本原理即對字符進行匹配識別。提取代表未知字符基本特征、結構的樣本庫和提前在計算機中保存的標準字符的字典(字符基本特征和結構的集合),在一定的規(guī)則下逐個匹配比較。在計算機中保存的標準字符的字典中,尋找與輸入字符樣本最相似的表達項,然后找出對應的字符就是識別的結果[2]。字符識別的原理框圖如圖1所示。
3 BP神經網絡字符識別算法(The BP neural network
character recognition algorithm)
BP算法基本原理是利用輸出后的誤差來估計輸出層的直接前導層的誤差,再用這個誤差估計更前一層的誤差,如此一層一層的反傳下去,就獲得了所有其他各層的誤差估計[3]。對BP網絡的設計要點是高效率的特征提取方法、具有代表性的大量訓練樣本和穩(wěn)定高效的學習方法。
3.1 BP神經網絡學習算法
算法的基本流程就是:
(1)設置變量和參量,包括輸入向量(訓練樣本和樣本個數)、每次迭代中輸入層和隱含層之間、隱含層與隱含層之間、隱含層與輸出層之間的權值向量矩陣、迭代次數、每次迭代的實際輸出、期望輸出和學習效率。
(2)隨機初始化權值矩陣。給三類權值矩陣賦一個相對較小的隨機非零值。
(3)進行樣本輸入。采用隨機輸入的方法。
(4)前向傳播。按照公式一層一層的前向計算隱藏神經元和輸出神經元的輸入和輸出。
(5)誤差計算,判斷。根據每次迭代的期望值和實際輸出結果算出誤差,判斷誤差值滿足要求與否,如果滿足進行第8步,否則進行下一步。
(6)迭代次數判斷。如果已經達到最大的迭代次數,則進行第8步,否則進行反響傳播,即反向按照公式一層層迭代計算每層神經元的局部梯度。
(7)權值更新。依據反向傳播過程計算出的局部梯度值,計算出各矩陣的權值修正值,并進行修正。
(8)終止判斷。終止條件為:所有的樣本都學習完成。否則進行第3步。
3.2 實際使用BP神經網絡過程中的一些問題
①樣本的處理??蛇m當放寬輸出條件,例如當輸出大于0.9時就當作是1,輸出小于0.1時當作0。對于輸入樣本,也應該進行歸一化處理。
②初始化權值的選擇。權值的不同對學習結果會產生影響,因此選擇一個相對比較合理的權值是非常重要的。實際使用時,應該用較小的隨機數來對權值進行初始化,隨機數的大小的分布也應該是均勻的。
③學習率的選擇。神經網絡中有一個學習率的概念,為了保證系統(tǒng)的穩(wěn)定性,通常應該取較小的學習率,一般選取范圍在0.01—0.8。如果學習率過大,可能會導致系統(tǒng)不穩(wěn)定。如果學習率過小,會使得學習時間變長,收斂也會變慢。
3.3 BP神經網絡應用過程
BP神經網絡應用過程如圖2所示。
3.4 BP網絡三個層的神經元數目的確定
目前還沒有什么成熟的定理能確定各層神經元的神經元個數和含有幾層網絡,大量經驗表明,三層的網絡可以逼近任意一個非線性網絡。
首先,使用已知的樣本對BP網絡進行訓練。對于輸入層的結點,其數目是之前車牌圖像預處理后輸出特征的維數。
對于隱含層的結點數目,一般情況下,隱含層神經元數目和BP網絡精確度成正比,數目越多,神經網絡的訓練時間也會越長。但是,當隱含層神經元數目過大時,識別的準確率就會受到影響,同時也會使得網絡的抗噪聲能力下降[4]。綜合考慮上述情況,根據以往經驗,使用10個隱含層的神經元。
對于輸出層結點數目,受輸入層結點數的約束。本文中,我們采用8421碼對數字0—9,字母A—Z,省名簡稱“京津滬冀魯豫鄂蘇皖晉湘桂閩川浙甘寧陜吉遼臺”依次進行編碼。例如,對于輸出“1”,表示為(0,0,0,0,0,1),對于輸出“A”,表示為(0,0,1,0,1,0),對于輸出“京”,表示為(1,0,0,1,0,0)。因此,采用6個輸出層神經元。
然而,實驗中發(fā)現,當使用上述結構的標準輸出向量時,會出現BP神經網絡無法收斂的問題。原因在于BP網絡學習中采用的激活函數的輸出只可能無限接近1或0,但不會是1或0。針對這個問題,對標準輸出向量的編碼方式進行如下調整:用0.1代替0,用0.9代替1。即對于輸出“0”,表示為(0.1,0.1,0.1,0.1,0.1,0.1),對于輸出“1”,表示為(0.1,0.1,0.1,0.1,0.1,0.9),對于輸出“A”,表示為(0.1,0.1,0.9,0.1,0.9,0.1),對于輸出“京”,表示為(0.9,0.1,0.1,0.9,0.1,0.1),以此類推。
3.5 BP神經網絡識別字符的流程
使用BP神經網絡進行字符識別,實際上可看作是訓練和識別兩個過程。其中,訓練就是提取訓練樣本的特征向量。第一步,將挑選好的圖像形式的已知數據作為訓練樣本,這些已知數據能夠很好的反應樣本的可分性。第二步,在訓練樣本圖像經過進行特征提取操作后送入BP網絡中進行訓練。訓練之前,要提前輸入一系列訓練參數。
經過BP網絡的訓練后,就可以用其對待識別數據進行識別。待識別數據在經過灰度化、二值化、歸一化、分割等預處理操作后,再經過特征向量提取,最后在BP網絡中進行識別,得出識別結果。
3.6 實驗結果
實驗中采用了在不同環(huán)境下拍攝到的100張車牌圖像,這些牌照的清晰程度、區(qū)域大小都不相同,按照前文所述BP神經網絡算法進行模擬實驗。根據表1所示識別結果,由于個別字母與數字之間有相似之處,導致其識別率相對較低,分別為95.9%、96.2%。而車牌中漢子字符數量很少,且特征相對比較明顯,使得其識別率相對較高,實驗結果為98.0%。
4 結論(Conclusion)
基于BP神經網絡的車牌字符識別方法,對于比較清晰的車牌圖像,本方法能有效識別其中的字符,但對于較低解析度和較為模糊的車牌還需要進行很多預處理的工作,因為必須將車牌中的字符獨立地被分割后,才能用該方法進行識別。而事實上,在那些圖像不夠清晰的車牌上分割出獨立的字符也是特別困難的。雖然,BP神經網絡在識別效果上提高的余地較大,具有較強的容錯能力,還可進一步訓練學習,識別率較高,但其識別速度較慢,不能滿足實時性的要求。
參考文獻(References)
[1] 郭榮燕,胡雪惠.BP神經網絡在車牌字符識別中的應用[J].計
算機仿真,2010(9):299-301;350.
[2] 劉靜.幾種車牌字符識別算法的比較[J].電腦與電信,2008(8):
72-73;78.
[3] 石云.BP神經網絡的Matlab實現[J].湘南學院學報,2010(5):86-
88;111.
[4] 尹念東.BP神經網絡的應用設計[J].信息技術,2003(6):18-20.
作者簡介:
楊建華(1991-),男,本科生.研究領域:圖像識別.
王 鵬(1992-),男,本科生.研究領域:圖像識別.