廣東工業大學 周家振 杜玉曉
車牌識別是目前交通管理業務中備受關注的問題,隨著人們對該領域的研究,車牌識別技術不斷完善。其中,車牌識別是通過攝像頭自動抓拍圖片上的車牌并識別車牌號碼,在交通管理方面得到了廣泛的應用。本文對車牌定位識別算法展開了研究,并通過實驗驗證算法的合理性與準確性。
車牌識別系統的主要步驟有以下幾方面,分別為圖像預處理、車牌檢測、車牌圖像分割和字符識別。傳統的車牌定位方法,如基于邊緣檢測與基于顏色特征檢測的方法很難處理復雜的場景,以及字符識別采用傳統的BP網絡方法訓練時間較慢。因此,本文提出采用傳統方法與深度學習的方法進行車牌定位,訓練CNN模型進行車牌字符識別,以解決復雜場景下的車牌能夠精確定位與識別車牌字符的問題。
車牌定位方面,本文研究了一種結合了基于邊緣檢測與基于顏色特征檢測的方式,選取出候選車牌區域,然后采用CNN模型對這些候選車牌區域進行識別,判斷是否是車牌,并截圖保存;這種方式對車牌做了兩次定位,并利用模型進行了一次判斷,能夠在復雜背景下檢測出車牌,大大提高了車牌定位的精確度。
本文采用Sobel算子邊緣檢測,過濾掉大量的背景圖,留下少部分邊緣,這些邊緣主要是由車輛與車牌的邊緣構成,通過后面的閾值分割能夠把部分邊緣去掉,從而達到過濾掉大部分區域的效果,得到基于邊緣檢測的區域。
其中Sobel算子的計算公式如下:


基于顏色特征的圖像預處理是將圖片轉為hsv圖片后,選取出黃色色調區間[26,34]或藍色色調區間:[100,124]的區域。
得到兩種預處理后的區域,對它們進行混合操作,得到效果如圖1所示。

圖1 結合兩種方式的車牌定位
采用OTSU算法的閾值分割進行最優分割,定義一個21×5卷積核,進行形態學的閉操作,圖像處理完后,查找輪廓通過漫水填充算法進行輪廓修正后,通過車牌判斷條件挑選出候選車牌區域。本文判斷車牌的條件主要有兩種,第一種是根據候選車牌區域的長寬比,第二種是根據通過CNN模型進行車牌模型訓練,用該模型進行識別車牌。其中CNN模型結構是采用了3層卷積層、3層池化層與3層全連接層,并加入了dropout函數進行去擬合化,避免模型過擬合。其中,模型的訓練過程如圖2所示。

圖2 車牌識別模型訓練過程
其中,模型訓練數據僅采用了1906張車牌圖片與3968張非車牌圖片,從圖2中可以看出訓練次數達到200次時就開始趨于穩定,精度達到99%,模型性能較優。
車牌字符識別模型訓練跟車牌識別采用的模型一樣,訓練的數據集主要有數字、字母與漢字。與之前模型不同的是,在輸出預測結果方面,車牌識別模型預測結果僅有兩個,而車牌字符識別模型輸出的識別結果主要有10個數字、26個字母、31個漢字,訓練次數為700次以上并且精度99%以上即可停止。其中,字符訓練的過程如圖3所示。

圖3 車牌字符識別模型訓練過程
有了前面的算法,下面開始進行實驗,測試前面的算法,最終識別的字符正確個數越多,說明該模型越好。
通過圖4、圖5比對可以看出,實驗結果表明,該車牌定位識別算法識別車牌的效果還是不錯的,基本能夠識別車牌的字符,具有較高的識別率。

圖4 識別的車牌圖片

圖5 識別車牌圖片的結果
結論:本文采用了基于邊緣檢測與顏色特征對車牌圖像進行了預處理操作,采用了形態學處理對圖像進行了膨脹腐蝕操作,去除了一些空隙,接著通過輪廓查找的方式找到車牌候選區域,利用訓練好的車牌識別模型識別是否是車牌,得到車牌區域圖像后,對車牌進行字符切割與字符識別,最終通過實驗測試該算法能夠有效的識別出車牌的字符并顯示出來。