基于支持向量機(jī)的車(chē)牌定位方法
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1 引 言
智能交通系統(tǒng)是一個(gè)熱點(diǎn)研究領(lǐng)域,受到日益廣泛的關(guān)注。車(chē)牌識(shí)別系統(tǒng)(LPR)是計(jì)算機(jī)視覺(jué)、模式識(shí)別技術(shù)在智能交通領(lǐng)域的一個(gè)重要應(yīng)用,包括車(chē)牌定位、車(chē)牌字符分割、字符識(shí)別三部分。其中車(chē)牌定位是整個(gè)系統(tǒng)中的關(guān)鍵步驟。
目前車(chē)牌定位方法主要有:
(1)基于Hough變換的方法,分析車(chē)牌具有明顯的矩形邊框,利用Hough變換檢測(cè)區(qū)域邊界實(shí)現(xiàn)定位。
(2)基于邊緣檢測(cè)的方法,利用了車(chē)牌字符邊緣豐富的特征,結(jié)合數(shù)學(xué)形態(tài)學(xué)或區(qū)域生長(zhǎng)方法實(shí)現(xiàn)牌照定位。
(3)基于神經(jīng)網(wǎng)絡(luò)的方法,利用圖像的顏色或紋理特征訓(xùn)練神經(jīng)網(wǎng)絡(luò),然后用訓(xùn)練好的分類(lèi)器對(duì)圖像各個(gè)像素進(jìn)行分類(lèi),再對(duì)分類(lèi)結(jié)果綜合,得到牌照的準(zhǔn)確定位。然而由于光照不均、污染等因素影響,可能使得牌照區(qū)域邊界不明顯或存在多個(gè)干擾區(qū)域,從而增加了準(zhǔn)確定位的難度。
要提高車(chē)牌定位的精度,應(yīng)充分利用他自身提供的信息,突出車(chē)牌區(qū)域而抑制非車(chē)牌區(qū)域。車(chē)牌區(qū)域有著豐富的紋理,尋找一種良好性能的分類(lèi)器,凸現(xiàn)這種紋理特征,使他與其他區(qū)域區(qū)別開(kāi)來(lái)。支持向量機(jī)(Support Vector Machine,SVM)正是這樣一種分類(lèi)學(xué)習(xí)機(jī)制,建立在結(jié)構(gòu)風(fēng)險(xiǎn)最小化(Structural Risk Minimization,SRM)準(zhǔn)則之上,已經(jīng)在文本識(shí)別,人臉識(shí)別,紋理分類(lèi)等模式識(shí)別領(lǐng)域取得了成功。
本文使用SVM機(jī)制自動(dòng)定位車(chē)牌區(qū)域,首先對(duì)每幅訓(xùn)練圖像切分成若干個(gè)N×N大小的圖像子塊,把每個(gè)字塊分別標(biāo)注為車(chē)牌和非車(chē)牌區(qū)域兩類(lèi),提取子塊圖像的特征向量訓(xùn)練SVM分類(lèi)器;然后使用該分類(lèi)器對(duì)測(cè)試圖像中的各個(gè)像素進(jìn)行分類(lèi),最后通過(guò)后期處理結(jié)合車(chē)牌的先驗(yàn)知識(shí)實(shí)現(xiàn)車(chē)牌區(qū)域的定位。
2 SVM原理
SVM基于SRM準(zhǔn)則構(gòu)造最優(yōu)超平面,使每類(lèi)數(shù)據(jù)之間間隔最大,同時(shí)保持分類(lèi)誤差盡可能小。Cover定理指出:一個(gè)復(fù)雜的模式識(shí)別分類(lèi)問(wèn)題,在高維空間比低維空間更容易線性可分。實(shí)際上SVM實(shí)現(xiàn)了這樣的思想:通過(guò)某種事先選擇的非線性映射將向量x映射到一個(gè)高維特征空間,然后在這個(gè)空間中構(gòu)造最優(yōu)分類(lèi)超平面。
對(duì)于兩類(lèi)模式分類(lèi)問(wèn)題,在非線性可分的情況下,通過(guò)一個(gè)非線性變換φ:x→φ (x),將給定的模式數(shù)據(jù)映射到高維特征空間,再構(gòu)造分類(lèi)超平面,表示為決策面:
考慮到兩類(lèi)樣本離決策面都應(yīng)有一定距離,決策面應(yīng)滿足不等式約束:
完全滿足式(2)的超平面是不存在的。考慮到存在一些樣本不能被決策面正確分類(lèi),引入松弛變量ξi(≥0),約束條件式(2)變?yōu)椋?/p>
滿足要求的超平面不止一個(gè),尋找最優(yōu)超平面可以歸結(jié)為二次規(guī)劃問(wèn)題:
其中C被稱為懲罰因子,通過(guò)C可以在分類(lèi)器的泛化能力和誤分率之間進(jìn)行折衷。利用拉格朗日函數(shù)求解可得優(yōu)化問(wèn)題(4)的對(duì)偶形式,最大化函數(shù):
求解式(5)可以得到ai,代入式(7)可以確定ω,分類(lèi)函數(shù)可表示為:
3 SVM定位車(chē)牌區(qū)域
車(chē)牌區(qū)域準(zhǔn)確定位是一種非線性可分的模式分類(lèi)問(wèn)題。
3.1 特征提取
利用SVM自身結(jié)構(gòu)可以實(shí)現(xiàn)有效的特征提取,選擇直接提取像素灰度特征。圖像像素點(diǎn)之間不是孤立的,相互之間存在著相關(guān)性,體現(xiàn)了一種紋理。可以通過(guò)提取一些特定像素的灰度值作為整幅圖像的特征,同時(shí)減少了計(jì)算量。首先將每幅圖像切割成若干個(gè)N×N子塊,再將每一子塊標(biāo)注為牌照區(qū)域(+1)和非牌照區(qū)域(-1)兩類(lèi),然后使用圖1所示“米”字型模型提取像素灰度值(圖中陰影為要提取的像素點(diǎn))。這樣每幅子圖的特征維數(shù)由N×N減少到4N-3,提高了訓(xùn)練和分類(lèi)速度。
3.2 SVM分類(lèi)器
SVM分類(lèi)器分為三層結(jié)構(gòu),結(jié)構(gòu)示意見(jiàn)圖2。輸入層的維數(shù)為子圖的特征維數(shù)4N-3,輸入值是灰度值。隱含層的維數(shù)是由訓(xùn)練獲得的支持向量決定,即由訓(xùn)練階段自動(dòng)獲得,而且二次規(guī)劃在凸集下的解是全局最優(yōu)解,避免陷入局部最小。隱含層計(jì)算輸入向量與支持向量之間的內(nèi)積,完成非線性映射,通過(guò)核函數(shù)一步來(lái)實(shí)現(xiàn)的。輸出層的輸出就是對(duì)隱層的輸出與權(quán)值ωi的乘積求和,權(quán)值aiyi也是在訓(xùn)練中獲得的。
SVM中研究最多的核函數(shù)主要有三類(lèi):多項(xiàng)式、徑向基函數(shù)(RBF)和多層Sigmoid神經(jīng)網(wǎng)絡(luò)。實(shí)驗(yàn)中使用的是多項(xiàng)式核函數(shù),形式為:
作為一種基于樣本學(xué)習(xí)的方法,我們希望訓(xùn)練樣本集盡可能地大,以獲得比較充分的代表性。然而考慮到實(shí)際的限制,這個(gè)尺寸又必須是適中的。因此,問(wèn)題就是如何構(gòu)造一個(gè)全面又可行的訓(xùn)練樣本集。對(duì)于車(chē)牌定位問(wèn)題,所有包含牌照區(qū)域的圖像可以作為正樣本,困難點(diǎn)是收集負(fù)樣本,因?yàn)閷?shí)際上存在太多的不包含牌照的圖像可以作為負(fù)樣本。如何在這些圖像中選取具有代表性的子集,實(shí)驗(yàn)中采用了一種叫“自舉”(bootstrap)的方法,他已被Sung和Poggio成功地應(yīng)用于人臉識(shí)別。主要思想就是一些負(fù)樣本(非牌照)是在訓(xùn)練中獲得而不是在訓(xùn)練以前,具體實(shí)現(xiàn)步驟如下:
(1)建立包含正樣本(牌照區(qū)域)和負(fù)樣本(非牌照區(qū)域)的訓(xùn)練集合N1;
(2)用N1訓(xùn)練SVM;
(3)用訓(xùn)練好的SVM分類(lèi)器對(duì)隨機(jī)選取的非牌照樣本進(jìn)行分類(lèi)測(cè)試,收集那些被錯(cuò)分為牌照的樣本;
(4)隨機(jī)選取20%的錯(cuò)分類(lèi)樣本加入到訓(xùn)練集N1;
(5)重復(fù)(2)~(4)步直至沒(méi)有再發(fā)現(xiàn)錯(cuò)分的樣本;
(6)使用最終獲得的N1訓(xùn)練SVM。
圖3顯示了一些用于訓(xùn)練的樣本。
最后,用訓(xùn)練好的SVM分類(lèi)器掃描全圖,根據(jù)輸出類(lèi)別,對(duì)每個(gè)N×N小窗口的中心像素做出判斷。如果輸出+1就認(rèn)為他是牌照區(qū)域,賦值為255;否則,則認(rèn)為他不是牌照區(qū)域,賦值為0。如圖4(a)所示。
SVM通過(guò)訓(xùn)練選擇對(duì)分類(lèi)超平面起決定作用的支持向量,就像選擇了一組特定的濾波器,突出了牌照區(qū)域。在SVM分類(lèi)器中濾波器的數(shù)目和系數(shù)是在訓(xùn)練中自動(dòng)獲得的。
3.3 分割牌照區(qū)域
對(duì)每個(gè)像素做出分類(lèi)判斷后,得到一個(gè)二值圖像,還必須進(jìn)行一些處理,其目的是合并感興趣區(qū)域和去除噪聲。本文采用數(shù)學(xué)形態(tài)學(xué)對(duì)二值圖像進(jìn)行處理,在此基礎(chǔ)之上再做水平和垂直兩個(gè)方向的投影,最后,根據(jù)投影并結(jié)合車(chē)牌自身的一些先驗(yàn)知識(shí),如長(zhǎng)寬比、車(chē)牌的字符數(shù)、字符間距,實(shí)現(xiàn)牌照區(qū)域的定位。分割過(guò)程主要包括以下幾個(gè)步驟:
(1)首先訓(xùn)練SVM分類(lèi)器,用他掃描圖像,對(duì)像素進(jìn)行分類(lèi),獲得分類(lèi)后的二值圖像。
(2)應(yīng)用數(shù)學(xué)形態(tài)學(xué)方法對(duì)分類(lèi)結(jié)果所得圖像進(jìn)行處理、去除噪聲。
(3)再對(duì)圖像做水平投影和高斯迭代平滑處理。
(4)確定牌照水平區(qū)域:在平滑處理后的水平投影圖中,獲取峰值點(diǎn)以及與這些峰值點(diǎn)最接近的左右側(cè)谷值點(diǎn),由左右側(cè)谷值點(diǎn)確定一個(gè)水平區(qū)域的高度g,峰值大于車(chē)牌最小寬度F時(shí),該區(qū)域是車(chē)牌可能所在的水平區(qū)域。其中:F=Rmin×g,Rmin為標(biāo)準(zhǔn)車(chē)牌寬高比的最小值。
(5)確定牌照垂直區(qū)域:對(duì)于車(chē)牌可能所在的水平區(qū)域進(jìn)行垂直投影(同樣采取高斯疊代平滑),由垂直投影圖將水平區(qū)域分成一塊塊較小的區(qū)域,計(jì)算出最大字符間距D,將間距小于等于D的區(qū)域合并。其中:D=Tmax×Rmax×g,Rmax為標(biāo)準(zhǔn)車(chē)牌寬高比的最大值,Tmax為標(biāo)準(zhǔn)車(chē)牌最大字符間距與車(chē)牌寬度之比。合并后區(qū)域的寬高比大于Rmin的為車(chē)牌可能所在的區(qū)域。
(6)牌照的確定與分割:根據(jù)標(biāo)準(zhǔn)車(chē)牌的字符個(gè)數(shù)和筆劃數(shù)的范圍,檢測(cè)各區(qū)域水平方向上的跳變化次數(shù),若在該范圍內(nèi)則認(rèn)為該區(qū)域?yàn)檐?chē)牌所在的區(qū)域,然后在含有牌照的原圖中切出與(4)中相應(yīng)的區(qū)域。
4 實(shí)驗(yàn)結(jié)果分析
實(shí)驗(yàn)收集了200幅車(chē)牌圖像,任意選取100幅作為訓(xùn)練樣本,還收集了一些不包含車(chē)牌的圖像作為自舉訓(xùn)練方法的樣本。
程序使用Microsoft VC++6.0編寫(xiě)。訓(xùn)練和識(shí)別所用的圖像子塊尺寸N取15,特征數(shù)據(jù)歸一化在0~1之間。核函數(shù)多項(xiàng)式的次數(shù)d的值取5,SVM的懲罰因子C取100,訓(xùn)練SVM的算法采用的是JohnC.Platt提出的序列最小優(yōu)化算法。剩余100幅圖像作為測(cè)試樣本,其中能正確定位的有93幅,有7幅沒(méi)有正確定位。引起錯(cuò)誤的原因主要有圖像中相似的字符區(qū)域過(guò)多或者圖像本身過(guò)于模糊,相似區(qū)域過(guò)多干擾了牌照區(qū)域,而圖像模糊則損失了牌照區(qū)域有用的紋理信息。實(shí)驗(yàn)結(jié)果表明,SVM在小樣本下可以獲得較好的識(shí)別效果。
圖4給出了圖3(b)中示例圖像車(chē)牌定位過(guò)程,圖4(a)為經(jīng)過(guò)SVM分類(lèi)輸出的二值圖,圖4(b)為數(shù)學(xué)形態(tài)學(xué)濾波處理后的結(jié)果,圖4(c)為最終車(chē)牌定位結(jié)果。
5 結(jié) 語(yǔ)
車(chē)牌定位是一種非線性可分問(wèn)題,牌照區(qū)域包含了豐富的紋理信息,利用這個(gè)特征可以實(shí)現(xiàn)牌照區(qū)域的定位。本文使用SVM對(duì)含牌照的汽車(chē)圖像中像素進(jìn)行分類(lèi),再經(jīng)過(guò)數(shù)學(xué)形態(tài)學(xué)處理并結(jié)合牌照先驗(yàn)知識(shí)實(shí)現(xiàn)定位。實(shí)驗(yàn)表明該方法取得了較好的定位效果。