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