ByteTrack Multi-Object Tracking by Associating Every Detection Box

ByteTrack: Multi-Object Tracking by Associating Every Detection Box

ByteTrack:通过关联每个检测盒进行多目标跟踪

专业名词解释

基础评测指标

1、ID Switches (ID Sw.)

被跟踪目标身份发生错误地更改时被称为身份跳变。在对视频序列的跟踪过程当中,ID Sw.表示所有跟踪目标身份交换的次数。

2、Frames Per Second (FPS)

多目标跟踪器的跟踪速度。

3、False Positives (FP)

在视频序列中不能与 真实轨迹的边界框 相匹配的 假设边界框 被称为假阳性;即本来是假的,预测认为是真的。FP 表示整个视频序列中假阳性的数量。

4、False Negatives (FN)

在视频序列中不能与 假设边界框 相匹配的 真实轨迹的边界框 被称为假阴性;即本来是真的,预测认为是假的。FN 表示整个视频序列中假阴性的数量。

5、Mostly Tracked tracklets (MT)

在跟踪过程中各个目标至少有 80%的视频帧都能被正确地跟踪的跟踪轨迹数量。

6、Mostly Lost tracklets (ML)

在跟踪过程中各个目标至多有 20%的视频帧能被正确地跟踪的跟踪轨迹数量。

7、Fragments (Frag)

真实跟踪轨迹由于某种原因发生中断并在后来又继续被准确跟踪上被称为跟踪碎片。Frag 表示整个视频序列中碎片的总数。

以上 7 种评测指标主要度量多目标跟踪器的基础性能,其中加粗的比较常用;为了进一步评判多目标跟踪器的综合性能,出现了其他指标。

MOTA、MOTP、 HOTA

CLEAR MOT 指标提出了 多目标跟踪精度MOTP和多目标跟踪准确度MOTA 两个综合性的指标,这两个指标能够衡量多目标跟踪器在整体上的性能好坏。

MOTA(Multiple Object Tracking Accuracy) :MOTA主要考虑的是tracking中所有对象匹配错误,给出的是非常直观的衡量跟踪其在检测物体和保持轨迹时的性能,与目标检测精度无关,MOTA取值小于100,但是当跟踪器产生的错误超过了场景中的物体,MOTA可以变为负数。

MOTP(Multiple Object Tracking Precision) : 是使用bonding box的overlap rate来进行度量(在这里MOTP是越大越好,但对于使用欧氏距离进行度量的就是MOTP越小越好,这主要取决于度量距离d的定义方式) MOTP主要量化检测器的定位精度,几乎不包含与跟踪器实际性能相关的信息。

HOTA(高阶跟踪精度)是一种用于评估多目标跟踪 (MOT) 性能的新指标。它旨在克服先前指标(如 MOTA、IDF1 和 Track mAP)的许多限制。

HOTA 被视为组合3个欠条得分。它将评估跟踪的任务分为三个子任务(检测、关联和定位),并使用 IoU(交集对联合)公式(也称为 Jaccard 指数)计算每个子任务的分数。然后它将每个子任务的这三个 IoU 分数组合成最终的 HOTA 分数。

IDP、IDR、IDF、Re-Id

IDP : 识别精确度

整体评价跟踪器的好坏,识别精确度 IDP 的分数如下进行计算:
在这里插入图片描述

IDR:识别召回率

它是当IDF1-score最高时正确预测的目标数与真实目标数之比,识别召回率 IDR 的分数如下进行计算:
在这里插入图片描述
IDF1:平均数比率

IDF1是指正确的目标检测数与真实数和计算检测数和的平均数比率,这里, IDF1的分数如下进行计算:在这里插入图片描述

上述公式中,IDTP 可以看作是在整个视频中检测目标被正确分配的数量,IDFN 在整个视频中检测目标被漏分配的数量,IDFP 在整个视频中检测目标被错误分配的数量。

Re-Id:行人重识别

MOT17:多目标跟踪数据集

Human in Events(HiEve): 以人为中心的复杂事件的数据集

BDD100K:是伯克利发布的开放式驾驶视频数据集,其中包含10万个视频和10个任务(因为把交通灯的颜色也区分了出来,实际上是13类分类任务),目的是方便评估自动驾驶图像识别算法的的进展。该数据集具有地理,环境和天气多样性,从而能让模型能够识别多种场景,具备更多的泛化能力。

在这里插入图片描述

摘要

​ 多目标跟踪(MOT)旨在估计视频中目标的边界框和身份。大多数方法通过关联分数高于阈值的检测框来获得身份。检测分数低的对象,如:被遮挡的物体被简单地扔掉,这带来了不可忽略的真实物体丢失(即假阴)和轨迹的碎片化。为了解决这一问题,我们提出了一种简单、有效和通用的关联方法,即通过关联每个检测框而不是仅关联高分检测框来进行跟踪。对于低分数检测框,我们利用它们与轨迹的相似性来恢复真实对象并过滤掉背景检测。当应用于9种不同的最先进的跟踪器时,我们的方法在IDF1分数上实现了1-10个百分点的提升。为了展示MOT的先进性能,我们设计了一种简单而强大的跟踪器,名为ByteTrack。我们第一次测试,在MOT17的测试集上实现了80.3MOTA,77.3IDF1和63.1 HOTA,在单个V100GPU上的运行速度为30FPS。(注:本文使用的方法即不直接忽略低置信度的检测框,很像最近半监督检测中的一些想法,所以说检测跟踪不分家嘛。)
在这里插入图片描述

