劉麗麗
(長治學院計算機系,山西 長治 046011)
車牌自動識別技術研究是當前國內外智能交通系統的研究熱點,在無人值守停車場、交通監控、高速收費及車輛追蹤等領域具有重要的應用價值。和目前普遍采用的ETC 技術相比,車牌自動識別系統不需要車主增加任何設備即可完成車牌信息的采集,方便了客戶,節約了成本。
車牌自動識別系統的研究一般分為車牌定位、字符分割、字符識別3 個模塊。其中,對字符識別的研究在國內外獲得了廣泛的發展。目前,普遍流行的研究方法有模板匹配、特征法、神經網絡、支撐向量機等。
模板匹配算法是待識別字符的數據信息和模板庫中所有字符的數據信息依次進行比較,重合數目最高者即為識別值。模板匹配適合固定尺寸、無傾斜、沒旋轉的字符數據[1,2]。
特征法也是一種快速簡單的算法。譚教授和張向東等人利用識別字符的圖形特性,根據水平遍歷和垂直遍歷的數據構建特征函數,通過不同的函數值來識別字符[3,4]。Yan 等人利用字符的投影特征、周邊距離特征、不同位置的密度特征進行識別[5]。文獻[6]則是根據字母和數字中孔的數目,先進行分類,然后通過1 個2 層的神經網絡模型來進行識別。他們的方法不受識別字符旋轉、大小變換等的影響。特征法的特點是算法編程簡單,識別時間短,不需要神經網絡算法中的訓練和學習過程。
神經網絡是車牌字符識別系統中被普遍研究的一種方法,常用的有BP 神經網絡[7,8]、非標準前饋神經網絡[9]、自組織神經網絡、概率神經網絡[10,11]等。這些文獻的研究結果表明,其在定位分割準確的情形下,都達到了95%以上的識別率。神經網絡算法識別率高,但其識別時間長,在一些強實時系統中可能無法應用。此外,Hausdorff 距離法也被用在了車牌字符識別系統中,識別率達到了97.2%,但識別范圍只限于韓國車牌[12]。支撐向量機方法作為有監督的機器學習中的一種,也在車牌字符識別中被廣泛應用[13]。
模板匹配和特征法識別速度快,但識別率較低。神經網絡及機器學習法識別率高,然而時間開銷大。對識別結果進行分析發現,對于不存在相似字符的車牌字符,上述識別方法的準確率都近似99%。影響識別率的因素主要在于對相近字符的識別。基于此,本文提出了模板匹配聯合特征的二次識別算法。算法的核心思想是對于多數不易混淆的字符采用一次模板匹配算法;對于有相似字符,識別時比較容易出錯的字符除進行一次模板匹配算法識別外,再進行二次特征識別。算法的目的是提高識別率,縮短識別時間,簡化算法程序設計,以使車牌自動識別系統可以更好地應用于嵌入式實時智能交通系統。
中國境內的車牌字符包含如下幾類:
1)數字:0~9;
2)字母:A~Z,不包含字母“I”和“O”;
3)漢字:北、邊、藏、川、鄂、甘、贛、貴、桂、黑、滬、吉、冀、津、晉、京、空、遼、魯、蒙、閩、寧、青、瓊、陜、蘇、皖、湘、消、新、渝、豫、粵、云、浙、警、賽。
車牌范例格式如圖1 所示。

圖1 中國內地車牌字符序列
對中國境內車牌字符序列進行分析,可知其排列有以下3 種類型:
1)普通車牌:車牌字符數目是7 個,首字符是漢字、次字符是字母、第3~6 位字符是字母或數字、最后一位字符是字母、數字、或漢字“警”;
2)軍牌車:車牌字符數目是7 個,前2 位字符是字母,后5位字符是數字;
3)武警車牌:字符數目是9 個,前2 位字符是“WJ”,第3位和第4 位字符是數字,第5 位字符是武警牌照中涉及的漢字消、邊、通、森、金、警、電,第6~9 位字符是數字。
車牌字符中的相近字符有如下7 類:(1)0、D、Q;(2)2、Z;(3)4、A;(4)5、S;(5)8、B;(6)M、W;(7)6、G。如圖2 所示。軍牌車的數字“6”和普通車牌的數字“6”區別較大,故都包含到了字符庫中。本類字符的圖形如圖2 所示。

