賀瑜飛
(榆林學(xué)院)
自動識別系統(tǒng)進行車牌識別,主要由車牌定位、字符分割和字符識別這三部分組成,在字符識別的過程中,由于我國車牌中的信息包含數(shù)字、字母和漢字,所以字符識別率是車牌識別的關(guān)鍵部分,傳統(tǒng)的方法有貝葉斯統(tǒng)計決策模式識別方法、結(jié)構(gòu)模式識別方法、神經(jīng)網(wǎng)絡(luò)方法,還有基于支持向量機的一些識別方法.但是對于一些模糊的車牌,單純的用一種方法,效果不是很好,該文最后采用了改進的神經(jīng)網(wǎng)絡(luò)和模板匹配結(jié)合來識別字符,使得車牌的字符識別性能能夠得到明顯的提高.
字符歸一化,在某些情況下,可以消除字體大小以及分辨率高低的一些情況對車牌的影響,歸一化處理就是消除這些影響,其主要思想是經(jīng)過對不同尺寸和不同大小的字符化為統(tǒng)一的字符圖像.
經(jīng)過處理后的某像素點(m,n),規(guī)定在原圖像下的坐標為:
原圖大小X×Y,處理后的大小為M ×N,以下的方法是求出像素點位置和他們最近的像素的灰度值,如圖1中,假如p像素最相近的四個相鄰像素分別是 a、b、c、d,坐標為(x0,y0),(x0+1,y0),(x0,y0+1)以及(x0+1,y0+1),灰度值是g(a),g(b),g(c)和 g(d).
圖1 四個相鄰的像素圖
e的灰度值g(e)和f的灰度值g(f)為(以下上橫線為兩點間的距離):
那么p點的灰度值g(p):g(p)=ep[g(f)-g(e)]+g(e)
必須保證最后的圖像仍是二值圖像,需要做閾值處理,如果g(p)≥0.5,則歸一化后的圖像像素灰度為1相反則為0.最后形成32×32的標準字符,標準化后的圖像如圖2所示.
圖2 標準化后圖像
細化主要思想是提取漢字筆劃中軸線,得到筆劃的類型信息.為了更好提取筆劃的信息,還必須要得到漢字均寬,對所確定好的中軸線,把所在線段垂直方向上黑色像素的點數(shù)取平均,如果效果不是很好,可以再經(jīng)過加權(quán),最后用不同的灰度值表示橫豎撇捺這四種骨架點.通過這種算法,可以有效抑制筆劃交叉處的一些可能存在的變形.
主要步驟:(1)首先必須對圖像進行掃描處理,假如果是掃描到的是黑像素點,那么計算出從這一個黑的像素點沿著它的八方向,還有連續(xù)筆畫邊緣點黑像素點的個數(shù),這個就作為當(dāng)前黑色像素點的八方向長,一次下去,可以得到一個八維的方向向量,按此順序記為:C(c1,c2,c3,c4,c5,c6,c7,c8),接著將會以 c8為起點,按照逆時的針順序,必須找到互相相鄰的三個方向的長度的最小值,記為 B(b1,b2,b3,b4,b5,b6,b7,b8),定義b1為c1與c2和c8的最小值,b2為c1、c2和c3的最小的值,以此類推,可以找到B向量上其余剩下元素的值.
如果有c1> b3,c1> b7,c5> b3,c5> b7,(c1+c5)>2×(b3+b7)且|b3-b7|≤1,這樣黑的像素,最終的結(jié)果是可能為橫筆劃正好的中軸點.所謂的細化,就是為找到中軸線,且是每條筆畫的中軸線,先觀察p2和p6的值,然后進行判斷,是否黑像素點就是橫筆畫的中心點.結(jié)果可能被標記的是k1、k12、k13或者是k14,那么就不能標為橫筆畫中心點,反之那么標記為k1.
假如 c3> b1,c3> b5,c7> b1,(c3+c7)>2×(b1+b2)而且|b1-b5|≤1,說明這一個黑像素點可能是豎直筆劃的中心點.檢查是不是已有被標記為 k2、k12、k23、k24中的一個,那么在標記前還需要分別查找p6和p4的值.若被標記,那么這點就是兩筆畫交叉點,若沒有被標記,查找是否已被標為k1、k2以及k4中的一個.撇筆畫和捺筆畫標記方法與此類似.
細化后的圖像,如圖3所示.
圖3 細化字符圖像
改進模板匹配對英文及數(shù)字的識別,其主要思想是基于傳統(tǒng)模板,然后增加了用字符特征的描述法和邊緣提取,來進行字符識別.中國汽車牌照有自己的特點,既有漢字又有數(shù)字和字母,其中有24個英文字母與10個數(shù)字,所以根據(jù)各種方法的比較,相對比較適合用模板匹配.但是牌照中的一些字符,比如很相似的B,0和D,這樣很容易發(fā)生錯誤的判斷,再還有一些普遍現(xiàn)象,有些車牌污染嚴重,所以車牌的字符識別率很低.
模板匹配的基本原理是這樣,輸入函數(shù)f(x,y),在模板匹配中表示輸入字符,函數(shù)F(x,y)是標準模板,比較后輸出的是T(x,y).那么相關(guān)器輸出是:
當(dāng) x1=x2,y1=y2時
當(dāng) f(x,y)=F(x,y)時
有 T(0,0)≥T(x,y),那么T(x,y)在T(0,0)出現(xiàn)主峰,那么副峰就會出現(xiàn)在其他標準字符下,主峰如果能夠不等于副峰,就能判斷并且能夠識別出字符.
模板定義的是一個離散函數(shù)Tx,y,假如高斯白噪聲會干擾圖像Ix,y,把未知標準誤差定義為σ,那么相對應(yīng)的像素相匹配概率為:
即為
最后歸結(jié)為求小化問題
設(shè)標準的模板字符圖像是T,待檢測字符圖像的子圖是Fxy(m,n),F(xiàn)(m,n)為待檢測圖像,這里定義其互相關(guān)算子為:
最佳匹配模板就是互相關(guān)算子所對應(yīng)的模板,經(jīng)過處理后的圖形,只存在著灰度值是1或0的像素,最后可以簡化為:
根據(jù)我們之前的預(yù)備知識,首先進行的還是處理,只是圖像已經(jīng)被分割好,仍然是把圖像想辦法變成統(tǒng)一的大;然后確定匹配的模板庫,首先進行閾值的設(shè)定,但根據(jù)的是已經(jīng)知道的位置信息;給出的N是閾值數(shù),是指給出的匹配度小于標準模板匹配度,繼而把標準化后的字符,和標準模板進行匹配.假若N=1,說明匹配的結(jié)果是唯一確定的,輸出字符,N >1,說明相類似的字符可能存在于未知的模式中,沒辦法識別時,我們用特征描述法來進行識別,N=0,匹配的結(jié)果可能不理想,因為有磨損或者是噪聲存在,接著就會用到邊緣模板匹配法來進行匹配.
在字符的研究過程中,會發(fā)現(xiàn)其中有些數(shù)字和字母的結(jié)構(gòu)非常的相似,圖片必然會出現(xiàn)筆畫粘連、斷裂或者是模糊的情況,這時候就要用本文所講的特征描述法.首先是對字符結(jié)構(gòu)觀察,然后進行逼近的一個識別,所以會有識別速度和準 確 率 的 提 高 等 優(yōu) 點. 比 如: “Z”“2”,“C”“D”“Q”,“B”“8”,“S”“5”這樣的字符.這樣,就面臨著把不容易區(qū)分的數(shù)字字母做一個區(qū)別,接著進行字符構(gòu)造的分析,把相似的數(shù)字和字母歸類為一組.分組時先把字符分為無封閉環(huán)和有封閉環(huán)兩種類型,那么“B”是有封閉環(huán)的字母,“8”是有封閉環(huán)的數(shù)字,然后進行一個豎方向的筆畫類型劃分;一個封閉環(huán)字符肯定是“4”,“6”,字母是“A”,接著根據(jù)豎筆畫來判斷,“4”的豎筆畫在右邊;假如沒有輸出結(jié)果,判斷橫的筆畫,字符“A”就有橫筆畫,“6”是最后剩下的;數(shù)字“7”,“3”,“2”和字母“Z”是沒有封閉環(huán)的,觀察可以發(fā)現(xiàn)“Z”是有兩條橫的筆畫,這樣就能識別“Z”.剩下的“3”和“7”其橫的筆畫都是在上方,而“2”的橫筆畫是在下方,這樣比較會比較容易識別出“2”,“7”和“3”所抽取的不是豎筆畫,也不是橫筆畫,而是斜的筆畫,有斜的筆畫的是“7”,反之則是“3”.數(shù)字“0”與字母“O”的區(qū)別,這要看其的位置信息,字母“O”出現(xiàn)的位置是第二個字符,這樣就能區(qū)分數(shù)字“0”和字母“O”.
在匹配的過程中,會發(fā)現(xiàn)有些字符沒有被識別出來,這就說明沒有找到相匹配的模板,,但一個問題是一定的,特有的物理結(jié)構(gòu)是車牌的一個特點,這個特點是字符與車牌的邊緣不屬于一個平面.該文選用Canny算子進行邊緣輪廓的提取,Canny有其自身的優(yōu)點,可以檢出弱邊緣的真正存在,而且一個優(yōu)點是不易受到其他一些因素的干擾.設(shè)定兩個不同的閾值,分別進行強邊緣和弱邊緣的檢測,弱邊緣信息想要包含在輸出的圖像中,只能檢測出的邊緣是相連接的.所以,提取車牌邊緣信息,主要是用字符的邊緣信息來識別.圖4是傳統(tǒng)模板和邊緣模板示意圖.
圖4
傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法中,在梯度這方面沒有做過多的研究,該文是改進了傳統(tǒng)梯度下降的算法,偏導(dǎo)數(shù)的幅值不變化,只借用了偏導(dǎo)數(shù)符號.權(quán)值的變化由偏導(dǎo)數(shù)的符號唯一確定,一個更新值來確定大小的變化.在迭代過程中,如果偏導(dǎo)數(shù)符號不發(fā)生變化,那么就增大更新值,乘以上一個1到2之間的數(shù)是新的更新值;相反如果符號發(fā)生改變,那么就更新值進行降低,乘以上一個0到1之間的數(shù).迭代過程的公式如下:
ΔX(k)是前一次的更新值,根據(jù)實際情況預(yù)先設(shè)定初始值ΔX(k).
這里漢字分類器首先要設(shè)計神經(jīng)網(wǎng)絡(luò),三層的BP神經(jīng)網(wǎng)絡(luò)是我們設(shè)計的,輸入的節(jié)點n由特征向量的提取來進行一個確定.因為漢字選用的是39維向量,那么39維向量是識別系統(tǒng)的輸入向量,所以應(yīng)該取n是39+1作為一個輸入神經(jīng)元的個數(shù).最后需要分類的漢字類別應(yīng)該與輸出神經(jīng)元的個數(shù)m是相同的.經(jīng)過試驗,傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)要經(jīng)過至少2500次的訓(xùn)練才能收斂,該文的算法只用了1000次就能做到收斂,所以改進后的神經(jīng)網(wǎng)絡(luò)比以前的神經(jīng)網(wǎng)絡(luò)更優(yōu).
實驗用相機對汽車進行拍照,然后用該文算法對進行處理,讓改進的模板匹配來識別字符.必然會有相似或者是模糊字符發(fā)生,按照前面所說,第二次匹配時用字符特征描述法來進行識別,然后第三次匹配用邊緣提取.算法是在VC++7.0下來實現(xiàn),仿真實驗結(jié)果見表1.識別率明顯提高.
表1 識別結(jié)果
[1] 魏武,黃心漢.基于模版匹配和神經(jīng)網(wǎng)絡(luò)的車牌字符識別方法[J].模式識別與人工智能,2001,14(1):123 -126.
[2] 虞安軍,吳海珍,蔣加伏.改進的遺傳算法在車牌自動識別系統(tǒng)中的應(yīng)用[J].計算機仿真,2006,23(11):224 -227.
[3] 吳紅梅,陳繼榮,鹿曉亮.一種新的車牌字符分割方法[J].計算機仿真,2007,24(2):252 -255.
[4] 楊曉敏,吳煒,黎濤,等.基于Gabor變換和支持向量機的車牌字符識別算法[J].四川大學(xué)學(xué)報:工程科學(xué)版,2005,37(5):130-138.
[5] 袁志民,潘曉露,等.車牌定位算法的研究[J].昆明理工學(xué)報,2001,26(2):56-60.
[6] 崔屹.數(shù)字圖像處理技術(shù)與應(yīng)用[M].電子工業(yè)出版社,1997.
[7] 魏武.智能交通系統(tǒng)關(guān)鍵技術(shù)研究圖像處理、模式識別與智能控制.武漢:華中科技大學(xué).博士論文,2000.
[8] Sunghoon Kim,Daechul Kim.A robust licenseplate extraction method under complex image conditions[C]//In:The l6th International Conference on Pattern Recognition.Quebec Canada,2002.216 -219.
[9] 大型室內(nèi)停車場車輛出入計算機自動識別與管理系統(tǒng)[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,1995(2).
[10]王鑒,黃山,嚴國莉,等.車牌字符識別技術(shù)[J].中國測試技術(shù),2005(2):45-46.