李志堅,郭玉彬,趙建東
(1. 中交建冀交高速公路投資發(fā)展有限公司,河北 石家莊 050000;2. 北京交通大學(xué) 交通運(yùn)輸學(xué)院,北京 100044)
對車輛進(jìn)行實時的異常行為檢測,有利于提高道路交通管理的效率和車輛出行安全。利用計算機(jī)視覺方法對視頻圖像進(jìn)行車輛檢測成本低、實施方便,受到了越來越多的關(guān)注。
通過目標(biāo)檢測算法可以將圖片中車輛的位置和類別信息檢測出來,高精度的目標(biāo)檢測算法是進(jìn)行車輛跟蹤的重要基礎(chǔ)。2015年,首個單階段目標(biāo)檢測模型YOLO算法由Joseph[1]提出,該算法直接利用回歸方法使用提取后的特征預(yù)測分類和邊界框,具有快速檢測的能力。隨后該作者又提出速度更快精度更高的YOLO9000[2]、YOLOv3[3]算法。AlexAB[4]通過整合圖像處理領(lǐng)域的各種提高精度的方法,提出了YOLOv4算法,相較于前一代精度提高10%。同年YOLOv5[5]發(fā)布算法,該模型在保持高精度檢測的同時,速度更快。針對單階段目標(biāo)檢測中前景與背景類別不均衡導(dǎo)致識別準(zhǔn)確率較低的情況,Lin[6]等人提出RetinaNet模型和Focal Loss損失函數(shù),使模型能夠?qū)λ蓄悇e進(jìn)行充分的訓(xùn)練。但是當(dāng)前針對類別不均衡問題并未得到完全的解決,仍然值得近一步研究。
在跟蹤算法的研究中,Alex Bewley等人[7]提出SORT算法,該算法具有檢測精度高,在檢測速度方面比其他算法快20倍,但是該算法存在ID切換問題。隨后提出的Deep Sort[8]算法,增加了級聯(lián)匹配機(jī)制,并提取車輛外觀特征,該算法有效地解決了ID切換和遮擋問題。Zhou等[9]提出CentreTrack跟蹤算法,與Sort類算法不同的是,該算法是端到端的模型,以前一幀和后一幀圖像以及前一幀圖像檢測結(jié)果渲染的熱力圖作為輸入,直接完成追蹤任務(wù)。如何解決遮擋問題是跟蹤任務(wù)中的關(guān)鍵難點,雖然Deep Sort算法通過提取外觀特征找回因遮擋而丟失的目標(biāo),但該模型性能較差,仍有改進(jìn)空間。
綜上,實時的車輛檢測和跟蹤算法研究主要存在以下難點:(1)如何在保證檢測精度的同時,保持較高的檢測速度;(2)在車輛軌跡追蹤過程中如何解決遮擋問題,避免出現(xiàn)軌跡中斷和ID跳變情況。本研究針對上述難點,建立高速公路車輛檢測圖像庫,利用優(yōu)化后的YOLOv5和Deep Sort算法進(jìn)行車輛檢測跟蹤,得到精確的車輛軌跡。
車輛檢測作為監(jiān)督學(xué)習(xí),需要對每張圖片標(biāo)注車輛類型以及在圖像中的位置信息。由于研究場景為高位相機(jī)拍攝下的道路監(jiān)控視頻,視頻中的車輛難以區(qū)分詳細(xì)的類別信息,因此本研究將高速公路上的車輛分為小型車、公交客運(yùn)車、貨車3類,并用矩形框?qū)④囕v的位置標(biāo)注出來。
從道路監(jiān)控視頻中抽取8 056張圖片用于構(gòu)建數(shù)據(jù)集,各類型車輛數(shù)量如表1所示。在數(shù)據(jù)集構(gòu)建的過程中,發(fā)現(xiàn)數(shù)據(jù)集中各類型車輛數(shù)量存在嚴(yán)重的不均衡現(xiàn)象,如小型車的數(shù)量比公交客運(yùn)車多50 217 個,另外道路監(jiān)控視頻下的車輛過于模糊,給檢測造成一定的困難。在研究中,將數(shù)據(jù)集按6∶2∶2 的比例進(jìn)行劃分。
表1 數(shù)據(jù)集中各型車數(shù)量
(1)網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示,輸入的圖片首先經(jīng)過Focus結(jié)構(gòu)進(jìn)行下采樣,接著通過由CBH結(jié)構(gòu)和BottleneckCSP[10]結(jié)構(gòu)組成的主干特征提取網(wǎng)絡(luò)。CBH結(jié)構(gòu)由卷積層、批歸一化層、激活函數(shù)構(gòu)成。經(jīng)過主干特征網(wǎng)絡(luò)后,使用空間池化金字塔層[11],融合不同尺度的特征圖信息,提高檢測精度[12]。最后,使用PANet(Path Aggregation Network)[13]結(jié)構(gòu),針對3個不同尺度的特征圖進(jìn)行預(yù)測車輛目標(biāo)信息。
圖1 YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)
(2)損失函數(shù)
YOLOv5中使用的是損失函數(shù)如式(1)所示:
(1)
式中,N為檢測層的個數(shù);YOLOv5中為3層;Lbox為邊界框損失;Lobj為目標(biāo)物體損失;Lcls為分類損失;λ1,λ2,λ3分別為上述3種損失對應(yīng)的權(quán)重。
CIoU損失計算如式(2):
(2)
式中,b,bgt分別為預(yù)測框和標(biāo)簽框;wgt,hgt為標(biāo)簽框的寬高;w,h為預(yù)測框的寬高;ρ為兩個矩形框中心的距離[12];α為權(quán)重系數(shù)。
Lobj和Lcls計算方式如式(3):
(3)
通過對YOLOV5基準(zhǔn)模型試驗后發(fā)現(xiàn),不同類別車型的檢測精度和車型數(shù)量成正比,如數(shù)據(jù)集中小型車數(shù)量最多,模型可以學(xué)習(xí)到該類車型豐富的特征信息,因此檢測精度最高。而數(shù)據(jù)集中公交客運(yùn)車數(shù)量最少,模型沒有得到很多的訓(xùn)練,因此檢測精度最低。
(1)網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化
在基準(zhǔn)YOLOv5網(wǎng)絡(luò)中,Bottleneck模塊中的Conv2層作為一種過渡層,不承擔(dān)主要的特征提取任務(wù),但增加了模型計算量,因此將該層去掉,減少參數(shù);另一方面考慮引入Ghost Module[14]替換原始的右側(cè)分支中Conv3卷積層,減少參數(shù)量。綜合上述改進(jìn),提出CG3瓶頸層結(jié)構(gòu),其結(jié)構(gòu)如圖2所示。其次,在CG3結(jié)構(gòu)中的Bottleneck層中,引入?yún)?shù)相對較少的輕量注意力機(jī)制ECA(Efficient Channel Attention)[15],旨在提高網(wǎng)絡(luò)模型的性能。
圖2 CG3-Attention瓶頸層
(2)數(shù)據(jù)輸入端優(yōu)化
在基準(zhǔn)網(wǎng)絡(luò)試驗中,發(fā)現(xiàn)不均衡的類別差異會給最后的檢測結(jié)果帶來較大的影響,因此從數(shù)據(jù)輸入端進(jìn)行優(yōu)化。本研究以Mosaic[4]數(shù)據(jù)增強(qiáng)方法作為基礎(chǔ)結(jié)合本數(shù)據(jù)集特點,提出Class-Weighted Mosaic(C-W-Mosaic)數(shù)據(jù)增強(qiáng)方法。具體步驟如下:
①統(tǒng)計數(shù)據(jù)集中各車型的數(shù)量總數(shù),取倒數(shù),作為每一類車型的權(quán)重;
②求每張圖片的權(quán)重,每類車型的權(quán)重乘圖片中各車型的數(shù)量;
③將圖片依據(jù)權(quán)重大小進(jìn)行排序;
④首先隨機(jī)抽取第1張圖片,第2,3張圖片從前n張圖片中選取,按照權(quán)重由大到小順序選擇,第4張在剩余的部分中選擇;
⑤隨機(jī)將區(qū)域分為4部分,將上一步選擇的4張圖片放入;
⑥對于合成后的圖片采用常用的數(shù)據(jù)增強(qiáng)手段。
(3)網(wǎng)絡(luò)結(jié)構(gòu)改進(jìn)試驗結(jié)果對比
為了驗證上述改進(jìn)效果,在相同的試驗條件(模型的超參數(shù)、訓(xùn)練數(shù)據(jù)集等)下,進(jìn)行對比試驗,驗證集測試結(jié)果如表2所示。通過表2可以看出,在基準(zhǔn)網(wǎng)絡(luò)中使用CG3-Attention瓶頸層,檢測指標(biāo)mAP50和mAP50∶95分別提高了1.7%和2.4%。在數(shù)據(jù)輸入端使用C-W-Mosaic數(shù)據(jù)增強(qiáng)相較于Mosaic方法,樣本量較少的公交客運(yùn)車檢測精度AP50和AP50∶95分別提升0.9%和2.0%。通過試驗結(jié)果表明,優(yōu)化后的YOLOv5模型可以快速準(zhǔn)確地檢測車輛目標(biāo)。
表2 試驗比對結(jié)果
如圖3所示,本研究使用了Deep Sort多目標(biāo)跟蹤算法,完成車輛追蹤任務(wù),該算法通過提取車輛的外觀特征,完成多幀圖像車輛的匹配跟蹤,使得車輛即使是在被遮擋的情況下仍能被再次匹配找回,增加了跟蹤的穩(wěn)定性。
圖3 Deep Sort多目標(biāo)跟蹤算法流程圖
(1)外觀提取特征優(yōu)化
原Deep Sort網(wǎng)絡(luò)中,特征提取能力較差,并且高速公路高位相機(jī)拍攝的車輛尺度變化較大,同時容易受到環(huán)境因素影響,圖像質(zhì)量難以保證,加劇了Deep Sort的不穩(wěn)定性。因此,本研究提出將Resnet18[16]殘差網(wǎng)絡(luò)作為原模型的特征提取網(wǎng)絡(luò),在保證檢測速度的同時,提取更有分辨性的特征。另外,引入三元組損失[17],替換原有的損失函數(shù)。
三元組損失公式化表現(xiàn)如下:
Ltriple=max{dcosine(a,p)-dcosine(a,n)+α,0},
(4)
式中dcosine(A,B)計算公式如式(5),表示兩個向量之間的余弦距離。
(5)
使用公開的VeRi776車輛重識別數(shù)據(jù)集[18]進(jìn)行訓(xùn)練,驗證改進(jìn)效果,結(jié)果對比如表3所示。
表3 重識別模型訓(xùn)練結(jié)果對比
通過表3可以發(fā)現(xiàn)原始的網(wǎng)絡(luò)模型由于特征提取能力較弱,所以表現(xiàn)較差;使用Resnet18殘差網(wǎng)絡(luò)之后,模型可以有效學(xué)習(xí)到相應(yīng)的特征,檢測精度相較于原始網(wǎng)絡(luò)模型得到提升;損失函數(shù)改為三元組損失之后,模型檢測精度得到近一步提升,對于車輛的區(qū)分能力更強(qiáng)。
選取高速公路監(jiān)控視頻對所提出的優(yōu)化算法進(jìn)行驗證,所選擇視頻存在大量遮擋情況,具有一定的挑戰(zhàn)性,能夠有效的檢驗出優(yōu)化后算法的穩(wěn)定性。另外,選擇主流的多目標(biāo)追蹤算法CenterTrack[9]和FairMOT[19]做對比試驗。評價指標(biāo)選用常用的MOTA(多目標(biāo)跟蹤準(zhǔn)確率)、MOTP(多目標(biāo)跟蹤精確率)、MT(被跟蹤到的軌跡占比)、FM(真實軌跡被打斷的次數(shù))[20]。
試驗結(jié)果如表4所示,可以發(fā)現(xiàn)改進(jìn)后的模型跟蹤效果更加穩(wěn)定,軌跡被打斷和ID跳變現(xiàn)象得到了有效緩解,在檢測速度方面,優(yōu)化后的模型可以達(dá)到25~30 fps,能夠?qū)崟r完成跟蹤高速公路監(jiān)控場下的車輛檢測跟蹤任務(wù)。
表4 跟蹤結(jié)果對比
本研究主要利用高速公路監(jiān)控視頻,研究車輛的檢測和跟蹤算法。制作了車輛檢測數(shù)據(jù)集,從網(wǎng)絡(luò)結(jié)構(gòu)和數(shù)據(jù)增強(qiáng)方面優(yōu)化了YOLOv5車輛檢測模型,從外觀特征提取模型和跟蹤關(guān)聯(lián)參數(shù)優(yōu)化了多車跟蹤模型,具體結(jié)論如下:
(1)提出Class-weighted Mosaic數(shù)據(jù)增強(qiáng)方法,應(yīng)用在YOLOv5目標(biāo)檢測模型的數(shù)據(jù)輸入端,有效緩解少數(shù)量樣本帶來的問題;為了提高YOLOv5目標(biāo)檢測模型的檢測效率和精度,設(shè)計CG3瓶頸層結(jié)構(gòu),提高車輛檢測精度。
(2)使用Resnet18殘差網(wǎng)絡(luò)作Deep Sort追蹤模型的特征提取網(wǎng)絡(luò),并且將損失函數(shù)換成三元組損失函數(shù),使得Deep Sort能夠在車輛遮擋的情況下保持較高的檢測穩(wěn)定性。
(3)試驗結(jié)果表明,優(yōu)化后的YOLOv5車輛檢測模型,精確度由92.8%提高到了96.3%;Deep Sort多車跟蹤優(yōu)化模型有效降低了ID跳變和跟蹤軌跡中斷的次數(shù),并且優(yōu)化算法檢測跟蹤車輛可以達(dá)到25~30 fps的速度。