圖2 特征識別字符庫中的字符圖形
模板匹配聯合特征的車牌字符識別算法設計思想是首先把車牌中的所有字符分為2 類:一類字符結構獨特,無相似字符,包含漢字及2.1 所述的7 類字符之外的字符,對該類字符僅應用模板匹配算法便得到識別結果;另一類是2.1 所述的7 類字符,對該類字符先應用模板匹配算法進行初次識別,獲取字符分類后再進行二次特征識別,最終獲得識別結果。
模板匹配算法思想簡單,把待識別字符的數據和字符庫文件中的所有字符數據依次進行比較,重合數目最高且大于識別界值者即為識別結果。模板匹配算法可以匹配字符的所有數據信息,也可以匹配其直方圖,或者二者都匹配。本模板匹配算法匹配的是所有數據。
需要進行二次特征識別的,對相似字符進行二次特征識別時,對于2.1 中的分類(1)至分類(6)采用四邊界投影法。算法思想是首先通過遍歷獲取待識別字符的上下左右四邊界投影數據,然后依次計算和本分類中的所有字符的邊界數據的標準差和,最小的標準差和對應的字符即為識別結果。為了突出差異性,可通過不同的權值進行調整。在差異處的重點數據前面用較大的權值,普通相似數據前面用較小的權值對標準差值進行修正。公式如下:

