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