張博 楊維 耿放 馬曉元 韓策策
河北軌道運(yùn)輸職業(yè)技術(shù)學(xué)院,河北石家莊 052165
近些年,隨著我國鐵路網(wǎng)的逐步延伸,公路路網(wǎng)的迅速發(fā)展,鐵路、公路客運(yùn)車輛、貨運(yùn)量、私家車保有量快速增長,如何高效地管理、組織車輛是擺在鐵路運(yùn)營部門以及公路交通管理部門面前亟待解決的問題。采用計算機(jī)技術(shù),實(shí)現(xiàn)鐵路車輛車次號自動記錄、汽車車牌自動識別,對于交通智能化,提高交通系統(tǒng)的組織及管理水平,節(jié)省人力物力具有非常重要的意義。
實(shí)現(xiàn)字符識別可按照以下基本步驟:圖像采集和初步處理,確定字符區(qū)域詳細(xì)位置,字符切割,字符甄別。
采集到車輛靜態(tài)圖像后,將原始圖像轉(zhuǎn)換為灰度圖像;圖形初步處理就是采用圖像處理領(lǐng)域一些常規(guī)預(yù)處理方法,比如灰階處理、圖像二值化等[1];通過邊緣檢測算法,找到圖像中亮度變化陡峭的點(diǎn)組成集合就可以構(gòu)成字符的輪廓,由此可以確定圖像中字符的具體位置,將車牌進(jìn)行邊緣提取后重復(fù)進(jìn)行開閉運(yùn)算,確定出車牌區(qū)域;采用投影分析法,將車牌上有效字符切分成七個獨(dú)立單元,為保證切分的合理和準(zhǔn)確,還要對切分結(jié)果進(jìn)行校驗(yàn);采用模板匹配法對切割后字符進(jìn)行對照識別。為了便于展示各階段字符處理效果,我們以車牌字符識別為例進(jìn)行分析。
車輛牌照字符識別系統(tǒng)利用采集到的車輛動、靜態(tài)圖像進(jìn)行牌照號碼的識別,完成系統(tǒng)功能需要硬件和軟件的支撐。硬件設(shè)備包括圖像采集設(shè)備、照明裝置、后臺處理單元等;軟件有車牌精確定位算法、字符分割算法等。車牌識別系統(tǒng)包括車輛感知、圖像采集、牌照識別等部分。車輛感知部分檢測到車輛接近并觸發(fā)圖像采集部分,采集當(dāng)前車輛的圖像;牌照識別單元定位出圖像中牌照的精確位置,再將牌照中的字符切割成獨(dú)立單元分別識別,最后將識別到的字符牌照輸出[2]。具體流程圖如圖1所示。
灰度圖像沒有RGB顏色信息,灰度是指黑白顏色的程度?;叶葓D將亮度值劃分為256個級別,0表示最暗(全黑),255表示最亮(全白),介于0至255之間的部分是從黑到白的過渡部分。因?yàn)椴噬珗D像包含的信息量大且運(yùn)算復(fù)雜,所以進(jìn)行圖像處理前會將彩色圖像按照加權(quán)的方法先轉(zhuǎn)換為黑白(灰度)圖像[3]。具體涉及領(lǐng)域不同,加權(quán)的權(quán)重也不盡相同,一般來說R(紅)、G(綠)、B(藍(lán))的比例為3:6:1,可以根據(jù)公式(1)將RGB顏色轉(zhuǎn)換成灰度圖像。圖2是車牌原圖和灰度圖的對比。
灰度值=0.299R+0.587G+0.114B (1)
灰度圖像直方圖描述的是灰度級同繪制頻率之間關(guān)系的函數(shù),將圖像中某像素出現(xiàn)頻率同圖像總像素相除,即可以得到該像素點(diǎn)出現(xiàn)的頻率。圖像直方圖中橫坐標(biāo)是灰度級別,分為0至255共256個層次,縱坐標(biāo)為圖像中該灰度級出現(xiàn)的次數(shù)(頻率),如圖3所示。
圖像中,局部特征以及周圍像素顯著變化就會產(chǎn)生邊緣。邊緣檢測的目的是找出數(shù)字圖像中亮度變化最顯著點(diǎn)的集合。
Roberts(又稱羅伯茨)算子是利用局部差分算子尋找邊緣的數(shù)學(xué)算法[4],利用對角方向兩像素的差值近似等于梯度幅值來檢測邊緣。這種算法檢測垂直邊緣的效果較好,確定邊緣的精度高,缺點(diǎn)是無法抑制噪聲的影響,因此這種邊緣檢測方法適用于噪聲少、邊緣明顯的圖像。
Roberts算子的原理見式(2):
式中,f(x, y)、f(x+1,y)、f(x,y+1)和f(x+1,y+1)分別為4個領(lǐng)域的坐標(biāo),輸入圖像的坐標(biāo)像素是整數(shù),其中的平方根運(yùn)算和人類視覺系統(tǒng)作用過程類似;g(x, y)是輸出圖像。使用Roberts算子對車牌進(jìn)行邊緣檢測后車牌輪廓分明,如圖6所示。
通過初步處理,灰度圖像的邊緣邊界清晰,車牌區(qū)域邊界被勾勒且明顯地顯露出來。利用數(shù)學(xué)形態(tài)學(xué)方法,即膨脹(Dilation)、腐蝕(Erosion)兩個基本運(yùn)算,不僅可以確定車牌在車輛圖象中的準(zhǔn)確位置,還可以在簡化圖像的同時保持形態(tài)特征,去除圖像中非相干的小對象[5]。
利用羅伯茨算法進(jìn)行圖像邊緣檢測后,車牌區(qū)域鮮明,數(shù)字和漢字顯示清晰明了。但是,因?yàn)榱_伯茨算法在計算過程中也將車牌附近車身區(qū)域進(jìn)行圖像處理,這樣在車牌四周會出現(xiàn)大量冗余信息,我們稱之為噪聲點(diǎn)。為提高車牌字符識別成功率,需要對圖像進(jìn)行一種被稱作“腐蝕”的處理,通過腐蝕處理后圖像中白色部分會縮減細(xì)化,白色部分區(qū)域減小。腐蝕濾波使得圖像中物體的邊界輪廓模糊,參數(shù)設(shè)置合理的話能把圖像中小于結(jié)構(gòu)元素的物體去掉,也可以去除兩物體間細(xì)小的粘連。圖7是腐蝕處理后的效果圖。
圖像進(jìn)行腐蝕處理之后再膨脹處理,可以平滑圖像邊緣。圖像膨脹處理類似于像素插值處理,具體操作原理就是在圖像邊緣添加像素值,像素添加后圖像整體像素變大。進(jìn)行膨脹處理后圖像會變得模糊,有些細(xì)節(jié)信息會遺失,車牌字符所在的區(qū)域顯著地被標(biāo)記出來。
開放內(nèi)在空間是相當(dāng)了不起的內(nèi)在革命。陷入極端的負(fù)面情緒的心靈,正在經(jīng)歷被支離分裂扭曲,力量難以匯聚。不能接受師生關(guān)系緊張是自己的原因,難以啟齒正經(jīng)歷的不幸,意味著感受到外部的恐懼不安全,還沒有機(jī)緣在新調(diào)入的環(huán)境把真實(shí)自我和力量展現(xiàn)出來,還沒有感到自己的能力是被信任的,恐懼只被同情不受尊重。
膨脹運(yùn)算是一種數(shù)學(xué)集合運(yùn)算,運(yùn)算符為“⊕”,如果集合A被集合B膨脹,可以記作:
式中,定義集合B是卷積模板,模板B與圖像A進(jìn)行卷積計算,模板元素與二值圖像元素逐一進(jìn)行“與”運(yùn)算,最終目的是找到B覆蓋區(qū)域的像素點(diǎn)最大值來替換參考點(diǎn)的像素值,使得圖像膨脹。
經(jīng)過上述腐蝕和膨脹處理后,已經(jīng)可以大致確定汽車牌照在圖像中所處區(qū)域,但是圖像中仍可見少量冗余信息,如圖8中所標(biāo)記的部分,可以再次使用腐蝕濾波的方法過濾掉噪聲信息,我們稱之為去除圖像中除車牌外的小對象,效果如圖9所示。
車牌定位就是從一幅圖像中將車牌所在區(qū)域準(zhǔn)確地提取出來。車牌定位有多種方法,比較典型的方法是利用灰度的形態(tài)學(xué)、車牌形狀、車牌色調(diào)、字符特征等進(jìn)行特征提取后定位。綜合利用上述幾種方法,充分利用車牌區(qū)域圖像包含的豐富紋理信息提取圖像垂直邊緣,利用腐蝕、膨脹等處理得到覆蓋車牌區(qū)域的連通域,再結(jié)合我國汽車牌照國家標(biāo)準(zhǔn)規(guī)定的牌照外部幾何特征,在灰度圖像中定位車牌所在區(qū)域。從所標(biāo)記的區(qū)域中確定最小寬、高組合,并結(jié)合實(shí)際車牌寬高比,將這組圖像提取并顯示出來。圖10為定位后的彩色車牌圖像。
需要將傾斜的牌照進(jìn)行水平校正,為車牌字符分割創(chuàng)造便利條件。在道路環(huán)境進(jìn)行車牌識別,車牌圖像的采集是由架設(shè)在道路正上方托架上或道路兩側(cè)立柱上的監(jiān)控設(shè)備完成的,由于采集設(shè)備拍攝角度,車輛行駛狀態(tài)和牌照自身安裝等問題的影響,牌照會出現(xiàn)不同程度的傾斜,影響字符分割的準(zhǔn)確度,很難提高字符識別正確率[6]。采用Rando變換算法對圖片傾斜的角度計算并修正,從而得到水平方向一致的圖片。圖11為傾斜校正后的效果圖。
假設(shè)有一個二維函數(shù)記作f(x, y),Radon變換實(shí)質(zhì)上是將原來的函數(shù)做了一個空間轉(zhuǎn)換,也就是說圖像矩陣可以在任意指定角度方向上做投影變換,Radon變換可以描述為:
其中,x、y——原函數(shù)的橫坐標(biāo)和縱坐標(biāo);
θ——旋轉(zhuǎn)的角度。
上式中x'、y'和x、y的關(guān)系可以寫成:
圖像二值化就是將灰度圖像上所有像素點(diǎn)進(jìn)行二分組處理,將處于0~255灰度級的灰度值設(shè)置為最亮或最暗,使得圖像呈現(xiàn)出明顯的黑白色。圖12為車牌灰度圖,圖13為車牌二值圖。進(jìn)行二值化處理后的圖像仍然可以反映圖像整體和局部特征[7]。
圖像濾波目的是在不影響圖像細(xì)節(jié)特征的前提下對圖像中噪聲進(jìn)行抑制。車牌圖像進(jìn)行精確定位并二值化處理后仍會存在許多噪聲點(diǎn),這些噪聲點(diǎn)會嚴(yán)重影響字符分割的準(zhǔn)確度,因此需要去除[8]。
均值濾波是一種線性濾波算法,是通過包含周圍鄰近像素的模版,用模版中全體像素均值替代原來像素值。當(dāng)前像素點(diǎn)坐標(biāo)為(x, y),選擇該像素點(diǎn)附近若干像素組成模板,例如可以生成3×3或5×5的矩陣模板,在這個矩陣模板基礎(chǔ)上進(jìn)行圖像處理。該模板包括了其周圍的臨近像素計算模板中所包含的像素平均值,再用平均值替代像素點(diǎn)(x, y),得到另外一個灰度g(x, y),即m是該模板中總像素個數(shù)。圖14為均值濾波后的車牌圖像。
經(jīng)過均值濾波處理后,車牌區(qū)域二值圖像已經(jīng)非常清晰,可以再次使用膨脹、腐蝕處理以進(jìn)一步去除雜質(zhì)和干擾,處理后的效果如圖15所示。
字符分割是將牌照切割為一個個獨(dú)立的單個字符,供識別使用,本文采用投影分析法進(jìn)行字符分割,投影反應(yīng)的是在垂直或水平方向上字符區(qū)域像素個數(shù)。由于對灰度圖像進(jìn)行二值化處理后字符的形態(tài)結(jié)構(gòu)會發(fā)生變化,此時要結(jié)合牌照實(shí)際寬度、各字符的輪廓合理地分割字符[9]。我國汽車牌照有國家標(biāo)準(zhǔn),7個字符寬度是固定的,第2個字符與第3個字符之間有一個圓點(diǎn),所以這兩個字符間距要稍大。車牌圖像中字符間布局是左右排列,非常適合用垂直投影法,如果字符布局是呈現(xiàn)上下羅列型,可以用水平投影法,原理是相同的。更復(fù)雜的情況如字符層次不齊,就結(jié)合垂直投影和水平投影兩種方法切分字符。
將車牌區(qū)域進(jìn)行二值化后,二值圖像中的白色是字符有效部分,對牌照圖像做垂直和水平投影分析時,步驟類似,只是在劃分字符與非字符區(qū)閾值參數(shù)不同。參數(shù)不同是由車牌字符本身特點(diǎn)所決定的,車牌水平投影時取上下邊框及字符間隙共4個谷底,垂直投影時共有8個谷底。在字符切割時會出現(xiàn)切割錯誤的情境,比如“瓊”等左右結(jié)構(gòu)漢字,會出現(xiàn)將左右偏旁獨(dú)立切割開的情況,“蘇”等上下結(jié)構(gòu)漢字也可能會獨(dú)立分割開。這種情況可以將切割完后的字符圖像同實(shí)際車牌字符寬度或高度進(jìn)行對比,結(jié)合國家標(biāo)準(zhǔn)對車牌字符制式規(guī)定的先驗(yàn)知識,對錯誤切割的字符進(jìn)行合并。圖16為車牌字符切分和歸一化。
車牌字符識別利用的是光學(xué)字符識別(OCR)原理,將車牌圖像中字符信息轉(zhuǎn)換成計算機(jī)可以處理、人眼可以識別的信息,便于計算機(jī)處理或人的使用。字符識別常用的方法有模版匹配、神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等,本文采用最基礎(chǔ)的模版匹配法[10]。將分割后的字符圖像逐一同模板字符圖像的特征進(jìn)行比對,找出相似度最高的模板庫圖像并將該圖像對應(yīng)的字符輸出。如果車牌定位精確、字符分割有效、模板庫圖片選取合理,即可取得很高的識別成功率。字符識別算法流程如圖17所示。
切割后的字符大小還是會有細(xì)微的差別,為提高字符識別的快速性和準(zhǔn)確度,對字符進(jìn)行歸一化處理,也就是使字符圖像的長度、寬度和模板庫的圖片相同。常用的插值歸一化方法就是按照比例在原圖片中相應(yīng)位置插入像素。圖18為車牌識別結(jié)果。
本文主要探索字符識別方法在鐵路貨運(yùn)、公路收費(fèi)、車輛管理等方面的應(yīng)用,為不失一般性,使用灰度化、二值化、傾斜校正、腐蝕、膨脹等多種圖像處理方法對車輛圖像進(jìn)行分析、處理,在Matlab 2010平臺實(shí)現(xiàn)圖像預(yù)處理、圖像切割和字符識別等相關(guān)算法。
本文使用的字符識別算法尚存在一些不足,對運(yùn)動圖像不適用,需要繼續(xù)改進(jìn)。車牌會隨著使用年限增長,出現(xiàn)油漆剝落、銹蝕、龜裂、污損等質(zhì)量問題,另外拍攝環(huán)境比較復(fù)雜,會受到雨、雪、霧、環(huán)境亮度等影響,這些影響因素會不同程度降低車牌識別的識別率。藍(lán)底車牌是我國使用量最大的車牌,當(dāng)車輛顏色是和車牌相似的藍(lán)色,或者車頭車尾區(qū)域噴涂非車牌字符時,也會對車牌定位和字符識別產(chǎn)生干擾。字符識別過程中,因?yàn)樯倭繚h字和數(shù)字非常相似,比如0和Q、5和S、4和A 等也會出現(xiàn)識別錯誤。為提高識別正確率,下一步可采用支持向量分類等方法進(jìn)行字符識別。