李炳林
(青海省公路局公路養(yǎng)護應急保障中心,青海 西寧 810001)
車輛的實時軌跡跟蹤研究是智能交通領域的熱點問題。目前,眾多學者對車輛跟蹤任務展開了深入的研究,然而針對應急裝備車輛的跟蹤研究較為缺乏。應急裝備物資車輛為公路突發(fā)事件應急救援等場景提供重要的裝備物資保障,扮演著重要的角色。作為公路交通應急處置的關鍵要素,應急裝備物資車輛的實時軌跡跟蹤對保障公路應急裝備物資及時到位,及時恢復公路交通正常運行具有重要意義。
對于目標追蹤任務而言,目前主流的方法一般先采用目標檢測算法,檢測出目標,然后利用追蹤算法對目標進行跟蹤。
對車輛進行有效檢測是車輛跟蹤的基礎,傳統(tǒng)的目標檢測方法有背景差分法、幀差法和光流法[1]。背景差分法是將當前幀圖像與背景幀或者是背景更新模型進行做差來得到提取前景對象的方法。但是在實際應用當中,很難獲取到背景幀圖像,所以出現(xiàn)了許多基于背景更新算法的背景差分法。幀差法對連續(xù)兩幀或是連續(xù)多幀視頻序列做差,根據(jù)做差之后得到的圖像的灰度值來得到運動目標。光流法通過視頻圖像相鄰幀中各個像素點的亮度值,利用灰度的變化信息和變化程度得到光流場,從而得到目標的運動場。光流法[2]利用的是圖像中像素強度數(shù)據(jù)的時域變化和相關性,來進一步確定各個像素點的運動。與背景差分法和幀差法不同,光流法不僅展現(xiàn)灰度在時間上的變化,還可以展示目標的外形,結構與運動狀態(tài)的關系,但計算困難,耗時較長。傳統(tǒng)的目標檢測算法,在檢測時間和精度上均有較大的不知之處。
近年來,基于深度學習的目標檢測算法受到了越來越多學者的關注,該算法可以分為一階段(One-stage)和兩階段(Two-stage)檢測算法2類,Two-stage算法以Fast-RCNN[3]、Faster-RCNN[4]為代表,該類算法分為2個部分,先通過算法生成一系列的候選框,然后再進行分類任務。而One-stage算法不需要生成候選框,可以直接得出檢測目標的位置和類別信息,代表算法有YOLO[5]系列、SSD[6]等。因此相較于Two-stage算法而言,One-stage算法檢測速度,實時性高,更適合本文的研究對象。
利用視頻對道路上的應急裝備車輛進行跟蹤對實時性要求較高,而目標跟蹤算法的速度在很大程度上取決于檢測算法的性能,基于深度學習的單階段目標檢測算法YOLO系列速度精度權衡最好,學者對該系列算法的改進也有很多,呂石磊等人[7]使用輕量級骨干網絡MobileNet-v2對YOLOv3進行改進,提高模型在CPU端推理速度,但是模型的識別精度略有下降;李繼輝[8]將CBAM注意力機制引入YOLOv3網絡中,同時使用剪枝量化手段使算法在嵌入式開發(fā)板NVIDIA TX2上達到了24FPS接近實時的處理速度;周方禹[9]將SE注意力機制和雙向金字塔特征融合機制引入目標檢測網絡,在PASCAL VOC 2007/2012等公開數(shù)據(jù)集和安全帽私有數(shù)據(jù)集驗證了改進模型的有效性。劉學平[10]結合K-means聚類與粒子群優(yōu)化算法進行錨框計算, 在YOLOV3網絡shortcut層嵌入SENet結構,得到SE-YOLOV3網絡,用于算法訓練和測試。試驗結果表明,SE-YOLOV3能有效減少假正例數(shù)量。許小偉[11]提出了一種小型化的改進 YOLOv3 深度卷積網絡的實時車輛檢測及跟蹤算法,研究表明該小型化網絡檢測跟蹤算法在復雜道路環(huán)境中有較強的魯棒性,可以滿足實際智能駕駛過程中對車輛檢測跟蹤的精度、速度的要求。
在目標跟蹤算法方面,Alex Bewley等人[12]簡單結合了卡爾曼濾波和匈牙利算法實現(xiàn)了實時性好,精度高的SORT在線追蹤算法,相比同時期SOTA追蹤器(MDP[13]、MHT-DAM[14])快20倍左右,缺點是ID切換比較嚴重;在SORT基礎上提出的DEEP SORT算法[15],將重識別模型融入外觀特征,增加級聯(lián)匹配機制,改進算法能夠克服跟蹤過程中更長的時間的遮擋,有效地減少ID切換的數(shù)量[16]。王春艷[17]提出引用深度外觀特征的在線分層數(shù)據(jù)關聯(lián)跟蹤算法;劉沛鑫[18]提出網絡流數(shù)據(jù)關聯(lián)求解算法,將長短時記憶網絡和條件隨機場引入數(shù)據(jù)關聯(lián)模型,有效關聯(lián)跨視角行人跟蹤軌跡片段。
本文的研究對象為應急裝備物資車輛,除帶有明顯的標志(如紅十字)外,和普通貨車沒有較大的區(qū)別。為了更好地明確應急裝備物資車輛,本研究主要在以下2個場景進行應急裝備物資車輛的識別研究:(1)應急區(qū)域;(2)根據(jù)應急車輛的北斗數(shù)據(jù),協(xié)調調度途經道路的攝像機,然后利用采集來的視頻圖像進行識別和跟蹤應急車輛。
基于以上分析,本研究主要針對應急裝備物資車輛檢測跟蹤進行方法探究,利用道路監(jiān)控視頻和航拍視頻制作應急裝備物資車輛圖像樣本庫,并制作訓練數(shù)據(jù)集。采用YOLOv3算法檢測運動的應急裝備物資車輛,通過增加網絡的檢測層,改進網絡結構,提高模型的檢測性能,使用Deep Sort跟蹤方法進行車輛跟蹤,在圖像上畫出跟蹤車輛的運動軌跡,并對車輛進行計數(shù),實現(xiàn)了對應急裝備物資車輛的檢測跟蹤。
與傳統(tǒng)的圖像識別方法相比,深度學習的網絡模型能夠自動地從原始圖像中學習到檢測對象的圖像特征信息,進而完成后續(xù)的分類和識別任務,相比于傳統(tǒng)的圖像識別方法有更好的表現(xiàn)?;谏疃葘W習的應急裝備物資車輛的檢測流程如圖1所示。
圖1 檢測流程Fig.1 Detection process
YOLO(You Only Look Once)是一種基于深度神經網絡的一階段目標檢測算法,其最大的特點是在保證較高精度的同時,檢測速度很快,可以用于實時系統(tǒng)。該算法在檢測過程中將圖像分為S×S個格子(本文S×S為13×13、26×26、52×52 這3種尺度),每個單元格負責檢測中心點落于此單元格的對象,每個單元格需要預測出3個邊界框,每個邊界框會預測出5個結果(x,y,w,h,conf)。x,y分別為目標框中心坐標值,w,h表示邊界框的長和寬,conf表示框中含有目標的置信度。YOLOv3采用殘差網絡結構,在原有YOLOv2[19]主干特征提取網絡Darknet19的基礎上,通過添加3×3和1×1的卷積和殘差構成了一個有53個卷積層特征提取網絡。算法在骨干特征提取網絡后面添加FPN[20]網絡(Feature Pyramid Networks),對輸入圖像進行多尺度的檢測,輸出3個不同的尺度的特征圖,這使得YOLOv3算法相較于前2個版本的檢測效果有了顯著的提升。
由于本研究的研究對象為視頻中的應急裝備物資車輛,該車輛在視頻中多為小目標,為了提高YOLOv3目標檢測網絡對于小目標的檢測能力,本研究在YOLOv3網絡原有的3個檢測層基礎上,增加第4個檢測層,用來提高模型對小目標的檢測性能。
隨著網絡深度的增加,模型可以提取更多圖像的全局信息,但是這樣會導致小目標物體的語義信息丟失,對小目標檢測精度會下降。原始的YOLOv3網絡采用特征金字塔結構,融合不同尺度大小的特征圖。
在原有的檢測層基礎上,對52×52的輸出特征圖進行上采樣,并與骨干特征提取網絡Darknet53中104×104的特征圖進行融合,作為第4個檢測層。改進后的YOLOv3網絡結構如圖2所示,圖2中實線部分為原始的網絡結構,虛線為新添加的檢測層。
圖2 改進后的YOLOv3網絡結構圖Fig.2 Improved network structure diagram of YOLOv3
將改進前后的網絡進行在相同的數(shù)據(jù)集情況下,進行對比試驗,試驗的對比結果如表1所示,表中的mAP為目標檢測任務中常用的評價指標,表示模型的檢測精度,mAP越大代表模型整體檢測精度高。通過表1可以發(fā)現(xiàn)通過在原網絡結構中添加第4個小目標檢測層,有效地提高了模型對小目標的檢測性能,檢測精度得到提升,相比于基礎的YOLOv3網絡mAP增加了3.81%。
表1 檢測結果對比表Tab.1 Comparison of test results
(1)目標的特征提取
在實現(xiàn)目標跟蹤之前,一般分為3步:首先需要識別目標,即在跟蹤初始化界面中的第1幀圖像里找到要跟蹤的前景對象,提取其特征。目標描述的方法直接決定了目標跟蹤的準確性和實時性,而在做分類的時候,需要從特征入手,將目標提取后,檢測其相似度。一個好的目標描述方法可以剔除噪聲干擾,當車輛發(fā)生運動速度變化或者自身形態(tài)變化時,或者環(huán)境和光照發(fā)生變化時,數(shù)據(jù)屬性的相關性由相關系數(shù)來描述,數(shù)據(jù)對象的相似保證即可,依然能夠依據(jù)車輛目標的特征,準確的識別目標;最后一步才是特征的匹配跟蹤。
(2)特征點匹配策略
基于特征點的目標跟蹤是在相鄰幀之間進行特征點集的關聯(lián),特征點是由其本身以及周圍鄰域像素共同表征的灰度信息集合,并以此為依據(jù),進行特征點的匹配。匹配過程的關鍵就是確定相似性度量準則。
目前,常用的相似性度量準則有很多,例如像素灰度絕對值差和(Sum of Absolute Differences,SAD)、歸一化交叉相關(Normalized Cross Correlation,NCC)和像素灰度差平方和(Sum of Squared Differences,SSD)等。特征點匹配根據(jù)關聯(lián)方式的不同,可分為確定性方法和基于統(tǒng)計的方法。最常用的是相似性度量,即評定樣本特征與檢測特征之間的關系,以及從圖像中選取某些特征點并對圖像進行局部分析。確定性方法先采用運動約束對目標和目標觀測間的關聯(lián)定義代價函數(shù);還有距離度量,比如,馬氏距離,以及歐式距離。
(3)Deep Sort跟蹤算法原理
Deep Sort全稱是Simple Online and Realtime Tracking。Deep SORT算法在實際應用中使用較為廣泛,核心就是2個算法:卡爾曼濾波和匈牙利算法。在實現(xiàn)上較為簡單,常用于先檢測,后跟蹤的結合。
卡爾曼濾波器在Deep SORT中的作用是進行前景對象狀態(tài)的估計預測。狀態(tài)指的是bbox(bbox存在待檢測的目標對象)的相關參數(shù),包括中心的位置、高度、縱橫比等??柭鼮V波器可以預測更新軌跡。
Deep SORT在更新軌跡狀態(tài)的時候還用到了馬氏距離,計算公式是:
(1)
式中,d(1)(i,j)為第i個目標預測框和第j個目標檢測框匹配結果;Si表示軌跡由卡爾曼濾波器計算預測得到在當前幀觀測得到的協(xié)方差矩陣;yi是軌跡在當前幀,或者說是當前時刻的預測量;dj是第j個detection的狀態(tài)。這個detection的狀態(tài)是由之前的檢測算法得到的檢測框。
匈牙利算法的作用是為了進行數(shù)據(jù)之間的關聯(lián),數(shù)據(jù)關聯(lián)也是匹配的一個關鍵步驟。這里匈牙利算法使用cost矩陣進行detection之間的匹配?;跈z測框位置和IOU的匈牙利算法,使得Deep Sort相對于Sort算法,在效率方面得到了進一步的加強。圖3為Deep Sort的算法流程。
圖3 Deep Sort算法流程圖Fig.3 Flowchart of Deep Sort algorithm
圖3中的IOU稱為交并比,是用來衡量模型檢測出來的預測框和真實框之間的位置關系,表征檢測物體位置的準確性。其計算公式如式2所示,它是預測框與真實框的交集和并集的比值。交集和并集如圖4所示,虛線表示預測框,實現(xiàn)表示真實框:
圖4 交/并集示意圖Fig.4 Schematic diagram of intersection and union
(2)
式中,S交指預測框與真實框交集的部分;S并指預測框與真實框并集的部分。
本研究中程序算法采用python3.6.7語言進行實現(xiàn),在Visual Studio 2015開發(fā)平臺上進行開發(fā),試驗環(huán)境為Tensorflow1.4.0,Opencv,Keras,sklearn等,Win8系統(tǒng)在CPU上進行試驗。
(1)圖像庫建立
為了增加跟蹤模型的泛化能力,在建立圖像庫時,采用不同拍攝角度的視頻,得到不同角度的應急物資裝備車輛圖像,提高了模型的檢測性能。數(shù)據(jù)采集來源于青海省應急裝備物資儲備中心輻射區(qū)域相關路段的視頻序列,隔幀抽取出5 293張圖像作為圖形樣本庫,用于訓練應急裝備物資車輛檢測模型。標注方式如圖5所示,將目標車輛的位置和類別存儲在文本文件中。
圖5 圖像標注Fig.5 Image annotation
(2)訓練結果
采用SGD優(yōu)化器,初始學習率設置為0.1,訓練300輪結果如圖6所示。圖6(a)為模型訓練過程中的損失曲線,loss代表模型訓練的損失值,圖6(b)mAP、圖6(c)Precision和圖6(d)Recall分別代表模型隨著迭代次數(shù)增加在測試集上的平均準確率、精度和召回率。
由圖6(a)可以發(fā)現(xiàn),模型在前20輪訓練中,損失值下降較為迅速,模型在快速進行擬合,從第20到200輪,損失值下降在慢慢減緩,在訓練迭代200后,損失值趨于穩(wěn)定狀態(tài)。準確率也在0.9以上,該模型達到了很好的檢測效果。
圖6 訓練結果圖Fig.6 Graphs of training result
(1)場景選取
本次研究采用青海省應急裝備物資儲備中心輻射區(qū)域路段上應急裝備物資車輛行駛場景的視頻序列,進行視頻檢測,視頻格式為MP4,幀速率為29幀/s,幀寬度為640,幀高度為368,試驗場景如圖7所示。
圖7 試驗環(huán)境Fig.7 Experimental environment
(2)試驗結果
① 應急裝備物資車輛軌跡檢測結果
通過YOLOv3算法對路段多個角度視頻片段檢測效果如圖6所示,結果顯示,YOLOv3速度快,精度高,相對于傳統(tǒng)的經典目標檢測算法有很大的優(yōu)勢。
可以看到,在圖8(f)角度6中,由于車輛密集排布,可能出現(xiàn)漏檢的情況。在其他角度檢測結果都較好。
圖8 檢測效果Fig.8 Test effect
② 車輛軌跡跟蹤結果
在試驗環(huán)境下驗證跟蹤情況,如圖9所示,用矩形框標記出被檢測出的車輛,并進行持續(xù)的跟蹤,本研究提出的模型可以實現(xiàn)多輛應急裝備物資車輛跟蹤并統(tǒng)計數(shù)量。
圖9 跟蹤情況Fig.9 Target tracking
本研究選取4個路段各10 min視頻,采用人工計數(shù)與算法跟蹤結果進行對比,結果如表2所示。
表2 跟蹤計數(shù)結果對比Tab.2 Comparison of tracking and counting result
對比試驗結果可以看出,基于YOLOv3檢測的Deep Sort算法跟蹤精度高,計數(shù)統(tǒng)計誤差在5%以內。誤差產生原因是YOLOv3檢測算法有可能將較大的普通車輛識別為應急車輛。
③ 軌跡提取
在Deep Sort的基礎上進行應急裝備物資車輛軌跡的提取,在圖像中實現(xiàn)自動繪制出軌跡圖像,結果如圖10所示。從基于檢測的跟蹤實驗結果來看,在速度較快,光照變化較明顯的情況下,YOLOv3與Deep Sort算法的結合在精度和速度上都達到了不錯的效果。一般情況下,在車輛進出視頻的時刻,框的大小會發(fā)生變化,形成軌跡誤差。
圖10 軌跡提取效果Fig.10 Trajectory extraction effect
本研究主要針對車輛檢測和車輛跟蹤2個部分進行了研究,在此基礎上進行軌跡提取。主要工作如下:(1)增加YOLOv3算法的檢測層,提高算法對小目標的檢測性能。(2)通過對YOLO檢測和Deep Sort進行了驗證,確定了YOLOv3+Deep Sort結合的檢測跟蹤算法,在跟蹤的基礎上實現(xiàn)了繪制出車輛軌跡,并實現(xiàn)自動計數(shù)功能。(3)在VS2015集成開發(fā)環(huán)境下,主要采用Opencv庫,基于Tensorflow和Keras框架用Python語言進行項目開發(fā),完成了基于視頻的應急裝備物資車輛檢測與跟蹤系統(tǒng),并在試驗環(huán)境下進行測試,結果顯示可以有效地檢測與跟蹤應急裝備物資車輛,有一定的實用價值。
本研究收集到的圖像數(shù)據(jù)有限,對實際應用場景有一定限制,后續(xù)將繼續(xù)擴充圖像庫,進一步提升檢測跟蹤模型的精度和泛化能力。