陳佳倩, 金晅宏, 王文遠(yuǎn), 陸瑩潔
(上海理工大學(xué) 光電信息與計(jì)算機(jī)工程學(xué)院, 上海 200093)
隨著城市化進(jìn)程的加快和智能交通的發(fā)展,車流量檢測(cè)成了重要課題之一。車流量檢測(cè)技術(shù)的發(fā)展可以進(jìn)一步提高智慧城市的管理和規(guī)劃能力以及城市的生產(chǎn)和服務(wù)效率[1]。交通規(guī)劃部門常用的車流量檢測(cè)方法多為空氣管道檢測(cè)技術(shù)、磁感應(yīng)檢測(cè)技術(shù)[2]等,這些技術(shù)的應(yīng)用易受到外部因素的影響,已不能滿足如今自動(dòng)化程度越來越高的時(shí)代需求。隨著圖像處理技術(shù)、計(jì)算機(jī)視覺以及計(jì)算機(jī)硬件設(shè)施的發(fā)展,基于視頻的車流量檢測(cè)可以減少人為對(duì)檢測(cè)的干預(yù),計(jì)算機(jī)視覺被應(yīng)用于視頻車流量檢測(cè)領(lǐng)域是車流量統(tǒng)計(jì)的發(fā)展趨勢(shì)。基于視頻的車流量檢測(cè)通常分為2個(gè)部分:車輛檢測(cè)和車輛跟蹤。車輛跟蹤的傳統(tǒng)方法主要分為判別類方法和生成類方法,其中部分算法實(shí)時(shí)性差,復(fù)雜度高,如背景建模法、光流法[3,4]等;部分算法則容易受到目標(biāo)移動(dòng)速度影響,如卡爾曼濾波、粒子濾波、均值漂移[5,6]等?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為基于候選區(qū)域和基于回歸思想的算法?;诤蜻x區(qū)域的算法如R-CNN、Fast R-CNN[7,8]等實(shí)時(shí)性能較差,而經(jīng)改良的基于回歸思想的YOLOv3算法[9]在精度提高的同時(shí),實(shí)時(shí)性強(qiáng)。在車輛跟蹤方面,跟蹤算法SORT[10](simple online and real-time tracking)算法使用卡爾曼濾波器和匈牙利算法處理跟蹤問題中的運(yùn)動(dòng)估計(jì)和數(shù)據(jù)關(guān)聯(lián)。跟蹤器對(duì)視頻中的前一幀和當(dāng)前幀處理,提高了在線跟蹤的效率,但是無法解決長(zhǎng)期遮擋和目標(biāo)識(shí)別問題。DeepSort[11](simple online and realtime tracking with a deep association metric)則使用更加可靠的度量代替關(guān)聯(lián)度量,使用CNN網(wǎng)絡(luò)對(duì)數(shù)據(jù)集訓(xùn)練并提取特征,增加網(wǎng)絡(luò)對(duì)遺失和障礙的魯棒性,有效的解決了跟蹤過程中的遮擋問題[12,13]。
為了能夠?qū)⒛繕?biāo)準(zhǔn)確檢測(cè)后輸入跟蹤器進(jìn)行在線實(shí)時(shí)跟蹤,本文將YOLOv3算法和DeepSort算法結(jié)合,展開車流量檢測(cè)研究。首先,采用YOLOv3算法在Darknet-53圖像特征提取網(wǎng)絡(luò)結(jié)構(gòu)下訓(xùn)練車輛目標(biāo)檢測(cè)模型,獲得性能優(yōu)良的YOLOv3檢測(cè)器。然后利用YOLOv3的檢測(cè)結(jié)果作為后續(xù)跟蹤的輸入,結(jié)合DeepSort算法框架,利用運(yùn)動(dòng)模型和表觀信息進(jìn)行數(shù)據(jù)關(guān)聯(lián),實(shí)現(xiàn)端到端多目標(biāo)視覺跟蹤,進(jìn)行視頻車流量檢測(cè),使車輛目標(biāo)在光照、快速移動(dòng)、遮擋等復(fù)雜情況下獲得良好的跟蹤效果,提升了傳統(tǒng)車流量檢測(cè)算法的性能和魯棒性。
Tracking-By-Detection是一種detector+tracker的多目標(biāo)追蹤方式,選擇合適優(yōu)良的檢測(cè)器對(duì)跟蹤效果影響巨大。YOLOv3是一種基于一體化卷積網(wǎng)絡(luò)(one stage)的目標(biāo)檢測(cè)算法,通過直接回歸的方式一次處理并學(xué)出對(duì)應(yīng)物體的目標(biāo)區(qū)域、位置及類別[14,15]。YOLOv3的網(wǎng)絡(luò)結(jié)構(gòu)模型如圖1所示。
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv3 network structure
YOLOv3算法采用DarkNet-53網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),使用其中的52個(gè)卷積層提取特征的主要結(jié)構(gòu),經(jīng)過卷積和矩陣拼接操作對(duì)中低層和底層矩陣進(jìn)行處理,產(chǎn)生3個(gè)尺度的輸出。預(yù)測(cè)網(wǎng)絡(luò)對(duì)不同尺寸的特征圖處理,預(yù)測(cè)目標(biāo)類別及位置。YOLOv3使用多尺度特征,優(yōu)化了對(duì)小目標(biāo)的檢測(cè)效果。并且采用多標(biāo)簽取代單標(biāo)簽,減少目標(biāo)重疊。
經(jīng)過從YOLO到Y(jié)OLOv2再到Y(jié)OLOv3的一系列改進(jìn),YOLOv3算法與其它深度學(xué)習(xí)檢測(cè)算法在COCO數(shù)據(jù)集上的測(cè)試速度與精度對(duì)比如表1所示。
表1 YOLOv3與其它深度學(xué)習(xí)檢測(cè)器性能對(duì)比Tab.1 Performance comparison between YOLOv3 and other deep learning detectors
DeepSort算法帶有深度關(guān)聯(lián)特征,是基于Sort算法的改進(jìn),它的跟蹤效果基于現(xiàn)有的準(zhǔn)確的檢測(cè)結(jié)果。以檢測(cè)結(jié)果bounding box、confidence、feature為輸入。conf主要用于檢測(cè)框的篩選,bounding box與feature(ReID)用于與跟蹤器的匹配計(jì)算。預(yù)測(cè)模塊利用卡爾曼濾波器,更新模塊部分利用IOU進(jìn)行匈牙利算法的匹配,跟蹤流程如圖2所示。
圖2 DeepSort 跟蹤流程Fig.2 DeepSort tracking process
馬氏距離表示檢測(cè)目標(biāo)背離目標(biāo)軌跡平均位置的偏離程度,使用馬氏距離可度量卡爾曼濾波器預(yù)測(cè)的目標(biāo)狀態(tài)與檢測(cè)值的匹配度,用yi表示第i個(gè)追蹤器的目標(biāo)預(yù)測(cè)框位置,dj為第j個(gè)檢測(cè)框位置,Si為檢測(cè)位置與追蹤位置之間的協(xié)方差矩陣。馬氏距離計(jì)算公式為:
(1)
通過馬氏距離對(duì)左右檢測(cè)到的目標(biāo)進(jìn)行篩選,設(shè)閾值t(1)=9.487 7。若關(guān)聯(lián)的馬氏距離d(1)小于閾值,則設(shè)置運(yùn)動(dòng)狀態(tài)關(guān)聯(lián)成功,示性函數(shù)為:
(2)
(3)
設(shè)定閾值t(2),確定是否關(guān)聯(lián):
(4)
使用2種度量方式的線性加權(quán)作為最終的度量:
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(5)
當(dāng)ci,j位于2種度量閾值交集內(nèi),則認(rèn)為實(shí)現(xiàn)了正確的關(guān)聯(lián)。
門限函數(shù)為:
(6)
為了將DeepSort與其他多目標(biāo)跟蹤模型進(jìn)行對(duì)比,選取結(jié)合丟失目標(biāo),虛警率,標(biāo)號(hào)轉(zhuǎn)換后的準(zhǔn)確率MOTA;平均邊框重疊率MOTP;被跟蹤到的軌跡占比MT;跟丟的軌跡占比ML;跟蹤軌跡改變目標(biāo)標(biāo)號(hào)的次數(shù)ID;真實(shí)軌跡被打斷的次數(shù)FM;誤報(bào)總數(shù)FP;未命中目標(biāo)總數(shù)FN和運(yùn)行頻率Runtime作為評(píng)價(jià)指標(biāo)進(jìn)行評(píng)價(jià)。DeepSort和其它方法在Mot16數(shù)據(jù)集上的跟蹤結(jié)果對(duì)比如表2所示。
表2 DeepSort與其它多目標(biāo)跟蹤算法性能對(duì)比Tab.2 Performance comparison of DeepSort and other multi-target tracking algorithms
作為一種在線跟蹤方法,DeepSort具有良好的性能,滿足了視頻多目標(biāo)檢測(cè)和跟蹤的要求。
為了解決車流量跟蹤計(jì)數(shù)的問題,本文利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)大規(guī)模車輛ReID數(shù)據(jù)集對(duì)車輛數(shù)據(jù)集進(jìn)行訓(xùn)練,采用VeRi基準(zhǔn)數(shù)據(jù)集,該數(shù)據(jù)集包括776輛車,超過50 000張的圖像,每輛車在不同的視點(diǎn)、照明、分辨率和遮擋條件下由2~18臺(tái)攝像機(jī)拍攝,將圖像裁剪縮放到大小為128×256像素進(jìn)行cosine_metric訓(xùn)練,再使用該預(yù)訓(xùn)練網(wǎng)絡(luò)為基礎(chǔ)網(wǎng)絡(luò),構(gòu)建wide ResNet,得到車輛表觀特征模型,與檢測(cè)器的輸入bounding box進(jìn)行匹配計(jì)算,解決傳統(tǒng)跟蹤方法對(duì)表面特征提取不準(zhǔn)確的問題。
將訓(xùn)練好的YOLOv3檢測(cè)器用于復(fù)雜環(huán)境下的車流量檢測(cè),使用YOLOv3訓(xùn)練的車輛檢測(cè)模型,將車流視頻中的車輛檢測(cè)結(jié)果作為DeepSort跟蹤器的實(shí)時(shí)輸入。高精度的目標(biāo)檢測(cè)算法彌補(bǔ)了DeepSort的自身缺陷。具體的車流量檢測(cè)算法流程圖如圖3所示。
圖3 車流量檢測(cè)算法流程圖Fig.3 Flow Chart of Vehicle Flow Detection Algorithm
為了驗(yàn)證YOLOv3和DeepSort框架相結(jié)合進(jìn)行車輛跟蹤計(jì)數(shù)的可行性和準(zhǔn)確性,將該算法集成在Tensorflow平臺(tái)下,選取30幀/s,尺寸為1 280×720像素的道路拍攝車輛視頻進(jìn)行測(cè)試。實(shí)驗(yàn)配置環(huán)境為英偉達(dá) RTX 2060 SUPER以及Win10系統(tǒng)。開發(fā)基于Python語言,跟蹤可視化基于OpenCV。
網(wǎng)絡(luò)訓(xùn)練時(shí),在ImageNet數(shù)據(jù)集預(yù)訓(xùn)練好權(quán)重的基礎(chǔ)上,使用UA-DETRAC[16]車輛數(shù)據(jù)庫訓(xùn)練車輛檢測(cè)模型數(shù)據(jù)集,該數(shù)據(jù)集主要拍攝于北京和天津的道路過街天橋,多為攝像頭俯視視角。將數(shù)據(jù)集格式轉(zhuǎn)換為VOC格式,再將格式標(biāo)注信息轉(zhuǎn)換為YOLO格式的TXT文件,YOLOv3.cfg文件中識(shí)別類別改為1。設(shè)置權(quán)重衰減因子為0.0005,初始學(xué)習(xí)率為0.001,動(dòng)量參數(shù)設(shè)為0.9,訓(xùn)練批次取為64。用訓(xùn)練好的YOLOv3檢測(cè)器對(duì)測(cè)試視頻進(jìn)行測(cè)試。截取城間公路場(chǎng)景第515到518幀的車輛檢測(cè)效果如圖4所示。
圖4 第515到518幀車輛檢測(cè)效果Fig.4 Vehicle detection effect of frames 515 to 518
在檢測(cè)的基礎(chǔ)上,用DeepSort進(jìn)行對(duì)檢測(cè)框質(zhì)心的匹配,形成車輛運(yùn)動(dòng)的軌跡,實(shí)現(xiàn)車輛的跟蹤計(jì)數(shù),完成車流量檢測(cè)。分別采用混合高斯建模加虛擬線圈法、粒子濾波法、三幀差法和本文算法進(jìn)行處理,選取視頻中的第59~62幀進(jìn)行對(duì)比,得到的處理效果如圖5所示。不同算法的車流量檢測(cè)的檢測(cè)性能對(duì)比如表3所示。
表3 與不同車流量檢測(cè)模型性能對(duì)比Tab.3 Performance comparison with different vehicle flow detection models
圖5 第59到62幀車流量檢測(cè)效果圖Fig.5 traffic flow detection effect diagrams of frames 59 to 62
從表3可看出,傳統(tǒng)基于高斯混合模型的車流量檢測(cè)模型,由于光照等原因,出現(xiàn)了大面積的陰影,致使前景目標(biāo)不能被正常檢測(cè)出,虛擬檢測(cè)帶對(duì)車輛數(shù)的檢測(cè)就不準(zhǔn)確。基于粒子濾波的算法模型由于其只用單一的目標(biāo)特征從而喪失對(duì)背景的自適應(yīng)能力易導(dǎo)致目標(biāo)跟蹤失效?;趲罘ǖ臋z測(cè)模型對(duì)快速運(yùn)動(dòng)的物體,容易出現(xiàn)鬼影的現(xiàn)象,甚至?xí)粰z測(cè)為幾個(gè)不同的運(yùn)動(dòng)物體,造成車輛目標(biāo)被反復(fù)檢測(cè)并計(jì)數(shù)。而本文采用的YOLOv3檢測(cè)和DeepSort跟蹤算法對(duì)車流量進(jìn)行統(tǒng)計(jì),應(yīng)對(duì)快速移動(dòng)的車輛和環(huán)境光照的的影響可以準(zhǔn)確得檢測(cè)出車輛并進(jìn)行跟蹤,有效防止目標(biāo)的丟失,實(shí)現(xiàn)有效跟蹤。
本文解決了由于道路和環(huán)境的復(fù)雜性,傳統(tǒng)的車流量檢測(cè)算法精度低、魯棒性差不理想的問題。通過YOLOv3算法快速檢測(cè)車輛,在檢測(cè)的基礎(chǔ)上,利用基于深度神經(jīng)網(wǎng)絡(luò)的多目標(biāo)跟蹤算法DeepSort算法實(shí)現(xiàn)車輛的跟蹤計(jì)數(shù),完成車流量的檢測(cè)。YOLOv3高精度的檢測(cè)結(jié)果彌補(bǔ)了DeepSort自身的算法缺陷,減少了DeepSort算法對(duì)檢測(cè)結(jié)果依賴性產(chǎn)生的影響。實(shí)驗(yàn)證明,將這兩種算法結(jié)合進(jìn)行車輛目標(biāo)的跟蹤計(jì)數(shù),減少了車輛快速移動(dòng)、車身部分遮擋和光照陰影對(duì)車輛跟蹤的干擾,提高了跟蹤的穩(wěn)定性和車流量檢測(cè)的精度。