江祥奎,劉 洵,李 紅
(西安郵電大學 自動化學院,陜西 西安 710121)
車牌檢測(License Plate Detection, LPD)算法是將圖像識別技術應用于車牌的識別,對圖片的車牌區域進行定位并識別,提供給交通網絡,從而實現監控、跟蹤以及自動收費等功能。目前,國內的車牌檢測算法已廣泛應用在高速公路電子收費、停車場管理等領域[1-4]。然而,交通場景下拍攝的圖片照明度低、車牌目標小、車輛行駛速度快,以及工業攝像機抓拍的圖像容易出現動態模糊、分辨率低等問題,直接影響了最終的識別效果。國外的車牌檢測技術開始于20世紀80年代,通過提取車輛牌照的特征信息實現車牌識別[5],主要應用于自動駕駛、車聯網等方面。但是,在環境復雜的交通場景中,檢測算法常常會在提高檢測速度的同時降低了檢測精度[6-7],動態模糊情況下的檢測精度還有待提升。
車牌檢測算法主要有基于灰度圖像的檢測算法、基于彩色圖像的檢測算法、基于多特征融合的檢測算法和基于深度學習的檢測算法等4種類型。基于灰度圖像的檢測算法是通過邊緣、紋理和投影等特征信息檢測車牌,該類算法運算量小,但在復雜背景下識別率低[8-9]。基于彩色圖像的檢測算法利用國內車牌通常是藍底或黃底的特征與周圍環境進行區分,該類算法檢測速度較快,但背景顏色與車牌底色相近時,對檢測結果有一定影響[6-7,10]。基于多特征融合的檢測算法通過融合兩種及以上車牌特征,在一定程度上減少了復雜環境對檢測結果的影響[8,11-13],但該類算法的訓練過程較為復雜。基于深度學習的檢測算法通過機器學習訓練模型,利用訓練得到的模型對車牌進行檢測。該類算法包含了多層次特征提取結構,能夠提升檢測算法的準確率,但在圖像模糊情況下的檢測精度仍有待提高。典型算法有Faster R-CNN(Region-CNN)算法和YOLO(You Only Look Once)系列算法[14-16]。
針對基于深度學習的檢測算法對交通環境下車牌檢測精度不高的問題,擬提出一種基于“YOLOv3+ResNet”網絡,且在超分辨率重建數據集下進行訓練的車牌檢測算法。首先,對模糊圖像進行超分辨率重建,利用深度遞歸殘差網絡(Deep Recursive Residual Network,DRRN)學習低分辨率的圖片信息,通過殘差學習與低分辨率進行矩陣相加,得到高清結果。其次,采用無區域提名的網絡結構,以滿足網絡實時性要求。最后,將網絡結構與分類網絡相結合,并根據分類網絡的損失曲線和精度曲線,選取較好的一種,以期算法應用于車牌檢測時取得較好的檢測結果。
基于深度學習的車牌檢測算法常用的網絡是卷積神經網絡(Convolutional Neural Networks,CNN)及以CNN為基礎擴展的區域提名網絡和無區域提名網絡。
基于Faster R-CNN的車牌檢測算法屬于典型的區域提名算法,其先利用選擇性搜索的方法,在待檢測圖片上選擇若干個車牌區域候選框,然后提取候選框內的特征信息,使用分類器識別并分類,最后,通過非極大值抑制算法對候選區域進行篩選。Faster R-CNN網絡因受兩階段算法的限制,其檢測速度難以滿足實時檢測的要求[17]。
基于YOLO的車牌檢測算法屬于無區域提名算法,是由GoogleNet改進而來,其采用回歸的方式輸出預測目標物體的類別和邊界框,檢測速度快,滿足交通場景下實時檢測的要求。YOLOv3是YOLO的改進算法,其簡化了池化層和全連接層,只用卷積核實現特征圖的維度縮減和維度變換,具有較好的特征提取能力[18]。YOLOv3的網絡結構如圖1所示。

圖1 YOLOv3網絡結構
YOLOv3網絡采用預測框標注目標,用置信度體現預測框中有目標的概率。預測框的置信度的計算表達式為
(1)

