0. 前言
1. 要解決什麼問題
- 多目標跟蹤的普通解決方案是檢測+Re-ID。
- 檢測與Re-ID是兩個獨立的模型,這樣性能較好,但inference time較長。
- 這種方法在這篇論文中統一稱爲 Separate Detection and Embedding(SDE),在前一篇論文(AlphAction)中被稱爲 two-step method。
- 這篇論文應該是比較早的 One-shot MOT 的論文,即detection與embeddings在同一個網絡中實現。
2. 用了什麼方法
- 主要就是用了 one-shot 的結構,提出的結構名爲JDE(Jointly learns the Detedctor and Embedding model)
- 下面這張圖就介紹了三種不同的MOT實現方案:
- SDE:Detection與Embedding分爲兩個獨立的模型,性能高、實時性差。
- Two-stage:檢測通過two-stage detection實現,感覺類似於 SDE,只不過檢測模型通過RPN實現,實時性也不好(10fps左右)。
- JDE:Detection與Embedding通過同一個網絡實現,Detection用的是one-stage的方法。
- 對問題進行建模
- 訓練數據一般分爲三個部分:圖像,每張圖像對應的bbox,以及每個bbox對應的label(identity labels,可以理解爲人物編號吧)
- 對於每張圖片,模型的輸出是bbox以及每個bbox的features。
- 訓練目標是:
- 令模型輸出的bbox與GT儘可能相同(檢測問題)。
- 定義一個函數,用於定義不同features之間的“距離”,是的相同label物體之間的“距離”都小於不同label物體之間的“距離”(metrics learning)。其中可以使用歐幾里德距離。
- JDE 網絡結構如下圖所示
- backbone使用了FPN結構。
- 類似於SSD/Yolo,若干特徵圖都連接了一個prediction head,實現了檢測以及獲取embedding。
- online association
- 作用:將當前bbox的特徵與歷史bbox特徵進行關聯。
- 主要方法:計算關聯矩陣,然後通過匈牙利算法匹配,另外通過卡爾曼濾波過濾位置差距較大的匹配。
3. 效果如何
- 與當時的一些SOTA進行對比,在準確率差距不大的情況下,FPS大大提升
- 與一些SDE方法進行對比(FPS是在TitanXP上測的)
- SDE方法在人比較多的情況下,FPS下降比較多。
4. 還存在什麼問題
-
對於我來說:
- 這個有開源,所以會仔細研究下源碼。
- 對於匈牙利算法+卡爾曼濾波目前不是特別懂,還需要仔細看看。
-
在看大佬的問題時看到過這類one-shot算法存在的問題,將detection與re-id放到一起存在一個缺陷,detection需要的是category的特徵(即類別特徵),而re-id需要的是identity的特徵(即個體特徵),這是一個本質問題。
-
在FairMOT中也提到了一些問題,使用anchor-based detection不適合用於Re-ID,Re-ID需要不同分辨率的特徵進行融合,Re-ID特徵維度不能太高。