0. 前言
1. 要解決什麼問題
- 近些年來,檢測與Re-ID都有了長足的發展。而多目標跟蹤可以看成是檢測與Re-ID的結合。
- 當前主要的MOT實現方法有兩種
- two-step:檢測與Re-ID用兩個獨立的網絡實現,參數不共享。這類方法性能相對高,實時性相對差。
- one-shot:檢測與Re-ID用同一個網絡實現,參數共享。這類方法性能相對差,實時性相對好。
- one-shot 類方法導致性能下降的主要原因(本文主要貢獻)
- 基於anchors的檢測方法並不適用於Re-ID。首先,同一個物體可以由不同的anchor選中,從而造成模型的歧義。其次,輸入圖片一般會變爲原來的1/8,這對於檢測來說沒關係,但對於ReID來說太過於粗糙了。
- 需要multi-layer feature aggregation,即多層特徵融合。這對於Re-ID來說非常重要,因爲需要綜合低層特徵與高層特徵,從而兼顧小物品與大物品。
- 這對於two-step的方法並不重要,主要因爲two-step方法的輸入一般都是尺寸差不多的物體(因爲resize過了)。
- Re-ID特徵的維度(尺寸)。之前的方法,Re-ID的維度都太高了,對MOT來說可能需要維度小一點更合適,主要是訓練數據少了(相比於純Re-ID數據集)。
2. 用了什麼方法
- 主要就是爲了解決上面提到的3個缺陷,使用了anchor-free的檢測方法(仔細點說,就是用了CenterNet)實現了MOT。
- FairMOT的主要結構如下:
- 總體結構如左上方小圖,原始數據 image 通過 encoder-decoder 提取特徵
- encoder-decoder:猜測就是一些backbone+DLA結構。
- 檢測:使用了centernet,思路就是通過 heatmap分支檢測中心點所在位置,通過 center offset 修正中心點位置,通過 box size 獲取bbox的長寬。
- 需要注意的是,centermap其實就是對backbone最後一層feature的每個位置都檢測了一個object。
- Re-ID:好像意思是在backbone後加了一層conv,從而使得channels數量爲128,這樣每個物體的embeddings也就是128了。
- 檢測相關的一些細節
- 傳入Re-ID的特徵是經過NMS操作的。
- centermap中,每個bbox的score,或者說confidence,就是中心點 heatmap 的取值。
- Re-ID相關的一些細節
- 主要功能就是關聯不同幀的bbox,使用的方法就是標準的 online tracking algorithm。
- 基本思路就是:在第一幀初始化各種tracklets,在之後的幀中通過 Re-ID features 以及 IoU 進行關聯。另外,也使用了卡爾曼濾波器來預測trackelet的位置,如果差距太大那就會過濾。
3. 效果如何
- 首先做了一系列對比實驗,表明了爲什麼要選擇 anchor-free detector,爲什麼 Re-ID embedding dimension 要減小,爲什麼在backbone中要使用DLA結構。
- 之後,與JDE進行比較,表示當前方法全方位吊打JDE
- 與 two-step 的 SOTA 對比,也不落下風
4. 還存在什麼問題
-
從論文本身看,並沒有太大的創新點。給我的感覺是通過一系列實驗發現了問題,然後通過大量的嘗試得到結論,然後優化……
-
這種偏工程+開源的,是我最喜歡的……