基于支持向量機的車(chē)牌定位方法
圖3顯示了一些用于訓練的樣本。
最后,用訓練好的SVM分類(lèi)器掃描全圖,根據輸出類(lèi)別,對每個(gè)N×N小窗口的中心像素做出判斷。如果輸出+1就認為他是牌照區域,賦值為255;否則,則認為他不是牌照區域,賦值為0。如圖4(a)所示。
SVM通過(guò)訓練選擇對分類(lèi)超平面起決定作用的支持向量,就像選擇了一組特定的濾波器,突出了牌照區域。在SVM分類(lèi)器中濾波器的數目和系數是在訓練中自動(dòng)獲得的。
3.3 分割牌照區域
對每個(gè)像素做出分類(lèi)判斷后,得到一個(gè)二值圖像,還必須進(jìn)行一些處理,其目的是合并感興趣區域和去除噪聲。本文采用數學(xué)形態(tài)學(xué)對二值圖像進(jìn)行處理,在此基礎之上再做水平和垂直兩個(gè)方向的投影,最后,根據投影并結合車(chē)牌自身的一些先驗知識,如長(cháng)寬比、車(chē)牌的字符數、字符間距,實(shí)現牌照區域的定位。分割過(guò)程主要包括以下幾個(gè)步驟:
(1)首先訓練SVM分類(lèi)器,用他掃描圖像,對像素進(jìn)行分類(lèi),獲得分類(lèi)后的二值圖像。
(2)應用數學(xué)形態(tài)學(xué)方法對分類(lèi)結果所得圖像進(jìn)行處理、去除噪聲。
(3)再對圖像做水平投影和高斯迭代平滑處理。
(4)確定牌照水平區域:在平滑處理后的水平投影圖中,獲取峰值點(diǎn)以及與這些峰值點(diǎn)最接近的左右側谷值點(diǎn),由左右側谷值點(diǎn)確定一個(gè)水平區域的高度g,峰值大于車(chē)牌最小寬度F時(shí),該區域是車(chē)牌可能所在的水平區域。其中:F=Rmin×g,Rmin為標準車(chē)牌寬高比的最小值。
(5)確定牌照垂直區域:對于車(chē)牌可能所在的水平區域進(jìn)行垂直投影(同樣采取高斯疊代平滑),由垂直投影圖將水平區域分成一塊塊較小的區域,計算出最大字符間距D,將間距小于等于D的區域合并。其中:D=Tmax×Rmax×g,Rmax為標準車(chē)牌寬高比的最大值,Tmax為標準車(chē)牌最大字符間距與車(chē)牌寬度之比。合并后區域的寬高比大于Rmin的為車(chē)牌可能所在的區域。
(6)牌照的確定與分割:根據標準車(chē)牌的字符個(gè)數和筆劃數的范圍,檢測各區域水平方向上的跳變化次數,若在該范圍內則認為該區域為車(chē)牌所在的區域,然后在含有牌照的原圖中切出與(4)中相應的區域。
4 實(shí)驗結果分析
實(shí)驗收集了200幅車(chē)牌圖像,任意選取100幅作為訓練樣本,還收集了一些不包含車(chē)牌的圖像作為自舉訓練方法的樣本。
程序使用Microsoft VC++6.0編寫(xiě)。訓練和識別所用的圖像子塊尺寸N取15,特征數據歸一化在0~1之間。核函數多項式的次數d的值取5,SVM的懲罰因子C取100,訓練SVM的算法采用的是JohnC.Platt提出的序列最小優(yōu)化算法。剩余100幅圖像作為測試樣本,其中能正確定位的有93幅,有7幅沒(méi)有正確定位。引起錯誤的原因主要有圖像中相似的字符區域過(guò)多或者圖像本身過(guò)于模糊,相似區域過(guò)多干擾了牌照區域,而圖像模糊則損失了牌照區域有用的紋理信息。實(shí)驗結果表明,SVM在小樣本下可以獲得較好的識別效果。
圖4給出了圖3(b)中示例圖像車(chē)牌定位過(guò)程,圖4(a)為經(jīng)過(guò)SVM分類(lèi)輸出的二值圖,圖4(b)為數學(xué)形態(tài)學(xué)濾波處理后的結果,圖4(c)為最終車(chē)牌定位結果。
5 結 語(yǔ)
車(chē)牌定位是一種非線(xiàn)性可分問(wèn)題,牌照區域包含了豐富的紋理信息,利用這個(gè)特征可以實(shí)現牌照區域的定位。本文使用SVM對含牌照的汽車(chē)圖像中像素進(jìn)行分類(lèi),再經(jīng)過(guò)數學(xué)形態(tài)學(xué)處理并結合牌照先驗知識實(shí)現定位。實(shí)驗表明該方法取得了較好的定位效果。
評論