周 欣,蔣欣榮,潘 薇
ZHOU Xin,JIANG Xinrong,PAN Wei
四川大學 計算機學院,成都 610064
College of Computer,Sichuan University,Chengdu 610064,China
車牌定位算法是車輛號牌自動識別系統的關鍵算法,目前已有多種成熟的定位算法。而提高定位率與提高實時性一直是該算法研究的重點內容。
目前比較常見的方法有以下兩種:第一種方法包括水平線搜索[1]、邊緣檢測[2]、投影分割、車牌紋理檢測等等。這類方法利用車牌區域邊緣豐富、灰度變化規律等特性來檢測車牌,運算簡單,速度較快,但抗干擾的能力相對較弱。現在對這類方法又有各種改進算法,并取得一定的效果[3-5]。第二種方法著重于車牌區域的色彩信息。包括根據顏色相似度進行聚類牌照區域[6]和運用彩色邊緣檢測[7-8]等等。這類方法對車牌大小不敏感,精度較高,但缺點是對圖像品質要求高,對牌照偏色、牌照污損及背景色干擾等情況無能為力。
另外還有一些基于小波分析的方法[9-11]、基于神經網絡的方法[12-13]、基于AdaBoost的學習方法[14-15]等等。
在目前的智能交通系統中,越來越多的采用了高清數字攝像機。常用的數字攝像機可以覆蓋2~5個車道,這對車牌定位算法提出了新的要求。除了搜索空間增大使得算法實時性降低以外,出現了一個場景中同時存在多個車牌的情況。本文以提高車牌定位實時性和同時搜索多個車牌為目的,研究并提出一種基于分塊投影和語義約束的快速車牌定位算法,為基于數字攝像機的實時車牌識別系統提供算法基礎。
本文引入2個車牌區域語義特征。第一語義特征:車牌區域具有連續、規則的多個字符塊。第二語義特征:車牌字符灰度信息一致、筆畫寬度一致,與背景形成規則的灰度跳變。算法步驟是:首先通過分塊的邊緣投影得到候選車牌字符塊;然后根據第一語義特征對字符塊進行聚類和篩選,最后根據第二語義特征過濾偽車牌得到定位結果。
考慮到車牌字符的筆畫寬度和車牌可能出現的傾斜,選擇式(1)和式(2)的梯度算子對灰度圖像I進行處理,得到V(x,y)和 H(x,y)。

傳統方法多采用整行投影確定車牌區域的上下界,但針對視場中包含多個車道的情況其適應性降低。因為視場的擴大使得車牌區域在圖像中所占比重下降,車牌傾斜的程度也大大增加,其他目標和噪聲對行投影的影響增大。因此,本文采用局部分塊投影來搜索候選字符塊。
設圖像x與y方向的搜索步長均為step,對W×H大小的圖像塊在水平方向對V(x,y)投影,投影的一維數據進行9×1的均值濾波。其中:

局部車牌邊緣投影在概率意義上近似正態分布,如圖1所示。因此,可以按正態分布曲線進行參數估計,并根據其能量分布理論(99%的能量集中在μ±2.58σ以內)確定字符塊的上下邊界。

圖1 曲線擬合示例
設投影曲線為 y*=h(x),字符塊上下界區間為[m,n],m、n為所求值。則邊緣投影在x方向分布的概率密度函數為:

取曲線 f(x)上 4個點 (x1,y1)、(x2,y2)、(x3,y3)和(x4,y4),滿足如下關系:

由式(3)、式(4)可以得到:

將式(6)代入式(5)可以求得 σ:


