曹婷婷,侯 進,鄧小豪,萬斌楊
(西南交通大學信息科學與技術(shù)學院,四川 成都 611730)
多目標跟蹤在計算視覺領(lǐng)域中占據(jù)核心地位,其任務(wù)是在視頻中確定多個目標的運動軌跡,一般是同一個場景下所有同類目標,比如全部的行人或者車輛等。尤其是針對行人的跟蹤,應用非常廣泛。例如在視頻監(jiān)控、智能交通、軍事制導等領(lǐng)域具有十分重要的作用[1,2]。近幾年在深度學習技術(shù)快速發(fā)展下,基于卷積神經(jīng)網(wǎng)絡(luò)的目標檢測精度達到了很高的水平,所以基于檢測的跟蹤算法成為了目前的主流方法。隨著科學技術(shù)的迅猛發(fā)展,越來越多的多目標跟蹤方法被提出,李興瑋等人[3]通過目標間相對運動模型完成軌跡恢復,采用事件匹配算法改進當前幀的檢測響應和原始軌跡分配,最終達到多目標跟蹤的目的;何嘉等人[4]通過HOG檢測目標位置,同時根據(jù)地面柵格估計目標3D信息,使得算法擁有較好的遮擋魯棒性。對于未檢測到的目標,算法通過捕捉消失點變化情況來重新估算目標位置,實驗證明此方法相較于通過目標前后幀運動狀態(tài)變化來估算目標位置,擁有更好的魯棒性和更低的算法運行復雜度;以及Wojke等人[5]提出的DeepSORT算法,通過自定義的殘差網(wǎng)絡(luò)提取外觀信息同時結(jié)合對象運動信息,使用余弦距離可以有效對長期遮擋后的對象恢復身份。
本文提出一種基于檢測的在線多行人目標跟蹤方法。使用改進的YOLOv4[6]作為檢測器,DeepSORT算法作為跟蹤器進行聯(lián)合跟蹤。仿真結(jié)果表明,所提算法能夠有效提升定位和跟蹤結(jié)果準確性。
YOLO算法主要是將對象檢測視為回歸問題,模型采用單一的卷積神經(jīng)網(wǎng)絡(luò)預測邊界框和類別概率,可以平衡檢測精度和速度,因此選擇YOLOv4作為檢測器。YOLOv4主要架構(gòu)由CSPDarknet53+SPP+PANet路徑聚合+Yolo head組成,主干網(wǎng)絡(luò)CSPDarknet53由Darknet53與CSPNet結(jié)合,特征金字塔部分由SPP結(jié)構(gòu)和PANet模型組成,SPP模塊在CSPdarknet53的最后一個特征層進行三次卷積后分別進行四個不同尺度的最大池化處理,以此增強感受野。PANet模塊則可以建立淺層特征和深層特征之間的信息路徑,增強了特征的層次架構(gòu)。在數(shù)據(jù)增強方面,YOLOv4使用Mosaic將四張圖片制作成一張,豐富了檢測物體的背景,同時可以一次計算四張圖片的數(shù)據(jù);增加了自對抗訓練(SAT),使神經(jīng)網(wǎng)絡(luò)在正常訓練之前向相反方向更新和干擾圖像等。
為了提高YOLOv4在復雜背景下的檢測能力,通過Focal loss[7]優(yōu)化YOLOv4的置信度損失。Focal loss可用于解決單步檢測模型中簡單樣本與困難樣本不平衡問題以及正負樣本不平衡問題。它通過權(quán)重值來降低易分類樣本的影響,使得模型的損失值更多地受到難分類樣本的影響。Focal loss損失函數(shù)主要是由標準交叉熵損失函數(shù)經(jīng)過變化得到的,其中二分類交叉損失函數(shù)L的表達式為
L=-ylogy′-(1-y)log(1-y′)
(1)
式中,y代表真實樣本標簽,通常情況下取值為0或者1;y′代表激活函數(shù)的輸出,通常取值為0~1。通過式(1)可知,當采用交叉熵作為損失函數(shù)時,對于正樣本而言,輸出概率越大,損失就越小;負樣本則相反。當類別不平衡時,大量的負樣本會導致模型的損失值增加,促使模型無法達到最優(yōu)狀態(tài)。為此,提出Focalloss,具體的表達式形式如下
(2)
式中,在原損失值函數(shù)的基礎(chǔ)上加一個因子γ(γ>0),以此減少易分類樣本的損失,使損失函數(shù)更加關(guān)注難分類樣本。
在上述分析的基礎(chǔ)上,加入平衡因子α,促使數(shù)量較少的正樣本權(quán)重系數(shù)增加,數(shù)量較大的負樣本權(quán)重系數(shù)減少,有效解決正負樣本比例不均衡問題,則最終Focalloss的計算式為
(3)
引入Focal loss后,YOLOv4算法的置信度損失函數(shù)如式(4)所示
(4)
多目標跟蹤中一個十分重要的問題就是將當前幀中已經(jīng)跟蹤到的目標與檢測結(jié)果關(guān)聯(lián)起來[8]。DeepSORT主要通過運動特征和外觀特征進行數(shù)據(jù)關(guān)聯(lián)。
DeepSORT算法以檢測結(jié)果為輸入,通過檢測結(jié)果對卡爾曼濾波器進行初始化操作,構(gòu)建目標對應的運動模型;同時提取檢測結(jié)果的外部特征,構(gòu)建目標外觀模型。其中,運動模型主要通過卡爾曼濾波器的線性運動模型,將目標表示為
x=[u,v,r,h,x′,y′,r′,h′]
(5)
式中,(u,v)代表目標的中心坐標;r代表目標的長寬比;h代表目標的高度;(x′,y′)代表目標在水平方向和垂直方向的速度;r′代表目標長寬比的變化率;h′代表目標高度的變化率。
卡爾曼濾波器采用勻速直線運動模型進行目標運動狀態(tài)的預測,目標一直處于直線運動狀態(tài),變化頻率和長寬比保持不變,將(u,v,r,h)作為目標對象狀態(tài)的預測結(jié)果。
在在線多行人目標跟蹤過程中,需要將運動估計和圖像信息全部考慮進去,DeepSORT算法通過運動模型和外觀模型所得到的數(shù)據(jù)將新的檢測結(jié)果和軌道進行關(guān)聯(lián),結(jié)合匈牙利算法進行匹配。其中,目標關(guān)聯(lián)問題表示為二分圖的最優(yōu)匹配問題,具體如圖1所示。
圖1 關(guān)聯(lián)問題表示為二分圖的最優(yōu)匹配問題
為了將運動信息全面整合到目標關(guān)聯(lián)問題中,需要設(shè)定一個距離度量函數(shù),將距離作為度量函數(shù)。其中,根據(jù)運動軌跡獲取的目標位置和新一幀中檢測到的目標位置兩者間的距離計算式為
(6)
式中,yi代表第i個跟蹤到的目標在當前幀的預測位置;Si代表預測位置與平均跟蹤位置之間的協(xié)方差矩陣;dj代表當前幀中第j個檢測到的包圍盒。
優(yōu)先設(shè)定馬氏距離的區(qū)間范圍,刪除無利用價值的數(shù)據(jù),則指數(shù)函數(shù)能夠通過以下公式表示
(7)
式中,t(1)代表設(shè)定閾值,小于此距離,運動狀態(tài)關(guān)聯(lián)成功。
d(2)(i,j)=cosine(rj,Ri)
(8)
對于圖像特征的距離可以設(shè)置一個閾值函數(shù)表示目標之間的關(guān)聯(lián)性,即
(9)
將運動估計的距離和圖像特征之間的距離采用加權(quán)的方式獲取最終的距離函數(shù)
ci,j=λd(1)(i,j)+(1-λ)d(2)(i,j)
(10)
兩種距離對最終距離的影響可以通過參數(shù)λ進行調(diào)節(jié)。
為了判斷目標的創(chuàng)建與移除,DeepSORT算法將軌跡分為“不確定態(tài)”、“確定態(tài)”和“刪除態(tài)”,每個軌跡初始時都處于“不確定態(tài)”。為每個“確定態(tài)”軌跡k分配一個Ak值,當預測結(jié)果與檢測器的檢測結(jié)果成功匹配時,就將Ak值設(shè)置為0;如果預測結(jié)果沒有相對應的檢測結(jié)果,則使用卡爾曼濾波預測結(jié)果來更新目標的狀態(tài),Ak值加1。當Ak的值大于設(shè)定的閾值時,認為目標已經(jīng)消失,此時軌跡由“確定態(tài)”轉(zhuǎn)換為“刪除態(tài)”,處于“刪除態(tài)”的軌跡及其相關(guān)信息會被立即移除。如果某次檢測結(jié)果中某個目標無法與已經(jīng)存在的任何一個軌跡關(guān)聯(lián),則對其啟動新的軌跡假設(shè),此時的軌跡就處于“不確定態(tài)”。如果這個軌跡在未來的連續(xù)t幀中的預測結(jié)果可以與檢測結(jié)果成功匹配,則認為出現(xiàn)了新目標,此時軌跡轉(zhuǎn)換為“確定態(tài)”;如果軌跡在未來的連續(xù)t幀中有任意一幀的預測結(jié)果沒有匹配上檢測結(jié)果,則軌跡會立即轉(zhuǎn)變?yōu)椤皠h除態(tài)”。
檢測算法會通過設(shè)置置信度閾值的方式過濾掉置信度低于閾值的所有檢測對象。新的檢測對象必須通過這個閾值才能成為數(shù)據(jù)關(guān)聯(lián)的候選對象,因為一般認為置信度低于閾值的檢測很可能是假陽性。但是檢測結(jié)果不可能完全可靠,不可靠地檢測結(jié)果會影響之后跟蹤器的性能。為了更好地解決這個問題,本文對DeepSORT算法的軌跡濾除方式進行擴展:在“不確定態(tài)”軌跡初始化過程中,為其設(shè)置一個total 值,total 的初始值為0,在未來的連續(xù)t 幀中,記錄每幀中與“不確定態(tài)”軌跡成功關(guān)聯(lián)的檢測對象的檢測置信度,將其與total值進行累加,之后將total值更新為累加值。此時的total 值是該檢測結(jié)果在連續(xù)t 幀中所有檢測置信度的累加和,將其與t 相除,得到的就是該檢測結(jié)果的平均檢測置信度。只有當平均檢測置信度大于設(shè)定的閾值時,才最終確認出現(xiàn)了新目標。改進后的軌跡過濾算法描述如下表1所示。
表1 軌跡過濾算法
通過增加平均檢測置信度閾值的方式,在檢測階段可以適當降低檢測置信度閾值,以此降低漏檢率,同時依靠平均檢測置信度閾值抑制低檢測置信度閾值產(chǎn)生的假陽性軌跡,從而更準確地判斷新軌跡的刪除或保留。
為了驗證所提基于YOLOv4和DeepSORT的在線多行人目標跟蹤算法的有效性,通過目前最常用的MOT 2017數(shù)據(jù)集進行算法性能的評估。MOT 2017數(shù)據(jù)集由14個序列組成,一半用于訓練,一半用于測試。每個視頻的拍攝角度,拍攝天氣和時間都不一樣,還具有較高的人群密度。
MOTA和MOTP共同衡量算法的連續(xù)目標跟蹤能力,兩者的取值越高,證明跟蹤能力越強。其中,MOTA主要統(tǒng)計跟蹤過程中的誤差累積情況,即跟蹤結(jié)果準確性,具體計算式如下
(11)
式中,fpt代表判斷錯誤的次數(shù);mt代表漏檢的次數(shù);mmet代表錯誤匹配的次數(shù)。
MOTP主要量化檢測器的定位精度,可以有效地衡量位置誤差
(12)
Focal loss 存在兩個超參數(shù)α和γ,參考Focalloss的相關(guān)論文,γ值通常設(shè)置為2,α取值一般在0.1~0.3之間。為了確定α取值,使用YOLOv4作為基礎(chǔ)網(wǎng)絡(luò)模型,結(jié)合Focal loss損失函數(shù)在MSCOCO 2017數(shù)據(jù)集上進行模型訓練(以下簡稱YOLOv4-F),通過調(diào)整不同的α值得到不同的訓練結(jié)果。讓訓練完成的YOLOv4-F檢測算法忽略所有其它類,只將行人檢測結(jié)果傳遞給DeepSORT算法,聯(lián)合DeepSORT在MOT2017上進行測試,關(guān)注它們MOTP值的變化,結(jié)果如表2所示:
表2 不同α值實驗結(jié)果(γ=2)
可以發(fā)現(xiàn)當α=0.25時,模型檢測效果達到最優(yōu)。因此,本文最終選取α=0.25和γ=2作為Focalloss的超參數(shù)值。
為了驗證平均檢測置信度閾值(tave_c)的效果并選擇最佳閾值,使用YOLOv4-F聯(lián)合DeepSORT在MOT2017測試集上進行測試,通過實驗對比了tave_c在0.0 ~ 0.8之間時DeepSORT的MOTA值,結(jié)果如表3所示。
表3 不同tave_c實驗結(jié)果
從表3可以看出,使用平均檢測置信度(tave_c=0.1~0.5)的DeepSORT算法的準確度(MOTA)比不使用平均檢測置信度(tave_c=0)時要高,證明了平均檢測置信度的有效性。當tave_c=0.4時,YOLOv4-F檢測算法搭配DeepSORT跟蹤算法的效果最好,因此本文選擇0.4作為平均檢測置信度閾值。
為了驗證本文算法的性能,在MOT2017數(shù)據(jù)集上對算法進行測試,并與一些先進的算法進行對比。
表4 MOT 2017測試結(jié)果
分析表4中的實驗數(shù)據(jù)可知,本文算法與DeepSORT相比,MOTP和MOTA分別提高了1.4和1.7,無論檢測器還是跟蹤器均具有較好的性能。算法在MOT 2017測試集上的跟蹤效果如圖2所示,可以看出,本文算法對于多行人目標可以進行有效檢測和持續(xù)跟蹤。
圖2 算法在MOT 2017測試效果
本文使用YOLOv4檢測算法和DeepSORT跟蹤算法構(gòu)建一個針對行人的多目標跟蹤模型。并通過引入Focal loss優(yōu)化YOLOv4損失函數(shù),增加平均檢測置信度對DeepSORT算法的軌跡濾除方式進行改進。仿真結(jié)果表明,優(yōu)化后的模型檢測和跟蹤效果均有提高。
所提算法雖然現(xiàn)階段取得了較為顯著的研究成果。但是在復雜環(huán)境下,由于圖像特征相似性更高,可能會出現(xiàn)錯誤關(guān)聯(lián)的情況,后續(xù)將重點針對該方面的內(nèi)容進行研究,確保算法適用于任何場景和環(huán)境。