張文超,胡玉蘭
(沈陽(yáng)理工大學(xué) 信息科學(xué)與工程學(xué)院,沈陽(yáng) 110159)
隨著城市交通管理不斷向智能化發(fā)展,汽車(chē)數(shù)量的迅速增長(zhǎng),車(chē)牌自動(dòng)辨識(shí)技術(shù)可實(shí)現(xiàn)汽車(chē)身份的自動(dòng)化登記和驗(yàn)證,可應(yīng)用于泊車(chē)管控、交通梳理、公路稽察等多種情景。車(chē)牌辨識(shí)作為現(xiàn)代智能交通系統(tǒng)(ITS)的關(guān)鍵技術(shù),引起了各國(guó)研究者的廣泛關(guān)注[1]。文獻(xiàn)[2]提出了一種首先通過(guò)邊緣密度信息濾除背景噪聲,然后依據(jù)車(chē)牌字符的空間分布進(jìn)一步定位車(chē)牌的方法;該方法提高了對(duì)光照和運(yùn)動(dòng)位移模糊的魯棒性,但對(duì)于適應(yīng)車(chē)牌形變和誤切割的靈活性較差。文獻(xiàn)[3]利用形態(tài)學(xué)粗提取車(chē)牌位置的連通域,再通過(guò)Adaboost構(gòu)造級(jí)聯(lián)分類器,利用Harr-like特征篩選候選區(qū)域得到最終定位結(jié)果;但其不能應(yīng)對(duì)復(fù)雜背景情況,且其分類結(jié)果對(duì)特征的選擇具有較高的依賴性。文獻(xiàn)[4]提出了利用坐標(biāo)排序和連通分量進(jìn)行字符切分的算法,但其未能適應(yīng)漢字的不連通特性。文獻(xiàn)[5]提出了一種基于像素點(diǎn)標(biāo)記的字符分割方法,但其易受字符粘連和邊框線條的影響,準(zhǔn)確率較低。文獻(xiàn)[6]提出了一種基于支持向量機(jī)(SVM)的字符辨識(shí)方法,通過(guò)提取字符的不同維度特征,構(gòu)建級(jí)聯(lián)的分類器對(duì)多個(gè)字符進(jìn)行識(shí)別分類。傳統(tǒng)的字符識(shí)別方法都要先對(duì)原始圖片進(jìn)行預(yù)處理,進(jìn)行噪聲濾波和圖像增強(qiáng),通過(guò)邊緣檢測(cè)結(jié)合分類的思想進(jìn)行字符切分,最后訓(xùn)練模型對(duì)各個(gè)字符進(jìn)行識(shí)別。本文通過(guò)改進(jìn)Alexnet網(wǎng)絡(luò)[7],采用卷積網(wǎng)絡(luò)和全連接的方式集成特征提取和模式識(shí)別,將傳統(tǒng)的預(yù)處理、車(chē)牌定位、字符分割和字符識(shí)別過(guò)程約減為輸入-輸出的單通道模型,減少算法流程間的銜接誤差,實(shí)現(xiàn)端到端的車(chē)牌識(shí)別。
在建立未來(lái)無(wú)人值守的自動(dòng)化智慧交通管理系統(tǒng)中,車(chē)牌識(shí)別將會(huì)越加重要。車(chē)牌識(shí)別技術(shù)需要能夠自主檢測(cè)處于監(jiān)控區(qū)域內(nèi)的車(chē)輛并追蹤捕獲其牌照內(nèi)容進(jìn)行后續(xù)處理。所以車(chē)牌識(shí)別首先需要以攝像機(jī)所拍攝的包含車(chē)輛元素的視頻幀序列為對(duì)象進(jìn)行車(chē)牌定位分析,然后進(jìn)一步進(jìn)行車(chē)牌字符識(shí)別。本文基于實(shí)時(shí)化目標(biāo)檢測(cè)算法Yolov2[8]訓(xùn)練車(chē)牌定位模型,并將其檢測(cè)定位的車(chē)牌區(qū)域切割作為車(chē)牌字符處理系統(tǒng)的激勵(lì)。
不同于R-CNN類算法需要先使用啟發(fā)式方法得到候選區(qū)域,然后在候選區(qū)域上做分類和回歸進(jìn)行目標(biāo)的定位和檢測(cè),Yolov2僅使用CNN網(wǎng)絡(luò)一步預(yù)測(cè)待檢測(cè)目標(biāo)的位置和類別,提供車(chē)牌端到端的預(yù)測(cè),如圖1所示。
圖1 車(chē)牌端到端預(yù)測(cè)
改進(jìn)的車(chē)牌檢測(cè)模型以Yolov2為基礎(chǔ),采用Darknet-19網(wǎng)絡(luò)結(jié)構(gòu),包括19個(gè)卷積層和5個(gè)maxpooling層。Darknet-19與VGG16模型設(shè)計(jì)原則一致,主要采用3×3的卷積核,經(jīng)過(guò)2×2的最大池化層后,特征維度降低2倍,同時(shí)將特征圖的通道增加兩倍。Yolov2的輸入圖片大小為416×416,經(jīng)過(guò)5次最大池化層降采樣后得到13×13的特征圖,并以此特征圖采用卷積做預(yù)測(cè)。網(wǎng)絡(luò)輸出的特征圖對(duì)大物體的檢測(cè)已經(jīng)足夠,但對(duì)于較小的待檢物體則需要更細(xì)微的特征圖。車(chē)牌的長(zhǎng)寬之比近似于3∶1,且在整體檢測(cè)圖中所占比例較小,在深度學(xué)習(xí)網(wǎng)絡(luò)中具有獨(dú)特的結(jié)構(gòu)化特征。卷積神經(jīng)網(wǎng)絡(luò)中的高層特征表現(xiàn)車(chē)牌的整體特征,中層特征表達(dá)車(chē)牌的局部特診,可以通過(guò)結(jié)合不同的細(xì)粒度特征增加車(chē)牌檢測(cè)的魯棒性[9]。所以本文改進(jìn)Yolov2網(wǎng)絡(luò)結(jié)構(gòu),選取更符合車(chē)牌結(jié)構(gòu)的中小型細(xì)粒度進(jìn)行特征圖重組,約減Darknet-19的最后5個(gè)卷積層,減少網(wǎng)絡(luò)參數(shù),其網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2中same表示卷積層保持原有特征圖大小不變;Filter表示卷積核的數(shù)量;3Conv表示3個(gè)卷積層,將第1個(gè)卷積層記為第0層。由圖2可知,經(jīng)過(guò)特征重組后可得到13×13×1280大小的包含不同細(xì)粒度的特征輸出張量。在車(chē)牌定位中改進(jìn)的Yolov2網(wǎng)絡(luò)結(jié)構(gòu)借鑒了Faster R-CNN中RPN網(wǎng)絡(luò)的先驗(yàn)框策略。RPN對(duì)CNN特征提取器得到的特征圖進(jìn)行卷積來(lái)預(yù)測(cè)每個(gè)位置的邊界框及置信度[10],并且每個(gè)位置設(shè)置不同比例和標(biāo)準(zhǔn)的先驗(yàn)框。Yolov2將待分類圖片經(jīng)過(guò)32個(gè)下采樣處理,獲得固定大小特征圖張量。車(chē)牌定位的網(wǎng)格劃分如圖3所示。
圖2 車(chē)牌定位網(wǎng)絡(luò)結(jié)構(gòu)
圖3 車(chē)牌定位網(wǎng)格劃分
圖3中每個(gè)單元格負(fù)責(zé)預(yù)測(cè)邊界框的置信度c及邊界框。邊界框的大小可以由向量(bx,by,bw,bh)來(lái)表示;邊界框的中心坐標(biāo)(bx,by)代表相對(duì)于每個(gè)單元格左上角頂點(diǎn)坐標(biāo)的偏移量,其大小是相對(duì)于單元格的比例。(bw,bh)是邊界框的寬與高,其數(shù)值是相較于整個(gè)輸入圖片的寬和高大小。采用sigmoid函數(shù)處理偏移量,將邊界框的中心點(diǎn)位置約束在當(dāng)前單元格中,根據(jù)邊界框預(yù)測(cè)的偏移量(tx,ty,tw,th),由式(1)~式(4)可計(jì)算出邊界框相對(duì)于整張圖片的位置和大小。
bx=(σ(tx)+cx)/W
(1)
by=(σ(ty)+cy)/H
(2)
bw=pwetw/W
(3)
bh=pheth/H
(4)
式中:W、H為特征圖寬與高;pw和ph是先驗(yàn)框的寬度與高度。
車(chē)牌定位采用自制的訓(xùn)練數(shù)據(jù)集,而Yolov2采用的是VOC 2007和VOC 2012數(shù)據(jù)集聚類得到的5個(gè)初始框。以上兩個(gè)數(shù)據(jù)集中目標(biāo)種類繁多,因此得到的初始框具有一定的普適性。為更好地適應(yīng)車(chē)牌結(jié)構(gòu)的特殊性,需要在自制的車(chē)牌數(shù)據(jù)集中重新進(jìn)行聚類,選取合適的初始框。本文運(yùn)用k-means++進(jìn)行真實(shí)框的無(wú)監(jiān)督聚類。
原始k-means算法隨機(jī)選取數(shù)據(jù)集中k′個(gè)點(diǎn)作為聚類中心,該算法對(duì)初始選取的聚類中心點(diǎn)非常敏感,不同的隨機(jī)種子點(diǎn)得到的聚類結(jié)果完全不同[11]。k-means++獲取聚類中心的主體思想如下:假設(shè)已經(jīng)得到前n個(gè)初始的聚類中心,當(dāng)選擇第n+1個(gè)聚類中心時(shí),選擇更遠(yuǎn)離當(dāng)前n個(gè)聚類中心的點(diǎn)作為下一個(gè)中心。算法具體步驟如下:
1)隨機(jī)從自制車(chē)牌數(shù)據(jù)標(biāo)簽中選取一個(gè)真實(shí)框邊界樣本作為聚類的初始中心C1;
3)重復(fù)第二步直到選出共k′個(gè)聚類中心。
選出k′個(gè)聚類中心后的計(jì)算過(guò)程與k-means算法相同。因?yàn)榫矸e神經(jīng)網(wǎng)絡(luò)具有平移不變性,且初始框的位置被每個(gè)柵格固定,因此只需通過(guò)k-means計(jì)算出初始框的寬和高即可。Yolov2通過(guò)初始框直接預(yù)測(cè)邊界框的坐標(biāo)時(shí),坐標(biāo)是相對(duì)于單元格邊長(zhǎng)的比例,所以要將初始框的寬和高也轉(zhuǎn)換為相對(duì)于單元格邊長(zhǎng)的比例。轉(zhuǎn)換公式如下。
W=Wanchor_Box×Winput/ds
(5)
H=Hanchor_box×Hinput/ds
(6)
式中:Wanchor_Box和Hanchor_Box分別代表初始框的寬與高;Winput和Hinput分別代表輸入圖片的寬與高,在Yolov2中均為416;ds代表下采樣倍率,其值為32。
車(chē)牌檢測(cè)聚類若使用歐式距離會(huì)使較大的邊界框相對(duì)于較小的邊界框產(chǎn)生更多的損失,設(shè)置先驗(yàn)框的主要目的是使預(yù)測(cè)框與真實(shí)框的IOU更好,所以聚類分析時(shí)選用樣本目標(biāo)框與聚類中心目標(biāo)框之間的IOU值作為距離指標(biāo)。
d(box,centroid)=1-IOU(box,centroid)
(7)
式中:d代表距離指標(biāo);box代表樣本目標(biāo)框;centroid代表聚類中心目標(biāo)框。由上述改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)可進(jìn)行車(chē)牌的定位,并得到車(chē)牌位置的預(yù)測(cè)框,根據(jù)預(yù)測(cè)框坐標(biāo)可在輸入圖片中利用opencv自動(dòng)裁剪得到包含車(chē)牌信息的區(qū)域,并將此作為車(chē)牌字符識(shí)別的輸入進(jìn)行下一步的處理。
在某些惡劣的復(fù)雜自然情況下,受角度、光線的影響,車(chē)牌字符的分割和識(shí)別十分困難,傳統(tǒng)的預(yù)處理、分割、識(shí)別的方法并不能取得很好的結(jié)果,因此可采用卷積神經(jīng)網(wǎng)絡(luò)融合多任務(wù)分類進(jìn)行端到端的車(chē)牌識(shí)別。
車(chē)牌識(shí)別的端到端模型借鑒Alexnet網(wǎng)絡(luò)結(jié)構(gòu),將輸入圖片大小更改為30×120,并在卷積層采用3×3的卷積核,池化層采用2×2卷積核,采用Leaky ReLu激活函數(shù)。最后以Batch-Norm層替換歸一化層,減少各層之間的耦合度[12];采用七個(gè)全連接層共享一組卷積層的網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。
圖4中c代表通道數(shù);k代表卷積核大小;s代表卷積步長(zhǎng);p代表擴(kuò)充數(shù)。我國(guó)的車(chē)牌由7個(gè)字符組成,第一個(gè)為省份簡(jiǎn)寫(xiě)漢字,其余為數(shù)字或者大寫(xiě)字母。我國(guó)的車(chē)牌共包含31個(gè)省份名稱簡(jiǎn)寫(xiě),10個(gè)阿拉伯?dāng)?shù)字,24個(gè)大寫(xiě)英文字母(去除掉O和I),所以每個(gè)全連接層共有65個(gè)類,將7個(gè)全連接層經(jīng)過(guò)通道連接層重組后由分類層做分類。Conv6的卷積核大小為5×26,卷積步長(zhǎng)為2×3,在最后一個(gè)卷積層之后,對(duì)每一個(gè)輸入圖片計(jì)算,得到一個(gè)具有位置信息的64個(gè)通道的7×21大小的特征圖張量,此特征圖從左至右依次與7個(gè)車(chē)牌字符信息的網(wǎng)絡(luò)高層抽象對(duì)應(yīng),經(jīng)過(guò)隨機(jī)失活層后,并列連接的7個(gè)全連接層分別對(duì)應(yīng)7個(gè)車(chē)牌字符的分類任務(wù)。
圖4 車(chē)牌字符端到端識(shí)別模型
為檢測(cè)車(chē)牌定位和識(shí)別算法的有效性進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)平臺(tái)為Inter Core i5-7500,8GB RAM,NVIDIA GeForce GTX 1060,采用CUDA8.0加速,車(chē)牌定位模型的實(shí)驗(yàn)數(shù)據(jù)為自制實(shí)驗(yàn)數(shù)據(jù)。本文采集2500張包含肉眼可辨別車(chē)牌的自然場(chǎng)景中的車(chē)輛圖像,其圖像場(chǎng)景涵蓋了早晨、中午和傍晚不同時(shí)間段,晴天、霧天和陰雨天不同天氣環(huán)境及運(yùn)動(dòng)模糊等干擾情況下各種條件。車(chē)牌識(shí)別模型因需要大量的數(shù)據(jù)集,所以采用通過(guò)opencv和車(chē)牌字體自動(dòng)生成的有污跡、噪聲和畸變等情況的車(chē)牌。車(chē)牌定位目的是獲得車(chē)牌所在區(qū)域,為車(chē)牌字符識(shí)別做準(zhǔn)備,所以車(chē)牌定位的精度直接影響著字符識(shí)別的效果,因此采用反映定位坐標(biāo)準(zhǔn)確度的IOU指標(biāo)作為車(chē)牌定位的評(píng)價(jià)標(biāo)準(zhǔn),IOU值越大表示定位的準(zhǔn)確度越高;車(chē)牌字符識(shí)別模型采用準(zhǔn)確率作為評(píng)價(jià)標(biāo)準(zhǔn)。
在車(chē)牌定位模型中改進(jìn)了Yolov2模型,重組了特征圖,融合多級(jí)細(xì)粒度特征,以適應(yīng)車(chē)牌在輸入圖片中的結(jié)構(gòu)化特征。為驗(yàn)證其有效性,以上述自制數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù),比較Yolov2模型、Yolov2模型與不同特征圖重組、及FAST RCNN所訓(xùn)練的檢測(cè)器效果如圖5所示,訓(xùn)練時(shí)為避免過(guò)擬合及提升速度,選用動(dòng)量常數(shù)為0.9,學(xué)習(xí)率為動(dòng)態(tài)衰減,初始值為0.001,衰減步長(zhǎng)為10000,衰減率為0.1,批大小為10,共迭代10次,批迭代次數(shù)為5000,框架為Darknet。
隨著神經(jīng)網(wǎng)絡(luò)深度不斷增加,特征圖的細(xì)粒度大小也不斷遞增,更能反映全局信息。重組層分別將Darknet中的第16、第10和第6層包含不同細(xì)粒度的特征圖進(jìn)行重組。從圖5中可以看出,將Darknet-19中的第10層和第16層輸出的特征圖利用類似殘差網(wǎng)絡(luò)的短路連接重組后的平均IOU值均高于其它策略,相對(duì)于Yolov2模型由0.81增長(zhǎng)到0.83。
圖5 檢測(cè)器效果對(duì)比
網(wǎng)絡(luò)各參數(shù)的收斂散點(diǎn)如圖6所示。
圖6 網(wǎng)絡(luò)訓(xùn)練參數(shù)收斂散點(diǎn)圖
圖6中的四個(gè)圖反映了平均IOU、訓(xùn)練損失、平均召回率和物體真實(shí)檢測(cè)的平均置信度隨著迭代次數(shù)的變化。從圖6中可以看出,經(jīng)過(guò)5000次的批量迭代,各參數(shù)的變化已趨于穩(wěn)定,其中平均IOU穩(wěn)定在0.83;平均召回率逐漸趨近于1;損失值下降至0.05;物體真實(shí)檢測(cè)的平均置信度逐漸收斂于0.82;各網(wǎng)絡(luò)參數(shù)的收斂指數(shù)說(shuō)明網(wǎng)絡(luò)訓(xùn)練的結(jié)果較為理想。
為驗(yàn)證使用k-means++聚類初始候選框的效果,對(duì)包含車(chē)牌信息的車(chē)輛數(shù)據(jù)集的真實(shí)框進(jìn)行聚類,選用3.1節(jié)得到的改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu),分別選取k′=[3,4,5,6]聚類,得到相應(yīng)數(shù)目的初始框參數(shù),并對(duì)應(yīng)修改網(wǎng)絡(luò)模型的配置文件,保證其它條件不變,分別訓(xùn)練網(wǎng)絡(luò)得到k′個(gè)初始框的寬Wk和高Hk,如表1所示。
表1 車(chē)牌初始框?qū)捄透?/p>
圖7為不同聚類候選框IOU對(duì)比。
圖7 不同聚類候選框IOU對(duì)比
由圖7可知,當(dāng)k′=5時(shí),平均IOU和召回率可得到明顯改善,相比3.1節(jié)平均IOU由0.83增長(zhǎng)至0.85,因此選取5個(gè)初始框,其真實(shí)框聚類效果如圖8所示。
圖8的橫軸、縱軸分別代表訓(xùn)練數(shù)據(jù)集中目標(biāo)框的寬、高。從圖8中可以看出訓(xùn)練集中車(chē)輛目標(biāo)框的寬與高值近似,且小目標(biāo)居多。
圖8 k′=5時(shí)真實(shí)框聚類效果
端到端的車(chē)牌識(shí)別模型訓(xùn)練共使用了50萬(wàn)張圖片,采用分步策略,批大小為64,將所有數(shù)據(jù)迭代10次。同時(shí)運(yùn)用Adam優(yōu)化梯度下降,學(xué)習(xí)率為動(dòng)態(tài)衰減,初始值為0.0005,步長(zhǎng)為5000,衰減因子為0.9,框架為mxnet;保證其它參數(shù)不變,與其它具有代表性的車(chē)牌識(shí)別方法進(jìn)行比較,驗(yàn)證本文識(shí)別算法的有效性,結(jié)果見(jiàn)表2。
表2 算法識(shí)別效果比較
從表2可以看出,模板匹配和BP神經(jīng)網(wǎng)絡(luò)雖然用時(shí)較少,但其識(shí)別率相對(duì)于HOG+SVM較低;BP神經(jīng)網(wǎng)絡(luò)需人工選擇特征,其識(shí)別效率可隨網(wǎng)絡(luò)深度的增加而提高,但其時(shí)間也會(huì)隨著網(wǎng)絡(luò)參數(shù)的增多而增加。本文算法相比較于其它算法在時(shí)間上略有增加,但識(shí)別率提升明顯,適用于對(duì)識(shí)別精度要求較高的應(yīng)用場(chǎng)景。
針對(duì)傳統(tǒng)的車(chē)牌識(shí)別方法具有較大的流程化誤差,本文提出了定位-識(shí)別通道化模型,實(shí)現(xiàn)了端到端的車(chē)牌識(shí)別。在定位模型的構(gòu)建過(guò)程中融合更符合車(chē)牌結(jié)構(gòu)的局部特征圖和初始化候選框來(lái)提高定位精度,在識(shí)別模型中共享卷積神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)字符的多任務(wù)分類,降低了對(duì)復(fù)雜背景環(huán)境敏感度;整體的模型效果良好,具有較高的識(shí)別率和可靠性。