基于MATLAB的車牌識別系統(tǒng)的研究
1 引言
車輛牌照是機動車唯一的管理標識符號,在交通管理中具有不可替代的作用,因此車輛牌照識別系統(tǒng)應具有很高的識別率,對環(huán)境光照條件、拍攝位置和車輛行駛速度等因素的影響應有較大的容閾,并應滿足實時性要求。牌照自動識別是一項利用車輛的動態(tài)視頻或靜態(tài)圖像進行牌照號碼、牌照顏色自動識別的模式識別技術,其硬件一般包括觸發(fā)、攝像、照明、圖像采集等設備,其軟件核心包括車牌定位、車牌字符分割和字符識別等算法。
2 系統(tǒng)的實現(xiàn)
2.1 系統(tǒng)簡述
一個完整的牌照識別系統(tǒng)應包括車輛檢測、圖像采集、圖像預處理、車牌定位、字符分割、字符識別等單元。當車輛到達觸發(fā)圖像采集單元時,系統(tǒng)采集當前的視頻圖像,牌照識別單元對圖像進行處理,定位出牌照位置,再將牌照中的字符分割出來進行識別,然后組成牌照號碼輸出。牌照識別系統(tǒng)原理如圖1所示。
2.2 圖像預處理
輸入的彩色圖像包含大量顏色信息,會占用較多的存儲空間,且處理時也會降低系統(tǒng)的執(zhí)行速度,因此對圖像進行識別等處理時,常將彩色圖像轉(zhuǎn)換為灰度圖像,以加快處理速度。對圖像進行灰度化處理、提取背景圖像、增強處理、圖像二值化、邊緣檢測、濾波等處理的主要MATLAB語句如下所示:
2.3 車牌定位
自然環(huán)境下,汽車圖像背景復雜,光照不均勻,在自然背景中準確地確定牌照區(qū)域是整個圖像識別過程中的關鍵。首先對采集到的圖像進行大范圍相關搜索,找到符合汽車牌照特征的若干區(qū)域作為候選區(qū),然后對這些侯選區(qū)域做進一步分析、評判,最后選定一個最佳區(qū)域作為牌照區(qū)域,將其從圖像中分割出來,同時要考慮車牌傾斜問題。算法流程如下:
(1)對二值圖像進行區(qū)域提取,計算并比較區(qū)域特征參數(shù),提取車牌區(qū)域。
(2)計算包含所標記區(qū)域的最小寬和高,并根據(jù)先前知識,提取并顯示更接近的車牌二子值圖。
(3)通過計算車牌旋轉(zhuǎn)角度解決車牌傾斜問題。由于車牌傾斜導致投影效果峰谷不明顯,需車牌矯正處理。采取線性擬合方法,計算出車牌上邊或下邊圖像值為1 的點擬合直線與水平X軸的夾角。用MATLAB函數(shù)的旋轉(zhuǎn)車牌圖象函數(shù)Imrotate,計算車牌旋轉(zhuǎn)角度和經(jīng)旋轉(zhuǎn)、二值化后的車牌二值子圖處理結果如圖 2所示。
2.4 字符分割
完成牌照區(qū)域的定位后,再將牌照區(qū)域分割為單個字符。一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符間或字符內(nèi)的間隙處取得局部最小值,并且該位置應滿足牌照的字符書寫格式、字符、尺寸限制等條件。利用垂直投影法實現(xiàn)復雜環(huán)境下汽車圖像中的字符分割效果較好。通過分析計算字符的水平投影和垂直投影,可獲得車牌字符高度、字符頂行與尾行、字符寬度、每個字符的中心位置,以方便提取分割字符。然后計算車牌垂直投影,去掉車牌垂直邊框。獲取車牌及字符平均寬度。最后計算車牌每個字符的中心位置和最大字符寬度,提取分割字符,其算法流程如圖3所示,通過程序算法計算的車牌字符高度和寬度及分割的字符,如圖4所示。
3 結論
從MATLAB編程運行結果看,這里采用的圖像識別算法對車牌的定位非常有效,該算法可有效檢測車牌圖像的上下左右邊框、旋轉(zhuǎn)角度,準確分割及識別車牌字符。通過對多個車牌進行試驗,正確率高,與傳統(tǒng)的采用C++語言相比,工作量和開發(fā)周期都減少很多。實際應用中,牌照識別系統(tǒng)的識別率與牌照質(zhì)量和圖像拍攝質(zhì)量密切相關,還會受到各種因素,需不斷完善識別系統(tǒng)和算法。