劉雄飛,喻格英
(中南大學(xué) 物理與電子學(xué)院,湖南 長(zhǎng)沙410083)
車牌識(shí)別系統(tǒng)中,車牌定位和字符分割的精確程度會(huì)直接影響到最終的檢測(cè)結(jié)果。目前對(duì)車牌定位和字符分割的研究都是獨(dú)立開來的。車牌定位目前常用的方法主要包括基于投影分割[1]、紋理檢測(cè)、顏色特征檢測(cè)[2]混合特征檢測(cè)[3]以及基于神經(jīng)網(wǎng)絡(luò)[4]、小波分析[5]等幾種算法。而字符分割有基于先驗(yàn)知識(shí)[6]、模板匹配[7]、連通域分析[8]以及機(jī)器視覺[9]等方法。可以發(fā)現(xiàn),車牌定位與字符分割的算法關(guān)聯(lián)性較小,這會(huì)使得整個(gè)車牌識(shí)別流程的時(shí)間變長(zhǎng),耗費(fèi)更多的運(yùn)算資源。本文提出一種基于字符包圍盒特征參數(shù)的車牌字符定位分割算法,將車牌定位和字符分割的過程合二為一。該方法采用二維高斯-拉普拉斯算子對(duì)車牌圖像進(jìn)行平滑處理和邊緣檢測(cè),對(duì)生成的二值圖像進(jìn)行連通區(qū)域分析(Connected Component Analysis,CCA)來標(biāo)定相連區(qū)域,之后使用二維軸對(duì)齊包圍盒(Aixs Aligned Bounding Box,AABB)來表征每個(gè)連通域,根據(jù)車牌字符的實(shí)際分布規(guī)律來篩選出車牌字符對(duì)應(yīng)的包圍盒,并使用包圍盒中心點(diǎn)矯正車牌圖像并分割車牌字符。
中國(guó)常見的機(jī)動(dòng)車車牌尺寸規(guī)格如圖1 所示。由中國(guó)國(guó)家機(jī)動(dòng)車車牌行業(yè)標(biāo)準(zhǔn)GA36—2007[10]可知,這種類型的車牌存在以下特征:
1)車牌的幾何特征為矩形,長(zhǎng)度與高度有固定的比值。
2)車牌內(nèi)容包含7 個(gè)字符,這些字符在矩形框中基本水平均勻排列,擁有比較豐富的邊緣信息。同時(shí),這些字符具有相同的高度寬度比值且相互之間有一定的間隔。
3)車牌的底色和字符顏色存在較強(qiáng)的對(duì)比度。
本文根據(jù)我國(guó)主流車牌的以上規(guī)格特性,設(shè)計(jì)字符特性參數(shù),在此基礎(chǔ)上設(shè)計(jì)車牌識(shí)別算法。
圖1 我國(guó)主流車牌的規(guī)格
由CCD 攝像機(jī)所采集到的車輛圖像不可避免的會(huì)受到噪聲的影響,因噪聲而產(chǎn)生的誤差會(huì)累計(jì)傳遞從而會(huì)嚴(yán)重影響到后續(xù)的邊緣檢測(cè)、特征提取和識(shí)別過程。CCD 攝像機(jī)的噪聲通常被建模成獨(dú)立于信號(hào)均勻分布的零均值高斯白噪聲[11]。高斯濾波器對(duì)這類噪聲具有良好的濾除效果。與此同時(shí),本文的車牌字符提取方法要求檢測(cè)到的邊緣能良好的反應(yīng)實(shí)際的字符輪廓,既不能增加太多的無關(guān)細(xì)節(jié),又需要在各個(gè)方向上保持邊緣的完整性。邊緣檢測(cè)常用的Canny 算子會(huì)給圖像帶來額外的無關(guān)細(xì)節(jié)[12],Sobel 算子不具備各向同性的性質(zhì),所得邊緣有一定程度的斷開,而拉普拉斯算子則能滿足這些要求,但其對(duì)離散噪聲點(diǎn)比較敏感[13],需要現(xiàn)對(duì)圖像進(jìn)行平滑濾波處理?;谝陨戏治?,本文采用二維高斯-拉普拉斯算子對(duì)車輛圖像進(jìn)行邊緣檢測(cè)。
對(duì)圖像進(jìn)行高斯濾波一般采用二維離散高斯函數(shù)
式中:G(x,y)為經(jīng)過高斯濾波之后圖像;σ 表示高斯濾波器的寬度;k 為規(guī)范化系數(shù)。
采用拉普拉斯算子對(duì)高斯濾波后的圖像進(jìn)行邊緣檢測(cè)可表示為
對(duì)于離散的數(shù)字圖像來說,通??梢允褂靡粋€(gè)近似于高斯拉普拉斯算子的離散高斯拉普拉斯模板對(duì)其進(jìn)行邊緣檢測(cè)。本文使用式(3)所示高斯拉普拉斯模板對(duì)源圖像進(jìn)行卷積操作來識(shí)別圖像邊緣。
對(duì)比三種檢測(cè)算子對(duì)車牌區(qū)域的檢測(cè)結(jié)果,使用高斯拉普拉斯算子的結(jié)果如圖2b 所示,在高斯濾波之后對(duì)同一圖像進(jìn)行Sobel 和Canny 邊緣檢測(cè)的結(jié)果如圖2c 和2d 所示??梢钥吹?,使用高斯拉普拉斯算子檢測(cè)不會(huì)產(chǎn)生額外的細(xì)節(jié),同時(shí)也能最大程度保證邊緣的完整。
圖2 邊緣檢測(cè)算子檢測(cè)結(jié)果對(duì)比
考慮到一個(gè)字符的空間范圍主要依靠邊緣像素來標(biāo)定,為了更快速準(zhǔn)確地計(jì)算每一個(gè)字符的包圍盒,本文采用8-鄰域種子填充法(seed filling)搜索具有相同像素值的相鄰區(qū)域。搜索算法如下:
1)考慮到車牌區(qū)域通常位于一幅車輛圖片的下半部分,并且車牌區(qū)域的左右下三個(gè)方向都擁有相對(duì)更少的邊緣信息,本文從二值圖像的左下方開始,以先往右后往上的方向,向右上方掃描整幅圖像,直到找到第一個(gè)值為1 的前景像素P1。
2)把P1 編號(hào)為1,然后從左下方開始掃描8 個(gè)相鄰像素點(diǎn),將其中所有像素值為1 的像素編號(hào)為1 并入棧。
3)彈出棧頂像素,掃描其8 個(gè)相鄰像素點(diǎn),將像素值為1且未編號(hào)的像素壓入棧中,若8 鄰域像素值均為0,則彈出棧中下一個(gè)像素并重復(fù)步驟(3),直到棧為空。此時(shí)所有標(biāo)記為1 的像素點(diǎn)組成了1 號(hào)連通域。
4)重復(fù)步驟1)~3),搜索出2 ~n 號(hào)連通域。
二維AABB 是一個(gè)矩形包圍盒,其定義為包圍一個(gè)連通域且四邊與坐標(biāo)軸平行的最小矩形。通常使用包圍盒的左上頂點(diǎn)坐標(biāo)(Xlu,Ylu)和右下頂點(diǎn)坐標(biāo)(Xrd,Yrd)來表征其在平面坐標(biāo)系中的具體位置。本文利用這兩個(gè)坐標(biāo)設(shè)計(jì)一組包圍盒參數(shù)來篩選車牌字符所對(duì)應(yīng)的包圍盒。
定義包圍盒的高度Height、寬度Length 分別為
則包圍盒的寬高比為R=Length/Height。本文利用包圍盒的中心點(diǎn)Mi 作為字符的定位點(diǎn),其坐標(biāo)可表示為
兩個(gè)相鄰包圍盒M1、M2 之間的距離定義D 為
車牌字符區(qū)域的具體篩選流程如下:
1)車輛上正常安裝的車牌都具有固定的寬高比,因此在清晰的車輛圖像中,車牌上每一個(gè)字符的寬高比大都是相接近的??紤]到可能存在的噪聲、車牌傾斜等影響寬高比的因素,本文預(yù)先設(shè)置寬高比的上下限,高度上限值和寬度下限值,遍歷整幅圖像并標(biāo)記包圍盒寬高比不在此區(qū)間內(nèi)的連通域。若高寬比落在此區(qū)域中,則進(jìn)一步比較高度值和寬度值并標(biāo)記不符條件的連通域。掃描完成后將所有被標(biāo)記的連通域內(nèi)的像素值都置為0。這樣可以濾除圖片中大部分不屬于車牌部分的干擾區(qū)域。
2)通過對(duì)多張車輛車牌圖像分析發(fā)現(xiàn),即使在車牌傾斜的情況下,字符包圍盒的中心點(diǎn)高度坐標(biāo)值仍然落在相鄰包圍盒的兩頂點(diǎn)高度坐標(biāo)值(Ylu,Yrd)之間,利用這一特性,結(jié)合字間距的大小規(guī)律可以對(duì)剩下的連通域做進(jìn)一步的篩選。從左下方開始選擇第一個(gè)連通域包圍盒,以其中心點(diǎn)M1 為起始點(diǎn),在y=Ylu1和y=Yrd1區(qū)間內(nèi)向右搜索是否有其他包圍盒的中心點(diǎn)落在此區(qū)間內(nèi)。如果沒有,則認(rèn)為此連通域是孤立區(qū)域,將此連通域內(nèi)所有像素值置0,并選擇下一個(gè)中心點(diǎn)作為起始點(diǎn)繼續(xù)搜索。如果有中心點(diǎn)M2 存在,繼續(xù)檢驗(yàn)M1 是否在M2 包圍盒的高度區(qū)間內(nèi),并進(jìn)一步對(duì)比兩個(gè)包圍盒的高度、寬度。只有滿足兩個(gè)中心點(diǎn)都在對(duì)方包圍盒高度區(qū)間,并且包圍盒的高度值、寬度值都比較接近這兩個(gè)條件,才認(rèn)為這兩個(gè)包圍盒相關(guān),并計(jì)算包圍盒距離D。否則將起始點(diǎn)退回到M1 并在M1 包圍盒高度空間內(nèi)繼續(xù)搜索。
3)在步驟2)中M2 包圍盒高度區(qū)間y=Ylu2和y=Yrd2內(nèi)繼續(xù)重復(fù)步驟(2)中搜索方式。當(dāng)計(jì)算得到的若干個(gè)距離值滿足上文所述的車牌字符間距關(guān)系時(shí),提取對(duì)應(yīng)的所有包圍盒作為最終搜索到的車牌區(qū)域。
在實(shí)際車輛圖像中,車牌的左右方以及下方通常都是顏色相同的平滑區(qū)域,這些區(qū)域包含的邊緣信息較少。執(zhí)行完步驟1)之后,這些區(qū)域中只包含很少量的包圍盒??紤]到車牌定位的實(shí)時(shí)性要求,本文從左下方開始檢測(cè),只需花費(fèi)少量時(shí)間即可檢測(cè)出目標(biāo)包圍盒。將所有目標(biāo)包圍盒合并成一個(gè)大包圍盒,其所對(duì)應(yīng)的區(qū)域即為車牌區(qū)域。由于邊緣檢測(cè)會(huì)不可避免漏掉少量的邊緣信息,造成靠近車牌兩邊的一部分字符信息沒有被包含進(jìn)來,因此需要將大包圍盒擴(kuò)展一個(gè)較小的比例,以保證提取到完整的車牌圖像。
使用本方法對(duì)圖3a 所示車輛進(jìn)行檢測(cè),檢測(cè)到的字符連通域如圖3b 所示,最終檢測(cè)到的車牌圖像如圖3c 所示。
由于攝像機(jī)拍攝角度等原因,車牌圖像可能會(huì)出現(xiàn)一定傾斜角,這會(huì)對(duì)后續(xù)字符分割和識(shí)別造成影響。使用Hough變換矯正傾斜圖像存在運(yùn)算量大的缺點(diǎn),而使用首尾字符包圍盒中心點(diǎn)連線來檢測(cè)傾斜角度的方法簡(jiǎn)單快速,但若首尾任一字符的中心點(diǎn)過度偏移于實(shí)際位置,則會(huì)使檢結(jié)果產(chǎn)生較大偏差。因此,使用最小二乘法將每個(gè)字符包圍盒的中心點(diǎn)擬合成一次函數(shù)y=ax+b 的形式,則車牌傾斜角度為式中,a 為擬合得到直線的斜率。若α 為負(fù),則將車牌圖像逆時(shí)針旋轉(zhuǎn)角度|α|,反之則順時(shí)針旋轉(zhuǎn)α。
圖3 車牌區(qū)域定位結(jié)果
以圖3 為例,圖3b 中7 個(gè)字符包圍盒的中心點(diǎn)分別為(166,365),(177,365),(191.5,364.5),(202,364.5),(212,363.5),(223,363.5),(233,363)。經(jīng)過最小二乘法擬合得到的結(jié)果為y=-0.031 6x+370.491 7。進(jìn)一步求解得到車牌的傾角為α=arctan ( -0. )031 6 =-1.81°。以第四個(gè)字符中心點(diǎn)為原點(diǎn)將車牌圖像逆時(shí)針旋轉(zhuǎn)1.81°,得到如圖4 所示的圖像。
4 傾斜矯正后的車牌圖像
旋轉(zhuǎn)圖像的同時(shí)計(jì)算包圍盒中心點(diǎn)的新位置。假設(shè)第i個(gè)字符包圍盒中心點(diǎn)位置為,若以第四個(gè)字符中心點(diǎn)為原點(diǎn),則其坐標(biāo)可表示為,其離原點(diǎn)的距離為,旋轉(zhuǎn)α 角度后其新位置坐標(biāo)可表示為
圖5 字符分割結(jié)果
車牌圖像的質(zhì)量會(huì)受到角度傾斜、車牌污損、曝光過度等因素影響。但只要車牌部分的邊緣信息足夠完整,本文算法就可以有效地檢測(cè)車牌區(qū)域分割車牌字符。本文對(duì)不同條件下所拍攝的200 張樣本圖像進(jìn)行實(shí)驗(yàn),定位結(jié)果如表1 所示。
表1 車牌定位結(jié)果
由表1 可知,本文算法對(duì)大部分車輛車牌圖像都有良好的定位和分割效果。能定位到車牌圖像就能準(zhǔn)確分割圖像中的每一個(gè)字符。這是因?yàn)楸疚乃惴ㄖ熊嚺频亩ㄎ灰彩峭ㄟ^預(yù)先檢測(cè)車牌字符包圍盒的方法實(shí)現(xiàn)的,如果能準(zhǔn)確檢測(cè)到車牌字符的包圍盒,就可以順利實(shí)現(xiàn)后續(xù)的定位和分割操作。本文算法對(duì)具有復(fù)雜紋理信息的圖像也有良好的檢測(cè)效果。而在夜間進(jìn)行檢測(cè)也能取得很不錯(cuò)的效果,這是因?yàn)檐嚺凭哂辛己玫姆垂馓匦?,在夜間被燈光照射的車牌往往擁有更明顯的邊緣信息。不同條件下車牌檢測(cè)結(jié)果如圖6 所示。
圖6 不同條件下車牌檢測(cè)結(jié)果
過曝、曝光不足或者車牌發(fā)生較明顯的污損等因素會(huì)造成車輛圖像模糊從而丟失邊緣信息,漏檢的那一部分圖像就是屬于這種類型。
1)本文提出基于CCA 和AAB 包圍盒的車牌字符定位分割算法,使用連通域分析和AAB 包圍盒來標(biāo)定和表征圖像中的連通區(qū)域,并根據(jù)車牌字符的實(shí)際分布規(guī)律來篩選出屬于車牌區(qū)域的連通域,使用包圍盒中心點(diǎn)定位矯正車牌圖像并進(jìn)行字符分割。
2)仿真實(shí)驗(yàn)結(jié)果表明,本算法對(duì)不同條件下的車牌圖像具有良好的檢測(cè)和分割效果,成功率達(dá)到93.5%。
3)此外,本算法基于同一種參數(shù)即可實(shí)現(xiàn)車牌定位和字符檢測(cè),在實(shí)際應(yīng)用中,這可以有效簡(jiǎn)化系統(tǒng)流程設(shè)計(jì),提高了檢測(cè)效率。
[1]SU J R,MA Z.Car license plate location based on the density and projection[C]//第三屆中國(guó)智能計(jì)算大會(huì)論文集.濟(jì)南:中國(guó)運(yùn)籌學(xué)會(huì)智能計(jì)算分會(huì),2009:409-412.
[2]李強(qiáng),汪洋,李偉博,等. 基于藍(lán)色車牌背景的車牌精確定位實(shí)現(xiàn)方法[J].電視技術(shù),2011,35(15):4-6.
[3]趙兵,魯敏,匡綱要,等. 基于混合特征的車牌定位算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,28(23):5668-5670.
[4]ZHAO W,GAO M Y,HE Z W.Character recognition based on improved BP neural network[C]//Proc.2013 Third International Conference on Instrumentation,Measurement,Computer,Communication and Control(IMCCC).[S.l.]:IEEE Press,2013:754-757.
[5]WANG Y R,LIN W H,HORNG S J. A sliding window technique for efficient license plate localization based on discrete wavelet transform[J]. Expert Systems with Applications,2011,38(4):3142-3146.
[6]方興林,方云樓.一種基于先驗(yàn)知識(shí)約束的車牌字符分割新算法[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2012,29(8):42-46.
[7]甘玲,林小晶.基于連通域提取的車牌字符分割算法[J].計(jì)算機(jī)仿真,2011,28(4):336-339.
[8]張金林,胡宏健,方虎生,等. 基于字符連通域特征的車牌定位方法[J].電視技術(shù),2012,36(7):140-142.
[9]林川,吳正茂,覃金飛. 基于機(jī)器視覺的分級(jí)車牌字符識(shí)別方法[J].電視技術(shù),2014,38(11):198-201.
[10]中華人民共和國(guó)公安部. GA36—2007 中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌[S].2007.
[11]郭彩虹,陳衛(wèi)鋼.一種噪聲方差自適應(yīng)的連續(xù)消除方法[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(7):208-212.
[12]岡薩雷斯. 數(shù)字圖像處理(MATLAB 版)[M]. 電子工業(yè)出版社,2009.
[13]朱媛媛,楊文杰. 噪聲對(duì)拉普拉斯算子邊界檢測(cè)影響的分析[J].北京印刷學(xué)院學(xué)報(bào),2013,21(6):38-41.