式中,n 為識別字符四邊界數據的個數;i 為識別字符的數據序號;xi為識別字符的數據;k 為模板中需要匹配的字符數目,為本類相似字符集的數目;ε[k,i]為模板中匹配字符的四邊界數據;ωi為權值。
分類(7)中字符“6”和“G”的區別主要在于圖形中是否存在閉合圓。算法設計時只需從右下角向上向左(圖片內存數據是上下翻轉的,編程時需要從右上角向下向左)搜索,存在斷裂則認為是字符“G”,否則是字符“6”。
2.3.1 標準字符庫及配置文件的建立
在進行車牌字符識別之前,需要建立標準的字符庫及一次識別的配置文件和二次識別的配置文件。
標準字符庫的建立需要從標準車牌中獲取獨立的車牌字符圖像,進行去噪、縮放及二值化處理,生成高度寬度一致白底黑字的8 位BMP 圖像文件。為了提高一次識別時的準確率,同一字符可以有多個字符庫文件,包含不傾斜、向左小角度傾斜、向右小角度傾斜3 種類型。
對標準字符庫中的所有BMP 字符文件數據進行提取,生成一次識別時所需的二進制配置文件,其內容及順序為:首先,是數字、字母、漢字的數目。為方便數據定位,字母位置的數目可以寫入數字字母的和,漢字的數目可以寫入所有字符的和。其次,依次寫入字庫中所有字符的ASCII 碼及序號,數字字母占一個字節,漢字占2 個字節。最后,對字符庫中的字符文件數據依次讀取,并舍棄文件頭,數據信息以壓縮的形式存儲。
二次識別的配置文件是對標準字符庫中的相似字符(不包含字符“6”和“G”)的四邊界數據進行提取,同樣以二進制格式存儲其數據。配置文件b.bin 中的內容分為3 部分:第一部分內容依次是分類序號(1 個字節)、本分類相似字符數目(1個字節)、相似字符的ASCII 碼(各占1 個字節)、四邊界投影數據起始地址(2 個字節)、四邊界投影數據權值起始地址(2 個字節)、結束標志“FFFF”(分類一是“FF”),每個分類占用10 個字節,共60 個字節;第二部分內容依次是相似字符的四邊界數據,和第一部分字符順序保持一致;第三部分內容依次是相似字符四邊界數據的權值,和第一部分字符順序保持一致。
2.3.2 識別算法的實現
車牌字符識別之前首先對車牌原始圖像進行預處理及實現車牌定位和字符分割處理。從外部設備傳輸給車牌識別系統的車牌原始圖像一般是JPEG 或別的格式,在車牌圖像預處理階段轉換成非壓縮的BMP 圖像,再進行灰度變換及二值化,然后實現車牌定位及字符分割。為了和字符庫文件中的數據格式相匹配,分割后的字符需要進行歸一化處理及數據壓縮。把壓縮后的字符數據和配置文件中的數據進行比較,重合數目最高且大于識別界值者(本文中標記為Tlimt)即為識別值。
在車牌字符識別算法設計中,根據2.1 中對中國境內車牌字符序列特征的描述,采用了3 種識別路徑:普通車牌、軍牌車、武警車。首字符的識別尤其重要,決定著后續車牌字符的識別路徑。如果首字符和模板中字符重合的數目小于或等于Tlimt,則認為首字符是干擾字符,存在分割錯誤的情形,丟棄首字符,修正第2 個分割字符為首字符。
在普通車牌字符的識別流程中,次字符識別區為字母,第3~6 位字符識別區為字母數字區、最后一位字符識別區是字母數字或漢字“警”。除首字符之外無法識別出的字符認為定位分割錯誤,放棄識別。識別的重點是對相似字符采取二次識別,次字符的識別區域為字母。軍牌車和武警車的識別流程類似,只是字符的數目及識別序列有所不同。
一次識別的結果如屬于圖2 所示的相似字符集,則進行二次辨識。首先,根據初次識別結果確定識別分類,如一次識別結果是字符“6”或“G”,判斷是否還有封閉圓,算法如2.2 所示。否則如是其他相似字符,則根據初次識別結果確定識別分類并提取待識別字符的四邊界投影數據xi;然后根據識別分類從b.bin 中依次提取本分類所有字符的四邊界數據ε[k,i]及權值ωi;最后對xi、ε[k,i]、ωi應用公式一即可得識別結果。
本系統對4 000 幅JPEG 圖片進行了測試。JPEG 素材圖片分辨率為1 600×1 200,每個像素為24 bits,大部分來自高速路口收費站的拍攝,少部分來自停車場,以藍牌為主,包含了黃牌、黑牌、白牌多種牌照。圖片中,白天拍攝的圖片為3 000 張,晚上拍攝的圖片為1 000 張,以晴好天氣為主,包含少部分的雨雪暴曬及晚上開車燈的環境。測試時所用的軟硬件環境為:
CPU:Intel(R)Core(TM)i5-4460;
主頻:3.20 GHz;
內存:8G;
操作系統:Windows 7;
程序設計語言:Visual C++6.0。
在車牌字符識別算法設計過程中,首先,對原始jpeg 類型車牌圖片進行解壓縮,轉換成BMP 類型圖片;其次,進行車牌預處理,實現車牌BMP 圖片的二值化;然后,進行車牌定位及字符分割;最后,進行車牌字符識別。車牌部分原始圖片如圖3所示,關鍵步驟中的車牌定位、車牌數據提取及車牌字符分割分別如圖4、圖5 和圖6 所示。圖7 展示了識別結果。

圖3 部分原始圖片

圖4 精確定位

圖5 車牌位置數據提取

圖6 字符分割

圖7 識別結果
在車牌定位準確,字符分割無誤的條件下,本字符識別算法的準確率達到了99%,錯誤率主要在于漢字的識別;不包含車牌預處理和車牌定位,車牌字符平均識別時間為50 ms。
在車牌字符識別算法研究中,針對當前國內外單一的算法運用,首次提出了模板匹配聯合特征多種算法相結合的綜合應用方法,有效解決了相似字符識別容易出錯的問題,顯著提高了車牌字符的識別率和識別速度。此外,本算法設計簡單,執行時間快,占用存儲空間小,應用范圍廣,不僅適合公安系統中的車輛追蹤等PC 機領域,也適合無人值守停車收費系統,同時,還適合實時性要求較高的高速路收費系統、電子警察抓拍等嵌入式系統領域。漢字由于結構復雜,前期的二值化及歸一化運算都對字符形態有較大的影響,導致后期識別難度大,是影響車牌字符識別率的另一個因素,也是車牌字符識別領域進一步研究的重點。