因此只需要從投影曲線上取4個特征點,根據式(8)計算出 a1、a2,再代入式(6)、式(7)即可計算出正態分布參數。
分塊區域車牌字符上下界的計算步驟如下,坐標定義如圖1所示。
(1)設定:step=24;車牌最大高度 plateH=2×step。
(2)在W×H 的圖像塊中對V(x,y)投影,并進行9×1的均值濾波,獲取投影曲線。
(3)求取投影曲線局部極大值點(x0,y0)。
(4)以(x0,y0)為中心,沿x軸向下在 plateH 區間內搜索與;沿x軸向上在 plateH區間內搜索與。
(5)如果不能同時找到該4點,則該分塊區域不是車牌字符塊;如果 |x1-x0|>|x2-x0|或者 |x3-x0|>|x4-x0|,則該分塊區域不是車牌字符塊。
(6)按公式(6)~(8)計算正態分布參數。
(7)求取μ±2.58σ作為該車牌字符塊的上下邊界。計算字符塊高度記為H*。
(8)如果H*<15,則該區域不是車牌字符塊。15為最小車牌高度。
對已經確定上下邊界的區域W×H*,按下面步驟再對左右邊界進行粗定位。
(1)設定:w=12(車牌為100像素時單個字符平均寬度);th=100×H*。
(2)H(x,y)+V(x,y)在垂直方向投影,形成 W×1維數據。
(3)從左向右步長為1,按窗口w×1對投影數據求和;第一個大于閾值th的塊為左邊界。
(4)從右向左,同理求解右邊界。
(5)如果不能同時找到左右邊界,則該區域不是字符塊。
根據車牌字符塊的第一語義特征,定義約束條件,去除孤立候選字符塊以及排列不規則的字符塊。并對保留的車牌字符塊聚類構成候選車牌區域。我國規定車牌懸掛正負傾斜不能超過15°。根據該規定可以對相鄰字符塊中心點的高度差進行約束。因此對傾斜角度符合規定的車牌可以取得較好的聚類效果。
這里用特征向量[z1,z2,z3]表示一個字符塊,z1為塊中心 x軸坐標,z2為塊左邊界 y軸坐標,z3為塊高度。設定搜索到的第一個候選字符塊為,選擇以下2個約束條件確定候選車牌區域。

對字符塊 A1,如果能夠找到2~6個候選塊滿足規則,則認為這些候選塊可以構成一個候選車牌區域P;否則搜索下一個候選塊。
(2)計算 Ai+1與 Ai關聯系數 Di:

并計算整體關聯系數D(n為按規則1搜索到的候選字符塊個數):

設定閾值T,如果D<T則認為該區域是車牌候選區域;否則該區域不是車牌區域。實驗中,根據大量樣本測試效果,按經驗值,T=0.5。
(3)對滿足整體關聯系數的字符塊求取最大外截矩形,獲取候選車牌區域。
前面的步驟用較快的處理速度獲取較高的檢測率,因此判決條件寬松,漏檢機率較小。但是檢測結果會出現誤檢和左右邊界不準確的情況。因此需要對聚類得到的候選區域進行過濾和左右邊界修正。
車牌區域的另一顯著特征是字符灰度和背景灰度之間對比較大,對5~7個字符而言,可以找到連續的至少10次灰度跳變。圖2左圖顯示了車牌區域某一行的水平灰度分布曲線,圖2右圖顯示了誤檢區域中某一行的水平灰度分布曲線。垂直的白線為標記的跳變位置。
按第二語義過濾偽車牌并修正左右邊界的步驟如下。
(1)對候選車牌區域求取整體灰度均值G。
(2)求取區域中灰度大于G的像素點的灰度均值G2;小于G的像素點灰度均值G1;獲取區域對比度C=G2-G1。

圖2 圖像一行的灰度分布圖
(3)除上下邊界外,對區域逐行掃描,相鄰兩點灰度差值大于C,記錄一次跳變。
(4)統計跳變次數不小于10次的行數,如果總行數小于區域高度的一半,則該區域為偽車牌區域。
(5)對大于10次跳變的行,記錄最左邊與最右邊的跳變位置,作為車牌的左右邊界。
(6)最后根據系統設定的車牌大小、長寬比判定是否為車牌區域。
實驗的圖片共3000張,來自全國各地,光照、天氣情況不一。包含768×576、1360×1024以及1600×1200等3種分辨率的圖像,車牌寬度從90像素到160像素不等。本文算法使用C++在P42.4 GHz/768 MB機器上實現。圖3給出了本文算法的處理過程。圖4給出了不同情況下的部分實驗結果。

圖3 算法描述
表1是實驗結果統計,從實驗結果來看,本文方法對絕大多數的圖像都能夠正確定位,適應性較強。特別針對部分車牌有輕微污損、牌照光照不均勻的情況效果較好。
對漏檢的結果進行分析,主要原因如下:車牌污損嚴重;車牌區域對比度較低;車牌外圍區域紋理豐富,投影的方法無法將車牌與外圍區域分開。

