行人檢測與重識別!SOTA算法
A Simple Baseline for Multi-Object Tracking,
Yifu Zhang, Chunyu Wang, Xinggang Wang, Wenjun Zeng, Wenyu Liu,
論文地址:https://arxiv.org/pdf/2004.01888.pdf
GitHub 地址:https://github.com/ifzhang/FairMOT
Installation
克隆這個repo,調用克隆的目錄${FAIRMOT_ROOT} 。
安裝依賴項。
使用python3.7和pytorch >= 1.2.0。
在骨干網中使用DCNv2,更多細節可以在repo中找到。
運行演示代碼,還需要安裝ffmpeg。
conda create -n FairMOT
conda activate FairMOT
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
cd ${FAIRMOT_ROOT}
pip install -r requirements.txt
cd src/lib/models/networks/DCNv2_new sh make.sh
Data preparation
使用類似JDE的訓練數據。請參閱DATA ZOO,下載並准備所有的訓練資料,包括加Caltech Pedestrian, CityPersons, CUHK-SYSU, PRW, ETHZ, MOT17 and MOT16.數據。可從MOT challenge官方網頁下載。下載后,應按以下結構准備數據:
MOT15
|——————images
| └——————train
| └——————test
└——————labels_with_ids
└——————train(empty)
MOT20
|——————images
| └——————train
| └——————test
└——————labels_with_ids
└——————train(empty)
Then, you can change the seq_root and label_root in src/gen_labels_15.py and src/gen_labels_20.py and run:
cd src
python gen_labels_15.py
python gen_labels_20.py
to generate the labels of 2DMOT15 and MOT20. The seqinfo.ini files of 2DMOT15 can be downloaded here [Google], [Baidu],code:8o0w.
如何將目標檢測和重識別融合進一個框架,幫助解決多目標跟蹤任務?作者找出了這一方向的痛點所在,同時提出了一個簡單而有效的新方法。該方法以 30 fps 運行時在公開數據集上的性能超越了之前的 SOTA 結果。
近年來,目標檢測和重識別均取得長足進步,而它們正是多目標跟蹤的核心組件。但是,沒有太多研究人員試圖用一個框架完成這兩項任務,進而提升推斷速度。然而最初朝着這個方向努力的研究者得到的結果卻是性能下降,因為重識別任務無法得到恰當地學習。
該方法以 30 fps 運行時在公開數據集上的性能超越了之前的 SOTA 結果。
FairMOT 在 MOT 挑戰賽測試集上的效果。
此外,該研究還公開了代碼和預訓練模型。
多目標跟蹤的難點
多目標跟蹤 (MOT) 是計算機視覺領域中的重要任務,當前最優的方法通常使用兩個單獨的模型:首先用檢測模型定位圖像中目標的邊界框位置,然后用關聯模型對每個邊界框提取重識別 (Re-identification, Re-ID) 特征,並根據這些特征定義的特定度量將邊界框與現有的一個跟蹤結果聯結起來。
近年來,目標檢測和 Re-ID 均取得巨大進步,並提升了目標跟蹤的性能。但是,現有方法無法以視頻幀速率執行推斷,因為兩個網絡無法共享特征。
隨着多任務學習的成熟,結合目標檢測和 Re-ID 的 one-shot 方法逐漸吸引越來越多的注意力。由於這兩個模型共享大部分特征,因此它們有可能顯著縮短推斷時間。
但是,one-shot 方法的准確率相比兩階段方法有顯著下降,尤其是 ID 轉換(identity switch)量大增的情況下。也就是說,把這兩個任務合二為一並不簡單,需要謹慎看待。
哪些因素對目標跟蹤結果影響最大?
華中科技大和微軟亞研的這項研究沒有借助訓練 trick 提升跟蹤准確率,而是試圖分析「二合一」失敗的原因,並提出了一種簡單而有效的基線方法。
根據研究,以下三個因素對跟蹤結果的影響最大:
錨點與 Re-ID 不匹配
現有的 one-shot 跟蹤器 [35,33] 均以錨點為基礎,因為它們由目標檢測器發展而來。但是,錨點卻不適合學習 Re-ID 特征。原因如下:首先,對應於不同圖像塊的多個錨點可能負責估計同一個目標的 id,這導致嚴重的歧義(參見圖 1)。此外,需要將特征圖的大小縮小 1/8,以平衡准確率和速度。對於檢測任務而言這是可以接受的,但對於 Re-ID 來說就有些粗糙了,因為目標中心可能無法與在粗糙錨點位置提取的特征一致。
該研究對此提出的解決方案是:將 MOT 問題看作在高分辨率特征圖上的像素級關鍵點(目標中心)估計和 id 分類問題。
圖 1:(a) 盡管黃色和紅色錨點的圖像塊不同,但它們估計的是同一個 ID(穿藍色上衣的人)。此外,基於錨點的方法通常在粗糙網格上運行,因此在此類錨點(紅色或黃色五角星)處提取的特征大概率無法與目標中心一致。(b) anchor-free 方法的歧義要少一些。
多層特征聚合
這對於 MOT 問題尤其重要,因為 Re-ID 特征需要利用低級和高級特征來適應小型和大型目標。研究者通過實驗發現,這對降低 one-shot 方法的 id 轉換數量有所幫助,因為它提升了處理尺度變換的能力。
Re-ID 特征的維度
之前的 Re-ID 方法通常學習高維特征,在其基准上達到了不錯的結果。但是,該研究發現較低維度的特征對於 MOT 任務效果更好,因為該任務的訓練圖像比 Re-ID 少(由於 Re-ID 數據集僅提供剪裁后的人像,因此 MOT 任務不使用此類數據集)。
學習低維特征有助於降低過擬合的風險,並提升目標跟蹤的穩健性。
方法
下圖 2 展示了該研究提出的方法。
首先,采用 anchor-free 目標檢測方法,估計高分辨率特征圖上的目標中心。去掉錨點這一操作可以緩解歧義問題,使用高分辨率特征圖可以幫助 Re-ID 特征與目標中心更好地對齊。
然后,添加並行分支來估計像素級 Re-ID 特征,這類特征用於預測目標的 id。具體而言,學習既能減少計算時間又能提升特征匹配穩健性的低維 Re-ID 特征。
在這一步中,研究者用深層聚合算子(Deep Layer Aggregation,DLA)[41] 來武裝主干網絡 ResNet-34 [13],從而融合來自多個層的特征,處理不同尺度的目標。
圖 2:該研究提出的 one-shot MOT 跟蹤器圖示。首先將輸入圖像饋入編碼器-解碼器網絡,以提取高分辨率特征圖(步幅=4);然后添加兩個簡單的並行 head,分別預測邊界框和 Re-ID 特征;最后提取預測目標中心處的特征進行邊界框時序聯結。
實驗
研究者在 MOT 挑戰賽基准上借助評估服務器評估了本文提出的方法。與其他在線跟蹤器相比,本文提出的方法在 2DMOT15、MOT16、MOT17 及 MOT20 數據集上均名列第一。此外,在 2DMOT15、MOT16 和 MOT17 數據集上,該方法的性能還優於離線跟蹤器(MOT20 是個新數據集,之前研究沒有相關結果)。雖然結果比較驚艷,但該方法非常簡單,且運行速率為 30 FPS。
控制變量研究
1. 基於錨點(anchor-based)和無錨點(anchor-free)
表 1:在 MOT15 數據集上,基於錨點和無錨點方法在驗證視頻上的評估結果。
2. 多層特征聚合
表 2:不同主干網絡在 2DMOT15 數據集上的評估結果。
表 3:主干網絡對不同尺度目標的影響。
Re-ID 特征維度
表 4:不同 Re-ID 特征維度在 2DMOT15 數據集上的評估結果
與當前最佳模型的比較
研究者將本文提出的方法與當前最佳方法進行了對比,包括 one-shot 方法和 two-step 方法。
表 5:在兩個數據集上與當前最佳 one-shot 跟蹤器的對比結果。
表 6:與「private detector」設定下的 SOTA 結果進行對比。