​ 图1 MOTA-IDF1-FPS在MOT17测试集上的比较。

横轴为FPS(运行速度),纵轴为MOTA,圆的半径为IDF1。我们的ByteTrack在MOT17测试集上达到80.3MOTA,77.3IDF1,运行速度为30FPS,优于所有以前的跟踪器。详情见表4。

1. 介绍

*** Was vernunftig ist, das ist wirklich; und was wirklich ist, das ist vernunftig.***

​ (合理的就是真实的,真实的就是合理的) —— G. W. F. Hegel*(黑格尔)

检测跟踪是当前最有效的多目标跟踪(MOT)方法。由于视频场景复杂,探测器的预测往往不完美。最先进的MOT方法需要处理检测盒中的真阳性/假阳性权衡,以消除低置信度检测盒。然而,这是消除所有低置信度检测框的正确方法吗?我们的答案是否定的:正如黑格尔所说:“合理的事物是真实的;真实的才是合理的。”低置信度检测框有时表示物体的存在,例如:被遮挡的物体。对这些目标进行过滤会导致MOT产生不可逆转的误差,并带来不可忽略的缺失检测和碎片轨迹。

图2(a)和(b)显示了这个问题。在图t1中,我们初始化了三个不同的轨迹,因为它们的分数都高于0.5.然而,在第t2 帧和第t3帧中,当遮挡发生时,红色轨迹的相应检测分数变低,例如:0.8到0.4以及0.4到0.1。这些检测框被阈值机制消除,红色轨迹也随之消失。然而,如果我们将每个检测框都考虑在内,就会立即引入更多的假阳。例如:图2(a)第t3 帧中最右边的框。据我们所知,MOT中很少有方法能够处理这种检测难题。

在这里插入图片描述

图2 我们的方法关联每个检测盒的例子。(a)显示了所有的检测框及其分数。(b)显示了通过以前的方法获得的轨迹,它将得分高于一个阈值的检测框关联起来,即0.5。相同的方框颜色表示相同的身份。©显示了用我们的方法得到的轨迹。虚线框表示使用卡尔曼滤波器进行的先前轨迹的预测框。两个低值检测盒与之前基于大IoU的轨迹正确匹配。

在本文中,我们发现可以用轨迹的相似性以实现将低置信度的检测框区分为背景和对象。如图2(c)所示,运动模型的预测框将两个低分数检测框与轨迹匹配,从而正确地恢复对象。同时,背景框被移除,因为它没有匹配的轨迹。

为了在匹配过程中充分利用从高分到低分的检测框,我们提出了一种简单有效的关联方法称其为BYTE,将每个检测框命名为轨迹的基本单元,作为计算机程序中的字节,我们的跟踪方法对每个详细的检测框进行赋值。我们首先根据运动相似性将高分检测框与轨迹匹配。与[7]类似,我们使用卡尔曼滤波器[28]在新帧中预测轨迹的位置。运动相似性可以通过预测框和检测框的IoU来计算。图2(b)正是第一次匹配后的结果。随后,我们在未匹配的轨迹之间执行第二次匹配,例如:红色框中的轨迹,以及低分数检测框。图2(c)显示了第二次匹配后的结果。检测分数低的被遮挡者与之前的轨迹正确匹配,背景被移除。

为了评估我们提出的关联方法的泛化能力,我们将其应用于9种不同的最优秀的跟踪器,包括基于re - id的跟踪器[66,81,32,46],基于运动的跟踪器[85,68,47],基于链(chain-based)的[47]和基于注意力的跟踪器[56,76]。我们在几乎所有指标上都取得了显著的改进,包括MOTA、IDF1评分和IDSW。例如,我们将CenterTrack[85]的MOTA从66.1提高到67.4,将IDF1从64.2提高到74.0,并将mo17的半验证集的id从528降低到144[85]。

为了推动MOT最先进的性能,我们提出了一个简单和强大的跟踪器,命名为ByteTrack。我们采用最新的高性能探测器YOLOX[24]来获取检测盒,并将它们与我们提出的BYTE关联。在MOT挑战中,ByteTrack在MOT17[43]和MOT20[16]上均排名第一,在MOT17 V100 GPU上以30 FPS运行速度获得80.3 MOTA, 77.3 IDF1和63.1 HOTA,在拥挤的MOT20上获得77.8 MOTA, 75.2 IDF1和61.3 HOTA。ByteTrack在Hieve[37]和BDD100K[79]跟踪基准测试上也取得了最先进的性能。我们希望ByteTrack的效率和简单性能够使它在社会计算等实际应用中具有吸引力。

我们提出的方法是第一个通过极其简单的运动模型,无需任何Re-ID模块或注意机制而实现高度竞争的跟踪性能的工作[81,32,46,65,76,56]。它阐明了运动线索在处理咬合和长期关联方面的巨大潜力。我们希望ByteTrack的效率和简单性能够使它在实际应用中具有吸引力。
(注:综上所述,作者认为所有的检测框均有一定的存在意义,故此如何合理的区分低置信度检测框就是本文的重点)

