高文印,文 峰,單銘琦
(沈陽理工大學(xué)信息科學(xué)與工程學(xué)院,沈陽 110159)
多目標(biāo)跟蹤技術(shù)廣泛應(yīng)用于計算機(jī)視覺領(lǐng)域中的智能視頻監(jiān)控、自動駕駛和人機(jī)交互中[1-2]。目前多目標(biāo)跟蹤算法主要分為二階段跟蹤算法和一階段跟蹤算法,其中二階段多目標(biāo)跟蹤算法先通過檢測器對視頻幀進(jìn)行處理,再對檢測結(jié)果使用跟蹤器處理,得到跟蹤結(jié)果。 Yu 等[3]提出了一種二階段算法,先使用Faster R-CNN[4-5]實現(xiàn)目標(biāo)檢測,再使用匈牙利算法對GoogleNet[6]提取到的特征關(guān)聯(lián)完成跟蹤。 葛雯等[7]使用基于YOLO[8]的檢測算法檢測到目標(biāo),再通過濾波算法Deepsort[9]進(jìn)行軌跡匹配,具有較高的跟蹤精確度,但多目標(biāo)跟蹤算法的計算量較大,導(dǎo)致跟蹤效率較低。 一階段多目標(biāo)跟蹤算法是在同一網(wǎng)絡(luò)下同時完成檢測與跟蹤,例如,JDE 算法[10-11]在輸出檢測結(jié)果的同時可輸出對應(yīng)的嵌入向量,并且可以自動加權(quán)計算各項損失值;FairMOT[12]通過一個統(tǒng)一的網(wǎng)絡(luò)同時完成目標(biāo)檢測與身份重識別兩項任務(wù);RetinaTrack 使用RetinaNet 檢測器網(wǎng)絡(luò)作為骨干網(wǎng)絡(luò)[13],在一個模型框架下實現(xiàn)多目標(biāo)跟蹤,具有較快的推理速度。
本文在行人密集的場景下選擇使用一階段多目標(biāo)跟蹤算法完成行人目標(biāo)跟蹤。 一階段多目標(biāo)跟蹤算法盡管跟蹤效率得到了保證,但是跟蹤精確度卻不太理想。 在視頻中的行人堆疊遮擋的情況下,現(xiàn)有算法無法提取到完整的行人特征信息,導(dǎo)致跟蹤精確度下降。 本文為保證速度的同時提高跟蹤精確度,在一階段多目標(biāo)跟蹤算法的基礎(chǔ)上進(jìn)行改進(jìn)。
鄭婷婷等[14]指出,基于檢測框的檢測方法與跟蹤任務(wù)并不契合。 在跟蹤任務(wù)中,使用檢測框?qū)⒛繕?biāo)檢測任務(wù)轉(zhuǎn)化為匹配任務(wù),確實提高了目標(biāo)檢測的推理速度,但多個檢測框負(fù)責(zé)估計同一個目標(biāo)會產(chǎn)生網(wǎng)絡(luò)歧義。 基于錨點[15]的Center-Track 算法[16-17]利用目標(biāo)的中心點實現(xiàn)目標(biāo)檢測,并通過中心點的偏移完成跟蹤任務(wù),可解決上述問題。 因此,本文采用CenterTrack 算法作為基礎(chǔ)模型。
在人員密集的情況下,由于大量的遮擋,CenterTrack 算法依舊無法較好提取到有用的行人特征信息,導(dǎo)致跟蹤效果變差;跟蹤部分嚴(yán)重依賴檢測部分的檢測效果,但是兩部分并沒有關(guān)聯(lián)性,檢測部分沒有較好利用正確的跟蹤數(shù)據(jù)。 針對上述問題,本文提出改進(jìn)CenterTrack 的行人多目標(biāo)跟蹤算法,在CenterTrack 的基礎(chǔ)上完成三點改進(jìn)。
1)設(shè)計多特征融合網(wǎng)絡(luò)(SDLA),增強(qiáng)對行人目標(biāo)特征提取的能力。
2)對預(yù)測頭部進(jìn)行改進(jìn),加強(qiáng)檢測與跟蹤之間的關(guān)聯(lián)性,通過對跟蹤結(jié)果的處理增強(qiáng)檢測精度,從而提高跟蹤的精確度。
3)對數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng),提高算法的泛化能力。
CenterTrack 算法是將 CenterNet 模型[18]應(yīng)用到跟蹤領(lǐng)域的多目標(biāo)跟蹤算法,其結(jié)構(gòu)如圖1所示。
圖1 CenterTrack 多目標(biāo)跟蹤模型
由圖1 可見,CenterTrack 算法首先將當(dāng)前幀的圖片It、前一幀的圖片It-1和前一幀的熱力圖HeatMapt-1通過簡單的卷積層、歸一化層和激活函數(shù)處理,再按位相加,生成一張?zhí)卣鲌D;然后通過深度特征融合網(wǎng)絡(luò)(DLA)處理,并行生成包含四種信息的預(yù)測頭部,分別是 HeatMap、OffSet、Box Size 和 Displacement Prediction。 其中 Heat-Map 輸出行人目標(biāo)中心點的位置,該頭部會將熱力圖上每一個點與鄰近的點進(jìn)行比較,使用值最大的點作為目標(biāo)的中心點。 OffSet 頭部負(fù)責(zé)在HeatMap 上更加精準(zhǔn)地定位目標(biāo)位置,特征融合網(wǎng)絡(luò)在對圖片做下采樣的過程中會使中心點發(fā)生偏移,通過該頭部進(jìn)行校正;Box Size 頭部負(fù)責(zé)估計目標(biāo)檢測框的高度與寬度;Displacement Prediction 頭部輸出檢測框中心點前后兩幀的偏移,用于完成前后兩幀目標(biāo)關(guān)聯(lián)的任務(wù)。
針對行人密集的場景,本文在CenterTrack 模型上進(jìn)行改進(jìn),改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 改進(jìn)的CeneterTrack 多目標(biāo)跟蹤算法
本文將通道注意力機(jī)制 SeNet 模型[19]與DLA 結(jié)合,設(shè)計了 SDLA 模型;對 Displacement Prediction 分支進(jìn)行改進(jìn),提取行人重識別(Person Re-identification,Re-id)特征;處理后的 Re-id 特征用于增強(qiáng)檢測部分,進(jìn)一步提高跟蹤精確度。
在CenterTrack 行人多目標(biāo)跟蹤算法中,骨干網(wǎng)絡(luò)對特征圖進(jìn)行下采樣時,會造成部分特征信息的丟失,為降低信息丟失對特征提取的影響,本文設(shè)計SDLA 多特征融合網(wǎng)絡(luò),其結(jié)構(gòu)如圖3 所示。 圖中CONV 表示卷積操作,數(shù)字代表下采樣倍率,樹狀結(jié)構(gòu)表示樹狀連接,加和表示加和操作,avgpooling 表示全局平均池化,F(xiàn)C 表示全連接。
圖3 SDLA 多特征融合網(wǎng)絡(luò)
為滿足檢測與跟蹤對特征提取的不同需求,選擇DLA34[20]作為基礎(chǔ)網(wǎng)絡(luò),該網(wǎng)絡(luò)跳躍式連接低維特征與高維特征,融合不同層次的特征提取目標(biāo)信息,再通過添加注意力機(jī)制SeNet 提高目標(biāo)行人的權(quán)重,同時降低周圍環(huán)境權(quán)重,從而使算法更加關(guān)注行人特征信息,降低周圍次要因素的影響。
SDLA 多特征融合網(wǎng)絡(luò)提取特征的工作過程表述如下。
1)視頻幀通過卷積運算初步提取特征后,獲取到特征圖f0,然后開始下采樣,得到與最終特征圖相同大小的特征圖f1,表示為
式中:Hf代表圖像特征圖高度;Wf代表特征圖寬度;S表示下采樣倍率,默認(rèn)為4。
2)三次下采樣,交錯連接每一個樹與節(jié)點模塊,互相連接形成的結(jié)構(gòu)可以提高網(wǎng)絡(luò)在不同層次之間交互行人特征的能力,每次下采樣的特征圖fi表示為
3)將所有特征圖信息融合到起始層的特征圖中,輸出與特征圖f1相同大小的特征圖f,大小為×C,其中C表示特征圖的通道數(shù)。
4)對特征圖f在維度上做全局平均池化,得到1 ×1 ×C的特征圖,再經(jīng)過兩個全連接層和一個Sigmoid 運算,得到每個通道數(shù)上的權(quán)重,將特征圖f與這個權(quán)重相乘得到最終的特征圖f′。
盡管CenterTrack 行人多目標(biāo)跟蹤算法在同一網(wǎng)絡(luò)下完成了檢測與跟蹤,但檢測與跟蹤是相互獨立的,沒有關(guān)聯(lián)性。 本文通過對Displacement Prediction 分支進(jìn)行改進(jìn),在完成數(shù)據(jù)關(guān)聯(lián)的同時,將跟蹤信息作為一個有用的樣本以增強(qiáng)算法的檢測效果,如圖4 所示。
圖4 改進(jìn)的Displacement Prediction 分支
改進(jìn)的Displacement Prediction 分支對提取到的特征圖處理流程如下。
1)前后兩幀圖片經(jīng)過骨干網(wǎng)絡(luò)以及注意力機(jī)制處理后,得到特征圖f′(t)和f′(t-1)被送入到一個三層卷積構(gòu)成的模塊中提取Re-id 特征et。
2)為降低計算量,對Re-id 特征et進(jìn)行下采樣,得到
4)對相似度矩陣C分別做兩次最大池化操作,第一次為水平方向,第二次為豎直方向,再通過Softmax 函數(shù)得到兩個向量,這兩個向量分別表示目標(biāo)的中心點在上一幀中的水平和垂直位置的可能性。 隨后在水平和垂直方向分別定義兩個偏移量模板,記為Mi,j和Vi,j,計算公式為
式中:WC和HC分別表示矩陣C在水平和垂直方向的大小。 點(i,j)的偏移量Oi,j計算公式為
本文通過運動信息矩陣OC表示Oi,j的集合。
5)使用3 ×3 卷積對運動信息矩陣OC進(jìn)行上采樣,得到一個新的運動信息矩陣O′C。
6)為使運動信息可以更好地增強(qiáng)檢測特征圖,本文引入可變形卷積網(wǎng)絡(luò)[21]。 對運動矩陣進(jìn)行處理,得到當(dāng)前幀的預(yù)測結(jié)果,記作,用于增強(qiáng)下一幀的檢測效果。
7)本文考慮到當(dāng)前幀的目標(biāo)存在被遮擋的可能性,將之前幀的預(yù)測結(jié)果融入到當(dāng)前幀的特征。假如當(dāng)前幀的特征為ft,之前第k幀的預(yù)測結(jié)果為,通過公式(5)計算融合后的特征
式中:wt為當(dāng)前幀的自適應(yīng)權(quán)重,= 1;K表示用于聚合ft之前所有幀的數(shù)目; ?表示Hadamard 積。
8)對于一個檢測目標(biāo),首先進(jìn)行第一輪的數(shù)據(jù)關(guān)聯(lián),主要是進(jìn)行短時間內(nèi)的目標(biāo)匹配。 以檢測目標(biāo)為中心,檢測框的長寬平均值作為半徑,計算出一個目標(biāo)可能達(dá)到的運動最大值的范圍,檢測目標(biāo)將在這個范圍內(nèi)與前一幀未匹配上的檢測框進(jìn)行軌跡關(guān)聯(lián)。 如果檢測目標(biāo)在第一輪沒能匹配上任何目標(biāo),將會進(jìn)行第二輪的匹配,第二輪匹配適用于長期關(guān)聯(lián),該輪匹配主要是將檢測目標(biāo)的Re-id 特征與未匹配的或者歷史軌跡的Re-id特征計算余弦相似度,將達(dá)到某個閾值并且相似度最高的軌跡進(jìn)行關(guān)聯(lián)。 如果兩輪都沒能匹配上,則將其視為新軌跡的產(chǎn)生。
在訓(xùn)練集較小的條件下容易導(dǎo)致訓(xùn)練過擬合,影響算法的跟蹤效果。 神經(jīng)網(wǎng)絡(luò)在加深的同時,需要學(xué)習(xí)的參數(shù)也在增多,更容易產(chǎn)生過擬合的情況,并且在數(shù)據(jù)集較小時,過多的參數(shù)會擬合數(shù)據(jù)集所有的特點,而非數(shù)據(jù)之間的共性。 針對該問題,本文采用了數(shù)據(jù)增強(qiáng)的方法。 圖像在數(shù)據(jù)增強(qiáng)的過程中,圖像的實質(zhì)、分類并不會發(fā)生改變,同時增加特征數(shù)據(jù)的多向性,有效提高檢測器的泛化能力,使得數(shù)據(jù)增強(qiáng)后的行人特征取值發(fā)生一定的改變,以產(chǎn)生有價值的新訓(xùn)練樣本。
本文采用的數(shù)據(jù)增強(qiáng)方法有調(diào)整飽和度、隨機(jī)旋轉(zhuǎn)、改變曝光度、提高亮度和色調(diào)均衡化等。圖5 為兩組數(shù)據(jù)增強(qiáng)效果對比圖,其中左側(cè)為處理前的原圖,右側(cè)為數(shù)據(jù)增強(qiáng)后的效果。
圖5 部分?jǐn)?shù)據(jù)增強(qiáng)效果
本文采用的數(shù)據(jù)集為MOT17[22],該數(shù)據(jù)集以行人為研究目標(biāo),由不同的室內(nèi)和室外公共場所場景下拍攝的圖像構(gòu)成。 MOT17 數(shù)據(jù)集包含多種真實場景,其標(biāo)注數(shù)據(jù)總共超過18 萬物體,標(biāo)注數(shù)據(jù)總共為11.2 萬個,在被測試的視頻中,待檢測目標(biāo)為18.8 萬個。 為驗證改進(jìn)后的跟蹤算法在檢測精度上的有效性,在PC 機(jī)上對模型進(jìn)行測試。 實驗環(huán)境為:操作系統(tǒng)采用 Ubuntu 18.04、計算機(jī)的 CPU 是 Inter(R)Core(TM)i7-8750H 八核、顯卡(GPU)采用 NVIDIA GeForce RTX2080、內(nèi)存 16 GB、采用 python3.7 進(jìn)行代碼的編寫、深度學(xué)習(xí)框架采用pytorch1.2。 每輪的訓(xùn)練過程中,初始學(xué)習(xí)率為 1.25 ×10-14、批處理大小設(shè)置為2、訓(xùn)練30 輪。 使用訓(xùn)練完成后的模型進(jìn)行測試集的檢測,計算檢測精度。
本文主要采用跟蹤精準(zhǔn)度MOTA 值和正確檢測比IDF1 值評價模型的跟蹤效果。 其中MOTA 值衡量跟蹤器檢測物體和保持軌跡的性能。MOTA 與IDF1 兩個指標(biāo)的值越高,說明模型跟蹤效果越好。
以CenterTrack 作為基礎(chǔ)網(wǎng)絡(luò),進(jìn)行消融實驗,驗證本文算法不同的改進(jìn)點在行人密集場景下對跟蹤效果的影響,實驗結(jié)果如表1 所示。 首先,本文對CenterTrack 進(jìn)行測試,得到基礎(chǔ)網(wǎng)絡(luò)的實驗結(jié)果;然后,在基礎(chǔ)網(wǎng)絡(luò)CenterTrack 中加入SDLA 網(wǎng)絡(luò)和改進(jìn)的Displacement Prediction 分支,得到第二組實驗結(jié)果;最后,使用數(shù)據(jù)增強(qiáng)過的數(shù)據(jù)集進(jìn)行訓(xùn)練并測試,得到第三組實驗結(jié)果。骨干網(wǎng)絡(luò)的改進(jìn)加強(qiáng)了算法對圖片特征提取的能力,對Displacement Prediction 分支的改進(jìn),使檢測部分在計算時可以使用更多有效信息,由實驗結(jié)果可知,后者的改進(jìn)使MOTA 值和IDF1 值分別提升了1.6%和4.5%,證明了SDLA 網(wǎng)絡(luò)和改進(jìn)的Displacement Prediction 分支的有效性;通過對數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)可提高算法的的泛化能力,由實驗結(jié)果可知,MOTA 值和IDF1 值分別進(jìn)一步提升了2.6%和4.5%,驗證了數(shù)據(jù)增強(qiáng)的有效性。 由上述實驗結(jié)果,相較 CenterTrack 算法,本文改進(jìn)算法將MOTA 與IDF1 兩項指標(biāo)分別提升了4. 2% 和8. 8%,驗證了本文改進(jìn)算法的有效性。
表1 在MOT17 數(shù)據(jù)集中不同模塊對跟蹤效果的影響
在保證實驗環(huán)境以及學(xué)習(xí)率等參數(shù)不發(fā)生變化的情況下,通過對比實驗進(jìn)一步驗證改進(jìn)模型的有效性。 對比實驗結(jié)果如表2 所示。 其中,帶?的模型為二階段多目標(biāo)跟蹤算法,其余為一階段多目標(biāo)跟蹤算法。
表2 不同網(wǎng)絡(luò)模型的多目標(biāo)跟蹤結(jié)果比較
SST 是一種深度親和網(wǎng)絡(luò),其對隨機(jī)兩幀上的對象外觀及其相關(guān)性關(guān)系共同建模。 Tractorv2是基于檢測框和檢測器回歸的方式進(jìn)行下一幀的跟蹤預(yù)測的模型。
由表2 可以看出,一階段多目標(biāo)跟蹤算法在MOTA 和IDF1 兩項指標(biāo)上均高于二階段多目標(biāo)跟蹤算法;改進(jìn)前 CenterTrack 算法的 MOTA 和IDF1 兩項指標(biāo)分別為61.5%和59.6%;本文改進(jìn)算法提高了行人目標(biāo)特征提取的能力,同時加強(qiáng)了檢測與跟蹤之間的關(guān)聯(lián)性,將MOTA 值和IDF1值分別提升到65.7%和68.4%。 對比實驗的結(jié)果表明了改進(jìn)CenterTrack 的多目標(biāo)跟蹤算法的有效性。
提出了一種基于改進(jìn)CenterTrack 的多目標(biāo)跟蹤算法。 首先,對特征提取網(wǎng)絡(luò)添加注意力機(jī)制,使網(wǎng)絡(luò)能夠更加關(guān)注目標(biāo);其次,使用改進(jìn)的Displacement Prediction 分支加強(qiáng)檢測與跟蹤之間的關(guān)系,提高了該算法的精確度;最后,通過數(shù)據(jù)增強(qiáng)對數(shù)據(jù)集進(jìn)行處理,提高算法的泛化能力。相較于CenterTrack 多目標(biāo)跟蹤算法,在MOT17數(shù)據(jù)集上的實驗結(jié)果表明,本文改進(jìn)算法將MOTA 與IDF1 兩項指標(biāo)分別提升了4.2%和8.8%,多目標(biāo)跟蹤效果更好。