張莉莉++武艷
摘要:車牌識別系統(tǒng)目前已經(jīng)成為現(xiàn)代交通管理系統(tǒng)的最關(guān)鍵的部分。本次設(shè)計仿真先把拍攝到的圖像進(jìn)行灰度化、邊緣檢測、平滑等一系列預(yù)處理,然后把處理后的圖片進(jìn)行車牌切割,經(jīng)過處理后再把字符單個分割下來,最后再與創(chuàng)建制作好的字符模板做比對,并輸出車牌識別的結(jié)果。目前該系統(tǒng)已經(jīng)應(yīng)用到了車輛管理的各個領(lǐng)域,為城市交通和人們的出行帶來了很大的方便。
關(guān)鍵詞:MATLAB;車牌識別;圖像預(yù)處理;車牌定位;字符分割
中圖分類號:TP391.41 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2017)10-0127-02
車牌識別系統(tǒng)是以計算機(jī)為基礎(chǔ)操作平臺,應(yīng)用圖像處理和圖像識別的技術(shù)而設(shè)計的針對汽車牌照的智能識別系統(tǒng),它的工作任務(wù)有一個明顯的特征,那就是汽車牌照所擁有的唯一性,根據(jù)這一特征來分析和處理輸入系統(tǒng)的包括汽車牌照的圖片,并對其進(jìn)行預(yù)處理、定位計算、分割,最終再一一識別車牌上的每一個字符,然后得出識別的結(jié)果?,F(xiàn)在,車牌識別系統(tǒng)的主要運用領(lǐng)域有停車場管理系統(tǒng)、公路交通管理系統(tǒng)、公路布控、十字路口的“電子眼”、園區(qū)車輛管理系統(tǒng)等。
1 車牌識別系統(tǒng)的總體設(shè)計
系統(tǒng)基本分為硬件和軟件兩個模塊,硬件模塊就是啟動攝像機(jī)進(jìn)行拍照并傳送到該系統(tǒng),軟件模塊就是圖像預(yù)處理、車牌定位切割、字符分割、字符匹配識別這幾個環(huán)節(jié)。
2 車牌識別系統(tǒng)的設(shè)計實現(xiàn)
2.1 圖像預(yù)處理
圖像預(yù)處理首先是將拍攝到的車牌圖片導(dǎo)入到系統(tǒng)中,具體的處理步驟包括圖像灰度圖的轉(zhuǎn)化、邊緣檢測、腐蝕、平滑處理以及移除最小對象等。這些工作都是為了去除干擾,使灰度圖的車牌區(qū)域顯得更明顯,處理之后再對車牌進(jìn)行定位計算。本次設(shè)計仿真主要采用.jpg的圖像格式,利用MATLAB對拍攝到的名為car1的圖片進(jìn)行讀取,下面是在本次仿真中讀取原圖像并顯示的程序語句。
I=imread(‘car1.jpg);figure(1),imshow(I);title(‘原圖)。
2.1.1 圖像灰度圖的轉(zhuǎn)化
由于我國車輛的種類較多,車牌的底色和字符的顏色會因為車輛種類的不同而有多種不同的組合,但是其色彩對比度是很大的,這就有利于將圖像轉(zhuǎn)化為灰度圖像,然后再分割提取出車牌區(qū)域。本次設(shè)計仿真僅僅演示最常見的藍(lán)底白字,它的顏色的RGB為(0,0,255)、(255,255,255),從他們的RGB值能看出來B通道上數(shù)值相同,但在R、G兩個通道上數(shù)值相差的就比較大,這樣就方便進(jìn)行灰度化處理。對于將原圖灰度化,下面是圖像灰度值H的計算公式。
(1)
(2)
公式(1)用的是權(quán)值加重法,公式(2)用的是均值法,在本次設(shè)計仿真中將彩色圖像轉(zhuǎn)化為灰度圖像用的函數(shù)rgb2gray( )利用的就是權(quán)值法,它的優(yōu)點就是可以突出某個通道,得到灰度圖像后就可以更方便地進(jìn)行后邊的操作。為了更好地觀察灰度圖像的灰度分布信息,可以用imhist函數(shù)創(chuàng)建一個描述圖像灰度分布的直方圖,并且可以顯示在一張圖片上。下面是在本次仿真設(shè)計中,灰度轉(zhuǎn)化顯示和灰度圖直方圖的語句。I1=rgb2gray(I);figure(2),subplot(1,2,1),imshow(I1);title(‘灰度圖);figure(2),subplot(1,2,2),imhist(I1);title(‘灰度圖直方圖)。
2.1.2 圖像的邊緣檢測
邊緣檢測對于圖像的分析處理是一個很重要的操作,由于輸入系統(tǒng)的由監(jiān)控拍到的車輛的圖片可能會因為車速、噪聲、車輛本身導(dǎo)致拍攝到的圖片模糊或者受到干擾。因此,必須先進(jìn)行邊緣檢測得到清晰的車牌輪廓,才能進(jìn)一步處理進(jìn)而進(jìn)行車牌的定位分割。本次設(shè)計仿真使用Roberts算子算法進(jìn)行邊緣檢測處理,它是利用局部差分算法來找邊緣的一種比較簡單的算法[1],本次設(shè)計仿真用的是函數(shù)edge()來完成邊緣檢測,具體的程序語句如下。I2=edge(I1,roberts,0.12,both);figure(3),imshow(I2);title(‘robert算子邊緣檢測)。
2.1.3 灰度圖的腐蝕
圖像的腐蝕就是將拍攝到的圖片做形態(tài)學(xué)解析處理,目的是去掉多余的輪廓線條,減少噪聲的影響。圖像腐蝕可以消除邊緣檢測后圖像中小的無意義的點和線,減少這一部分的干擾。本次設(shè)計仿真使用的是imerode()函數(shù),具體程序語句如下。se=[1;1;1];I3=imerode(I2,se);figure(4),imshow(I3);title(‘腐蝕后圖像)。
2.1.4 平滑處理
車牌圖像進(jìn)行完邊緣檢測和腐蝕處理操作后,已經(jīng)能夠顯示出車牌區(qū)域的輪廓了,因為車牌圖像還會有噪聲和其它因素的影響,因此車牌區(qū)域還不能夠被計算提取得到,那么就需要在車牌區(qū)域計算切割之前對圖像做平滑處理,去除一些孤立而無意義的噪點,本次設(shè)計仿真運用的是imclose()函數(shù)來實現(xiàn)圖像的平滑處理,讓圖像實現(xiàn)閉運算,因為閉運算能平滑圖像的輪廓,它一般是合并細(xì)小的缺口,去掉小洞,將輪廓上的縫隙填補(bǔ)上[4]。本次設(shè)計仿真的具體程序語句如下,其中se是構(gòu)造的結(jié)構(gòu)元素,即40*40的長方形。se=strel(‘rectangle,[40,40]);I4=imclose(I3,se);figure(5),imshow(I4);title(‘平滑圖像的輪廓)。
2.1.5 移除小對象
圖像平滑處理后也許會有許多閉合區(qū)域,就像一些噪點和車標(biāo),這些不屬于車牌部分的要盡量刪除掉,本次設(shè)計仿真使用的是bwareaopen()函數(shù),就是要從圖像中刪除小于設(shè)定的面積值的部分。本次仿真的具體程序如下。I5=bwareaopen(I4,2000); figure(6),imshow(I5);title(‘從對象中移除小對象)。endprint
2.2 車牌定位和分割
由于系統(tǒng)攝像頭拍攝到的圖像是整個車輛的圖像,包含了很多不用的背景,而對于車牌識別系統(tǒng)來說所需要的僅僅是車牌區(qū)域,所以就要把圖像中的車牌區(qū)域截取切割下來。在經(jīng)過預(yù)處理的圖像中,車牌區(qū)域的部分已經(jīng)很明顯了,就是圖像中白色的橫向近似長方形區(qū)域。因此利用邊緣檢測經(jīng)過計算x方向和y方向的車牌邊界的長度,可以很容易得到圖像中的車牌區(qū)域。本次設(shè)計仿真是依據(jù)車牌底部顏色的不同,利用統(tǒng)計彩色像素點的做法切割出長方形的車牌區(qū)域,首先要確定車牌底色(在這里是藍(lán)色)對應(yīng)的灰度值的范圍,之后橫向統(tǒng)計藍(lán)色范圍內(nèi)的像素點的數(shù)量,根據(jù)統(tǒng)計的像素點的數(shù)量設(shè)置一個合適的閾值,最后就能找出車牌在橫向上的合理區(qū)域,并進(jìn)行切割[2]。用同樣的方法在切割出的橫向的區(qū)域圖像的基礎(chǔ)上,統(tǒng)計豎向上藍(lán)色像素點的數(shù)量,設(shè)置一個閾值,然后對列方向的合理區(qū)域進(jìn)行切割,最終就能得到整個車牌的區(qū)域。
2.3 字符分割和處理
車牌字符分割也是較為關(guān)鍵的環(huán)節(jié),因為對于車牌字符的分割必須先把車牌的定位做好,才能進(jìn)行后面的工作,如果定位不準(zhǔn)確字符分割就無法完成,當(dāng)然要是字符分割的不準(zhǔn)確,也會影響后面對字符的識別。
2.3.1 車牌的進(jìn)一步處理
在進(jìn)行字符分割之前要對分割出來的彩色車牌圖像做進(jìn)一步處理,比如灰度轉(zhuǎn)化、二值化、均值濾波和腐蝕或膨脹等。因為彩色圖像處理起來比較麻煩,所以要進(jìn)行灰度處理,二值化就是將圖像的灰度值設(shè)置為兩個數(shù)值,在這里就是0和255(也就是黑和白),目的是讓圖像呈現(xiàn)出明顯的黑白效果[3]。腐蝕是為了消除邊界點,而膨脹則是將邊界點進(jìn)行合并,均值濾波的目的是刪掉分割出來的車牌圖像的噪點。
2.3.2 字符的分割和歸一化
這里是對車牌字符進(jìn)行分割,它的特點就是字符間隔較大,字符與字符不會連接到一起,因而這里使用的方法是尋找有連續(xù)文字的塊,按照字符的寬度確定出來合適的閾值,如果寬度比這一閾值大,就說明這一塊有多個字符組合,就需要對這一部分進(jìn)行切割,然后保存剩余部分并且覆蓋原來的圖像繼續(xù)進(jìn)行切割,直到切出所有字符[4]。字符分割通常使用的是垂直投影法。在對圖像進(jìn)行垂直投影時,投影圖上的曲線波形會有明顯的高低變化,由波形的的變化為依據(jù)從左到右對投影圖上的波形進(jìn)行掃描,根據(jù)波峰和波谷來判斷字符的位置[5]。一般分割出來的字符還不能直接使用,還需要進(jìn)行歸一化處理,也就是將切得的字符圖像大小統(tǒng)一為字符模板的大小,這樣才能與字符庫的字符模板比對識別。
2.4 字符識別
目前關(guān)于字符識別的方法主要有基于模板匹配的算法和基于人工神經(jīng)網(wǎng)絡(luò)的算法[6]。本次仿真設(shè)計使用的是模板匹配的方法,也就是將切割并進(jìn)行歸一化處理后的字符塊圖片與字符模板做比對。歸一化處理后的字符圖片可以直接與字符庫中的模板進(jìn)行匹配,圖片最相近的就默認(rèn)為匹配的結(jié)果。模板匹配執(zhí)行起來非常簡單,并且還能夠并行處理,但是也會有一定的缺點,它只能識別一樣大小、相同字體的字符。但是對于比較規(guī)整的字符,如果字符上有缺損或者污跡,依然可以識別,它在這種情況下的適應(yīng)能力和識別度還是很高的。
3 仿真結(jié)果分析
利用MATLAB進(jìn)行仿真,盡管車牌有污損,但是仍能夠正確識別車牌號。如圖1所示,車牌上方為識別結(jié)果。
4 結(jié)語
在仿真的過程中不同的車牌由于情況不同可能還需要對某些步驟進(jìn)行一定的修改才能識別,應(yīng)該還需要進(jìn)一步的改進(jìn)。由于我國車牌種類多樣,要完成所有車牌照的識別,就要對每一步做更完善的改進(jìn)。
參考文獻(xiàn)
[1]吳青,李曙俏,代琳,等.一種車牌識別系統(tǒng)的設(shè)計[J].徐州工程學(xué)院學(xué)報(自然科學(xué)版),2011,26(2):80-84.
[2]李姍姍,劉純.基于FPGA車牌識別系統(tǒng)的設(shè)計與實現(xiàn)[J].軟件,2012,33(3):72-74.
[3]王彤.車牌識別系統(tǒng)設(shè)計與實現(xiàn)[D].蘇州大學(xué),2009.
[4]洪必海.車牌識別算法的研究與實現(xiàn)[D].廈門大學(xué),2008.
[5]譚海艷.數(shù)字圖像壓縮綜述[J].科技經(jīng)濟(jì)市場,2011,(8):15-16.
[6]薛倩.基于字符塊提取的車牌字符分割算法[J].河南科學(xué),2014,32(5):781-784.endprint