轉載請標明鏈接:http://www.cnblogs.com/yanwei-li/p/8643446.html
網上已有很多關於MOT的文章,此系列僅為個人閱讀隨筆,便於初學者的共同成長。若希望詳細了解,建議閱讀原文。
本文是tracking by detection 方法進行多目標跟蹤的文章,在SORT的基礎上進行了改進(SORT見前一篇隨筆)。
論文地址:https://arxiv.org/pdf/1703.07402.pdf
代碼地址:https://github.com/nwojke/deep_sort
文章概述
本方法最大的特點是加入了appearance信息來提高之前SORT的性能,用cosine 距離來度量 tracks 和 detection 的相似度以減少 SORT算法中ID switch的次數(減少了45%),並使用Kalman預測和實際detection間的平方馬氏距離來過濾可能性小的匹配。
文章觀點
- SORT算法ID switch次數高是因為采用的關聯矩陣只在狀態預測不確定性較小的時候准確;(既狀態估計模型存在缺陷)
- SORT在通過遮擋進行跟蹤時存在缺陷,因為它們通常出現在正視的相機場景中;
- 本文將關聯度量替換為結合運動和外觀信息的度量。
文章方法
采用遞歸卡爾曼濾波和逐幀數據關聯的傳統單一假設跟蹤方法。
1. 狀態估計
- 我們的追蹤場景的定義是基於8維狀態空間,由於並非本文核心思想,詳細含義見原文在此不再贅述;
- 本文使用具有等速運動和線性觀測模型的標准卡爾曼濾波器,將bounding box坐標作為物體狀態的直接觀測模型;
- 對於每個track,計算該幀距上次匹配成功的幀數,該計數器在卡爾曼濾波器預測期間遞增,並且當軌道已經與測量相關聯時重置為0;
- 如果計數器得出的數目大於閾值則判斷為離開場景,將其ID刪除。如果現有的追蹤不能匹配就開啟一個新的track ID;
- 本文引入一個試驗track的概念,既新的track出現的前三幀被看作為試驗階段,在這一階段每一幀都要匹配成功,否則就算匹配失敗,會被刪除。
2. 指派問題
- 使用平方馬氏距離來度量預測track的Kalman狀態(BBOX的幾何位置)和新到來detection之間的距離;
- 使用cosine距離來度量各個track的appearance feature(128維)和detection feature之間的距離,來跟准確地預測ID;
- 引入兩個二值函數來限制assignment矩陣,分別比較平方馬氏距離以及cosine距離和閾值的大小來進行判斷,將兩個函數結合起來對矩陣進行限制;
- 使用combined距離來作為cost matrix進行度量各個track和detection之間的距離,這里文中只使用cosine距離進行度量(即將lambda設置為0),使用馬氏距離排除不可能的情況,既基於由卡爾曼濾波器推斷的可能的物體位置忽略不可行的分配。
3. 級聯匹配
- 物體被遮擋一段時間后,卡爾曼濾波預測的不確定性大大增加並且狀態空間上可觀察性變得很低,並且馬氏距離更傾向於不確定性更大的track,這是由於減少了detection的標准差距預計的軌跡的距離。因此這里引入級聯匹配,優先匹配detection與最近出現的track;
- Matching Cascade算法見下,在最后結束算法時使用SORT中的IOU距離來解決局部遮擋的問題,通過計算unmatched tracks(只有前一幀是unmatched的) 和 unmatched detection的IOU distance,詳細見最后的代碼流程圖。
4. Appearance 描述
通過在大規模re-id數據集上pre-trained深度網絡來提取128維的appearance特征,用L2正則化將特征投影到單位超球面上來與余弦距離進行匹配,網絡結構見下(需要注意的是此處的detection用的是POI中的detection坐標,文中的CNN網絡用於提取bbox中的特征)。
文章結果
- 相對於SORT,本文主要解決的是ID Switch過大的問題,從結果中可以看出ID Switch比之前下降了45%,並達到了state-of-the-art;
- MOTA,MOTP,MT,ML,FN指標相對於之前都有提升,並且速度下降不大,很實用;
- FM的上升主要是因為聯合的matrix中過於強調appearance,導致在有遮擋或者丟失時detection的錯誤導致;
- FP的升高很多,文章中提出這主要是由於靜態場景中detection的錯誤以及過長的允許丟失的track age所導致的(相對於SORT只用相鄰幀進行匹配來說,Deep SORT允許高達30幀的丟失,而Kalman的等速運動模型沒有改變,這主要造成了FP的升高)。
代碼流程圖