2. 相关工作

2.1 目标检测

目标检测是计算机视觉中最活跃的课题之一,也是多目标跟踪的基础。MOT17数据集[44]提供了由DPM[22]、FasterR-CNN[50]和SDP[77]等流行探测器获得的检测结果。基于给定的检测结果,大量方法侧重于提高跟踪性能。

通过检测进行跟踪

随着目标检测[10,23,26,35,49,50,58,60]的快速发展,越来越多的方法开始利用更强大的探测器来获得更高的跟踪性能。单级目标探测器视网膜网[35]开始被几种方法所采用,如[39,48]。CenterNet[90]因其简单和效率而是大多数方法最常用的检测器。YOLO系列探测器[8,49]也被大量的方法[15,33,34,69]所采用,以保证其良好的精度和速度的平衡。这些方法大多直接使用单个图像上的检测盒进行跟踪。然而,正如视频目标检测方法[41,62]所指出的那样,当视频序列中发生遮挡或运动模糊时,缺失检测和非常低的评分检测的数量开始增加。因此,通常是利用前一帧的信息来提高视频检测性能。

通过跟踪检测

跟踪也可以帮助获得更准确的检测盒。一些方法[12-15,53,91]利用单目标跟踪(SOT)[5]或Kalman滤波器[29]来预测下一帧中轨迹的位置,并将预测的盒与检测盒融合,以提高检测结果。其他方法[34,86]利用前一帧中的跟踪框来增强以下帧的特征表示。最近,基于变压器的[20,38,64,66]检测器[11,92]因其在帧间传播盒子的强大能力而被几种方法[42,59,80]采用。我们的方法还利用与轨迹的相似性来增强检测盒的可靠性。大多数MOT方法[33,39,47,59,69,71,85]通过各种检测器获取检测盒后,只通过0.5作为阈值保留高分检测盒,并将这些检测盒作为数据关联的输入。这是因为低分数的检测框包含了许多损害跟踪性能的背景。然而,我们观察到,许多被遮挡的物体可以被正确地检测到,但得分较低。为了减少缺失的检测并保持轨迹的持久性,我们保留所有的检测盒,并关联每一个盒。

2.2 数据关联

数据关联是多目标跟踪的核心,它首先计算轨迹和检测盒之间的相似性,并根据相似性利用不同的策略进行匹配。

相似度度量

位置、运动和外观都是引起联想的有用线索。SORT[6]以一种非常简单的方式结合了位置和运动线索。首先采用卡尔曼滤波器[29]预测轨迹在新帧中的位置,然后计算检测盒与预测盒之间的IoU作为相似度。最近的一些方法是[59,71,89]设计网络来学习物体运动,并在大的摄像机运动或低帧率的情况下获得更鲁棒的结果。位置和运动相似度在短程匹配中是准确的。外观相似性有助于长程匹配。在被长时间遮挡后,可以使用外观相似性重新识别对象。外观相似度可以通过Re-ID特征的余弦相似度来衡量。DeepSORT[70]采用独立的Re-ID模型从检测盒中提取外观特征。近年来,联合检测和Re-ID模型[33,39,47,69,84,85]因其简单性和高效性而越来越受欢迎。

匹配策略

经过相似度计算后,匹配策略将身份分配给对象。这可以通过匈牙利算法[31]或贪婪分配[89]来实现。SORT[6]通过一次匹配将检测盒与轨迹进行匹配。DeepSORT[70]提出了一种级联匹配策略,首先将检测盒与最新的轨迹进行匹配,然后与丢失的轨迹进行匹配。MOTDT[12]首先利用外观相似度进行匹配,然后利用IoU相似度来匹配未匹配的轨迹。QDTrack[47]通过双向双向softmax操作将外观相似度转化为概率,并采用最近邻搜索来完成匹配。注意机制[64]可以直接在帧之间传播盒子,并隐式地执行关联。最近的方法,如[42,80],提出跟踪查询,以查找以下帧中被跟踪对象的位置。匹配在注意交互过程中隐式执行,不使用匈牙利算法。所有这些方法都集中于如何设计更好的关联方法。然而,我们认为检测盒的使用方式决定了数据关联的上界,我们关注的是如何在匹配过程中充分利用从高到低的检测盒。

3. BYTE

我们提出了一种简单、有效、通用的数据关联方法BYTE。与以往的方法[33,47,69,85]只保留高分检测盒不同,我们保留了几乎每个检测盒,并将它们分为高分检测盒和低分数检测盒。我们首先将高分检测框与轨迹关联起来。一些轨迹会出现不匹配,因为它们不匹配适当的高分检测框,这通常发生在遮挡、运动模糊或大小变化发生时。然后,我们将低分数检测框和这些不匹配的轨迹线关联起来,以恢复低分数检测框中的对象,并同时过滤掉背景。

