一種邊緣檢測與掃描線(xiàn)相結合的車(chē)牌定位算法
摘要:提出了基于邊緣檢測的二值化與掃描線(xiàn)相結合的車(chē)牌定位方法。實(shí)驗表明該方法能夠快速、準確地定位車(chē)牌,且抗干擾能力強,定位準確率在99%以上,光照和天氣對其定位結果影響很小。
車(chē)牌識別(LPR)技術(shù)是計算機視覺(jué)、圖像處理技術(shù)與模式識別技術(shù)的融合,是智能交通系統中一項非常重要的技術(shù)。一般說(shuō)來(lái),車(chē)牌識別前期的處理技術(shù)至關(guān)重要,其前期技術(shù)包括:車(chē)牌的定位、車(chē)牌圖像的二值化及字符分割。本文主要針對車(chē)牌定位算法進(jìn)行研究。
車(chē)牌定位就是在車(chē)輛圖像中定位牌照區域的位置。由于車(chē)輛圖像都采集于自然環(huán)境中,而在自然環(huán)境中車(chē)牌和背景的成像條件一般是不可控制的,隨機變化的因素(尤其是光照條件)和復雜的背景信息給目標搜索帶來(lái)巨大困難。不同光照下,車(chē)牌的顏色、亮度、明蟬對比度都有很大變化;背景信息通常比車(chē)牌信息更加復雜,某些背景區域可能與車(chē)牌區域差異不大;再加上攝像距離、角度的不同,要從種種干擾中區別出目標是十分困難的。而車(chē)牌區域在整幅圖像中所占的比例較小,要從整幅圖像中定位車(chē)牌區域必然要在大量的背景信息中搜索,而且由于應用的特殊性,要求快速、準確地完成車(chē)牌定位。如果沒(méi)有高效率的搜索方法,就需要耗費很多計算時(shí)間和存儲空間。所以車(chē)牌定位技術(shù)一直以來(lái)是一個(gè)難點(diǎn),是車(chē)牌識別系統的一個(gè)關(guān)鍵技術(shù)環(huán)節。
目前,已經(jīng)提出了很多車(chē)牌定位的方法這些方法都具有一個(gè)共同的出發(fā)點(diǎn)即通過(guò)牌照區域的特征來(lái)判斷牌照。根據不同的實(shí)現方法,大致可以把現有的定位方法分為兩類(lèi):直接法、間接法。
(1)直接法:直接分析圖像的特征。例如,文獻提出一種基于線(xiàn)模板的二值化圖像中的角檢測算法。該算法利用車(chē)牌的邊框角點(diǎn),檢測車(chē)牌的四個(gè)角點(diǎn),并以此來(lái)定位車(chē)牌。文件介紹一種基于直線(xiàn)邊緣識別的圖像區域定位算法,并且利用該算法定位車(chē)牌的邊框線(xiàn),以此定位車(chē)牌。文件介紹利用車(chē)牌的尺寸、字符間距、字符特征等紋理特征定位車(chē)牌。文件利用車(chē)牌部分垂直高頻豐富的特點(diǎn)先利用小波提取圖像的垂直高頻信息,然后利用數學(xué)形態(tài)學(xué)方法對小波分解后的細節圖像進(jìn)行一系列的形態(tài)運算,進(jìn)一步消除無(wú)用的信息和噪聲,以定位車(chē)牌。
(2)間接法:主要是指利用神經(jīng)網(wǎng)絡(luò )法或者遺傳算法定位車(chē)牌的方法。利用神經(jīng)網(wǎng)絡(luò )和遺傳算法等柔性方法進(jìn)行計算是當前研究熱點(diǎn)之一。文獻提出利用BP神經(jīng)網(wǎng)絡(luò )定位車(chē)牌,文件提出利用DTCNN(Discrete-Time Cellular Neural Network)和模糊邏輯結合的方法。文獻利用多層感知器網(wǎng)絡(luò )(MLPN)對車(chē)牌進(jìn)行定位。文獻提出利用遺傳算法定位車(chē)牌,它利用遺傳算法對圖像進(jìn)行優(yōu)化搜索,結合區域特征矢量構造的適應度函數,最終尋找到車(chē)牌的版照區域的最佳定位參量。
通過(guò)分析和觀(guān)測得知,與汽車(chē)圖像中其他區域相比,車(chē)牌區域主要有以下特征:
(1)車(chē)牌字符區域中的垂直邊緣較水平邊緣相對密集,而車(chē)身其他部分(如保險杠等)的水平邊緣明顯,垂直邊緣較少。另外,車(chē)牌一般懸掛在車(chē)身上較低的位置,其下方基本上沒(méi)有明顯的邊緣密集區域。
(2)有明顯的邊框,在其內部規則地排列著(zhù)一系列的省名縮寫(xiě)(漢字)、地區代號(英文字母)和5位字母/數字編號(普通民用車(chē)輛)。底牌與字符的顏色主要有藍底白字、黃底黑字、黑底白字和白底黑字(或紅字)四種。隨拍攝角度和車(chē)牌自身污損程度的不同,所采集到的車(chē)牌邊框經(jīng)常出現傾斜、斷裂等現象。
因此直接定位法是利用邊框特性(利用特征2)以模模匹配的方法尋找牌照的四個(gè)角來(lái)定位或者尋找車(chē)牌邊框直線(xiàn)定位車(chē)牌以及利用牌照區域的灰度變化頻率(利用特征1)來(lái)定位。
1 車(chē)牌定位的預處理
圖像預處理的作用是突出圖像中的有用信息,不同的圖像預處理對應于不同的圖像分割以獲得最佳的車(chē)牌特征。車(chē)牌定位預處理目睥是突出車(chē)牌區域的特征,抑制其它無(wú)用的特征。車(chē)牌定位預處理目的是突出車(chē)牌區域的特片,抑制其它無(wú)用的特征。車(chē)牌區域的主要特征之一是垂直邊緣較密集。所以本文提出增強垂直邊緣的差分算子進(jìn)行垂直邊緣增強。
為了不失一般性,本文對灰度圖像進(jìn)行研究。由于本文采集的圖像是彩色圖像,所以要把彩色圖像轉化為灰度圖像。為了減少不必要的彩色-灰度轉化的運算,本文只對輸入的彩色汽車(chē)圖像的綠色分量作處理。
邊緣檢測的算子很多。例如:如Sobel算子、Roberts算子、Prewitt算子、Laplacian算子等。Sobel、Roberts、Prewitt、Laplacian算子都不是專(zhuān)門(mén)用于檢測垂直邊緣的,且運算量較大。雖然可以只用它們的垂直邊緣檢測算子,但是相對而言,運算量還是比較大。為此,本文專(zhuān)門(mén)設計了一個(gè)水平模板算子,即[1,1,1…,1,1,1,1]。該算子與圖像進(jìn)行卷積然后再與原圖像作差分運算,當差分值大于某一門(mén)限值就認為它是邊緣目標,否則是背景。
水平模板即[1,1,1…,1,1,1,1],它與圖像進(jìn)行卷積相當于圖像水平方向進(jìn)行低通濾波,再與原圖像差分,其目的是突出圖像的垂直方向的高頻信息(相當于對圖像進(jìn)行高通濾波)。由于該算子可以做增量運算,也就是在計算局部平均值時(shí),先計算水平方向窗口內各點(diǎn)之和,將前次運算的結果減去窗口最左邊點(diǎn)的值再加上右邊新一點(diǎn)的值。這樣可以減少求和運算次數,所以其運算量比Sobel算子少。
算子描述如下:
1/n[111...1111]-[000...1000] (1)
式(1)的左半部分是水平模板,即[1,1,1…,1,1,1,1]與圖像進(jìn)行卷積,右半部分可理解為原始圖像。它們進(jìn)行差分是式(1)的運算結果。
由于可以做增量運算,所以算子的長(cháng)度對運算量影不大。在這里取9,其目的是與字符筆劃的寬度相符。
從圖1可以看出:圖像進(jìn)行卷積然后再與原圖像作差分的數據,只有車(chē)牌區域、車(chē)輪、車(chē)燈等灰度突變處值相對較高,而其它幾乎為零。通過(guò)對整幅圖像的處理,得到車(chē)輛圖像的二值化圖像如圖2(a),對差分圖像進(jìn)行二值化,結果如圖2(b)(其中閾值取10)。
2 車(chē)牌的預定位
2.1 長(cháng)程濾波與顆粒濾波
(1)長(cháng)程濾波
從圖2(b)可以看出預處理后很多邊緣點(diǎn)連接成長(cháng)程帶狀曲線(xiàn)(特別是在車(chē)輪、車(chē)窗)。而車(chē)牌區域不會(huì )有這種情形。如果不作相應處理,就會(huì )給車(chē)牌定位帶來(lái)干擾。因此,在定位前應當先作長(cháng)程濾波。
長(cháng)程濾波算法基于這樣的思想:如果許多點(diǎn)邊綴成一個(gè)長(cháng)程曲線(xiàn)L,那么長(cháng)程濾波器考察L在x方向和y方向的空域延展程度。如果超過(guò)閾值,即將所有屬于L的候選點(diǎn)從候選點(diǎn)集合中濾掉。
(2)顆泣濾波
長(cháng)程濾波后,圖像中仍有許多候選點(diǎn)集結成小型的彼此分離的顆粒狀,而車(chē)牌區的候選點(diǎn)一般不會(huì )有這種情況。由此進(jìn)行了顆粒濾波處理,濾掉顆粒噪聲。
由此本文定義兩個(gè)模塊:擊不中模板、擊中模板,如圖3所示。只要擊中模板和圖像乘積大于一定閾值,而擊不中模板與圖像乘積小于一定閾值就把擊中模板內的圖像全置為零。
顆粒濾波基于這樣的想法:對于某一個(gè)候選點(diǎn)顆粒狀集合,在它周?chē)欢ù嬖谝粋€(gè)小矩形區(矩形區的大小與所考察的顆粒粒度有關(guān)),這個(gè)小矩形區的四周,包含非常少的候選點(diǎn)(理想情況是沒(méi)有候選點(diǎn))。那么,對全圖進(jìn)行小矩形區掃描,檢查矩形區周邊上的候選點(diǎn)個(gè)數是否小于閾值。如果小于,則認為該矩形區內的所有候選點(diǎn)形成了孤立的顆粒狀命令,抹去這些點(diǎn),就達到了顆粒濾波的目的。由于顆粒大小不一,可以進(jìn)行若干次不同粒度的顆粒消抹。對圖2(b)進(jìn)行長(cháng)程濾波與顆粒濾波后的處理結果如圖4所示。
本文利用了車(chē)牌字符的連續特性。車(chē)牌區域有連續7個(gè)字符,而且字符與字符之間的距離在一定范圍內。本文定義從目標到背景或者從背景到目標為一個(gè)跳變。牌照區域相對于其它非車(chē)牌區域跳變多,而且間距在一定范圍內和跳變次數大于一定次數。通常為14以上,因為車(chē)牌中今有7個(gè)字符,每個(gè)字符有兩個(gè)以上跳變,為了防止字符的斷裂、模糊、車(chē)牌傾斜等的影響,本文保守起見(jiàn)采用10。
因此本文掃描線(xiàn)在二值化圖像中掃描定位車(chē)牌(一般來(lái)說(shuō)車(chē)牌都在車(chē)輛的下部,與車(chē)牌文字類(lèi)似的文字干擾大多在上部),采用從左到右、從下到上的順序掃描。算法如下:
從下到上的順序掃描,對圖像的每一行進(jìn)行從右向左的掃描。
(1)碰到跳變點(diǎn)記錄下當前位置,如果某行有連續10個(gè)跳變點(diǎn)以上,并且前一個(gè)跳變和后一個(gè)跳變點(diǎn)的距離在一定范圍內,就記錄下起始占烽終止點(diǎn)位置。
(2)如果連續有十行以下這樣的跳變點(diǎn),并且相鄰上下行的起始點(diǎn)和終止點(diǎn)相鄰。就認為該區域是車(chē)牌預選區域。圖5顯示一幅典型的車(chē)輛圖像的定位結果圖。
從定位結果看,本定位算法還適合車(chē)輛圖像中包含多車(chē)牌的情況,而且定位速度受多車(chē)牌影不大。雖然車(chē)燈和車(chē)上的字符(包括車(chē)牌、車(chē)燈等垂直邊緣豐富的區域,以及繳費車(chē)牌等)也可能定位為預選區域,但是由于它們大都在車(chē)牌的上方,本文又采用從下而上的方式對預選區域進(jìn)行篩選,所以對定位速度影響不大。在99%以上的情況下遇到的的第一個(gè)預選區域是車(chē)牌區域如圖6(a)、(c),很少有象圖6(b)的情況?;谶@種情況,本文這樣設計定位策略:若要求實(shí)時(shí)處理,就只選取第一個(gè)預選區域,把它送入切分和識別模塊;如果不要求實(shí)時(shí)性,就可以把各個(gè)預選區域分別送入切分和識別模塊。同時(shí)對于2000式車(chē)牌(圖6(c)),本文算法也能準確定位。對于2000式車(chē)牌中上排的字符,只能通過(guò)切分模塊反饋獲得車(chē)牌左右邊界的進(jìn)一步定位。
采用該方法對圖7進(jìn)行了牌照左右邊界確定,結果如圖8所示。白色矩形框,是車(chē)牌的預選區域??梢钥闯銎滠?chē)牌與車(chē)燈粘連,根據預定位的長(cháng)度比大于一定數值,就認為車(chē)牌和車(chē)燈等區域粘連。運行上述算法,進(jìn)一步確定車(chē)牌左右邊界。結果如圖8所示。
3 實(shí)驗結果
部分車(chē)輛圖像定位結果如圖9所示。
①準確性:實(shí)驗結果表明車(chē)牌定位的準確性大于99%,車(chē)牌定位的區域在外界有干擾以及車(chē)牌傾斜時(shí)比車(chē)牌稍大。
②時(shí)間特性:根據車(chē)牌情況不同在VC環(huán)境下運行時(shí)間在0.1到0.15秒之間(128M內存PIII 733)。
③適應性:車(chē)牌的噪聲對定位沒(méi)有影響,在光照很強和光照很弱的情況下,都能提取出車(chē)牌的圖像。但對于車(chē)牌嚴重腿色的情況,由于檢測不到筆畫(huà)等的邊緣會(huì )導致定位失敗。
④其它特性:本定位算法適合車(chē)輛圖像中包含多車(chē)牌的情況,而且定位速度受多車(chē)牌影響不大(同時(shí)也可能出現定位錯誤的區域和車(chē)燈等垂直邊緣豐富的區域以及繳費車(chē)牌區域等,這可以在以后的切分和識別模塊進(jìn)行拋棄)。
評論