ByteTrack: Multi-Object Tracking by Associating Every Detection Box 介紹

How哥
8 min readOct 19, 2021

--

ByteTrack 提出簡單的檢測框匹配方法,能夠使被遮擋的物件順利被偵測並匹配,而不使用 Re-ID,在 MOT17 上 MOTA 80.3,IDF1 77.3,為目前最高,FPS 高達 30,也是目前最快

Introduction

近年來,物件追蹤做的越來越好,在 MOT Challenge 比較容易偵測出來的人已經被配對的很好,現在要想把準確度再提升,就要把那些被遮擋的人也偵測出來,並且匹配起來

ByteTrack 超過所有現形的追蹤器,速度還高達 FPS30

但是 low score 的人往往會被當成背景被捨去掉,因此作者提出的方法 tracking BY associaTing Every detection box (BYTE),能夠把低分數的人跟背景分辨出來,並且批配在一起

(a) 為原本偵測到的框框和分數,(b) 為一般追蹤器的預測結果 ,(c) 為 ByteTrack 的預測結果,可以發現被遮擋的人即使分數很低,也有被抓到

根據上圖的方法,IDS 會下降很多,並且在 MOTA 達到 80.3,IDF1 77.3,在 V100 上跑 30 FPS

BYTE

主要分成兩個階段,第一階段先匹配分數高的人,第二階段匹配分數較低的人,分數較低的人可能是被遮擋的人或者背景不小心被偵測出來,底下是演算法

匹配演算法

第 3 行到第 13 行,把分數高於 thigh 的物件放入 Dhigh 中,其餘分數高於 tlow 的物件放入 Dlow 中,低於 tlow 完全不管

第 3 行到第 13 行

第 14 行到第 16 行,用 Kalman Filter 預測每個 T 的新位置

第 14 行到第 16 行

第 17 行到第 19 行,進行第一次連接,這邊說明一下,Kalman Filter 是藉由上一幀的 GroundTruth 所預測出來下一幀的位子,這邊命名為 T

detection model 預測出來的框框稱為 D,他是有分數的,要把這兩個東西匹配起來,第一次匹配我們把 Dhigh 跟 T 進行,相似度使用 IOU,如果相似度小於 0.2,就把不匹配,把這些沒配到的放到 Dremain 和 Tremain 中

第 17 行到第 19 行

接著是第二次匹配,使用 Dlow 和 Tremain 進行,剩下沒有被配到的丟入 Tre-remain 中,這邊相似度計算也是使用 IOU,因為在分數較低的框框中,往往都是被遮擋的人或是模糊的人,這時候使用 Re-ID 反而偵測不好

低分數框框匹配

如果在 Tre-remain 中的東西在 30 幀內沒有再被連結到,就從 tracklet 中刪除

刪除遺失的物件

最後新增物件,在 Dreamin 中有分數高的 Dhigh 出現超過連續兩幀,就把它加入 tracklet 中

新增物件

ByteTrack

為了能讓上面的追蹤法實現,這非常仰賴超強物件偵測器,作者們使用 YOLOX 來當這個演算法的物件偵測器,他是 anchor-free 的 YOLO 方法,擁有超強 data augmentations

YOLOX 和 YOLOv5 最大的差別在於 two decoupled heads,one for regression and the other for classification,他們還額外加了一個 IOU-aware branch 在 regression head 上,用來預測與 GT box 的 IOU

YOLOX 架構圖

更多的 YOLOX 細節要去看他的論文 https://arxiv.org/abs/2107.08430

Experiments

資料集 :MOT17,CrowdHuman,Cityperson,ETHZ

這次多了一個新的評比標準 HOTA,負責關於 accurate detection, association and localization 的評分

thigh = 0.6, tlow = 0.1, ε = 0.7, 小於 0.2 則不匹配,超過 30 幀沒出現視為遺失

Backbone 為 YOLOX-X,使用 COCO pretrain,接著在上述資料集訓練 80 個 epochs,在 8 張 V100 訓練 12小時

Ablation Studies on BYTE

比較 SORT 和 BYTE 一樣是用 Kalman Filter ,但 IDS 從 291 降到 159,因為有的分框框的匹配讓結果更好,另人更意外的是,IDS 數量還比只用 Re-ID 的 DeepSORT 還要更少

在 MOT17 上的表現

超參數 thigh 是一個很敏感且重要的數值,他們從 0.2 ~ 0.8 最後決定把值設定為 0.6

保留檢測分數在 tlow 到 thigh 之間的檢測匡,證明 BYTE 方法能夠對檢測分數較低的物件(模糊,遮擋),有較好的效果

底下是套用 BYTE 架構到各個模型中

這邊測試哪一個解析度可以達到又快又準確

底下表達越多資料集訓練,結果越準確

底下是視覺化,可以發現遮擋的部份有很多改善

Tracklet interpolation

有些行人被遮擋時不是部份被遮擋,而是完全消失,這會讓偵測器完全找不到,這時候使用插值法來推斷被遮擋時的位子

後處理的參數 σ 表示最大區間,t2 - t1 <= σ

設定 20 能讓準確鍍在上升接近 2 個百分點

下面是跟近期的 Tracker 比較的結果

MOT17

MOT20 行人比較多,很容易發生遮擋問題,處理起來也會比較慢

MOT20

Conclusion

這篇論文跟 FairMOT 的作者是同一個人,厲害的地方是,現在很多主流方法都使用 Re-ID 來辨人行人,我前幾天也在想那個辨認比較差的資料集因為色調偏暗,很難由外觀認出誰是誰時,ByteTrack 提出傳統使用 IOU 重疊的方式,即使在模糊或是部份遮擋的行況下還能夠辨認出來

至於 FPS 的比較我很好奇,他使用的是 V100 顯示卡,一張要 40 萬台幣,怎可以跟 2080 ti 一張才 4 萬塊的顯示卡比呢?

這論文應該會投稿 CVPR2022,而且上禮拜才傳到 arxiv 上,我寫的應該算快了

--

--

How哥

台灣科技大學資工所研究生,把有趣的電腦視覺論文整理上來,希望能幫助到有需要的人,聯絡信箱 b10515007@gmail.com