Algorithm 1: Pseudo-code of BYTE.
Input: A video sequence V; object detector Det; detection score
threshold τ
Output: Tracks T of the video
1 Initialization: T ← ∅
2 for frame fk in V do
/* Figure 2(a) */ 
/* predict detection boxes & scores */ 
3 Dk ← Det(fk) 
4 Dhigh ← ∅
5 Dlow ← ∅
6 for d in Dk do
7 if d.score > τ then
8 Dhigh ← Dhigh ∪ {d} 9 end
10 else
11 Dlow ← Dlow ∪ {d}
12 end
13 end
/* predict new locations of tracks */
14 for t in T do
15 t ← KalmanFilter(t)
16 end
/* Figure 2(b) */
/* first association */
17 Associate T and Dhigh using Similarity#1
18 Dremain ← remaining object boxes from Dhigh
19 Tremain ← remaining tracks from T
/* Figure 2(c) */ 
/* second association */
20 Associate Tremain and Dlow using similarity#2
21 Tre−remain ← remaining tracks from Tremain
/* delete unmatched tracks */
22 T ← T \ Tre−remain
/* initialize new tracks */
23 for d in Dremain do
24 T ← T ∪ {d}
25 end
26 end
27 Return: T

算法1显示了BYTE的伪代码。BYTE的输入是一个视频序列V,以及一个对象检测器Det。我们还设置了一个检测评分阈值τ。BYTE的输出是视频的轨迹T,每个轨迹包含每一帧中对象的边界框和标识。对于视频中的每一帧,我们使用检测器Det来预测检测盒和分数。根据检测评分阈值τ,我们将所有的检测盒分为高和低两部分。对于得分高于τ的检测盒,我们将其放入高分检测盒τ中。对于得分低于τ的检测框,我们将它们放入低得分的检测框Diow(算法1中的第3到第13行)。

初始化一些参数:

Algorithm 1: Pseudo-code of BYTE.
Input: A video sequence V; object detector Det; detection score
threshold τ
Output: Tracks T of the video
1 Initialization: T ← ∅

BYTE会将每个检测框根据置信度得分按设定的阈值分成两类,高分框和低分框,并进行两次关联。

2 for frame fk in V do
/* Figure 2(a) */ 
/* predict detection boxes & scores */ 
3 Dk ← Det(fk) 
4 Dhigh ← ∅
5 Dlow ← ∅
6 for d in Dk do
7 if d.score > τ then
8 Dhigh ← Dhigh ∪ {d} 9 end
10 else
11 Dlow ← Dlow ∪ {d}
12 end
13 end

在将低分数检测盒和高分检测盒分离后,我们采用卡尔曼滤波器来预测T中每个轨道的当前帧中的新位置。

/* predict new locations of tracks */
14 for t in T do	
15 t ← KalmanFilter(t)
16 end

第一次关联:高分框和之前的跟踪轨迹进行匹配。第一个关联是在高分检测盒Dhigh和所有的轨道T(包括丢失的Tloss的轨道)之间执行的。相似度#1可以通过IoU或检测盒Dhigh与预测的轨迹T盒之间的Re-ID特征距离来计算。然后,我们采用匈牙利算法[31]来完成基于相似度的匹配。我们保留Dleaie中不匹配的检测和Tleaie中不匹配的轨迹(算法1中的第17到19行)。

/* Figure 2(b) */
/* first association */
17 Associate T and Dhigh using Similarity#1
18 Dremain ← remaining object boxes from Dhigh
19 Tremain ← remaining tracks from T 

BYTE是高度灵活的,并可以兼容其他不同的关联方法。例如,当BYTE与FairMOT[85]组合时,算法1中的Re-ID特性被添加到第一关联中,其他的都是相同的。在实验中,我们将BYTE应用于9种不同的最先进的跟踪器,并在几乎所有的指标上都取得了显著的改进。

第二次关联:低分框和第一次没有匹配上高分框的跟踪轨迹(例如在当前帧受到严重遮挡导致得分下降的物体)进行匹配。

第二次关联在低分数检测框Dlow和第一次关联后的其余轨道Tremain之间执行。我们保留了Tremain中不匹配的轨道,并且只需删除所有不匹配的低分数检测框,因为我们把它们视为背景。(算法1中的第20行至第21行)。我们发现在第二个关联中单独使用IoU作为相似度#2很重要,因为低分数检测框通常包含严重的遮挡或运动模糊,外观特征不可靠。因此,当将BYTE应用于其他基于Re-ID的跟踪器[47,69,85]时,我们在第二个关联中不采用外观相似性。

/* Figure 2(c) */ 
/* second association */
20 Associate Tremain and Dlow using similarity#2
21 Tre−remain ← remaining tracks from Tremain

对于第二次关联还没有匹配上检测框的跟踪轨迹,将其放入T_lost,并保留30帧,在其再次出现时再进行匹配,否则就删除。

关联完成后,不匹配的轨迹将从轨迹中删除。为了简单起见,我们没有在算法1中列出跟踪再生[12,70,89]的过程。实际上,远程关联对于保持轨迹的身份是必要的。对于不匹配的轨道,Tre−remain在第二次关联后仍然存在,我们将它们放入Tlost中。对于Tlost中的每个轨道,只有当它存在超过一定数量的帧时,即30帧,我们将它从轨道T中删除。否则,我们仍然是T中丢失的轨道(算法1中的第22行)。最后,我们在第一次关联后从不匹配的高分检测框Dremain中初始化新轨迹。(算法1中的第23行至第27行)。每个单独帧的输出是当前帧中轨道T的边界框和标识。请注意,我们不输出Tlost的方框和标识。

/* delete unmatched tracks */
22 T ← T \ Tre−remain