YOLOv3采用多任務損失函數學習類別特征和位置信息,主要包括位置損失Lloc、置信度損失Lcon和類別損失Lcls等3部分。對輸入為M×M的圖像,劃分為N×N個網格后,每個網格中的預測框數為B、輸出向量維數為5B+c,其損失函數的具體形式為

(2)

相比于Faster R-CNN網絡,YOLOv3的檢測速度有較高的提升。同時,為了保證模型訓練時損失下降的更快,YOLOv3借鑒了Faster R-CNN的anchor機制,采用對原始數據集進行聚類,以生成更準確的目標預測錨框。每個邊界框的特征圖輸出為
Y=N·N·B(5+c)=
N·N·B[(tx,ty,tw,th,C)+(p1,p2,…,pe)]
(3)
其中:tx、ty、tw和th為預測輸出的結果;p1,p2,…,pc為c個類別對應的條件概率輸出。tx、ty、tw和th和真實預測框bx、by、bw和bh的轉換關系如圖2所示。圖2中的pw和ph分別為預測錨框設定的寬和高。YOLOv3通過評測預測框得分篩選出有目標的候選區域進行預測,拋棄目標背景,減少網絡迭代次數。

圖2 YOLOv3預測框坐標轉換示意圖
DRRN通過重建一張模糊的圖片可生成一張較為清晰的圖片,因此,使用DRRN對包含車牌信息的圖片進行重建,可得到圖片的高清結果。DRRN共包含52個卷積層,將插值后的圖像作為輸入,進行特征提取,使用16個殘差遞歸層進入循環遞歸模塊,進行非線性映射,權重在殘差單元中共享。最后,使用一個卷積層進行超分辨率重建,以獲得最終的結果。DRRN采用殘差學習,減輕了訓練深層網絡的難度,通過遞歸學習控制了模型參數,增加了深度,多路徑結構的遞歸塊改善了梯度爆炸或消失的問題。DRRN簡略模型如圖3所示。

圖3 DRRN簡略模型
DRRN訓練原始數據的具體步驟如下。
步驟1使用像素大小為400×400 px的窗口去完全覆蓋車牌標注,加入一個窗口中心坐標的隨機偏移量,使得偏移后的窗口仍滿足完全覆蓋車牌目標。
假設窗口大小為wwin×hwin,車牌框大小為wlabel×hlabel,車牌框中心位置為(xc,yc),則窗口中心位置[20]的x軸的隨機偏移范圍為
y軸的隨機偏移范圍為
步驟2使用雙線性差值方式縮小裁剪的窗口尺寸,并結合原窗口尺寸作為一組低分辨率和高分辨率的訓練對。為了增強網絡對車牌的信息學習能力,對縮放倍數加入隨機性,將所有縮放后的圖片重新設置到200×200 px大小作為低分辨率輸入。
步驟3使用一個反卷積層對原圖進行尺寸擴張,再通過一個卷積層生成高分辨率結果。
在數據預處理階段引入DRRN對VOC 2012數據集進行增強,原始數據及網絡輸出的對比如圖4所示。
從圖4中可以看出,利用超分辨率重建技術,能夠有效提升圖片清晰度,使模糊的車牌變得清晰,邊緣和紋理特征增強,有利于后續算法檢測。

圖4 超分辨率重建前后對比
ResNet網絡又被稱為殘差神經網絡,分為卷積結構、殘差結構、池化及全連接結構。車牌檢測算法首先通過卷積核對車牌圖像進行卷積以及最大池化處理,然后分別對殘差結構進行3~6次的殘差操作,最后扁平化車牌的特征向量,對網絡進行平均池化和全連接處理。圖5給出了卷積塊結構和ResNet的殘差塊結構對比。可以看出,使用殘差塊進行運算的參數量比直接進行卷積的參數少很多。在YOLOv3網絡基礎上引入ResNet模塊,可以提取車牌更高層次的語義信息,降低網絡參數,有效避免網絡退化問題。

圖5 卷積處理與殘差處理的參數量對比
分別對比AlexNet、VggNet16、VggNet19、GoogleNet、ResNet50和ResNet101等分類網絡在20次迭代訓練過程中的損失函數和精度,結果分別如圖6和圖7所示。