圖4 實驗結果

表1 實驗定位結果統計
對誤檢結果分析發現:車身上的字符串容易被誤認為車牌,其他水平排列的具有豐富邊緣信息的塊狀紋理也可能被誤判。如貨車的字母車標、公交車編號等等,如圖5所示。如果考慮后續的字符切分,并輔助車牌字符位置比例,可以解決定位誤檢的問題。

圖5 誤檢結果
表2是算法運行時間比較。從表2可以看出,本文的定位算法處理速度較快,圖像定位時間能夠達到實時處理的要求。
表3是本文算法與參考文獻中幾種主要車牌定位算法定位準確率與運行時間的比較。可以看到,本文算法在較大提高處理速度的同時,保證了定位的準確率,并能夠進行多車牌同時定位。

表2 算法執行時間比較表ms

表3 幾種算法比較表
本文算法的主要時間消耗集中在預處理和搜索字符塊兩個步驟。對三種不同分辨率圖像的實驗數據也反映了這一點。其原因是由于前兩個步驟是基于像素級的運算,而后續步驟是基于語義分析的運算。聚類和篩選的輸入數據與圖像的分辨率不再有直接關系,而是與圖像中疑似車牌的區域數目相關。從提高車牌定位率的角度來看,聚類和篩選還可以選擇更為復雜的約束規則來提高準確率而不會對算法的實時性產生較大影響。
本文以提高車牌定位實時性和同時搜索多個車牌為目的,研究并提出一種基于分塊投影和語義約束聚類的實時多車牌定位算法,從實驗結果來看,本文算法對背景復雜、車牌輕微污損、光照不均及角度傾斜等情況均能有效處理。與以往的算法相比,本文算法在保證較高的定位率的同時,獲得了較快的處理速度。以本文算法為核心的車牌識別系統在成都市的智能交通管理系統中已經得到了應用。
[1]Barroso J,Dagless E L,Rafael A,et al.Number plate reading using computer vision[C]//Proceedings of the IEEE International Symposium on Industrial Electronics,1997:761-766.
[2]Soh Y S,Chen B T.Design of real time vehicle identification system[C]//Proceedings of the IEEE,International Conference on Systems,Man and Cybernetics,1994:2147-2152.
[3]吳舟舟,李樹廣.基于分級邊緣間距的實時車牌檢測[J].中國圖象圖形學報,2007,12(2):315-321.
[4]馮國進,顧國華,鄭瑞紅.基于自適應投影方法的快速車牌定位[J].紅外與激光工程,2003,32(3):285-287.
[5]張變蓮,唐慧君,閆旻奇.一種復雜車輛圖像中的多車牌定位方法[J].光子學報,2007,36(1):184-187.
[6]王義興,黃鳳崗,韓金玉,等.基于顏色搭配與紋理特征的車牌定位方法[J].中國圖象圖形學報,2009,14(2):303-308.
[7]李文舉,梁德群.基于邊緣顏色對的車牌定位新方法[J].計算機學報,2004,27(2):204-208.
[8]劉萬軍,姜慶林玲,張闖.基于CNN彩色圖像邊緣檢測的車牌定位方法[J].自動化學報,2009,35(12):1503-1512.
[9]朱曉紅,張永來,劉冬林.非正交haar小波變換的車牌定位技術研究[J].計算機工程與應用,2009,45(13):175-178.
[10]張國才,王召巴.小波變換在車牌定位中的應用[J].機械管理開發,2010,25(1):199-200.
[11]侯培國,趙靜,劉明.基于小波變換和行掃描的車牌定位方法[J].系統仿真學報,2006,18(2):811-813.
[12]邱剛,王養利.基于邊緣特征和神經網絡的汽車牌照定位算法[J].微機發展,2005,15(4):30-32.
[13]王曉芳,趙勇,方宗德.基于紋理特征和神經網絡牌照定位方法[J].現代電子技術,2010(4):49-53.
[14]劉彬,嚴京旗,施鵬飛.高斯差分的AdaBoost車牌定位方法[J].智能系統學報,2010,5(6):471-475.
[15]盛曦,吳煒,楊曉敏,等.一種基于AdaBoost車牌定位算法[J].四川大學學報:自然科學版,2007,44(3):535-539.