張 晶,呂少勝
(1.石家莊學院電氣信息工程系,河北 石家莊 050035;2.河北省電力勘測設計研究院,河北 石家莊 050031)
責任編輯:任健男
車牌自動識別技術是智能交通系統(tǒng)中重要的組成部分,廣泛應用在收費站、停車場和機動車違章查詢等場合。一幅車牌圖像的識別主要有三個步驟:車牌定位、字符分割、字符識別。其中能夠準確、快速定位車牌是車牌自動識別的關鍵。定位的好壞將直接影響到車牌字符的識別率。
至今為止,眾多學者對車牌定位方法進行了廣泛的研究,并且提出了多種有效的定位方法。這些方法有:基于彩色信息的定位方法[1],基于小波分析的車牌定位方法[2],基于神經(jīng)網(wǎng)絡的定位方法[3],基于灰度檢測的方法[4]。本文針對以上方法中出現(xiàn)的不足,提出了一種基于二次定位的車牌圖像定位方法,并在二次定位中插入車牌圖像的傾斜校正,進一步提高了定位的準確性,能有效去除車牌邊框,為后續(xù)的車牌字符識別打下良好的基礎。
由于從攝像頭獲取的車輛圖像為彩色圖像,如果直接對彩色圖像進行處理,運算量很大,導致速度降低。所以首先根據(jù)式(1)將彩色圖像變?yōu)榛叶葓D像,其中R,G,B分別代表紅色分量、綠色分量、藍色分量,灰度圖像如圖1所示。
圖1 灰度圖像
采用Sobel算子對車輛灰度圖像進行邊緣檢測。與Prewitt算子相比,Sobel算子對于像素位置的影響做了加權,可以降低邊緣模糊程度,因此效果更好,如圖2所示。Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù),對噪聲有很好的抑制作用。其運算過程依據(jù)式(2)進行
圖2 邊緣檢測圖像
直線的解析式為
式中:ρ為直線到原點的距離;θ限定了直線的斜率。
對直線的Hough變換的過程為:依次遍歷圖像中的像素,對每個像素都要判斷是否滿足特定的條件。如果滿足,對經(jīng)過該像素的所有直線區(qū)域的計數(shù)器加1;否則繼續(xù)判斷下一像素。最后判斷計數(shù)器是否大于所設定的閾值,如果大于就認為該直線存在,反之不存在。實驗證明,θ取值范圍在(-5,5)時效果最好,如圖3所示。這樣可將圖像中有用信息保存下來,盡量過濾掉無用信息,同時也大大減少了運算量,提高了運算速度。
圖3 Hough變換圖像
由于車牌通常由7個字符組成,在水平方向上車牌區(qū)域的任意一行上的像素值從0到255或從255到0的跳變次數(shù)應該大于某個值。車牌所在區(qū)域跳變次數(shù)最少為7×2=14次??紤]到圖像會受到某些干擾及其他影響因素,經(jīng)實驗得出跳變閾值為25比較合適。由于車牌區(qū)域滿足以上閾值條件的行在垂直方向上具有連續(xù)性,加上車牌區(qū)域具有一定寬度的特征,據(jù)此對圖4進行過濾,就能得到車牌所在的行,如圖5所示。對圖5進行中值濾波,以去除孤立噪聲點。然后將圖像垂直信息保存到一個數(shù)組中。如果數(shù)組中累計像素長度小于8(其中保證累計像素長度始終小于圖像的寬度),則將所對應列的像素值置零,這樣可以消除進氣格柵等單線條的影響。經(jīng)過該處理后,如果除了車牌區(qū)域還存在其他無用信息,再利用車牌的寬高比特征,就能得到車牌所在的列,如圖6所示。
圖4 滿足閾值的行
經(jīng)過前面的過程,如果圖像中存在像素值為255的點,則其所對應的區(qū)域即為車牌區(qū)域。搜索圖像中的非零像素點,找出其上下左右4個坐標點,并提取該區(qū)域??紤]到在初定位后要利用車牌邊框進行傾斜校正,所以在搜索車牌區(qū)域時分別向上下擴展20個像素,以便保留車牌邊框的信息,并進行Hough變換,為下面進行傾斜校正做準備。
若無法找出非零像素點,則需要重新開始對車牌圖像的預處理。首先對灰度圖像進行灰度拉伸或灰度均衡處理,再進行后續(xù)步驟。如果經(jīng)過灰度拉升和灰度均衡仍然無法找到車牌區(qū)域,則說明車輛圖像受到的干擾過于嚴重,將無法準確定位車牌。圖7為一次定位的算法流程圖。圖8為一次定位后的車牌。
從圖8中可以看出車牌存在一定的傾斜角度,如果不進行校正,必然會對字符分割與識別產(chǎn)生影響。本文采用下列方法找到車牌圖像的傾斜角度。
1)假設圖像的寬度為Imgsize.cx,確定一個固定值L(L=Imgsize.cx/3),從圖像中第A列開始從下往上進行列掃描,找到第一個不為0的點,將其行數(shù)i賦給m;再從第A+L列開始從下往上掃描,找到第一個不為0的點,將行數(shù)i賦給n,由式(4)便可得到傾斜角g
2)由于傾斜角一般在-5°~+5°之間,在建立的AG[n]數(shù)組中的每個元素分別代表步驟3)中-5°~+5°角度的個數(shù);
3)在圖像中從第0列開始到第Imgsize.cx×2/3列為止,依次重復步驟1)。每重復一次便可得到一個g,若得到的g在-5°~ +5°范圍之內(nèi),則將對應的AG[g+5]加1,若超出-5°~+5°這個范圍,則認為屬于干擾點,應舍去;
4)最后,從AG[n]中找出最大的值,便得到車牌圖像的傾斜角。
該方法無須檢測圖像中的直線,即可有效地去除某些孤立點對傾斜角度檢測的干擾,而且算法簡單,運算量小,極大地提高了運算速度。本文選擇雙線性插值法進行圖像旋轉(zhuǎn),且保存經(jīng)傾斜校正后的圖像,便于二次定位。傾斜校正后的圖像如圖9所示。
圖9 傾斜校正圖像
由圖9可以看出車牌所在區(qū)域水平、垂直邊緣變化比較頻繁,利用該特征對圖9的二值化圖像進行水平投影會使車牌區(qū)域突出,從而順利找到車牌字符的水平位置。由圖10可以看出,車牌字符位置對應于投影圖中的波峰,而車牌邊框和字符之間的區(qū)域投影值幾乎為0,對應于圖10中的波谷。所以,考慮到車牌區(qū)域一般處于整幅圖像的下部,所以只需要從下到上搜索圖10中2個較大突變投影值的行號,去掉行號上下部分就去掉了車牌上下邊框。同理在垂直投影圖11中第一個較大的波峰即是車牌區(qū)域,出現(xiàn)7次這樣的波峰就找到了車牌的垂直位置,得到車牌的寬度。經(jīng)過此步驟處理后,可有效地去除車牌圖像的左右邊框,從而得到最終定位圖像,如圖12所示。
為了驗證本文算法的可靠性,采用Visual C++6.0作為編程環(huán)境,在 CPU 1.61 GHz,RAM 1.0 Gbyte 的環(huán)境下,對大小為480×360的車牌圖像進行測試。
對200幅不同傾斜角度、200幅不同路面背景和200幅不同光照條件下拍攝的車輛圖像(共600幅)進行測試,結果如表1所示。在測試中,無法識別的車牌是由于受到傾斜角度過大、車牌受到污染、光照過亮或過暗等因素的影響。
表1 IDCT修剪算法的比特率和編碼時間測試結果
利用本文提出的定位算法與單一的投影定位法、模板匹配定位法分別對同樣的車牌圖像樣本進行測試,結果如表2所示。從測試結果可以看出,本文提出的算法在定位準確率和定位速度上都能較好地符合實際應用所提出的要求,為后續(xù)的車牌字符識別打下了良好基礎。
表2 本文算法與其他方法的實驗效果對比
本文采用對車牌圖像進行二次定位方法,很好地滿足了車牌圖像定位的實時性和有效性的要求。該方法首先對車牌圖像進行預處理,其中包括灰度化、Hough變換、邊緣檢測;再根據(jù)車牌區(qū)域存在的特征進行一次定位;而后由車牌邊框信息來確定傾斜角度對車牌圖像進行傾斜校正;最后對校正后的車牌圖像采用投影法進行二次定位,從而獲得準確的車牌字符區(qū)域。采用該方法得到的車牌圖像不包含車牌邊框等無關信息,為后續(xù)的車牌字符識別帶來很大方便,具有較高的實用價值和廣泛的應用前景。為使該算法具有更強的自適應性,日后將對傾斜角度過大、光照條件不均勻等問題做深入研究。
[1]李強,汪洋,李偉博,等.基于藍色車牌背景的車牌精確定位實現(xiàn)方法[J].電視技術,2011,35(15):4-6.
[2]凌六一,段紅,黃友銳.基于小波去噪的車牌定位系統(tǒng)[J].鐵路計算機應用,2006,15(9):41-43.
[3]錢華,芮延年.基于人工智能的汽車牌照自動識別技術的研究[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2005,18(5):43-45.
[4]張慧.一種藍底白字車牌定位方法[J].信息與電腦,2011(9):105-106.