圖6 網絡損失函數對比

圖7 網絡精度對比
從圖6和圖7中可以看出,ResNet101的收斂速度最快,AlexNet、VggNet16、VggNet19收斂速度較慢,VggNet19和ResNet101的準確率較高,AlexNet的準確率較低。由此可以得出,ResNet101網絡的預測結果較好,且其運算成本較低,因此,可在YOLOv3框架中結合ResNet101網絡進行車牌檢測。
實驗環境為Windows GF940X,采用VOC 2012車輛數據集中的兩萬余張圖片,分為訓練集和測試集。所用語言為Python 3.5,計算架構為CUDA 9.0,設置網絡的初始學習率為0.001,學習率衰減為0.96,網絡層結構為[0.5 1.0 2.0]。
3.2.1 不同算法的車牌檢測對比
為檢驗算法檢測車牌時能否滿足實時性要求,對比基于Faster R-CNN網絡、基于YOLOv3網絡和改進YOLOv3網絡的車牌檢測算法在VOC 2012數據集上的計算量和檢測速度,結果如圖8所示。

圖8 不同網絡的計算量和檢測速度對比
從圖8中可以看出,Faster R-CNN算法的計算復雜度和檢測時間相比YOLOv3算法和改進YOLOv3算法均高出很多,而改進YOLOv3算法相比于YOLOv3算法,計算量有小幅縮減。
3種不同網絡在VOC 2012數據集上的性能對比如表1所示。

表1 不同網絡在VOC 2012數據集中的性能對比
由表1可以看出,在VOC 2012數據集中,Faster R-CNN算法的平均檢測時間為225 ms,YOLOv3算法和改進YOLOv3算法的平均檢測時間分別為36 ms和30 ms。對圖片中的車牌實時性檢測時間要求不超過60 ms,因此,改進YOLOv3算法滿足實時性要求。另外,YOLOv3算法的檢測速度比Faster R-CNN算法提升了84%,計算量縮減了8.6%,而改進YOLOv3算法的計算量又比YOLOv3算法縮減了6.7%,且準確率、召回率及mAP值均比YOLOv3算法有所提升。
3.2.2 不同算法在復雜場景下的車牌檢測對比
在VOC 2012的基礎上選取具有圖片像素低、模糊、車牌難以辨認及目標量大等特點的圖片數據集VOC-HD,分別對比YOLOv3算法和改進YOLOv3算法的檢測性能,結果如表2所示。可以看出,改進YOLOv3算法的檢測準確率比YOLOv3算法提升了16.7%,精確率提升了10.9%,召回率提升了9.4%,特異度提升了22.2%,mAP值提升了10.2%。

表2 兩種算法在VOC-HD數據集下的性能對比
3.2.3 改進算法在重建數據前后的車牌檢測對比
為檢驗超分辨率技術對改進YOLOv3算法的影響,特利用DRRN在VOC-HD數據集基礎上進行重建,得到VOC-SR數據集,改進YOLOv3算法在VOC-HD數據集和VOC-SR數據集中的檢測效果,如圖9所示。

圖9 改進YOLOv3算法在不同數據集中的檢測效果
改進YOLOv3算法在VOC-HD數據集和VOC-SR數據集下的檢測性能對比如表3所示。可以看出,改進YOLOv3算法在VOC-SR數據集上的召回率和特異度相比于在VOC-HD數據集的結果有明顯提升,mAP值提升了13%。

表3 改進YOLOv3算法在不同數據集下的性能對比
考慮到交通場景下車牌模糊難以檢測,提出了一種改進YOLOv3網絡的車牌檢測算法。利用DRRN對模糊圖像進行超分辨率重建,學習低分辨率的圖片信息,得到了高清結果。采用YOLOv3無區域提名的網絡結構,滿足了車牌檢測的實時性要求,并將其與預測性能較好的ResNet網絡相結合,使得在交通場景下的車牌檢測準確率進一步提高。實驗結果表明,改進YOLOv3算法對小目標車牌的檢測效果較好,對重建后數據的車牌檢測效果較好。