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