張 晶 ,呂少勝 ,于京生 ,楊 潔 ,楊彥彬
(1.石家莊學(xué)院 電氣信息工程系,河北 石家莊 050035;
2.河北省電力勘測設(shè)計研究院,河北 石家莊 050031)
車牌識別技術(shù)是智能交通系統(tǒng)(ITS)的重要組成部分,廣泛應(yīng)用于交通管理與控制、移動稽查、停車場管理、高速路口信息記錄等方面.車牌識別大致分為車牌定位、字符分割、字符識別3個部分,車牌定位是車牌識別中的重要步驟,定位的好壞將直接影響到車牌字符的識別率.
至今為止,眾多學(xué)者對車牌定位方法進行了廣泛的研究,并且找出了多種有效的車牌定位方法.這些方法有:基于邊緣檢測的車牌定位方法[1]、基于彩色分割的車牌定位方法[2]、基于小波變換的車牌定位方法[3,4]、基于數(shù)學(xué)形態(tài)學(xué)的車牌定位方法、基于BP神經(jīng)網(wǎng)絡(luò)的車牌定位方法[5,6]、基于灰度圖像紋理特征分析的車牌定位方法[7]等.但在實際應(yīng)用中,由于受到光照條件、路面情況、車輛圖像傾斜等因素影響,定位的效果都不理想,特別是車牌邊框等無用信息的存在,對后續(xù)的字符分割和識別帶來困難.筆者針對以上方法的不足,提出了1種二次定位的車牌圖像精確定位方法,并在兩次定位中插入傾斜校正步驟,進一步提高了定位的準確性,并且能有效去除車牌邊框,為后續(xù)的車牌字符識別打下良好的基礎(chǔ).
1.1.1 灰度化
由于從攝像頭獲取的車輛圖像為彩色圖像,直接對彩色圖像進行處理的運算量很大,不能滿足系統(tǒng)實時、快速的要求,所以首先依據(jù)公式(1)將彩色圖像灰度化 (如圖1所示).
1.1.2 邊緣檢測
采用Sobel算子對車輛灰度圖像進行邊緣檢測.由于Sobel算子是濾波算子的形式,利用快速卷積函數(shù),對噪聲有很好的抑制作用.其原理是在圖像3×3鄰域上,先后在水平和垂直方向上對鄰域灰度求差分,然后取2個差分的較大者,如公式(2)所示.圖2為邊緣檢測后的車輛圖像.
圖1 灰度化后的車輛圖像
圖2 邊緣檢測后的車輛圖像
1.1.3 直線檢測
直線的解析式為
公式(3)中,ρ為直線到原點的距離,θ限定了直線的斜率.
用2維向量(ρ,θ)描述圖像上的每1條直線區(qū)域,對于對角線長度為n的圖像,固定左下角為原點,可得到ρ的取值范圍為[0,n],令θ以1°為增量,可得到θ的取值范圍[0,360°].定義二維數(shù)組HoughBuf[n][360]作為存儲單元.其中,對于任意(ρ,θ)決定的直線區(qū)域,計數(shù)器為HoughBuf[ρ][θ].對于直線的Hough變換過程可簡單描述為:依次遍歷圖像的所有像素,對于每個像素判斷是否滿足特定的條件,若滿足則對經(jīng)過該像素的所有直線區(qū)域的計數(shù)器加1;否則繼續(xù)判斷下1個像素.最后判斷計數(shù)器是否大于所設(shè)定的閾值,若大于則認為該直線存在,反之則不存在.經(jīng)實驗證明,θ取值范圍在(-5,5)時效果最好,如圖3所示.這樣可將圖像中有用信息保存下來的同時,盡量過濾掉無用信息,同時也大大減少運算量,提高運算速度.1.1.4 水平搜索車牌區(qū)域
在車輛圖像的水平方向搜索車牌區(qū)域時,根據(jù)車牌區(qū)域的特殊性,在水平方向上車牌區(qū)域的任意1行上的像素值從0到255或從255到0的跳變次數(shù)應(yīng)該大于某個值.由于車牌通常由7個字符組成,其跳變次數(shù)最少為7×2=14次.在實際應(yīng)用中,采集的圖像會受到干擾及其他因素的影響,經(jīng)過實驗得出跳變閾值THR=25較為合適.假設(shè)圖像數(shù)據(jù)指針為ImgData,每1行跳變次數(shù)儲存在Count中,如果ImgData[n]!=ImgData[n+1]時,則認為存在1次跳變,這時Count=Count+1.當掃描完1行時,若Count>THR則保留該行信息,反之則將該行像素點的像素值置0.由于車牌區(qū)域滿足閾值條件的行在其垂直方向上具有連續(xù)性,而且車牌區(qū)域具有一定的寬度,根據(jù)此特征對圖4進行過濾,便可得到車牌所在的行,如圖5所示.
圖3 Hough變換后的車牌圖像
圖4 找出滿足閾值條件的行
圖5 確定車牌區(qū)域所在行
1.1.5 垂直搜索車牌區(qū)域
在找出車牌所在的垂直區(qū)域之前對圖像進行中值濾波,以去除圖像中的孤立雜點,然后將圖像信息垂直投影值保存到1個數(shù)組NUM[CX]中.其中,數(shù)組長度CX為圖像的寬.數(shù)組中每個元素的值即為垂直方向?qū)?yīng)列中的非零像素點個數(shù)的總和.
此時,如果NUM[J]<8(0<=J 1.1.6 確定車牌區(qū)域坐標 通過前面的步驟,若圖像中存在像素值為255的像素點,則其所對應(yīng)的區(qū)域即為車牌區(qū)域.判斷是否能找出車牌區(qū)域即判斷圖像中是否存在非零像素點,若存在非零像素點則找出其上下左右4個坐標點,并將該區(qū)域提取出來.由于在初定位后要利用車牌邊框進行傾斜校正,所以在搜索車牌區(qū)域時分別向上下擴展了20個像素,以便保留車牌邊框的圖像信息,并進行Hough變換,為下一步傾斜校正作準備. 若無法找出車牌區(qū)域,即無法找出非零像素點,則需要重新開始整個過程.首先對保存下來的灰度圖像進行灰度拉伸或灰度均衡處理,再進行后續(xù)步驟.如果經(jīng)過灰度拉升和灰度均衡仍然無法找到車牌區(qū)域,則說明車輛圖像受到的干擾過于嚴重,將無法準確定位車牌.圖7為一次定位的算法流程圖,圖8為一次定位后的車牌. 從圖8中可以看出車牌存在一定角度的傾斜,若不進行校正,必然會對字符分割和識別帶來很大影響.為了找出車牌圖像的傾斜角,處理方法如下. 1)假設(shè)圖像的寬度為Imgsize.cx,確定1個固定值 L(L=Imgsize.cx/3),從圖像中第A列開始從下往上進行列掃描,找到第1個不為0的點,將其行數(shù)i賦給m;再從第A+L列開始從下往上掃描,找到第1個不為0的點,將行數(shù)i賦給n,由公式(4)便可得到傾斜角g. g=arctan((m-n)/L). (4) 2)由于傾斜角一般在-5°到5°之間,在建立的AG[n]數(shù)組中的每個元素分別代表-5°到 5°角度的個數(shù). 3)在圖像中從第0列開始到第Imgsize.cx*2/3列為止,依次重復(fù)步驟1.每重復(fù)1次便可得到1個g,若得到的g在-5到+5范圍之內(nèi),則將對應(yīng)的AG[g+5]加1,若超出-5到+5這個范圍則認為屬于干擾點,則舍去. 4)最后,從AG[n]中找出最大的值,便得到車牌圖像的傾斜角. 采用上述方法的優(yōu)點是不需要檢測圖像中的直線,就能有效地消除某些孤立點對傾斜角檢測的干擾,且算法簡單,運算量小,極大地提高了運算速度. 圖6 確定車牌區(qū)域所在列 圖 7 車牌一次定位流程圖 目前,圖像旋轉(zhuǎn)的方法有最臨近插值法、雙線性插值法及立方卷積插值法等,考慮到實時性及實際處理效果,本文選擇雙線性插值法進行圖像旋轉(zhuǎn),并保存經(jīng)傾斜校正后的圖像,以便二次定位.傾斜校正后的圖像如圖9所示. 一次定位的目的是確定出車牌的大致區(qū)域,并利用車牌邊框進行傾斜校正,為精確定位車牌區(qū)域作準備.雖然二次定位的步驟與一次定位基本相同,但是其中所設(shè)置的參數(shù)與閾值并不相同,且實現(xiàn)的目的也不相同. 通過一次定位和傾斜校正后,得到的車牌圖像包含了車牌邊框及其他與車牌無關(guān)的信息,二次定位的另一目的則是去掉除車牌字符以外的信息. 二次定位處理步驟如下. 1)水平搜索車牌區(qū)域.由于此時受到的干擾因素要少很多,所以跳變閾值可以設(shè)置得更加精確.這時,設(shè)跳變閾值THR=20,便可有效地去除車牌的上下邊框. 2)垂直搜索車牌區(qū)域.仍然將車牌圖像的垂直投影值保存到1個數(shù)組NUM[CX]中,其中數(shù)組長度CX為車牌圖像的寬.若車牌圖像中列方向上存在非零像素點,則將對應(yīng)的數(shù)組元素置為1,反之則置0. 由于中國車牌第1個字符為漢字,該漢字的寬度比車牌邊框大得多.根據(jù)這一特征,在檢測到數(shù)組中左邊第1個非零區(qū)域的寬度小于4個像素,則認為是車牌的左側(cè)邊框,并將數(shù)組NUM[CX]中對應(yīng)的數(shù)組置0.而當車牌最后1個字符為“1”時,其寬度也會小于4個像素.所以,直接由寬度判斷是否為車牌右邊框可能會去除有用的車牌信息.采用如下方法判斷數(shù)組NUM[CX]中最后1個非零區(qū)域的字符是“1”還是車牌右邊框:根據(jù)中國的車牌共有7個字符(由1個漢字加上6個阿拉伯數(shù)字或字母組成)這一特征,所以在去除左側(cè)車牌邊框后統(tǒng)計數(shù)組NUM[CX]中非零區(qū)域的個數(shù),若有7個非零區(qū)域則不需要消除車牌右邊框;若存在8個非零區(qū)域則認為第8個非零區(qū)域為車牌右邊框,應(yīng)去除掉.經(jīng)過此步驟處理后,可有效地去除車牌圖像的左右邊框,得到理想的車牌區(qū)域,如圖10所示.二次定位的流程圖如圖11所示. 圖8 一次定位后的車牌圖像 圖9 傾斜校正后的車牌圖像 圖10 二次定位后的車牌圖像 圖11 車牌二次定位流程圖 為了驗證二次定位方法的可靠性,采用Visual C++6.0作為編程環(huán)境,在CPU 1.61GHZ,RAM 1.0GB的環(huán)境下,經(jīng)過對大小為480像素×360像素的200張不同傾斜角度、200張不同路面背景和200張不同光照條件下拍攝的車輛圖像(共600張)進行測試,得到結(jié)果如表1所示. 表1 不同條件拍攝的車輛圖像二次定位測試結(jié)果 在測試中,無法識別的車牌主要是受到傾斜角度過大、車牌受到污染及光照過亮或過暗等因素的影響.從測試結(jié)果可以看出,在定位準確率和定位速度上都能較好的符合實際應(yīng)用所提出的要求,為后續(xù)的車牌字符識別打下了良好基礎(chǔ). 采用車牌圖像二次定位方法,很好地解決了車牌圖像定位的準確性問題.該方法首先對圖像進行預(yù)處理,其中包括灰度化、Hough變換、邊緣檢測,再根據(jù)車牌特征進行一次定位.而后由車牌邊框來確定傾斜角對車牌圖像進行傾斜校正.最后對校正后的車牌圖像進行二次定位,從而獲得準確的車牌圖像區(qū)域.通過二次定位方法得到的車牌圖像不會包含車牌邊框等無關(guān)信息,為后續(xù)的車牌字符識別帶來很大方便,具有較高的實用價值及廣泛的應(yīng)用前景. [1]李強,汪洋,李偉博,等.基于藍色車牌背景的車牌精確定位實現(xiàn)方法[J].電視技術(shù),2011,35(15):4-6. [2]張慧.一種藍底白字車牌定位方法[J].信息與電腦,2011,(9):105-106. [3]李孟歆,叢明,吳成東.基于小波分析的混合車牌定位算法[J].沈陽建筑大學(xué)學(xué)報,2009,6(25):1217-1220. [4]凌六一,段紅,黃友銳.基于小波去噪的車牌定位系統(tǒng)[J].鐵路計算機應(yīng)用,2006,15(9):41-43. [5]王智文.基于改進BP神經(jīng)網(wǎng)絡(luò)的車牌字符識別[J].微電子學(xué)與計算機,2011,28(9):66-69. [6]CHENTianding.ASchemeof Improved Trainingin LicensePlateCharacterRecognition[C].InternationalConferenceon Communication TechnologyProceedings,2008,(11):704-706. [7]STEFANOR,RODOLFOZ.License-plate LocalizationbyUsingVectorQuantization[C].InternationalConferenceon Acoustics,Speech and SignalProcessing,1999.1.2 傾斜校正
1.3 二次定位
2 實驗結(jié)果及分析
3 結(jié)束語