对于第一次没有匹配上跟踪轨迹,得分又足够高的检测框,对其新建一个跟踪轨迹。

/* initialize new tracks */
23 for d in Dremain do
24 T ← T ∪ {d}
25 end
26 end
27 Return: T

为了提出MOT的最先进的性能,我们设计了一个简单而强大的跟踪器,称为ByteTrack,通过装备高性能检测器YOLOX[24]与我们的关联方法BYTE。

4. 实验

4.1 设置

数据集

我们在“私有检测”协议下,在MOT17[44]和MOT20[17]数据集上评估BYTE和ByteTrack。这两个数据集都包含训练集和测试集,但没有验证集。对于消融研究,我们使用MOT17训练集中每个视频的前半部分进行训练,后半部分用于后面的验证。我们在CrowdHuman数据集和MOT17半数训练集的基础上进行训练。当在MOT17的测试集上进行测试时,我们添加了城市人和ETHZ,用于在之后的训练。我们还在HiEve和BDD100K数据集上测试了ByteTrack。HiEve是一个以人为中心的大型数据集,专注于拥挤和复杂的事件。BDD100K是最大的驾驶视频数据集,MOT任务的数据集分割为1400个用于训练的视频,200个视频用于验证,400个用于测试的视频。它需要跟踪8个类的对象,并包含大型摄像机运动的情况。

指标

