楊新年,蘇 暢,高冠福,魏喜雯
(黑龍江工業(yè)學(xué)院 電氣與信息工程學(xué)院,黑龍江 雞西 158100)
當(dāng)前,智能交通系統(tǒng)已被廣泛應(yīng)用于人們的生活中。其中,車牌檢測識別系統(tǒng)作為智能交通系統(tǒng)的組成部分,在高速公路、小區(qū)入口和停車場等場所被頻繁使用[1-2]。因此,設(shè)計具有強(qiáng)魯棒性,可適應(yīng)多種環(huán)境的車牌檢測識別系統(tǒng)具有重要意義。目前,車牌檢測識別系統(tǒng)的研究方法多種多樣,但大致流程基本一致。車牌檢測識別系統(tǒng)通常由圖像輸入、車牌定位、字符分割、字符識別和字符輸出5部分組成,主要流程如圖1所示。本文根據(jù)該流程設(shè)計并實現(xiàn)了一個能夠?qū)?fù)雜環(huán)境下車牌進(jìn)行檢測識別的系統(tǒng),并取得了較好的效果。
圖1 車牌檢測識別流程
在將圖像輸入到車牌檢測識別系統(tǒng)之后,首先確定圖像中車牌的位置,為之后的車牌字符分割和識別提供基礎(chǔ)。目前,車牌定位一般選用邊緣特征定位車牌的算法、利用匹配模板定位車牌位置的算法和利用顏色特征定位車牌的算法等[3-4]。每種算法都存在優(yōu)缺點,本文綜合考慮后,選擇經(jīng)過邊緣檢測后進(jìn)行形態(tài)學(xué)處理以通過車牌形狀進(jìn)行定位的方法,若該方法仍無法精準(zhǔn)定位,則進(jìn)一步通過車牌的顏色特征進(jìn)行定位,以提高車牌定位的準(zhǔn)確率。
在進(jìn)行邊緣檢測之前首先進(jìn)行圖像預(yù)處理,此舉使得后續(xù)步驟在取得較好處理效果的同時,能夠加快處理速度。圖像預(yù)處理包括圖像去噪和灰度化兩部分。
圖像去噪:因原始圖像在拍攝過程中受多種因素的影響會產(chǎn)生噪聲,所以需通過濾波對原始圖像進(jìn)行降噪處理。本文選用高斯濾波的方法對圖像進(jìn)行處理。高斯濾波是一種線性平滑濾波方法,可使用該方法對整幅圖像進(jìn)行加權(quán)平均。
灰度化:因原始圖像是彩色圖像,其所占用空間較灰度圖像大,為了提高系統(tǒng)的運行速度,需要將原始圖像轉(zhuǎn)化為灰度圖像,以提高后續(xù)車牌定位準(zhǔn)確率和系統(tǒng)識別效率。
對圖像預(yù)處理之后,因車牌與周圍環(huán)境有明顯的區(qū)分度,所以本文采用Canny算子對圖像進(jìn)行邊緣檢測,以確定車牌可能存在的位置。Canny算子是一種多級檢測算法,適用于不同的場合,其參數(shù)可根據(jù)不同的要求進(jìn)行調(diào)整,從而達(dá)到較好的邊緣檢測效果。
在進(jìn)行邊緣檢測之后,提取的邊緣附近仍存在干擾點和不閉合的邊緣區(qū)域,通過形態(tài)學(xué)的膨脹、腐蝕、開運算和閉運算處理,可消除邊緣區(qū)域的大部分噪聲點,同時將車牌的邊緣區(qū)域閉合,以提高車牌定位的準(zhǔn)確率。
經(jīng)邊緣檢測和形態(tài)學(xué)處理之后,基本可提取出車牌區(qū)域的大致輪廓,但仍然可能存在孤立的噪聲點,影響車牌輪廓的精準(zhǔn)確定,因此可對圖像進(jìn)行平滑處理,以消除孤立的噪聲點。
對圖像進(jìn)行平滑處理之后會存在多個閉合區(qū)域,需要刪除其中的非車牌區(qū)域。具體方法:獲取這些位置的左上點坐標(biāo)和右下點坐標(biāo),大致計算該區(qū)域的面積,將該區(qū)域面積與設(shè)定面積值進(jìn)行比較,排除其中的不可能因素,以確定車牌圖像的位置。
在移除小對象之后,便可大致確定車牌的位置,但若仍存在定位不準(zhǔn)的情況,則再次根據(jù)車牌的顏色值排除[5]。由于我國的車牌顏色是固定的,因此可根據(jù)設(shè)定的顏色閾值進(jìn)行顏色定位,以精準(zhǔn)定位車牌位置。
因拍攝角度問題,所得到的車牌有可能是傾斜的,不利于后續(xù)字符提取、分割和識別[6]。利用仿射變換法可將該部分圖像進(jìn)行傾斜矯正,以保證二維圖像的平行性及平直性。
車牌由7個字符構(gòu)成,包括1個漢字,1個英文字母以及數(shù)字或者英文字母(共計5個)。為識別這些字符,首先需要對其分割。常用于字符分割的方法包括基于圖像直方圖的垂直投影法、基于車牌字符固定間隔的車牌尺寸法以及基于輪廓的車牌字符輪廓檢測法等[7-8]。本文根據(jù)國家標(biāo)準(zhǔn)設(shè)置字符的間隔范圍,然后通過垂直、水平投影相結(jié)合的方法進(jìn)行字符分割。具體步驟如下:
(1)對車牌圖像進(jìn)行二值化處理;
(2)對圖像進(jìn)行垂直投影,獲取對應(yīng)數(shù)值;
(3)比對數(shù)值,獲取第一個局部最小值的位置,該位置為車牌在水平方向的邊界;
(4)從左至右重復(fù)上述步驟,找到單個字符的水平邊界;
(5)在水平方向上通過重復(fù)步驟(2)和步驟(3)來確定垂直方向的邊界,直至完成字符分割。
字符分割效果如圖2所示。
圖2 字符分割效果
為減少計算量,本文采用一對多分類器。根據(jù)車牌的實際情況,排在首位的漢字部分使用31個分類器進(jìn)行識別,排在后面的數(shù)字和英文字符使用34個分類器進(jìn)行識別。訓(xùn)練之前,首先提取每個字符的特征并將之保存在.dat文件中,方便后續(xù)程序讀取。然后對上述分割好的字符圖像提取對應(yīng)的特征參數(shù)并代入分類函數(shù),由此計算、比較得出相應(yīng)的預(yù)測值。
本文基于Python+OpenCV實現(xiàn)車牌檢測識別系統(tǒng),具體結(jié)果如圖3所示。圖3(a)為通過車牌形狀進(jìn)行車牌定位識別的結(jié)果,圖3(b)為通過顏色進(jìn)行車牌定位識別的結(jié)果。優(yōu)先進(jìn)行形狀定位,若經(jīng)過形狀定位后仍無法排除噪聲影響,則使用顏色定位,定位后進(jìn)行識別。
圖3 系統(tǒng)識別效果
為了能夠解決復(fù)雜環(huán)境下的車牌檢測和識別問題,文中設(shè)計了一個具有較強(qiáng)魯棒性的車牌檢測識別系統(tǒng),并基于Python+OpenCV實現(xiàn)。其中車牌定位部分通過車牌顏色和車牌形狀相結(jié)合的方法精準(zhǔn)定位車牌;字符分割通過垂直、水平投影相結(jié)合的方法實現(xiàn);字符識別使用SVM方法完成,在識別后輸出相關(guān)信息。經(jīng)驗證,系統(tǒng)識別取得了較好的效果。