卓俊宇,胡志慧
(湖北汽車工業(yè)學(xué)院 電氣與信息工程學(xué)院,湖北 十堰 442002)
隨著社會(huì)的迅猛發(fā)展及交通問題的日益嚴(yán)重,為了提高車輛的管理效率,智能交通系統(tǒng)(ITS)由此而生。智能交通系統(tǒng)是融合前沿的信息技術(shù)、數(shù)據(jù)通訊技術(shù)、電子傳感技術(shù)、電子控制技術(shù)以及計(jì)算機(jī)處理技術(shù)等于一身的交通運(yùn)輸管理體系,它是一種能在大范圍內(nèi)全方位發(fā)揮作用的,擁有實(shí)時(shí)、準(zhǔn)確、高效的綜合運(yùn)輸和管理系統(tǒng)。汽車車牌的自動(dòng)識(shí)別是智能交通系統(tǒng)中的一項(xiàng)重要技術(shù),可以切實(shí)有效地提高交通系統(tǒng)的車輛監(jiān)控和管理的自動(dòng)化程度,是實(shí)現(xiàn)交通管理現(xiàn)代化和智能化的重要前提。車牌定位技術(shù)是汽車車牌的自動(dòng)識(shí)別系統(tǒng)中關(guān)鍵的環(huán)節(jié),它是后續(xù)的車牌字符分割和識(shí)別工作的基礎(chǔ)。
本項(xiàng)目在基于Visual C++平臺(tái)與Intel開源計(jì)算機(jī)視覺庫(kù)OpenCV,來實(shí)現(xiàn)靜態(tài)復(fù)雜背景下的車牌識(shí)別系統(tǒng)。其中OpenCV是Intel開源計(jì)算機(jī)視覺庫(kù),它作為一個(gè)開源的跨平臺(tái)計(jì)算機(jī)視覺庫(kù),可以在Linux、Windows和Mac OS操作系統(tǒng)上運(yùn)行。OpenCV的設(shè)計(jì)目標(biāo)是執(zhí)行速度盡量快,主要關(guān)注實(shí)時(shí)應(yīng)用。它由一系列C函數(shù)和少量C++類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語(yǔ)言的接口,在圖像處理和計(jì)算機(jī)視覺方面的很多通用算法都可實(shí)現(xiàn)。OpenCV的編寫采用優(yōu)化的C語(yǔ)言代碼,因此能夠充分利用多核處理器的優(yōu)勢(shì),它的結(jié)構(gòu)如圖1所示。
圖1 OpenCV的結(jié)構(gòu)
世界各國(guó)都根據(jù)本國(guó)國(guó)情設(shè)計(jì)了自己特色的車牌,中國(guó)也不例外,但相較于別國(guó)的車牌,由于地域原因以及漢字的復(fù)雜性,使得中國(guó)的車牌類別要復(fù)雜得多。我國(guó)機(jī)動(dòng)車輛使用的號(hào)牌,是按照GA36-2007“中華人民共和國(guó)機(jī)動(dòng)車號(hào)牌標(biāo)準(zhǔn)”設(shè)計(jì)的。
我國(guó)車牌中的字符由漢字、英文字母和阿拉伯?dāng)?shù)字總共7個(gè)字符構(gòu)成。其中,第一個(gè)字符是各個(gè)省、自治區(qū)、直轄市、行政區(qū)的漢字簡(jiǎn)稱,其余的均為英文字母或阿拉伯?dāng)?shù)字組合。雖然我國(guó)的汽車車牌存在一定的復(fù)雜性,但是根據(jù)總結(jié)它是存在一定的共同特點(diǎn)的。以下就是總結(jié)出的幾個(gè)明顯且通用的特點(diǎn):
(1)車牌一般位于沒有明顯的邊緣密集區(qū)域的車身底部。
(2)車牌字符的大小和個(gè)數(shù)一定,且字符間隔距離一定。
(3)車牌區(qū)域的像素點(diǎn)明顯多于其他部分。
圖像預(yù)處理是圖像識(shí)別的重要組成部分,是對(duì)輸入的圖像進(jìn)行特征抽取、分割以及識(shí)別前所進(jìn)行的操作。通常采集獲取的汽車牌照的圖像,由于在拍攝圖像的過程中受到各種環(huán)境限制,如霧天、光照不強(qiáng)、灰塵等會(huì)導(dǎo)致拍攝的圖像質(zhì)量明顯下降。車牌圖像預(yù)處理是車牌識(shí)別系統(tǒng)的前提條件,它直接關(guān)系到系統(tǒng)后續(xù)字符分割和識(shí)別的準(zhǔn)確性。
本文采用拍攝的含有汽車車牌的圖片作為原始識(shí)別圖像進(jìn)行相關(guān)處理。首先,借助OpenCV提供的cvCvtColor函數(shù)將色彩空間轉(zhuǎn)參數(shù),采用CV_RGB2GRAY將彩色圖像轉(zhuǎn)換為灰度圖像:Y=0.299*R+0.587*G+0.114*B。然后,采用cvSmooth函數(shù)進(jìn)行平滑高斯濾波處理。
最后,根據(jù)汽車車牌具有四邊形的外觀、車牌區(qū)域與其他區(qū)域之間的灰度具有很大跳變的特征,可以獲得圖像邊緣檢測(cè)圖作為后續(xù)處理的基礎(chǔ)。邊緣檢測(cè)的方法很多,常見的經(jīng)典邊緣檢測(cè)算法有Sobel算子、Roberts算子、Prewitt算子、Laplacian算子、Log算子以及Canny算子等。這些算子利用了邊緣處灰度級(jí)劇烈變化進(jìn)行圖像邊緣檢測(cè)。不同的算子適用類型不同,不同的算子對(duì)不同邊緣類型的敏感度不同,提取的邊緣結(jié)果也不相同。通過調(diào)用OpenCV中帶的cvCanny函數(shù)實(shí)現(xiàn),其中threshold1為小閾值,這里通過編寫函數(shù)獲取圖像的平均灰度值作為自適應(yīng)閾值,它是用來控制邊緣連接的;threshold2為大的閾值,用來控制強(qiáng)邊緣,通過CV_IMAGE_ELEM函數(shù)遍歷獲取圖像最大灰度值的70%作為它的閾值。Canny算子邊緣檢測(cè)得到的輪廓更加清晰并且具有很好的抗干擾性,處理前后的效果如圖2所示。
圖2 圖像邊緣檢測(cè)
大多數(shù)情況下,一幅圖片中車牌的字符總是近似于豎向的,利用其豎向特征可以將車牌與復(fù)雜背景分離出來。車牌區(qū)域所在的行相鄰像素之間的變化(0~255,255~0)會(huì)很頻繁,這樣跳變次數(shù)會(huì)大于一個(gè)臨界值,可以作為尋找車牌區(qū)域的一個(gè)依據(jù)。這里可以用CV_IMAGE_ELEM函數(shù)方便獲取相鄰像素的灰度值。由于車牌字符大小、個(gè)數(shù)、字符間隔距離一定,找出像素變化數(shù)據(jù)量最大的地方,統(tǒng)計(jì)計(jì)算其連續(xù)20行最大跳變數(shù)據(jù)量的開始,說明此行在車牌區(qū)域內(nèi)。最后通過循環(huán)比較相鄰行的值大于一個(gè)臨界值(一般而言,車牌每個(gè)字符至少跳變2次以上,這里設(shè)置為18),探測(cè)到車牌的上下邊界的行號(hào)。
通過橫向掃描圖像,確定車牌上下邊界行號(hào),這樣可假定車牌區(qū)域在最高和最低行之間的條狀區(qū)域內(nèi)。這時(shí)大致可確定車牌的高,根據(jù)車牌寬與高的比例可得到它的寬帶,將一個(gè)寬度為車牌寬度的窗口由左至右移動(dòng),統(tǒng)計(jì)窗口中每一列內(nèi)相鄰像素的變化總數(shù),逐個(gè)比較之后最大的那個(gè)就是車牌區(qū)域,把它保留并記錄此時(shí)的左右邊界,從而得到車牌的具體區(qū)域??偠灾?,就是水平分割、垂直分割后進(jìn)行歸一化。利用OpenCV庫(kù)中的CvRect確定車牌的矩形區(qū)域,然后在原圖像中利用cvSetImageROI函數(shù)設(shè)置敏感區(qū)域,接著用cvCopy函數(shù)從原圖像中把敏感區(qū)域(即探尋的車牌區(qū)域)拷貝出來。再利用cvResize函數(shù)進(jìn)行圖像大小轉(zhuǎn)換,用線性插值方法將車牌變成統(tǒng)一大小為cvSize(40*HIGH_WITH_CAR,40),這樣方便后續(xù)車牌分割字符處理,車牌定位截取后效果如圖3所示。
圖3 車牌定位提取圖片
車牌定位以后的圖像還是一個(gè)整體,包括文字和文字之間的空白。字符分割就是將車牌中的7個(gè)字符分割出來以便逐個(gè)進(jìn)行字符識(shí)別。大部分字符分割的算法以垂直投影、字符間隔及尺寸的測(cè)定、輪廓分析或分割識(shí)別組合技術(shù)為基礎(chǔ)。本系統(tǒng)采用車牌字符布局特征與垂直投影積分相結(jié)合的方法進(jìn)行分割。最后采用模板匹配的方法,它將從待識(shí)別的圖像提取若干特征量與模板對(duì)應(yīng)的特征量進(jìn)行比較,計(jì)算圖像和模板特征量之間的距離,用最小距離法判定所屬類,完成車牌號(hào)碼字符的識(shí)別。
車牌識(shí)別是智能交通系統(tǒng)中的重要應(yīng)用,具有很強(qiáng)的實(shí)際應(yīng)用價(jià)值。本文借助開源計(jì)算機(jī)視覺庫(kù)OpenCV,在Visual C++平臺(tái)下對(duì)車牌識(shí)別系統(tǒng)中圖像預(yù)處理、車牌定位等方面功能實(shí)現(xiàn)進(jìn)行了初步研究,但是經(jīng)過對(duì)實(shí)驗(yàn)結(jié)果的分析驗(yàn)證,還有待進(jìn)一步地深入研究。當(dāng)前,很多學(xué)者致力于車牌識(shí)別技術(shù)的研究,也相繼提出一些可行的車牌識(shí)別系統(tǒng),相信在不久將來車牌識(shí)別系統(tǒng)會(huì)有更大地發(fā)展。
[1]Gary Bradski,等.學(xué)習(xí)OpenCV[M].于仕琪,等,譯.北京:清華大學(xué)出版社,2009.
[2]駱雪超.一種基于車牌特征信息的車牌識(shí)別方法[J].華南理工大學(xué)學(xué)報(bào):自然科學(xué)版,2002,31(4):70-72.
[3]楊曉玲.基于幾何特征的車牌定位與字符分割技術(shù)研究[D].廈門:廈門大學(xué),2014.
[4]楊思源.基于OPENCV的車輛牌照識(shí)別系統(tǒng)研究[D].西安:西安電子科技大學(xué),2013.
[5]姜宇.基于OpenCV的車牌識(shí)別系統(tǒng)研究[J].遼寧師范大學(xué)學(xué)報(bào):自然科學(xué)版,2011,34(2):170-174.