我们使用清晰的指标[4],包括MOTA、FP、FN、IDs等,IDF1和HOTA[来评估跟踪性能的不同方面。MOTA基于FP、FN和IDs进行计算。考虑到FP和FN的数量大于IDs,MOTA更关注检测性能。IDF1评估身份保存能力,并更多地关注关联性能。HOTA是最近提出的一个度量标准,它明确地平衡了执行准确检测、关联和定位的效果。对于BDD100K数据集,有一些多类指标,如mMOTA和mIDF1。mMOTA/mIDF1是通过平均所有类的MOTA/IDF1来计算的。

实施细节

对于BYTE,默认的检测分数阈值τ为0.6,除非另有指定。对于MOT17、MOT20和HiEve的基准评估,我们只使用IoU作为相似度指标。在线性分配步骤中,如果检测盒与轨迹盒之间的IoU小于0.2,则将拒绝匹配。对于丢失的轨迹,我们保留了30帧,以防它再次出现。对于BDD100K,我们使用UniTrack作为Re-ID模型。在消融研究中,我们使用FastReID提取MOT17的Re-ID特征。

对于ByteTrack,检测器为YOLOX,以YOLOX-X为主干,以coco预训练的模型[36]为初始化的权值。对于MOT17,训练时间表是关于MOT17、Crowd人、城市人和ETHZ结合的80个历时。对于MOT20和HiEve,我们只添加了CrowdHuman作为额外的训练数据。对于BDD100K,我们不使用额外的训练数据,只训练50个历时。输入图像在多尺度训练中的大小为1440×800,最短的边范围为576~1024。数据增强包括马赛克[8]和Mixup[81]。该模型在8 NVIDIA TeslaV100GPU上进行训练,批量大小为48。优化器为SGD,重量衰减为5×10−4,动量为0.9。初始学习速率为10−3,带有1个历时预热和余弦退火计划。总的训练时间约为12个小时。之后,在单个GPU上用FP16精度的[43]和1的批量大小来测量FPS。

4.2 BYTE的消融研究

相似性分析

我们为BYTE的第一次关联和第二次关联选择了不同类型的相似性。结果如表1所示。我们可以看到,IoU或Re-ID都可以是MOT17上相似性#1的一个很好的选择。IoU获得更好的MOTA和ID,而Re-ID实现更高的IDF1。在BDD100K上,Re-ID在第一次关联中比IoU更好。这是因为BDD100K包含了较大的摄像机运动,并且注释的帧率较低,这会导致运动线索的失败。在两个数据集的第二个关联中使用IoU作为相似度#2是很重要的,因为低分数检测框通常包含严重的遮挡或运动模糊,因此Re-ID特征不可靠。从表1中我们可以发现,与Re-ID相比,使用IoU作为相似度#2增加了约1.0MOTA,这表明低分数检测盒的Re-ID特征是不可靠的。
在这里插入图片描述

表1 比较在MOT17和BDD100K验证集上的第一次关联和第二次关联中使用的不同类型的相似性度量。最佳结果以粗体显示。

与其他关联方法的比较

我们在MOT17和BDD100K验证集上将BYTE与其他流行的方法包括SORT、DeepSORT和MOTDT进行了比较。结果如表2所示。SORT可以看作是我们的基线方法,因为这两种方法都只采用卡尔曼滤波来预测物体的运动。我们可以发现,BYTE将SORT的MOTA度量从74.6提高到76.6,IDF1从76.9提高到79.3,并将ID从291降低到159。这突出了低分检测框的重要性,并证明了BYTE从低分检测框中恢复对象框的能力。DeepSORT利用额外的Re-ID模型来增强远程关联。我们令人惊讶地发现,与DeepSORT相比,BYTE也有额外的收益。这表明,当检测盒足够精确时,一个简单的卡尔曼滤波器可以执行远程关联,该滤波器可以实现更好的IDF1和id。我们注意到,在严重的遮挡情况下,Re-ID特征是脆弱的,并可能导致身份开关,相反,运动模型的行为更可靠。
在这里插入图片描述

表2 MOT17和BDD100K验证集上不同数据关联方法的比较。最佳结果以粗体显示。

MOTDT集成了运动引导的盒子传播结果和检测结果,以将不可靠的检测结果与轨迹联系起来。尽管有着相似的动机,MOTDT大大落后于BYTE。我们解释了MOTDT使用传播的盒子作为轨迹盒子,这可能会导致跟踪中的定位漂移。相反,BYTE使用低分数的检测框来重新关联那些不匹配的轨迹框,因此,轨迹框更准确。

表2还显示了BDD100K数据集上的结果。BYTE的性能也大大优于其他关联方法。卡尔曼滤波器在自动驾驶场景中出现故障,这是SORT、DeepSORT和MOTDT性能较低的主要原因。因此,我们在BDD100K上不使用卡尔曼滤波器。此外现成ReID模型极大地提高了BDD100K上的性能。

对检测评分阈值的鲁棒性

检测得分阈值τhigh是一个敏感的超参数,在多目标跟踪任务中需要仔细调整。我们将它从0.2更改为0.8,并比较BYTE和SORT的MOTA和IDF1分数。结果如图3所示。从结果中我们可以看出,BYTE对检测评分阈值比SORT更稳健。这是因为BYTE中的第二个关联恢复了分数低于τhigh的对象,因此考虑了几乎每个检测框,而不管τhigh的变化如何。
在这里插入图片描述

​ 图3 比较不同检测阈值和SORT在检测阈值下的性能。结果来自于MOT17的验证集。

对低分数检测盒的分析。

为了证明BYTE的有效性,我们收集了BYTE获得的低分框中TPs和FPs的数量。我们使用MOT17和CrowdHuman的半训练集进行训,并在MOT17的半验证集上进行评估。首先,我们保留所有分数从τlow到τhigh的低分数检测盒,并对TPS和FPS进行地面真相注释分类。然后,我们从低分检测框中选择BYTE获得的跟踪结果。每个序列的结果如图4所示。我们可以看到,即使某些序列(即MOT17-02)获得更多的FPs,但从低分数检测盒中获得更多的FPs。得到的TPs显著地使MOTA从74.6增加到76.6,如表2所示。
在这里插入图片描述

​ 图4 比较所有低分数检测盒和BYTE获得的低分跟踪盒中的TPs和FPs的数量。结果来自于MOT17的验证集。

其他跟踪器上的应用

我们将BYTE应用于9种最先进的跟踪器,包括JDE[69],CSTrack[33]、FairMOT[85]、TraDes[71]、QDTrack[47],
CenterTrack[89]、Chained-Tracker[48]、TransTrack[59]和MOTR[80]。在这些跟踪器中,JDE、CSTrack、,FairMOT,TraDes采用运动和Re-ID相似性的组合。QDTrack仅采用Re-ID相似性。CenterTrack和TraDes通过学习型网络预测运动相似性。Chained-Tracker采用链式结构并输出两个连续帧的结果,同时通过IoU在同一帧中关联。TransTrack和MOTR采用注意机制来在帧之间传播框。其结果如表3中每个跟踪器的第一行。为了评估BYTE的有效性,我们设计了两种不同的模式应用BYTE到这些跟踪器。

  • 第一种模式是将BYTE插入到不同跟踪器的原始关联方法中,如表3中每个跟踪器结果的第二行所示。以FairMOT[85]为例,在原始关联完成后,我们选择所有不匹配的轨迹,并将它们与算法1中second association之后的低分数检测框关联起来。请注意,对于低分数的对象,Re-ID特征并不可靠,所以我们只采用运动预测后的检测盒和轨迹盒之间的IoU作为相似度。我们没有将BYTE的第一种模式应用于Chained-Tracker,因为我们发现它很难在链式结构中实现。
  • 第二种模式是直接使用这些跟踪器的检测盒,并使用算法1中的整个过程进行关联,如表3中每个跟踪器的结果的第三行所示。

我们可以看到,在这两种模式下,BYTE都可以稳定地改进几乎所有的指标,包括MOTA、IDF1和IDs。例如,BYTE增加了中心跟踪器1.3MOTA和9.8IDF1,链式跟踪器增加了1.9MOTA和5.8IDF1,TransTrack增加了1.2MOTA和4.1IDF1。表3的结果表明,BYTE具有较强的泛化能力,可以很容易地应用于现有的跟踪器中,从而获得性能增益。
在这里插入图片描述

​ 表3 将BYTE应用于MOT17验证集上的9个不同的最先进的跟踪器的结果。“K”是卡尔曼滤波器的缩写。绿色的是至少+1.0点的改进。

4.3 基准评估

我们分别在表4、表5和表6中的私有检测协议下的MOT17、MOT20和HiEve测试集上将ByteTrack与最先进的跟踪器进行了比较。所有的结果都是直接从官方的MOT Chanllenge评估服务器和事件服务器中的人类获得的。
在这里插入图片描述

表4 在MOT17测试集上的“私有检测器”协议下的最新方法的比较。最佳结果以粗体显示。MOT17包含了丰富的场景,其中一半的序列是通过摄像机运动捕捉到的。ByteTrack在MOT17排行榜上的所有跟踪器中排名第一,在几乎所有指标上都远远超过第二个ReMOT。它的运行速度在所有跟踪器中也是最高的。
在这里插入图片描述

表5。在MOT20测试集上的“私有检测器”协议下的最新方法的比较。最佳结果以粗体显示。MOT20的场景比MOT17的场景要拥挤得多。ByteTrack在MOT20排行榜上的所有跟踪器中排名第一,在所有指标上都远远超过第二个SOTMOT。它的运行速度在所有跟踪器中也是最高的。在这里插入图片描述

表6。在HiEve测试集上的“私有检测器”协议下的最新方法的比较。最佳结果以粗体显示。HiEve比MOT17和MOT20有更复杂的事件。ByteTrack在HiEve排行榜上的所有跟踪器中排名第一,并且在所有指标上都远远超过了第二个 CenterTrack。

MOT17

ByteTrack在MOT17排行榜的所有跟踪器中排名第一。它不仅获得了最好的精度(即80.3MOTA,77.3IDF1和63.1 HOTA),而且具有最高的运行速度(30FPS)。它的性能大大优于第二性能跟踪器[76](即+3.3MOTA、+5.3IDF1和+3.4 HOTA)。此外,我们使用的训练数据少于许多高性能的方法,如33,34,54,65,85。值得注意的是,与其他采用最简单的相似或注意机制的方法相比,我们在关联步骤中只使用了最简单的相似计算卡尔曼滤波方法。所有这些都表明ByteTrack是一个简单而强大的跟踪器。

MOT20

与MOT17相比,MOT20有更多拥挤的情况和闭塞情况。在MOT20的测试集中,一幅图像中的平均行人数为170人。 在MOT20的排行榜上,ByteTrack也在所有追踪器中排名第一,并且在几乎所有的指标上都比其他追踪器高出一大截。举例来说,它将MOTA从68.6提高到77.8,IDF1从71.4提高到75.2,并将IDs从4209减少到1223,减少了71%。值得注意的是,ByteTrack实现了极低的身份转换,这进一步表明,在闭塞的情况下,将每个检测盒联系起来非常有效。

Human in Events

与MOT17和MOT20相比,HiEve包含了更复杂的事件和更多样化的相机视图。我们在CrowdHuman数据集和HiEve的训练集上训练ByteTrack。ByteTrack也在HiEve排行榜上的所有跟踪器中排名第一,并且远远领先于其他最先进的跟踪器。例如,它将MOTA从40.9增加到61.3,将IDF1从45.1增加到62.9。优越的结果表明,ByteTrack对复杂场景具有良好的鲁棒性。

BDD100K

BDD100K是自动驾驶场景中的多类别跟踪数据集。这些挑战包括低帧率和大的相机运动。我们利用UniTrack中的一个简单的ResNet-50 ImageNet分类模型来提取Re-ID特征并计算外观相似性。ByteTrack在BDD100K的排行榜上排名第一。它将mMOTA在验证集上从36.6增加到45.5,在测试集上从35.5增加到40.1,这表明ByteTrack也可以处理自动驾驶场景中的挑战。
在这里插入图片描述

表7。在BDD100K测试集上的最新方法的比较。最佳结果以粗体显示。ByteTrack在BDD100K排行榜上的所有跟踪器中排名第一,在大多数指标上都远远超过第二个QDTrack。

5. 总结

本文提出了一种简单而有效的多目标跟踪数据关联方法。BYTE可以很容易地应用到现有的跟踪器上,并实现一致的改进。我们还提出了一种强跟踪器ByteTrack,它在30FPS的MOT17测试集上达到80.3MOTA,77.3IDF1和63.1 HOTA,在排行榜上的所有跟踪器中排名第一。Bytrack由于其准确的检测性能和关联低分数检测框的帮助,对遮挡非常鲁棒。它也阐明了如何充分利用检测结果来增强多目标跟踪。我们希望ByteTrack的高精度、快速和简单性能使其在实际应用中具有吸引力。

5.1 边界框注释

我们注意到,MOT17需要覆盖整个身体的边界框,即使物体被遮挡或部分出现在图像之外。然而,YOLOX的默认实现会在图像区域内剪辑检测框。为了避免在图像边界附近的错误检测结果,我们在数据预处理和标签分配方面修改了YOLOX。在数据预处理和数据增强过程中,我们不剪辑图像内部的边界框。我们只删除了数据增强后完全在图像之外的方框。在SimOTA标签分配策略中,正样本需要围绕物体的中心,而整个身体盒子的中心可能位于图像之外,所以我们将物体的中心夹在图像内部。
MOT20[17],HiEve[37]和BDD100K剪辑了图像内部的边界框注释,因此我们只使用YOLOX的原始设置。

5.2 光模型的跟踪性能

我们使用光检测模型比较了BYTE和DeepSORT[70]。我们使用具有不同骨干的YOLOX[24]作为检测器。所有的模型都在CrowdHuman和MOT17的半训练集上进行训练。在多尺度训练中,输入的图像大小为1088×608,最短的侧边范围为384~832。结果如表8所示。我们可以看到,与DeepSORT相比,BYTE对MOTA和IDF1进行了稳定的改进,这表明BYTE对检测性能具有鲁棒性。值得注意的是,当使用YOLOX-Nano作为骨干时,BYTE的MOTA比DeepSORT高3个点,这使得它在实际应用中更有吸引力。
在这里插入图片描述

​ 表8。在MOT17验证集上使用光检测模型比较BYTE和DeepSORT。

5.3 ByteTrack的消融研究

速度vs精度

我们在推理过程中使用不同大小的输入图像来评估ByteTrack的速度和准确性。所有的实验都采用了相同的多尺度训练。结果如表9所示。推理过程中的输入大小范围从512×928到800×1440。探测器的运行时间范围为17.9 ms至30.0 ms关联时间大约为4.0毫秒。ByteTrack能够以45.7 FPS的运行速度实现75.0 MOTA,以29.6 FPS的运行速度实现76.6MOTA,在实际应用中具有优势。
在这里插入图片描述

​ 表9。在MOT17验证集上的不同输入大小的比较。总运行时间是检测时间和关联时间的组合。最佳结果以粗体显示。

训练数据

我们使用不同的训练数据组合在MOT17的半验证集上评估ByteTrack。结果如表10所示。当只使用MOT17的一半训练集时,性能达到75.8MOTA,已经优于大多数方法。这是因为我们使用了强大的增强功能,如马赛克和混合。当进一步添加CrowdHuman、Cityperson和ETHZ进行训练时,我们可以实现76.7 MOTA和79.7 IDF1。IDF1的巨大改进来自于CrowdHuman数据集可以增强检测器r来识别被遮挡的人,因此,使卡曼尔滤波器生成更平滑的预测,并增强跟踪器的关联能力。
在这里插入图片描述
表10。MOT17验证集上不同训练数据的比较。“MOT17”是MOT17半训练集的缩写。“CH”是CrowdHuman数据集的缩写。“CE”是Cityperson和ETHZ数据集的缩写。最佳结果以粗体显示。

对训练数据的实验表明,ByteTrack并不需要数据。与以前需要超过7个数据源才能实现高性能的方法相比,这是用于实际应用程序的一大优势。

轨迹插值

我们注意到在MOT17中有一些完全被遮挡的行人,它们在地面真实注释中的可见比为0。由于几乎不可能通过视觉线索来检测它们,所以我们通过轨迹插值来获得这些对象。

假设我们有一个轨迹T,它的轨迹盒由于从帧t1到帧t2的遮挡而丢失。帧t1处T的轨迹框是Bt1∈R4,它包含边界框的左上坐标和右下坐标。设Bt2表示t在帧t2处的轨迹盒。我们设置一个超参数σ来表示我们执行轨迹的最大区间插值,这意味着轨迹插值在t2−t1≤σ时执行。轨迹T在帧T处的插值框可计算如下:在这里插入图片描述

如表11所示,当σ为20时,轨迹插值可以使MOTA从76.6提高到78.3,IDF1从79.3提高到80.2。轨迹插值是获得完全遮挡对象盒子的有效后处理方法。我们在私有检测协议下,在MOT17、MOT20和Hieve的测试集中使用轨迹线插值。
在这里插入图片描述

​ 表11。在MOT17验证集上的不同插值间隔的比较。最佳结果以粗体显示。

5.4 MOTChallenge的公开检测结果

在公共检测协议下,我们在MOT17和MOT20的测试集上评估ByteTrack。遵循Tracktor和CenterTrack中的公共检测过滤策略,我们仅在其带有公共检测盒的IoU大于0.8时初始化新轨迹。在公共检测协议下,我们不使用轨迹插值。如表12所示,ByteTrack在MOT17上的性能大大优于其他方法。例如,它在MOTA上比SiamMOT高1.5分,在IDF1上高6.7分。表13显示了MOT20的结果。ByteTrack的表现也大大优于现有的结果。例如,它在MOTA上比TMOH高出6.9点,在IDF1上是9.0点,在HOTA上是7.5点,并减少了四分之三的身份转变。在公共检测协议下的结果进一步表明了我们的关联方法BYTE有效性。
在这里插入图片描述

​ 表12年。在MOT17测试集上的“公共检测器”协议下的最新方法的比较。最佳结果以粗体显示。

在这里插入图片描述

​ 表13年。在MOT20测试集上的“公共检测器”协议下的最新方法的比较。最佳结果以粗体显示。

5.5 可视化结果

在图5中,我们展示了ByteTrack能够处理的一些困难情况的可视化结果。不同情况包括遮挡(即MOT17-02、MOT17-04、MOT17-05、MOT17-09、MOT17-13)、运动模糊(即MOT17-10、MOT17-13)和小物体(即MOT17-13)。中间帧带有红色三角形的行人检测分数较低,这是通过我们的关联方法BYTE得到的。低分框不仅减少了缺失检测的数量,而且在长期关联中起着重要的作用。正如我们从所有这些困难的案例中看到的,ByteTrack不会带来任何身份转换,而且能够有效地保持身份。

在这里插入图片描述
在这里插入图片描述

图5。ByteTrack的可视化结果。我们从MOT17的验证集中选择了6个序列,并展示了ByteTrack在处理遮挡和运动模糊等困难情况下的有效性。黄色三角形代表高分框,红色三角形代表低分框。相同的方框颜色代表相同的身份。

(初学目标跟踪方向,算是精读的第一篇论文,如有错误,恳请指正)

  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想学摄影的IT男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值