多目標跟蹤方法:deep-sort


多目標跟蹤方法:deep-sort

讀'Simple Online and Realtime Tracking with a Deep Association Metric, arXiv:1703.07402v1 ' 總結

前言

這篇文章依然屬於tracking-by-detection 類,其在匹配detections時使用的是傳統的匈牙利算法。文章中需要注意的幾點包括:

  1. 在計算detections和tracks之間的匹配程度時,使用了融合的度量方式。包括卡爾曼濾波中預測位置和觀測位置在馬氏空間中的距離 和 bounding boxes之間表觀特征的余弦距離。

  2. 其中bounding box的表觀特征是通過一個深度網絡得到的128維的特征

  3. 在匈牙利匹配detections和tracks時,使用的是級聯匹配的方式。這里要注意的是,並不是說級聯匹配的方式就比global assignment效果好,而是因為本文使用kalman濾波計算運動相似度的缺陷導致使用級聯匹配方式效果更好。

具體內容

We adopt a conventional single hypothesis tracking methodology with recursive kalman filtering and frame-by-frame data association.

軌跡處理和狀態估計

  • 狀態估計: 使用一個8維空間去刻畫軌跡在某時刻的狀態 ,分別表示bounding box中心的位置、縱橫比、高度、以及在圖像坐標中對應的速度信息。然后使用一個kalman濾波器預測更新軌跡,該卡爾曼濾波器采用勻速模型和線性觀測模型。其觀測變量為

  • 軌跡處理: 這個主要說軌跡什么時候終止、什么時候產生新的軌跡。首先對於每條軌跡都有一個閾值a用於記錄軌跡從上一次成功匹配到當前時刻的時間。當該值大於提前設定的閾值則認為改軌跡終止,直觀上說就是長時間匹配不上的軌跡認為已經結束。然后在匹配時,對於沒有匹配成功的detections都認為可能產生新的軌跡。但由於這些detections可能是一些false alarms,所以對這種情形新生成的軌跡標注狀態'tentative' ,然后觀查在接下來的連續若干幀(論文中是3幀)中是否連續匹配成功,是的話則認為是新軌跡產生,標注為'confirmed',否則則認為是假性軌跡,狀態標注為'deleted'。

分配

匹配自然是指當前有效的軌跡和當前的detections之間的匹配。所謂有效的軌跡是指那些還存活着的軌跡,即狀態為tentative和confirmed的軌跡。軌跡和detection之間的匹配程度結合了運動信息和表觀信息。

  • 運動匹配度
    使用detection和track在kalman 濾波器預測的位置之間的馬氏距離刻畫運動匹配程度。

表示第j個detection和第i條軌跡之間的運動匹配度,其中是軌跡由kalman濾波器預測得到的在當前時刻觀測空間的協方差矩陣,是軌跡在當前時刻的預測觀測量,時第j個detection的狀態
考慮到運動的連續性,可以通過該馬氏距離對detections進行篩選,文中使用卡方分布的0.95分位點作為閾值,定義如下示性函數

  • 表觀匹配度

單獨使用馬氏距離最為匹配度度量會導致IDSwitch等情形嚴重,特別的當相機運動時可能導致馬氏距離度量失效,所以這個時候應該靠表觀匹配度補救。對於每一個detection,包括軌跡中的detections,使用深度網絡提取出單位范數的特征向量$r$,深度網絡稍后再說。然后使用detection和軌跡包含的detections的特征向量之間的最小余弦距離作為detection和track之間的表觀匹配程度。當然軌跡太長導致表觀產生變化,在使用這種最小距離作為度量就有風險,所以文中只對軌跡的最新的之內detections進行計算最小余弦距離。

同樣的,該度量同樣可以確定一個門限函數,這個閾值由訓練集得到

兩種度量的融合: 加權平均
其中是超參數,用於調整不同項的權重。
門限函數

總結: 距離度量對於短期的預測和匹配效果很好,而表觀信息對於長時間丟失的軌跡而言,匹配度度量的比較有效。超參數的選擇要看具體的數據集,比如文中說對於相機運動幅度較大的數據集,直接不考慮運動匹配程度。
另外還有一點我想說的是這兩個匹配度度量的閾值范圍是不同的,如果想取相通的重要程度,應該取0.1左右。

級聯匹配

為什么采用級聯匹配?
如果一條軌跡被遮擋了一段較長的時間,那么在kalman濾波器的不斷預測中就會導致概率彌散。那么假設現在有兩條軌跡競爭同一個detection,那么那條遮擋時間長的往往得到馬氏距離更小,使detection傾向於分配給丟失時間更長的軌跡,但是直觀上,該detection應該分配給時間上最近的軌跡。導致這種現象的原因正是由於kalman濾波器連續預測沒法更新導致的概率彌散。這么理解吧,假設本來協方差矩陣是一個正態分布,那么連續的預測不更新就會導致這個正態分布的方差越來越大,那么離均值歐氏距離遠的點可能和之前分布中離得較近的點獲得同樣的馬氏距離值。
所以文中才引入了級聯匹配的策略讓'more frequently seen objects'分配的優先級更高。這樣每次分配的時候考慮的都是遮擋時間相同的軌跡,就不存在上面說的問題了。具體的算法如下:

enter description here

1498295679163.jpg

在匹配的最后階段還對unconfirmed和age=1的未匹配軌跡進行基於IoU的匹配。這可以緩解因為表觀突變或者部分遮擋導致的較大變化。當然有好處就有壞處,這樣做也有可能導致一些新產生的軌跡被連接到了一些舊的軌跡上。但這種情況較少。

【媽蛋,這個編輯器稍微寫長一點就卡成狗,卡的心情煩躁】

深度表觀描述子

預訓練的網絡時一個在大規模ReID數據集上訓練得到的,這個ReID數據集包含1261個人的1100000幅圖像,使得學到的特征很適合行人跟蹤。

然后使用該預訓練網絡作為基礎網絡,構建wide ResNet,用來提取bounding box的表觀特征,網絡結構如下:

enter description here

1498298065058.jpg

該網絡在Nvidia GeForce GTX 1050 mobile GPU下提出32個bounding boxes大約花費30ms,顯然可以滿足實時性要求。

實驗

實驗設置和結果

實驗是在MOT16數據集上跑的,使用的detections並非公共檢測結果。而是參考文獻1中提供的檢測結果. 實驗結果如下表所示。
enter description here

結論

  • 相對於沒使用深度表觀特征的原始sort方法,IDSw下降了約45%,可見該深度表觀特征的有效性

  • 由於表觀特征的使用,使軌跡因遮擋導致的motion 信息沒用時不至於錯誤分配detection,使得ML更少,MT更多。

  • 該方法存在的一個問題使FP太大。。,論文中分析原因有兩點。一方面是detections問題,兩一方面是軌跡最大允許丟失匹配的幀數!$A_{max}$太大導致去多false alarms被分配到軌跡中。提高detections的置信度可以顯著提升性能。

  • 速度夠快,20Hz


總結

  1. 該方法相對簡單,也容易理解。

  2. 我認為其優異性能很大程度上 取決於detections的質量很好,如果在提供的public detections上跑的話,可能要需要很復雜的預處理

  3. 在motion 匹配度時僅僅使用了距離關系,並不是真正的運動信息。我覺得這一點改用或結合速度信息,解決相似的人相遇而過導致的IDSw問題。

1 F. Yu, W.Li ,et.al. Poi: Multiple object tracking with high performance detection and appearance feature. ECCV,2016


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM