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