屠榜多目標(biāo)跟蹤!華科&港大提出ByteTrack:基于數(shù)據(jù)關(guān)聯(lián)方法BYTE的跟蹤器
導(dǎo)讀
?基于BYTE本文提出了一個跟蹤方法ByteTrack,首次以30 FPS的運行速度在MOT17上取得80.3 MOTA,77.3 IDF1和63.1 HOTA,目前位居MOTChallenge榜單第一。?
本文主要介紹一下我們最近的一篇工作:
ByteTrack: Multi-Object Tracking by Associating Every Detection Box
沿著多目標(biāo)跟蹤(MOT)中tracking-by-detection的范式,我們提出了一種簡單高效的數(shù)據(jù)關(guān)聯(lián)方法BYTE。利用檢測框和跟蹤軌跡之間的相似性,在保留高分檢測結(jié)果的同時,從低分檢測結(jié)果中去除背景,挖掘出真正的物體(遮擋、模糊等困難樣本),從而降低漏檢并提高軌跡的連貫性。BYTE能輕松應(yīng)用到9種state-of-the-art的MOT方法中,并取得1-10個點不等的IDF1指標(biāo)的提升。基于BYTE我們提出了一個跟蹤方法ByteTrack,首次以30 FPS的運行速度在MOT17上取得80.3 MOTA,77.3 IDF1和63.1 HOTA,目前位居MOTChallenge榜單第一。我們還在開源代碼中加入了將BYTE應(yīng)用到不同MOT方法中的教程以及ByteTrack的部署代碼。
Paper: http://arxiv.org/abs/2110.06864
Code: https://github.com/ifzhang/ByteTrack
Leaderboard: https://motchallenge.net/results/MOT17/?det=Private

縱軸是MOTA,橫軸是FPS,圓的半徑代表IDF1的相對大小
1. Motivation
Tracking-by-detection是MOT中的一個經(jīng)典高效的流派,通過相似度(位置、外觀、運動等信息)來關(guān)聯(lián)檢測框得到跟蹤軌跡。由于視頻中場景的復(fù)雜性,檢測器無法得到完美的檢測結(jié)果。為了處理true positive/false positive的trade-off,目前大部分MOT方法會選擇一個閾值,只保留高于這個閾值的檢測結(jié)果來做關(guān)聯(lián)得到跟蹤結(jié)果,低于這個閾值的檢測結(jié)果直接丟棄。但是這樣做合理嗎?答案是否定的。黑格爾說過:“存在即合理。”低分檢測框往往預(yù)示著物體的存在(例如遮擋嚴(yán)重的物體)。簡單地把這些物體丟棄會給MOT帶來不可逆轉(zhuǎn)的錯誤,包括大量的漏檢和軌跡中斷,降低整體跟蹤性能。
2. BYTE
為了解決之前方法丟棄低分檢測框的不合理性,我們提出了一種簡單、高效、通用的數(shù)據(jù)關(guān)聯(lián)方法BYTE (each detection box is a basic unit of the tracklet, as byte in computer program)。直接地將低分框和高分框放在一起與軌跡關(guān)聯(lián)顯然是不可取的,會帶來很多的背景(false positive)。BYTE將高分框和低分框分開處理,利用低分檢測框和跟蹤軌跡之間的相似性,從低分框中挖掘出真正的物體,過濾掉背景。整個流程如下圖所示:
(1)BYTE會將每個檢測框根據(jù)得分分成兩類,高分框和低分框,總共進(jìn)行兩次匹配。
(2)第一次使用高分框和之前的跟蹤軌跡進(jìn)行匹配。
(3)第二次使用低分框和第一次沒有匹配上高分框的跟蹤軌跡(例如在當(dāng)前幀受到嚴(yán)重遮擋導(dǎo)致得分下降的物體)進(jìn)行匹配。
(4)對于沒有匹配上跟蹤軌跡,得分又足夠高的檢測框,我們對其新建一個跟蹤軌跡。對于沒有匹配上檢測框的跟蹤軌跡,我們會保留30幀,在其再次出現(xiàn)時再進(jìn)行匹配。
我們認(rèn)為,BYTE能work的原因是遮擋往往伴隨著檢測得分由高到低的緩慢降低:被遮擋物體在被遮擋之前是可視物體,檢測分?jǐn)?shù)較高,建立軌跡;當(dāng)物體被遮擋時,通過檢測框與軌跡的位置重合度就能把遮擋的物體從低分框中挖掘出來,保持軌跡的連貫性。

