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