貝新林
(亞信科技(中國)有限公司,江蘇 南京 210000)
智能交通系統(tǒng)是將計(jì)算機(jī)視覺、GPS定位技術(shù)、電子信息技術(shù)和通信技術(shù)等相融合的管理系統(tǒng),其中車牌識別[1]為交通管理系統(tǒng)提供了強(qiáng)有力保障,車牌識別系統(tǒng)通過采集大量的車輛圖像,利用算法精準(zhǔn)定位車輛的位置與大小、鎖定車牌并識別出其中具體字符的一種圖像處理技術(shù)。車牌識別系統(tǒng)可應(yīng)用于各種場景,例如道路電子收費(fèi)系統(tǒng)ETC、閘機(jī)車牌識別系統(tǒng)、智能停車場等。在這種光線充足、車輛位置較為固定、車速穩(wěn)定的條件下系統(tǒng)更容易拍攝清晰穩(wěn)定的圖像,因此識別精度較高。相反,在一些光線不充足的場景,車輛位置不統(tǒng)一,車速較快會導(dǎo)致運(yùn)動模糊,會導(dǎo)致識別精度不理想。因此如何找到一種普適條件下的高精度車牌檢測算法是目前迫切需要解決的問題。
傳統(tǒng)的車牌識別方法包括圖像獲取、圖像預(yù)處理、車牌檢測、字符分割和字符識別五部分組成。傳統(tǒng)方法一般基于特定場景識別,泛化能力弱。車牌識別技術(shù)本質(zhì)上利用了CV領(lǐng)域中目標(biāo)檢測和OCR算法,基于深度學(xué)習(xí)的目標(biāo)檢測與OCR算法在實(shí)際應(yīng)用中效果已經(jīng)被證明好于傳統(tǒng)機(jī)器學(xué)習(xí)算法,并且基于深度學(xué)習(xí)的方法一般會提供端到端的方法,其關(guān)鍵技術(shù)可分為車牌檢測與車牌識別兩個部分。國內(nèi)外學(xué)者在這方面均有很多研究。SP Peixoto等人利用CNN等技術(shù)方案對車牌的字符進(jìn)行識別[2];Silva等人采用YOLO算法對車輛、車牌以及字符進(jìn)行檢測[3],這種方法相比于傳統(tǒng)方法準(zhǔn)確度更高,但算法的應(yīng)范圍比較小,因?yàn)樗惴ㄖ荒芡ㄟ^車輛的前視圖來進(jìn)行檢測;2018年李朝兵等人提出了一種基于深度學(xué)習(xí)的車輛牌照識別算法[4];王燕等人在2020年提出基于Faster R-CNN 和 Inception ResNet v2的算法進(jìn)行車牌檢測[5]。
本文解決了非限定條件下車牌檢測問題。由于城市街道、高速公路、鄉(xiāng)間道路自然環(huán)境復(fù)雜,攝像設(shè)備獲取到的圖像分辨率較低且存在模糊,這給車牌檢測精度和速度帶來了挑戰(zhàn)。因此我們提出了一種基于改進(jìn)YOLO v5的車牌檢測算法,實(shí)現(xiàn)了自然環(huán)境中實(shí)時高精度車牌檢測。
YOLO系列算法采用單階段檢測,相對于RCNN、Fast R-CNN、Faster R-CNN檢測速度更快。YOLO v3是比較經(jīng)典的單階段結(jié)構(gòu),分為輸入端、Backbone、Neck和Prediction四個部分;YOLO v4在前一版本基礎(chǔ)上進(jìn)行了創(chuàng)新,在輸入端采用mo s a i c 數(shù)據(jù)增強(qiáng),在Backbone上進(jìn)行了一系列的改進(jìn),它采用了CSPDarknet53、Mish激活函數(shù)、Dropblock等方式,SPP和FPN+PAN的結(jié)構(gòu)被用于Neck中,CIOU Loss和DIOU NMS操作被用于輸出端;YOLO v5與YOLO v4不同點(diǎn)在于設(shè)計(jì)了兩種CSP結(jié)構(gòu)并且在工程化方面做了更多的改進(jìn)。
2.2.1 改進(jìn)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
YOLO v5目標(biāo)檢測算法在實(shí)時性和精確度之間都有較好的性能表現(xiàn),不過在檢測一些特征不明顯或者小目標(biāo)時候存在一定的誤差,在自然環(huán)境下車牌模糊或者遠(yuǎn)離攝像頭區(qū)域拍攝的情況時有發(fā)生,因此需要提高被檢測目標(biāo)的特征提取能力來解決上述問題,本文將YOLO v5 CSP中的 Res unit殘差網(wǎng)絡(luò)塊進(jìn)行替換,采用DenseNet 網(wǎng)絡(luò)中的密集卷積塊(Dense block),密集卷積塊的結(jié)構(gòu)示意圖如圖1所示。
圖1 Dense block結(jié)構(gòu)
在傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)中,網(wǎng)絡(luò)有多少層就會有多少個連接,而密集卷積塊對此進(jìn)行了改變,它的輸入是前面所有層的輸出,假設(shè)網(wǎng)絡(luò)有N層,那么密集卷積層則有個連接。 在YOLO v5中原始?xì)埐罹W(wǎng)絡(luò)的第N層輸出為其中,是非線性變化,它將第N-1層進(jìn)行非線性變化得到第表示第N-1層的輸出。本文采用密集卷積塊的方式,實(shí)現(xiàn)了第N層對前N-1層輸出的特征圖進(jìn)行網(wǎng)絡(luò)融合,這樣達(dá)到提高特征提取的能力,其輸出為
2.2.2 改進(jìn)Bounding Box
YOLO v5算法在目標(biāo)檢測過程中引入候選區(qū)域框機(jī)制,候選區(qū)域框是一個具有固定高度和寬度的初始區(qū)域。如果候選框參數(shù)初始化就能接近于事實(shí)的邊界,那么在模型訓(xùn)練過程中會有更高的效率,最后得到的預(yù)估邊框界會則更接近事實(shí)邊界。因此在初始時,設(shè)置好候選框參數(shù)必然會決定目標(biāo)檢測的速度和精確度。YOLO v5算法在原始狀態(tài)下需要對候選區(qū)域相關(guān)參數(shù)進(jìn)行超參數(shù)設(shè)置,本文利用基于密度聚類的算法實(shí)現(xiàn)對候選框高度框進(jìn)行設(shè)置,從而實(shí)現(xiàn)初始候選框的設(shè)定,使用DBSCAN的優(yōu)勢是可以自適應(yīng)地給出聚類結(jié)果,并且對噪聲不敏感,能夠發(fā)現(xiàn)任意形狀的簇。
2.2.3 改進(jìn)Loss Function
在YOLO v5模型中交并比Loss Function采用GIoU,作為距離時,L=1-GIoU具有非負(fù)性、不確定性、對稱性以及三角不等性,GIOU除了關(guān)注重疊區(qū)域不同,還關(guān)注非重疊區(qū)域,能夠更好地反應(yīng)重合度,它對誤差越大的候選框懲罰越大,不同比例的候選框在這種方式的作用下能夠取得很好的檢測效果,公式為
但是GIoU沒有考慮目標(biāo)與anchor之間的距離、重疊率以及尺度,并且訓(xùn)練過程會發(fā)散,這樣會導(dǎo)致GIoU回歸策略可能會退化為IoU的回歸方式。產(chǎn)生這種現(xiàn)象的原因是因?yàn)楫?dāng)IoU取值為0時,GIoU 使得檢測框和目標(biāo)框快速產(chǎn)生重疊,而后Loss Function懲罰措施迭代失效,這會導(dǎo)致把檢測框與目標(biāo)框之間的包含而不重疊的情況也認(rèn)為是正確的。為改進(jìn)這種方法本文引入新的Loss Function,并在其中加入了影響因子,在檢測框?qū)捀弑鹊臄?shù)據(jù)上進(jìn)行了度量,進(jìn)一步使用了更加符合回歸機(jī)制的LDIoU_P,公式為
式中,b和 分別表示檢測框和目標(biāo)框的中心點(diǎn);ρ表示檢測框和目標(biāo)框之間的歐式距離;覆蓋檢測框和目標(biāo)框之間最小矩形的斜距用c表示;平衡參數(shù)表示為μ;參數(shù)m用于確保一致性。
2.2.4 改進(jìn)訓(xùn)練數(shù)據(jù)集
國內(nèi)車牌識別研究大多數(shù)是基于CCPD數(shù)據(jù)集,該數(shù)據(jù)集中圖像車頭部分占比較大,另外在采集圖像時雖然包含了多種背景、多種拍攝角度,但和真實(shí)的自然場景還有一定的差距,沒有充分考慮傾斜、模糊、光照等影響條件。本文在三個方向?qū)?shù)據(jù)集進(jìn)行了增強(qiáng),首先從Stanford Cars數(shù)據(jù)集選取4200張包含全車身圖像和已有的CCPD數(shù)據(jù)集進(jìn)行混合訓(xùn)練,解決車身圖像不夠多樣的問題;其次通過OpenCV對數(shù)據(jù)集進(jìn)行數(shù)字圖像處理并注入自然環(huán)境特征,如傾斜、模糊、光照等;最后解決了CCPD數(shù)據(jù)集在中文字符分布不均的問題,本文通過人工Data Augmentation來增強(qiáng)各個省份中文字符比例,緩解中文字符缺乏問題。
算法實(shí)驗(yàn)的硬件環(huán)境:CPU型號為英特爾i9-9900k,GPU型號為 Nvidia GeForce RTX 2080Ti。軟件環(huán)境:CentOS 7.5的操作系統(tǒng)、CU DA9.0、Python3.8、深度學(xué)習(xí)框架PyTorch1.9.0以及其他依賴的工具庫。
本文采用混合多個數(shù)據(jù)集進(jìn)行訓(xùn)練,其中CCPD數(shù)據(jù)集約300千張車輛圖片,拍攝不清晰難識別圖片約15千張,以及幾千張的新能源車輛數(shù)據(jù)。Stanford Cars車牌識別數(shù)據(jù)集擁有16 185張圖像來自于196類汽車,數(shù)據(jù)集分為8 144個訓(xùn)練樣本和8 041個測試樣本,其中每個類別已大致分為品牌、型號、年份等級別。
算法驗(yàn)證階段對改進(jìn)YOLO v5進(jìn)行訓(xùn)練,預(yù)訓(xùn)練模型選擇yolo v5l。為了對算法效果進(jìn)行對比評估,同時對Faster RCNN、YOLO v4和原始YOLO v5進(jìn)行實(shí)驗(yàn),并且統(tǒng)計(jì)了性能指標(biāo)AP、mAP、IOU、時間等,評估結(jié)果如表1所示,與其他3種模型相比,本文提出的算法各項(xiàng)指標(biāo)均處于前列。改進(jìn)后的YOLO v5模型的mAP相比原始的YOLO v5提高了1.1個百分點(diǎn),交并比提高了2.1個百分點(diǎn),時間減少了0.05 s。
表1 車牌檢測算法效果對比結(jié)果
綜上所述,與其他3種模型相比,本文提出的算法有較高的mAP和較高的檢測速度。實(shí)驗(yàn)證明基于改進(jìn)算法的YOLO v5檢測模型具有較高的實(shí)用性,可用于自然環(huán)境下的車牌檢測。
本文提出了一種基于改進(jìn)YOLO v5的車牌檢測算法,對YOLO v5的特征提取網(wǎng)絡(luò)、Bounding Box初始化方式、Loss Function、數(shù)據(jù)集增強(qiáng)方面進(jìn)行優(yōu)化,有效地提高了小特征提取,能適應(yīng)自然環(huán)境下車牌檢測。實(shí)驗(yàn)結(jié)果顯示,本文提出的算法在保證檢測速度、檢測精度的同時,能更好地適應(yīng)自然場景下的車牌檢測?!?/p>