3. ByteTrack
ByteTrack使用當(dāng)前性能非常優(yōu)秀的檢測器YOLOX得到檢測結(jié)果。在數(shù)據(jù)關(guān)聯(lián)的過程中,和SORT一樣,只使用卡爾曼濾波來預(yù)測當(dāng)前幀的跟蹤軌跡在下一幀的位置,預(yù)測的框和實際的檢測框之間的IoU作為兩次匹配時的相似度,通過匈牙利算法完成匹配。這里值得注意的是我們沒有使用ReID特征來計算外觀相似度:
(1)第一點是為了盡可能做到簡單高速,第二點是我們發(fā)現(xiàn)在檢測結(jié)果足夠好的情況下,卡爾曼濾波的預(yù)測準(zhǔn)確性非常高,能夠代替ReID進(jìn)行物體間的長時刻關(guān)聯(lián)。實驗中也發(fā)現(xiàn)加入ReID對跟蹤結(jié)果沒有提升。
(2)如果需要引入ReID特征來計算外觀相似度,可以參考我們開源代碼中將BYTE應(yīng)用到JDE,F(xiàn)airMOT等joint-detection-and-embedding方法中的教程。
(3)ByteTrack只使用運動模型沒有使用外觀相似度能在MOT17,20取得高性能的本質(zhì)原因是MOT數(shù)據(jù)集的運動模式比較單一(于是,我們提出了一個新數(shù)據(jù)DanceTrack,彩蛋!)
4. Demo
ByteTrack在MOT 17 and MOT20 challenge的效果:


ByteTrack在故宮游玩時拍攝視頻的效果(侵權(quán)刪):


5. Performance
首先,我們使用YOLOX的檢測結(jié)果,發(fā)現(xiàn)BYTE能夠大幅領(lǐng)先SORT,DeepSORT,MOTDT等經(jīng)典熱門關(guān)聯(lián)方法,對超參數(shù)也更加魯棒,結(jié)果如下所示:


其次,我們將BYTE應(yīng)用到了ECCV20之后的9種SOTA tracker上,其中包括基于ReID, motion和attention的方法,都得到了穩(wěn)定的MOTA和IDF1指標(biāo)的提升,結(jié)果如下表所示:

最后,ByteTrack在MOT17和MOT20上都達(dá)到了榜單第一,并且速度在當(dāng)前所有方法中也達(dá)到第一(30 FPS)。


6. Conclusion
多目標(biāo)追蹤場景中,大部分遮擋物體的檢測結(jié)果都是低分框,ByteTrack非常簡潔的從低分檢測框中尋找遮擋的物體,對遮擋非常魯棒。ByteTrack同時也為如何最大程度利用檢測結(jié)果來幫助MOT提供了啟發(fā)。我們也提供了ByteTrack的部署代碼和模型,希望它的高精度、高速度能夠?qū)嶋H應(yīng)用帶來幫助。
7. 彩蛋
ByteTrack在MOT17,20的表現(xiàn)啟發(fā)我們重新思考多目標(biāo)追蹤中的運動模型與re-ID模型。當(dāng)前眾多跟蹤模型強(qiáng)依賴于提取物體的外觀特征,那如果追蹤物體的外觀基本一致時,現(xiàn)有模型的的表現(xiàn)如何?當(dāng)前主流多目標(biāo)跟蹤數(shù)據(jù)集中物體的運動模式非常簡單,近乎勻速直線運動,如果物體的運動模式非常復(fù)雜,多個物體互相來回穿梭,現(xiàn)有模型的的表現(xiàn)如何?我們提出了一個數(shù)據(jù)集:
DanceTrack: tracking multiple objects in uniform appearance and diverse motion

正在準(zhǔn)備中,歡迎大家屆時關(guān)注。
如果覺得有用,就請分享到朋友圈吧!
