王 毅,王創(chuàng)新,盧 進(jìn),盛文正
(長沙理工大學(xué)電氣與信息工程學(xué)院,湖南長沙 410004)
車牌識別是智能交通領(lǐng)域的熱點(diǎn)問題,主要包括車牌檢測、字符分割、字符識別3部分,其在監(jiān)測報(bào)警、超速違章處罰、車輛出入管理及自動(dòng)放行、高速公路收費(fèi)管理、計(jì)算車輛旅行時(shí)間和牌照號碼自動(dòng)登記等方面有著重要應(yīng)用。車牌檢測作為車牌識別的一個(gè)重要部分,是車牌識別系統(tǒng)中的關(guān)鍵,車牌檢測算法的質(zhì)量直接影響車牌識別的精度。
近年來出現(xiàn)了多種用于車牌檢測的算法,主要分為兩類:一類是基于車牌特征的檢測算法,包括基于車牌結(jié)構(gòu)特征的檢測算法和基于車牌顏色特征的檢測算法,如潘秋萍[1]等提出的基于Haar與MB-LBP特征的車牌檢測算法;苗立剛[2]等提出的基于最近鄰鏈的車牌檢測算法,該方法能有效消除光照變化的影響,但是整個(gè)檢測過程繁瑣,計(jì)算復(fù)雜度高;吳子章[3]等提出的一種基于顏色融合和匹配濾波器的車牌檢測算法;李紅林[4]提出的基于改進(jìn)的HSV模型及邊緣顏色均值對的車牌檢測算法,該方法對光照條件和車牌質(zhì)量有一定的要求。另一類是基于統(tǒng)計(jì)學(xué)習(xí)的檢測算法,這就包括常用的AdaBoost算法,AdaBoost算法能夠?qū)崟r(shí)地檢測到車牌,檢測精度高,且有較高的魯棒性[5-6]。
本文主要針對傳統(tǒng)AdaBoost算法樣本訓(xùn)練學(xué)習(xí)過程中出現(xiàn)的過配現(xiàn)象以及檢測率偏低這兩種情況,在傳統(tǒng)AdaBoost算法的基礎(chǔ)上對其權(quán)值更新規(guī)則和弱分類器的加權(quán)參數(shù)做了改進(jìn),有效抑制了過配現(xiàn)象的發(fā)生且得到檢測率更高的強(qiáng)分類器,并通過利用HSV顏色模型構(gòu)建第一層強(qiáng)分類器,通過構(gòu)建級聯(lián)分類器實(shí)現(xiàn)對車牌圖像的實(shí)時(shí)有效檢測。
HSV顏色模型是A.R.Smith根據(jù)顏色的直觀特性在1978年創(chuàng)建的一種顏色空間,也稱六角錐體模型。該模型中顏色的參數(shù)分別是:色調(diào)(H),飽和度(S),亮度(V)。其中色調(diào)H表示不同的顏色,用角度度量,取值范圍為0°~360°;飽和度S表示顏色的深淺,取值范圍為0.0~1.0;亮度V表示顏色的明暗程度,取值范圍為0.0(黑色)~1.0(白色)。
由于HSV顏色模型相比于RGB顏色空間與人的視覺特性更為接近,本文采取使用廣泛的HSV顏色模型對車牌進(jìn)行初步檢測。HSV顏色空間符合人對色彩的感知,各顏色分量具備獨(dú)立性,顏色信息丟失少,可以利用H值參數(shù)較好地衡量出車牌顏色特征,進(jìn)而得到用于車牌檢測的級聯(lián)分類器的第一層強(qiáng)分類器,可以有效降低算法時(shí)間,提高算法性能[7]。實(shí)際車牌類型多種多樣,因國內(nèi)以小型民用汽車為主,牌照為藍(lán)底白字,本文中研究的檢測車牌限制為比較常見的藍(lán)底白字的標(biāo)準(zhǔn)矩形車牌。
從RGB到HSV顏色空間的H值轉(zhuǎn)換公式為
選取100張車牌樣本圖像,將其都轉(zhuǎn)換到HSV顏色空間,設(shè)置顏色計(jì)數(shù)器,對每張圖片中的每個(gè)像素獲取H顏色值,根據(jù)H值,用顏色計(jì)數(shù)器進(jìn)行累加。得到如圖1所示的車牌藍(lán)顏色統(tǒng)計(jì)直方圖。
圖1 車牌藍(lán)顏色統(tǒng)計(jì)直方圖
由圖1所示,大部分顏色數(shù)量主要集中在H值為[200°,280°]的區(qū)域,根據(jù)車牌顏色特征即可將車牌藍(lán)色顏色的H值定義在[200°,280°]區(qū)域。通過遍歷每個(gè)子區(qū)域,讀取子區(qū)域的每個(gè)像素,若 H∈[200°,280°],則該像素即為藍(lán)色顏色。從而計(jì)算出車牌圖像藍(lán)色顏色數(shù)Nblue與顏色像素總數(shù)S。定義
通過實(shí)驗(yàn)測得λ的閾值范圍為[0.21,0.72]。因此通過將任意一幅車牌彩色圖像轉(zhuǎn)換到HSV顏色空間,設(shè)置顏色計(jì)數(shù)器,對每張圖片中的每個(gè)像素獲取H顏色值,根據(jù)H值,用顏色計(jì)數(shù)器進(jìn)行累加,并將圖像統(tǒng)一處理成分辨率為640×480,子區(qū)域大小為48×16。求得每張車牌彩色圖像x的藍(lán)色顏色數(shù)Nblue(x)與顏色像素總數(shù)S(x),再由式(2)求得λ(x)。
定義以下分類算法:若λ(x)∈[0.21,0.72],則認(rèn)為圖像x為車牌圖像;若λ(x)?[0.21,0.72],則認(rèn)為圖像x為非車牌圖像。故本文級聯(lián)分類器中第一層強(qiáng)分類器為 H1(x)= -sign[λ(x)-0.2][λ(x)-0.72]。
1990年Schapire證明了可以將一個(gè)弱學(xué)習(xí)算法提升成一個(gè)強(qiáng)學(xué)習(xí)算法的理論:如果兩者等價(jià),則在學(xué)習(xí)時(shí),只要能找到一個(gè)比隨機(jī)猜測略好的弱學(xué)習(xí)算法,就可以將其提升為強(qiáng)學(xué)習(xí)算法,而不必直接去找在一般情況下難以得到的強(qiáng)學(xué)習(xí)算法,這就是最初的Boosting算法。1995年Freund和Schapire提出了AdaBoost(A-daptive Boost)算法,他們證明只要加入一個(gè)識別率略好于隨機(jī)猜測的弱學(xué)習(xí)算法,就能使最后得到的分類器識別率有一個(gè)明顯的提升。該算法隨后便大量地應(yīng)用到實(shí)際問題中。
AdaBoost算法中不同的訓(xùn)練集是通過調(diào)整每個(gè)樣本對應(yīng)權(quán)重實(shí)現(xiàn)的。開始時(shí),每個(gè)樣本對應(yīng)的權(quán)重相同,在訓(xùn)練過程中對于錯(cuò)分的樣本增加其權(quán)重,而對于正確分類的樣本則降低其權(quán)重,這樣可以使得錯(cuò)分的樣本突出出來,并得到一個(gè)新的樣本分布。同時(shí),根據(jù)錯(cuò)分的情況賦予弱分類器一個(gè)權(quán)重,表示該弱分類器的重要程度,錯(cuò)分得越少權(quán)重越大。經(jīng)過T次循環(huán)得到T個(gè)弱分類器以及T個(gè)對應(yīng)的權(quán)重,最后把這T個(gè)弱分類器按一定權(quán)重累加起來,就得到了最終所期望的強(qiáng)分類器。算法具體描述如下:
(1)給定弱學(xué)習(xí)算法和樣本訓(xùn)練集{(x1,y1),(x2,y2),…,(xn,yn)},其中 xi為輸入訓(xùn)練樣本且 xi∈X,X是訓(xùn)練樣本集;yi是樣本分類類別標(biāo)志,且yi∈Y={-1,1}。
(3)對于 T 輪訓(xùn)練,F(xiàn)or t=1,2,…,T。
1)將樣本訓(xùn)練集在權(quán)值Dt下訓(xùn)練,得到弱分類器ht(xi):X→{-1,+1}。
傳統(tǒng)AdaBoost算法中每輪迭代訓(xùn)練的基本思想是根據(jù)分類結(jié)果對樣本權(quán)值分布進(jìn)行調(diào)整,正確分類的樣本權(quán)值減小,錯(cuò)誤分類的樣本的權(quán)值增加,這種權(quán)值更新規(guī)則雖然可以保證學(xué)習(xí)算法專注于處理較難的訓(xùn)練樣本,但當(dāng)訓(xùn)練樣本集中包含一些罕見的困難樣本時(shí),AdaBoost算法將給這些樣本分配較高的權(quán)值,最終導(dǎo)致權(quán)值分布發(fā)生扭曲的現(xiàn)象,即過配現(xiàn)象[8]。另外,傳統(tǒng)AdaBoost算法雖然檢測速度快,但由于其迭代算法比較簡單,其正確檢測率還有待提高。
針對上述兩種情況對傳統(tǒng)AdaBoost算法的權(quán)值更新規(guī)則和弱分類器的加權(quán)參數(shù)進(jìn)行改進(jìn):(1)在每輪訓(xùn)練中定義一個(gè)閾值θt,并根據(jù)樣本是否被錯(cuò)誤分類以及當(dāng)前權(quán)值是否大于θt來給樣本更新權(quán)值,在一定程度上避免了分類器發(fā)生過配。(2)令keRt,其中k為常數(shù),即第t輪循環(huán)的弱分類器中所有被正確識別車牌樣本的權(quán)值和,表示弱分類器ht(xi)對車牌樣本的識別能力;keRt是Rt的增函數(shù),因而求得的新加權(quán)參數(shù)αt在錯(cuò)誤率εt相同的情況下使得那些對正樣本識別能力更強(qiáng)的弱分類器具有更大的權(quán)值,加強(qiáng)了分類器對樣本的識別能力,提高系統(tǒng)正確檢測率。改進(jìn) AdaBoost算法具體描述如下:
(1)和(2)與傳統(tǒng)AdaBoost算法相同。
(3)對于 T 輪訓(xùn)練,F(xiàn)or t=1,2,…,T。
1)將弱學(xué)習(xí)算法在權(quán)值Dt下訓(xùn)練,得到弱分類器ht(xi):X→{-1,+1}。
4)設(shè)定該輪訓(xùn)練的權(quán)值更新閾值 θt=
5)更新樣本權(quán)值Dt+1(xi)=,其中 Zt是使的歸一化因子,θt是第t輪訓(xùn)練中的權(quán)值更新閾值。
通過將傳統(tǒng)AdaBoost算法與改進(jìn)的AdaBoost算法的具體過程對比可得兩種算法的時(shí)間復(fù)雜度均為T×m×O(n+n log2n),其中T為訓(xùn)練輪數(shù),m為所有訓(xùn)練樣本特征數(shù)目,O(n)為更新樣本權(quán)值的時(shí)間復(fù)雜度,O(n log2n)為對訓(xùn)練樣本特征進(jìn)行排序從而選取最佳弱分類器的時(shí)間復(fù)雜度。本文因設(shè)定每輪訓(xùn)練的權(quán)值更新閾值并改進(jìn)了每輪弱分類器的加權(quán)參數(shù),從而使得運(yùn)算復(fù)雜度有所增加,但改進(jìn)的AdaBoost算法能夠有效抑制過配現(xiàn)象和提高算法的檢測率,這是實(shí)時(shí)應(yīng)用車牌檢測系統(tǒng)發(fā)展的方向。
本文構(gòu)建車牌檢測器的過程即為訓(xùn)練各層強(qiáng)分類器和構(gòu)造級聯(lián)分類器的過程,其具體思路如下:
(1)利用HSV顏色模型構(gòu)建第一層強(qiáng)分類器。
(2)利用Haar-like特征及改進(jìn)的AdaBoost算法訓(xùn)練后續(xù)各層強(qiáng)分類器,其中T輪訓(xùn)練中的權(quán)值更新閾值均固定為
(3)將(1)和(2)中獲取的各層強(qiáng)分類器組合成級聯(lián)分類器,車牌檢測器構(gòu)建完成,即可用于車牌檢測。其中第(2)步Haar-like特征的選取和計(jì)算對該步中強(qiáng)分類器的訓(xùn)練效率有著重要的影響。
根據(jù)車牌的主要灰度分布特征,在利用改進(jìn)的AdaBoost算法訓(xùn)練強(qiáng)分類器的過程中選擇采用Haarlike特征訓(xùn)練車牌樣本。Haar-like特征是一種基于積分圖像的特征,主要用于灰度圖像中,該特征計(jì)算簡單,提取速度相對較快。本文最終選取了3類14種Haar-like基本特征原型[9]及由它們縮放和組合得到的復(fù)雜Haar-like特征。
圖2 3類基本Haar-like特征
上述Haar-like矩形特征的特征值是白色矩形像素和與黑色矩形像素和之差。由于訓(xùn)練樣本數(shù)量多且矩形特征數(shù)量龐大,如果每次計(jì)算特征值都要統(tǒng)計(jì)矩形內(nèi)所有像素之和,將大幅降低訓(xùn)練和檢測的速度,為此引入了積分圖像,只要遍歷圖像一次,就可以求得所有子窗口的特征值[10]。
圖3為積分圖值描述,圖3(a)中點(diǎn)(x,y)左上角所有像素值i(x',y')的和為該點(diǎn)的積分圖ii(x,y),且
圖3 積分圖
由定義可知,矩形區(qū)域D所有像素灰度積分可由矩形端點(diǎn)的積分圖像值得到,即sum(D)=(ii1+ii4)-(ii2+ii3)。故同理可求得所有Haar-like特征的特征值。
在AdaBoost算法的訓(xùn)練過程中,由上述Haarlike基本矩形特征生成了數(shù)以萬計(jì)的Haar-like矩形特征,通過迭代的方法從大量Harr-like特征中找到小部分關(guān)鍵的特征,并用其產(chǎn)生一些有效的分類器,利用大量分類能力一般的弱分類器,按權(quán)重疊加,構(gòu)成一個(gè)強(qiáng)分類器。
2001年P(guān)aulV和Michael J首次提出了級聯(lián)AdaBoost人臉檢測方法,本文將級聯(lián)AdaBoost方法用于車牌檢測。首先利用HSV顏色模型構(gòu)建第一層強(qiáng)分類器,而在獲取后續(xù)每一層強(qiáng)分類器的過程中均采用一種積分圖的方法快速求出圖像的Haar-like特征,然后利用改進(jìn)的AdaBoost學(xué)習(xí)算法在每輪訓(xùn)練過程中選取出最優(yōu)Haar-like特征,并將由最優(yōu)的Haar-like特征生成的最佳弱分類器疊加成為強(qiáng)分類器,最后將各強(qiáng)分類器組合成級聯(lián)分類器用于車牌檢測。這種設(shè)計(jì)的主要思想是逐級提高檢測精度。
設(shè)級聯(lián)分類器共有N層,Hi(x)表示各層強(qiáng)分類器,級聯(lián)分類器的結(jié)構(gòu)如圖2所示。
圖4 級聯(lián)分類器結(jié)構(gòu)圖
圖4中的第一層分類器H1(x)是利用HSV顏色模型構(gòu)建的強(qiáng)分類器,即H1(x)=-sign[λ(x)-0.2][λ(x)-0.72],其余各層分類器是利用改進(jìn)后的AdaBoost算法結(jié)合Haar-like特征訓(xùn)練得到的強(qiáng)分類器。第一層強(qiáng)分類器對子窗口的圖像進(jìn)行分類后,如果分類結(jié)果為“T”(車牌),那么可能包含車牌的子窗口就傳遞到下一個(gè)強(qiáng)分類器,并觸發(fā)下一個(gè)強(qiáng)分類器進(jìn)行處理,如此循環(huán)直到最后一個(gè)強(qiáng)分類器,這樣可以先排除大量不包含車牌的子窗口,從而提高了檢測速度。
實(shí)驗(yàn)中的訓(xùn)練樣本取自車牌識別專用圖像庫的100張車牌圖像、網(wǎng)上下載的100張車牌圖像和50張非車牌圖像。在訓(xùn)練開始前將樣本圖像歸一化為48×16大小的標(biāo)準(zhǔn)圖像,再采用改進(jìn)的AdaBoost算法對其進(jìn)行學(xué)習(xí),最終得到用于車牌圖像檢測的強(qiáng)分類器H(x)。實(shí)驗(yàn)中的測試樣本取自車牌識別專用圖像庫的200張車牌圖像和50張困難樣本圖像。實(shí)驗(yàn)首先采用傳統(tǒng)的AdaBoost算法和改進(jìn)的AdaBoost算法進(jìn)行比較,使用所得強(qiáng)分類器對車牌測試樣本集進(jìn)行檢測,并在MatlabR2009a平臺上進(jìn)行仿真[11],取訓(xùn)練輪數(shù)為50,仿真實(shí)驗(yàn)結(jié)果如圖5和圖6所示。
圖5 傳統(tǒng)的AdaBoost算法所得誤檢率
圖6 改進(jìn)的AdaBoost算法所得誤檢率
隨后使用所得的級聯(lián)分類器對車牌測試樣本集進(jìn)行檢測,并采用傳統(tǒng)AdaBoost算法訓(xùn)練的級聯(lián)分類器與本文所得級聯(lián)分類器進(jìn)行比較,且訓(xùn)練所得強(qiáng)分類器均為10個(gè)。兩種級聯(lián)分類器的檢測結(jié)果如表1所示。
表1 兩種級聯(lián)分類器的正確檢測率和檢測時(shí)間比較
由圖5和圖6可以看出,改進(jìn)后的AdaBoost算法相比傳統(tǒng)AdaBoost算法在檢測率上有了較大提高,圖5中出現(xiàn)的曲線小幅度波動(dòng)且檢測率停滯不前的現(xiàn)象在圖6中也消失了,這證明采用新的權(quán)值更新規(guī)則及改進(jìn)弱分類器加權(quán)參數(shù)不僅能有效抑制過配現(xiàn)象的產(chǎn)生,同時(shí)也提高了算法檢測率。表1說明,采用本文設(shè)計(jì)的級聯(lián)分類器在檢測精度和速度上都要優(yōu)于采用傳統(tǒng)AdaBoost算法訓(xùn)練所得的級聯(lián)分類器。
通過對傳統(tǒng)AdaBoost算法的權(quán)值更新規(guī)則及弱分類器加權(quán)參數(shù)作了適當(dāng)改進(jìn),并結(jié)合HSV顏色模型最終構(gòu)建了一種新型級聯(lián)分類器。實(shí)驗(yàn)證明,改進(jìn)的AdaBoost算法優(yōu)于傳統(tǒng)AdaBoost算法,在一定程度上有效抑制了過配現(xiàn)象,提高了車牌檢測率,且所得的級聯(lián)分類器在檢測精度和速度上要更優(yōu)于傳統(tǒng)AdaBoost算法訓(xùn)練所得的級聯(lián)分類器。
本文構(gòu)造的級聯(lián)分類器僅限于常見的藍(lán)底白字的小型民用汽車車牌,而沒有考慮到其他特殊種類的車牌,如軍用車輛車牌、外籍車輛車牌等,因此該方法只能檢測常見的藍(lán)底白字小型民用汽車車牌。下一步的工作就是通過研究更全面的算法來構(gòu)造功能更完善的級聯(lián)分類器,實(shí)現(xiàn)對各種顏色種類的車牌均能有效檢測,并可以自適應(yīng)判斷車牌顏色。
[1]潘秋萍,楊萬扣,孫長銀.基于Haar與MB-LBP特征的車牌檢測算法[J].東南大學(xué)學(xué)報(bào),2012(S1):75-76.
[2]苗立剛.基于最近鄰鏈的車牌檢測算法[J].自動(dòng)化學(xué)報(bào),2011,37(10):1272 -1278.
[3]吳子章,翁寧龍,劉冉.基于顏色融合和匹配濾波器的車牌檢測[J].信息通信,2011(3):146-147.
[4]李紅林.基于改進(jìn)的HSV顏色模型及顏色均值對的車牌檢測與定位[J].云南民族大學(xué)學(xué)報(bào),2009,18(3):268-272.
[5]Louka Dlagnekov.License plate detection using adaboost[D].Moskov:Unversity of Computer Science & Engineering,2008.
[6]Zhang Xiangdong,Shen Peiyi,Xiao Yuli,et al.License plate-location using adaboost algorithm[C].International Conference on Information and Automation,2010.
[7]徐麗珍.AdaBoost車牌檢測算法的優(yōu)化與實(shí)現(xiàn)[J].計(jì)算機(jī)技術(shù)與發(fā)展,2013,23(6):86 -88.
[8]徐前,趙德安,趙建波.基于改進(jìn)的AdaBoost算法的人臉檢測與定位[J].傳感器與微系統(tǒng),2010,29(1):94-97.
[9]江偉堅(jiān),郭躬德,賴智銘.基于新Haar-like特征的Ada-Boost人臉檢測算法[J].山東大學(xué)學(xué)報(bào),2014,44(2):43-47.
[10]Zheng Lihong,He Xiangjian,Bijan Samali,et al.An algorithm for accuracy enhancement of license plate recognition[J].Journal of Computer and System Sciences,2013,79(3):245-255.
[11]穆爾.Matlab實(shí)用教程[M].2版.高會(huì)生,劉童娜,李聰聰,譯.北京:電子工業(yè)出版社,2010.