論文地址:https://arxiv.org/pdf/1703.07402.pdf
論文代碼:https://github.com/nwojke/deep_sort
早期拜讀的sort論文是sort論文閱讀 是它的基礎版本。
deepsort能夠解決sort 中無法處理遮擋,目標ID不斷切換的問題。
ABSTRACT
SORT是解決多目標跟蹤中較爲實用的算法。本文,集成目標外觀特性信息以改善SORT的性能。基於外觀特性的加入,能夠跟蹤長時間遮擋的目標,有效減少目標ID常常切換次數。在在線應用方面,我們使用可視化外觀空間中的最近鄰查詢方式建立測量到跟蹤的關聯。實驗評估顯示這一延伸操作減少了目標ID切換次數到45%,實現高幀率下較爲競爭力的性能。
1. INTRODUCTION
由於目標檢測方面的進步,基於檢測的跟蹤技術已經成爲多目標跟蹤的主導範式。儘管就跟蹤精度和準確度方面來說SORT取得了不錯的性能,但其(同個目標)ID轉換次數較多,這是因爲只有在狀態估計不確定性低的時候使用的關聯度量才較爲精確。因此SORT在目標遮擋這一常見場景下做目標跟蹤仍存在缺陷。本文作者克服了這一問題,將原來的關聯度量方式(兩個bbox的IOU)替換爲更好的度量方式:結合運動和外觀特徵信息。此外,作者還用CNN在re-ID數據集上訓練了個行人檢測器,通過集成該網絡,改善了漏檢和遮擋情況,並且保證了該系統應用簡單,有效,可在實時場景中使用。
2. SORT WITH DEEP ASSOCIATION METRIC
作者採用了傳統單假設跟蹤方法與遞歸卡爾曼濾波和逐幀數據關聯。
2.1. Track Handling and State Estimation
採用的跟蹤處理與卡爾曼濾波框架主要與SORT的一致。文中跟蹤場景定義在8個維度的狀態空間 ,其中(u,v)是bbox中心位置,縱橫比 γ, 高 h, 以及他們在圖像座標系下的速度(即一階導數)。作者還使用標準的卡爾曼濾波,勻速運動假設,以及線性觀測模型,將邊界框(u,v,γ,h)作爲目標觀測狀態。
對每個跟蹤器k, 我們會計算其自上一次成功與測量關聯 幀數量。該計數值在卡爾曼預測階段會增加,在跟蹤器與測量關聯後會重置爲0. 當累計計數超過預先定義的最大值Amax後將視該跟蹤器已經離開了場景,並將其從trackset(跟蹤器集)中刪除。針對那些沒有關聯成功的檢測結果,將會爲其初始化個跟蹤器,表示新出現在場景的目標。這些新的跟蹤器在前三幀中被歸爲暫定的。在這三幀期間,我們期望在每個時間幀中能有測量值與其關聯。如果在這前三幀中沒有能成功與測量值關聯上的 暫定的跟蹤器將被刪除。
2.2. Assignment Problem
一種傳統解決卡爾曼預測狀態和新檢測值之間關聯問題的方式是採用匈牙利算法。作者將運動和外觀特性信息兩者以適當的度量方式集成到匈牙利算法中。
利用卡爾曼預測的狀態與新檢測結果之間的馬氏距離來將運動信息包含進來:
其中dj 表示第 j 個邊界框檢測結果, yi 是第 i 個卡爾曼跟蹤器預測結果。馬氏距離考慮到狀態估計不確定性,通過測量檢測結果偏離平均跟蹤位置的標準方差大小。利用該度量方法,能夠通過給馬氏距離閾值化來排除不可能的關聯。
如果第 i 個跟蹤預測結果與第 j 個檢測結果允許關聯,則將指示器 bij 置位1. 針對我們的4維測量空間,相應的馬氏距離閾值爲
當運動不確定性低時,馬氏距離是個較爲適合的關聯度量方式,在我們的圖像空間問題公式化下,通過卡爾曼濾波框架得到的預測狀態分佈是個較爲粗糙的目標位置估計。特別地,未知的相機運動會引入圖像平面內物體的迅速偏移,使得馬氏距離在作爲跟蹤遮擋目標度量時變得不那麼好。因此,作者引入第二個度量方式來處理該問題。對於每個bbox檢測結果dj 我們計算一個特徵描述器 ,其滿足 . 此外,我們保持 ,其中 =100是 針對跟蹤器 k最後關聯的特徵描述器個數。
具體來講就是對於跟蹤器i, 爲它建立了一個集合,保留它過去Lk次成功跟蹤後物體檢測bbox對應的Lk個Feature向量集合,公式(3)就是在計算第i個跟蹤器的所有Lk個特徵向量和第j個檢測器之間的最小余弦距離。
第二個度量測量第 i 個跟蹤器和第 j 個檢測器在特徵空間的最小余弦距離:
其中餘弦度量距離的圖示如下:
當兩個向量同向時,向量乘應該是最大的,表示兩者距離小,用1去減之後得到的d也會小,因此求d的最小值,就是求最近距離。
同樣地,引入以下二值變量來指示根據度量結果判斷是否達到關聯,
實際中,使用預訓練的CNN來計算bbox的特徵描述器。該網絡結構在Section2.4中會描述。
以上兩個度量在實際情況中相互彌補,一方面,馬氏距離提供基於運動的目標可能位置,這對於短時預測較爲有用。另一方面,餘弦距離考慮到外觀特性信息,這對於在遮擋較久之後恢復目標ID尤爲重要,因爲這個時候運動的區分度較低。作者將兩種度量方式以權重形式作和:
如果每個度量都在控制區內,則認爲關聯成功,總的關聯指示如下;
2.3. Matching Cascade
替代解決全局分配問題中解決測量到跟蹤的關聯,我們引入一個級聯來解決一系列子問題。這一方法的動機來自如下情形:當一個目標物體被長時間遮擋,之後的卡爾曼濾波預測的位置不確定性會增加。因此,概率質量會在狀態空間逐漸分散開,觀測可能性將變得不那麼高。當兩個跟蹤器競爭一個檢測結果時,馬氏距離傾向於更大的不確定性,因爲它有效地降低了任何檢測到的標準偏差到投射跟蹤器均值的距離。
- Listing 1是匹配級聯算法的框架。將跟蹤器集T 和檢測器集D ,以及最大壽命(age,暫且這麼翻譯吧,作者想表達的就是累計值)值Amax.
- 第1行中,計算關聯代價矩陣C (存放物體跟蹤器i和物體檢測結果j之間距離值),第2行中計算被接受爲關聯的矩陣B (即公式6中對應的track和detector是否關聯得到的判斷0或1)。
- 然後對跟蹤器進行迭代來解決跟蹤器壽命不斷增加過程中的線性分配問題。
- 第6行,從剛剛匹配成功的跟蹤器循環遍歷到最多已經有Amax 次沒有匹配的跟蹤器,即我們選擇那些在最後n幀中沒有與檢測結果關聯的跟蹤器集Tn的子集,和沒有匹配的檢測結果 U.
- 第8行和第9行,我們更新匹配的集合和沒有匹配的檢測器,第11行返回其結果。
- 該匹配級聯算法給了較小壽命的跟蹤器有更大優先權,例如那些最近纔可被看見的跟蹤器。(意思就是說遮擋一段時間後,目標重新出現後的跟蹤器)。
在最後匹配階段,我們對未確認和未匹配的跟蹤器集(其壽命 n=1)上運行IOU,這有助於說明突然的外觀特徵變化,例如靜態場景下的部分遮擋,以及爲錯誤初始化情況下增加算法魯棒性。
2.4. Deep Appearance Descriptor
通過使用簡單的近鄰查詢而不需要額外的度量學習,要想用我們的方法實現在線目標跟蹤,需要一個區分性好的線下訓練的特徵描述模型。作者使用了CNN在大規模行人re-ID數據集(含110萬以上圖像,1261個人)上訓練的模型,使它適合於用作人的跟蹤的深度度量學習。CNN結構如表1所示。在第10層計算了個維度是128的特徵圖,最後用了batch和 L2歸一化將特徵投射到單位超球面上,使得和餘弦特徵度量兼容。具體的做法是把物體檢測BBox dj 對應的圖像patch作爲下圖的CNN輸入,輸出128維feature向量rj 。網絡整體參數量爲2,800,864 ,在Nvidia GeForce GTX 1050 mobile GPU上,前向過程中32個bbox將近30ms
3. EXPERIMENTS
結論
和sort對比,好處是:
- 減少了45%的ID switch;
- 結合了深度外觀信息,對遮擋目標的追蹤效果大大提升;
- FP的升高很多,文章中提出這主要是由於靜態場景中detection的錯誤以及過長的允許丟失的track age所導致的(相對於SORT只用相鄰幀進行匹配來說,Deep SORT允許高達30幀的丟失,而Kalman的等速運動模型沒有改變,這主要造成了FP的升高)。
- 20Hz,依舊實用;
- 達到了state-of-art online tracking的效果。
PS:
關於算法中各類距離的定義說明請參考:歐式距離、標準化歐式距離、馬氏距離、餘弦距離
匈牙利算法中的線性分配問題:linear assignment problem
參考:https://blog.csdn.net/HaoBBNuanMM/article/details/85555547