王志斌, 馮雷, 張少波, 吳迪, 趙建東*
(1. 河北雄安京德高速公路有限公司, 保定 071799; 2.北京交通大學(xué)交通運輸學(xué)院, 北京 100044)
有效地識別車輛的身份信息對智慧交通的建設(shè)起著至關(guān)重要的作用。車牌是車輛的重要標識,是確定車輛身份信息的重要來源,然而在實際應(yīng)用中由于車牌遮擋、套牌等現(xiàn)象,僅僅通過車牌信息可能無法準確的確定車輛身份,因此快速而又準確識別出車輛的其他特征顯得尤為重要。而車型作為車輛的固有屬性,很難進行更改,可以彌補車牌識別的不足之處,對車牌識別的結(jié)果進行補充。
隨著智能交通的發(fā)展,大量的交通監(jiān)控攝像機被布置在路網(wǎng)中,通過道路系統(tǒng)中的監(jiān)控攝像機,可以獲得豐富的道路監(jiān)控視頻,為利用圖像處理技術(shù)識別車型提供了可能。利用圖像處理技術(shù),可以準確的檢測出圖像中車輛的信息,不需要額外安裝設(shè)備,不會對路面造成破壞,能夠提供直觀的車輛圖像。根據(jù)從圖像中提取特征的不同,可以把基于圖像的車型識別方法分為兩類:基于圖像特征描述符和基于深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)。
基于圖像特征描述符[1-3]的車型識別主要是從圖像中提取方向梯度直方圖(histogram of oriented gradient, HOG)、尺寸不變特征(scale-invariant feature transform, SIFT)、加速魯棒特征(speed up robust features, SUFT)等特征,構(gòu)建車型特征集,利用支持向量機(support vector machine, SVM)、貝葉斯等分類器完成車型的分類。但是該方法需要根據(jù)圖像的特點選擇恰當?shù)奶卣髅枋龇头诸惼鹘M合來達到較好的效果,并且識別準確率不高,檢測效率低。而基于深度學(xué)習(xí)的車型識別利用卷積神經(jīng)網(wǎng)絡(luò)自動提取圖像的特征,達到遠超傳統(tǒng)算法的精度,具有明顯的優(yōu)勢,因此得到了廣泛的應(yīng)用。桑軍等[4]提出基于Faster-RCNN[5]目標檢測模型與ZF、VGG-16以及ResNet-101 3種卷積神經(jīng)網(wǎng)絡(luò)分別結(jié)合的策略,三種組合在數(shù)據(jù)集上展現(xiàn)了很好的泛化能力。由于該方法對候選框進行了預(yù)分類,雖然車型識別的精度有所提升,但是檢測速度較慢。石磊等[6]在Caffe深度學(xué)習(xí)框架下提出了一種基于MexNet結(jié)構(gòu)的網(wǎng)絡(luò)模型,對車型的圖像進行訓(xùn)練,并與傳統(tǒng)CNN(convolutional neural network)算法進行比較,MexNet結(jié)構(gòu)的識別準確率較高,但模型相對復(fù)雜,實用性不是很強。陳立潮等[7]提出了一種改進的AlexNet網(wǎng)絡(luò)模型,融合嵌入了循環(huán)神經(jīng)網(wǎng)絡(luò),對池化方式結(jié)合研究對象進行了自定義,并對參數(shù)的更新進行了合理的組合,提高了網(wǎng)絡(luò)的泛化能力。但其存在模型參數(shù)量過大、運行時內(nèi)存占用高的問題。李曉琳等[8]基于前端Cortex-M開發(fā)板內(nèi)嵌的CMSIS-NN(cortex microcontroller software interface standard neural network)庫搭建車型識別模型,利用CMSIS-DSP(cortex microcontroller software interface standard digital signal processor)加快檢測車型速度,檢測精度達到94.6%,但是該方法將車型識別作為分類任務(wù)研究,容易受到背景信息的影響,精度有待提升,泛化能力較差;郭融等[9]利用改進深度可分離卷積(single shot multibox detector,SSD)算法用于車型研究。引入反殘差模塊來解決通道數(shù)少、特征壓縮導(dǎo)致的準確率下降的問題。實驗證明在BIT-Vehicle數(shù)據(jù)集上準確率達到96.12%,檢測速度提高至0.075 s/f。
綜上,為了提高車型識別的精度和速度,滿足交通場景下的使用需求?,F(xiàn)使用YOLOv5目標檢測模型進行車型識別。針對數(shù)據(jù)集中各車型類別不均衡的現(xiàn)象,使用多種圖像處理方法均衡車型數(shù)量;為了提高YOLOv5車型識別精度,使用RFB(receptive field block)模塊增大感受野,捕捉輸入圖像的全局特征;另外,引入SimAM注意力機制,提高模型的特征提取能力。改進后的YOLOv5模型在檢測速度和檢測精度上達到較好平衡,能適用交通場景下車型識別檢測,達到高精度實時檢測要求。
2020年6月YOLOv5模型在github上發(fā)布,它并不僅僅是一個網(wǎng)絡(luò)模型,而是具有不同深度和寬度的4個模型。模型深度和寬度的增加會帶來識別性能的提升,但是同樣也會消耗大量的計算資源,使得識別速度降低??紤]到檢測對象是道路上行駛的車輛,對實時性要求較高,因此采用深度和寬度最小的YOLOv5s(下文統(tǒng)一稱為“YOLOv5”)模型作為基礎(chǔ)網(wǎng)絡(luò)進行優(yōu)化,完成車型識別任務(wù)。
YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)主要包括主干特征提取網(wǎng)絡(luò)(Backbone)、加強特征融合部分[FPN(feature pyramid network)+PAN(path aggregation network)]的檢測層(Head)部分。
主干特征提取網(wǎng)絡(luò)由CSPDarknet53構(gòu)成,如圖1中紅色虛線部分所示,其主要組成BottleneckCSP[10]結(jié)構(gòu),在YOLOv5網(wǎng)絡(luò)中改進為C3結(jié)構(gòu),去掉主分支的bottleneck后的卷積層,并把融合后的BatchNorm層和激活層LeakyReLU去掉,減少計算參數(shù),提高了計算效率。改進前后的結(jié)構(gòu)如圖2所示,圖2中的conv2d是普通的卷積層,BatchNorm層是批歸一化層,CONV層是由conv2d、BatchNorm以及激活函數(shù)層構(gòu)成。另外YOLOv5提出了一個結(jié)構(gòu)Focus模塊,通過對輸入特征圖切片操作,達到快速下采樣,提高深層語義信息的特點。
加強特征融合部分主要由特征金字塔網(wǎng)絡(luò)(feature pyramid network,F(xiàn)PN)[11]結(jié)構(gòu)和路徑聚合網(wǎng)絡(luò)[12](path aggregation network,PAN)結(jié)構(gòu)組成,如圖1中黃色虛線所示,通過FPN結(jié)構(gòu)融合不同尺度的特征信息,將淺層細節(jié)信息和深層語義信息進行融合,避免深層次特征提取,導(dǎo)致小目標信息丟失。PAN自下向上結(jié)構(gòu)與FPN自上向下的結(jié)構(gòu)進行配合,通過橫向連接,實現(xiàn)不同尺度融合。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 YOLOv5 network structure diagram
圖2 改進結(jié)構(gòu)Fig.2 Improved structure
檢測層利用特征融合部分輸出的三個大小不同特征圖,以輸入640×640的尺寸圖片為例最終輸出20×20、40×40、80×80的特征圖,完成對大中小三種目標的檢測。
YOLOv5中的損失函數(shù)為
(1)
式(1)中:N為檢測層的個數(shù),YOLOv5中為3層;Bi為第i個檢測層分配到先驗框的目標個數(shù);Si×Si為第i個檢測層所對應(yīng)得特征圖被分割成的網(wǎng)格數(shù);Lbox為邊界框損失;Lobj為目標物體損失;Lcls為分類損失,λ1、λ2、λ3分別為上述3種損失對應(yīng)的權(quán)重。
CIoU損失計算如公式為
(2)
式(2)中:b、bgt分別為預(yù)測框和標簽框;wgt、hgt、w、h分別為標簽框的寬、高和預(yù)測框的寬、高;ρ為兩個矩形框中心的距離;α為權(quán)重系數(shù)。
Lobj和Lcls計算公式為
(1-yi)lg[1-σ(xi)]}
(3)
采用BIT-Vehicle[13]數(shù)據(jù)集作為車型識別的訓(xùn)練集。該數(shù)據(jù)集是在不同的時間和地點利用兩個不同視角的道路監(jiān)控攝像頭拍攝,共包含了9 850張車輛圖片。將車輛分為6種:大巴車(BUS)、小型客車(Microbus)、小型貨車(Minivan)、轎車(Sedan)、運動實用性汽車(sport utility vehicle,SUV)、卡車(Truck)。圖3為不同車輛類型的示意圖。上述6類車型涵蓋了道路上所有的車輛,能夠有效的判斷道路上的車輛信息。該數(shù)據(jù)集圖片信息豐富,不同的車輛尺度、各種顏色車輛、不同的拍攝視角以及光照條件的圖片。
為了增加訓(xùn)練模型的泛化能力,提高在實際應(yīng)用中的魯棒性,利用高速公路收費站拍攝的視頻圖像數(shù)據(jù)對原始車型識別數(shù)據(jù)集進行擴充。同時原數(shù)據(jù)集中各類車型圖片的數(shù)量存在不均衡的現(xiàn)象,其中Sedan和Bus、Minivan數(shù)量差距高達5 000多張,各類別數(shù)量的不均衡容易導(dǎo)致不同類別物體檢測精度出現(xiàn)差異,訓(xùn)練后的模型預(yù)測結(jié)果更加偏向于數(shù)量較多的類別。因此需要對數(shù)據(jù)集進行預(yù)處理,利用圖像翻轉(zhuǎn)變換、添加高斯噪聲、色彩變化,增加原有數(shù)據(jù)集中數(shù)量較少的車型,使得各種車型圖片數(shù)量均衡,將擴充后的數(shù)據(jù)集命名為BIT-Vehicle-Extend,各部分擴充細節(jié)如表1所示。
本文模型訓(xùn)練在windows10 64位操作系統(tǒng)中進行,編程語言為python和pytorch框架進行模型訓(xùn)練,實驗所使用的GPU配置為Nvidia GTX1080ti。訓(xùn)練樣本的batch size為16,訓(xùn)練共迭代200個epoch。
目標檢測任務(wù)要找檢測物體在圖像中的位置,以及該物體的類別屬性,因此衡量目標檢測模型性能的指標除了分類任務(wù)中用到的準確率和loss曲線外,還包括全類平均精度(mean average precision,mAP)、召回率(recall)、精確度(precision)等指標。
精確度(precision):表示檢測為正樣本并且分類正確的數(shù)量與檢測為正樣本總數(shù)的比值;召回率(recall):表示檢測為正樣本并且分類正確的數(shù)量與實際正樣本數(shù)的比值,計算公式分別為
(4)
(5)
式中:TP(true positives)表示被檢測為正確的正樣本;TN(true negative)表示被檢測為正確的負樣本;FP(false positive)表示被檢測為錯誤的正樣本;FN(false negative)表示被檢測為錯誤的負樣本。
AP值:正樣本和負樣本依據(jù)設(shè)置的IOU(intersection over union)值進行劃分,通過置信度的大小,確定模型是否分類正確,通過不同的置信度可以計算出不同的召回率和精確度,以召回率為橫軸,精確度為縱軸,繪制曲線,曲線與坐標軸所圍成的面積就是平均精度(average precision, AP)。AP值常用來描述模型性能的好壞。
mAP值:對所有類別(在本文中指的是車型的種類)的AP值進行求平均,mAP越大代表模型整體檢測精度高。在實際模型評價中常采用mAP0.5和mAP0.5:0.95兩個指標,VOC數(shù)據(jù)集使用的mAP0.5,將IOU的大小設(shè)置為0.5,即當IOU大于0.5時,判斷為正樣本。隨著模型性能的不斷增加COCO數(shù)據(jù)集使用更為嚴苛和準確的的mAP0.5:0.95作為評價指標,將IOU閾值從0.5取到0.95,步長為0.05,然后求平均。后者更有一定的合理性,檢測標準更為嚴苛,在一般情況下小于前者。
在卷積神經(jīng)網(wǎng)絡(luò)中,感受野是指輸出特征圖上每個像素點在輸入特征圖像映射區(qū)域大小,也就是說經(jīng)過卷積運算后,每個像素點對應(yīng)得感受野就是在上一個特征圖上與卷積核進行卷積運算得區(qū)域,可以理解為神經(jīng)元所看到得區(qū)域大小。
感受野對應(yīng)的區(qū)域越大表示接觸到原始圖像的范圍也就越大,更容易發(fā)現(xiàn)全局特征。但是為了增大感受野而增加卷積核大小,會導(dǎo)致模型參數(shù)增加;或者通過池化層的方式進行下采樣縮小特征圖,增大感受野,但是這樣會丟失特征信息。而空洞卷積可以增大網(wǎng)絡(luò)的感受野范圍,讓每一次卷積都包含較大范圍的信息,通過設(shè)置膨脹率(rate)大小,來控制感受野范圍。
RFB[14]模塊模擬人類視覺的感受和偏心度,借鑒Inception[15]網(wǎng)絡(luò)構(gòu)建形式,結(jié)合空洞卷積的思想設(shè)計了RFB模塊,它的內(nèi)部結(jié)構(gòu)主要是由多個卷積不同膨脹率rate的卷積層構(gòu)成,本文所用的RFB模型的結(jié)構(gòu)如圖4所示。將RFB模塊添加到Y(jié)OLOv5的特征提取網(wǎng)絡(luò)中,提高模型對于車輛全局特征的提取,找出相似出行之間的不同之處。
表1 BIT-Vehicle-Extend數(shù)據(jù)集Table 1 BIT-Vehicle-Extend dataset
圖4 RFB模塊示意圖Fig.4 schematic diagram of RFB module
注意力機制的本質(zhì)就是用計算機來模擬人的視覺系統(tǒng),模仿人觀察事物的方式,將注意力聚集在某一局部信息上,在圖像處理上就是特別關(guān)注圖像中的某一部分區(qū)域。由于受到距離、外界環(huán)境因素等的影響,視頻圖像可能清晰度不高,一些重要特征容易被忽視,采用注意力機制可以幫助神經(jīng)網(wǎng)絡(luò)更好的關(guān)注到圖像的細節(jié)特征。
目前一些已有注意力模塊SE[16]模塊、CBAM[17]模塊等已被證明可以有效的增加網(wǎng)絡(luò)的特征提取能力,然而這些模型都會在一定程度上給網(wǎng)絡(luò)模型引入新的參數(shù),使模型變得更復(fù)雜。而文獻[18]提出了一種簡單有效的注意力模塊SimAM,不同于現(xiàn)有的通道或者空域注意力模塊,該模塊不需要額外的參數(shù)便可以推導(dǎo)出3D注意力權(quán)值。將SimAM模塊添加到Bottleneck中,形成Bottleneck_SimAM模塊,增強模型的特征提取能力。Bottleneck_SimAM模塊結(jié)構(gòu)如圖5所示。
圖5 bottleneck_SimAM結(jié)構(gòu)Fig.5 bottleneck_ Simam structure
通過表2可知,YOLOv5在檢測速度和檢測精度上均優(yōu)于Faster-RCNN[4]、YOLOv4[19]。改進后的網(wǎng)絡(luò),訓(xùn)練100個epoch后mAP0.5和mAP0.5:0.95比原始網(wǎng)絡(luò)分別高0.9%和1.7%,因此改后的網(wǎng)絡(luò)更快達到收斂。訓(xùn)練200個epoch后,最終改進后的網(wǎng)絡(luò)mAP0.5相比于原始模型提高了0.7%,mAP0.5:0.95提高了1.5%。通過實驗發(fā)現(xiàn)評價指標mAP0.5:0.95得到了更好的提升,主要原因在于原網(wǎng)絡(luò)自身具有較高的檢測性能,在面對較為寬松的評價指標時,有較好的表現(xiàn),達到了較高的準確率。當選擇嚴格的指標后,改進后的網(wǎng)絡(luò)展現(xiàn)出比原始網(wǎng)絡(luò)更好的性能,即改進后的網(wǎng)絡(luò)預(yù)測框與真實框的重合程度更高,檢測性能更好。
表2 實驗結(jié)果對比Table 2 Comparison of experimental results
為了車型識別任務(wù)檢測速度和檢測精度,選擇YOLOv5模型作為基礎(chǔ)模型完成車型識別任務(wù),并提出改進措施,具體工作與結(jié)論如下。
(1)為了提高模型的魯棒性。利用高速公路收費站監(jiān)控視頻圖像數(shù)據(jù)擴充數(shù)據(jù)集,并通過圖像反轉(zhuǎn)、色域變化以及添加高斯噪聲等圖像處理技術(shù)對各車型數(shù)量進行均衡化,構(gòu)建BIT-Vehicle-Extend數(shù)據(jù)集。
(2)在網(wǎng)絡(luò)結(jié)構(gòu)方面使用為了提高車型識別的精度,添加RFB模塊用于增加網(wǎng)絡(luò)感受野,有助于模型捕捉全局特征;其次將無參數(shù)的SimAM注意力機制添加Bottleneck模塊中,在不增加參數(shù)的情況下,提高網(wǎng)絡(luò)的特征提取能力。
(3)改進后的YOLOv5模型,mAP0.5和mAP0.5:0.95達到了98.7%和96.3%,遠超F(xiàn)aster-RCNN和YOLOv4模型。相比于原始網(wǎng)絡(luò)模型,mAP0.5和mAP0.5:0.95分別提高了0.7%和1.5%。改進后的模型檢測速度達到90 f/s,能夠高精度地實時檢測車型信息,滿足車型識別檢測需求。