【论文阅读3】ByteTrack:Multi-Object Tracking by Associating Every Detection Box

【论文阅读3】ByteTrack:Multi-Object Tracking by Associating Every Detection Box

对于大多数MOT方法,匹配(数据关联)的过程是:

  1. 对当前帧的检测结果进行筛选,仅保留置信度分数高于阈值(一般为0.5)的检测框(低置信度的检测框包含更多背景区域,这些背景区域会影响跟踪性能。)
  2. 利用Kalman滤波等方式来预测轨迹在当前帧中的位置, 并将预测框和筛选后的检测框进行相似性度量。然后通过匹配(通常使用匈牙利、KM、贪心算法)策略为新检测到的目标分配ID
  3. 对于没有匹配到的轨迹, 设置一个patience time, 超过这个时间就认为离开画面。如果在这个时间内还可以和新检测匹配上, 就恢复轨迹,也就是Re-ID
  4. 对于存在超过一定帧数但没有匹配上轨迹的检测, 初始化为新轨迹

那么 ByteTrack 是怎么 改进匹配(数据关联)策略 的呢?

对于低置信度检测,并不直接舍弃。ByteTrack 认为这些低置信度的检测可能是由于遮挡等问题造成的(许多被遮挡的物体可以被正确检测到,但置信度得分较低),直接丢弃会导致漏检(False Negative)和轨迹的不连贯。

正确的做法应该是在优先对高置信度检测框和轨迹进行匹配之后,再将低置信度检测框和未匹配上的轨迹进行二次匹配,从而增加这些低置信度检测的True Positive,减少直接丢弃造成的False Negative

1. 各部分笔记

1.1 Abstract

沿用tracking-by-detection范式,我们提出了一种简单高效的 数据关联方法BYTE。通过关联几乎每个检测框而不是仅关联高置信度的检测框。对于低置信度的检测框,利用它们与tracklet的相似性,去除背景,挖掘出真实目标(遮挡、模糊等困难样本),从而减少漏检和轨迹的不连贯。BYTE能轻松应用到现有的MOT方法中,并取得IDF1指标的提升。

基于BYTE我们提出了一个跟踪方法ByteTrack,首次以30 FPS的运行速度在MOT17上取得80.3 MOTA,77.3 IDF1和63.1 HOTA。

1.2 Introduction

Tracking-by-detection是MOT中的一个经典高效的流派,通过相似度(位置、外观、运动等信息)来关联检测框得到跟踪轨迹。由于视频中场景的复杂性,检测器无法得到完美的检测结果。为了处理True Positive/False Positive的trade-off,目前大部分MOT方法会选择一个置信度阈值,只保留置信度高于这个阈值的检测结果来做关联得到跟踪结果,低于这个阈值的检测结果直接丢弃。

但是这样做合理吗?答案是否定的。黑格尔说过:“存在即合理。”

低置信度的检测框往往预示着物体的存在(例如被严重遮挡的物体)。简单地把这些物体丢弃会给MOT带来不可逆转的错误,包括大量的漏检和轨迹中断,降低整体跟踪性能。

BYTE的创新之处在于对关联(匹配)策略的改进:作者认为检测框的使用方式决定了数据关联的上限, 其关注的是如何在匹配过程中充分利用从高置信度到低置信度的检测框。

1.3 BYTE

与以往只保留高分检测框的数据关联方法不同,BYTE保留了几乎每个检测框,并将其分为高分和低分。

首先将高分检测框与tracklet相关联。有些tracklet未被匹配,这通常在遮挡、运动模糊或大小更改等情况发生。然后将低分检测框和这些未被匹配的tracklet关联起来,以恢复低分检测框中的目标,同时过滤掉背景。

【论文阅读3】ByteTrack:Multi-Object Tracking by Associating Every Detection Box_第1张图片

输入:视频序列 V V V,目标检测模型 D e t Det Det,检测置信度阈值 τ \tau τ

输出:整个视频序列的轨迹集合 T \Tau T,每个轨迹包含每个帧中目标的边界框和身份ID。注意:不输出 T l o s t \Tau_{lost} Tlost 中轨迹的边界框和ID

初始化:初始化轨迹集合 T = ϕ \Tau= ϕ T=ϕ

遍历视频序列 V V V 中的每一帧 f k f_k fk

  1. 目标检测:使用检测器 D e t Det Det 得到当前帧中的检测框和置信度分数: D k = D e t ( f k ) D_k=Det(f_k) Dk=Det(fk)

  2. 根据检测置信度阈值 τ \tau τ 将所有检测框分为 D h i g h D_{high} Dhigh D l o w D_{low} Dlow 两部分:

    高置信度检测框: D h i g h = { d . s c o r e > τ ∣ d ∈ D k } D_{high}=\{d.score>\tau|d\in D_k\} Dhigh={d.score>τdDk}

    低置信度检测框: D l o w = { d . s c o r e ≤ τ ∣ d ∈ D k } D_{low}=\{d.score\leq\tau|d\in D_k\} Dlow={d.scoreτdDk}

  3. Kalman滤波预测:对于轨迹集合 T \Tau T 中的每个轨迹 t t t,使用Kalman滤波预测其在当前帧中的位置: t = K a l m a n F i l t e r ( t ) t=KalmanFilter(t) t=KalmanFilter(t)

  4. 第一次关联和匹配(使用高置信度检测框 D h i g h D_{high} Dhigh ):将轨迹集合 T \Tau T 的Kalman预测框与 D h i g h D_{high} Dhigh 进行关联度量。第一次关联使用的度量 S i m i l a r i t y # 1 Similarity\#1 Similarity#1 可以通过 IoU 或 Re-ID 特征计算距离,然后使用匈牙利算法实现第一次匹配。

    对于未匹配上的高置信度检测框,放入 D r e m a i n D_{remain} Dremain,用于初始化新轨迹;对于未匹配上的轨迹,放入 T r e m a i n \Tau_{remain} Tremain,用于第二次关联

  5. 第二次关联和匹配(使用低置信度检测框 D l o w D_{low} Dlow ):将第一次匹配剩余的轨迹 T r e m a i n \Tau_{remain} Tremain 的Kalman预测框与 D l o w D_{low} Dlow 进行关联度量。第二次关联使用的度量 S i m i l a r i t y # 2 Similarity\#2 Similarity#2 仅使用 IoU 计算距离(因为低置信度检测框通常包含严重遮挡或运动模糊,外观特征不可靠),然后使用匈牙利算法实现第二次匹配。对于仍不能匹配的轨迹,放入 T r e − r e m a i n \Tau_{re-remain} Treremain

  6. 轨迹的重生和删除:将两次关联都没有匹配上的轨迹 T r e − r e m a i n \Tau_{re-remain} Treremain 放入 T l o s t \Tau_{lost} Tlost,可以在 patience time(默认为30帧)内恢复(轨迹重生:长时刻关联需要保留轨迹的身份ID);若超过 patience time,就认为该轨迹已离开场景,删除该轨迹

  7. 初始化新轨迹:将未匹配上的高置信度检测框 D r e m a i n D_{remain} Dremain 初始化为新轨迹

第二次匹配能work的原因:遮挡往往会导致检测置信度的降低。被遮挡物体在被遮挡之前是可视物体,检测置信度较高,建立轨迹;当物体被遮挡时,通过检测框与轨迹的位置重合度(被遮挡物体的运动特性并没有消失)就能把被遮挡的物体从低分框中挖掘出来,保持轨迹的连贯性。因此可以和轨迹进行再匹配,可以有效降低FN

1.4 ByteTrack

ByteTrack使用性能非常优秀的检测器YOLOX得到检测结果。在数据关联的过程中,和SORT一样,只使用卡尔曼滤波来预测跟踪轨迹在当前帧的位置,预测的框和实际的检测框之间的IoU作为两次匹配时的相似度,通过匈牙利算法完成匹配。这里值得注意的是我们没有使用Re-ID特征来计算外观相似度:

  1. 第一点是为了尽可能做到简单高速,第二点是我们发现在检测结果足够好的情况下,卡尔曼滤波的预测准确性非常高,能够代替Re-ID进行物体间的长时刻关联。实验中也发现加入ReID对跟踪结果没有提升。
  2. 如果需要引入Re-ID特征来计算外观相似度,可以参考开源代码中将BYTE应用到JDE,FairMOT等joint-detection-and-embedding方法中的教程。
  3. ByteTrack只使用运动模型没有使用外观相似度能在MOT17,20取得高性能的本质原因是MOT数据集的运动模式比较单一。

2. 总结

MOT场景中,大部分被遮挡物体的检测结果都是低分框,ByteTrack非常简洁的从低分检测框中寻找遮挡的物体,对遮挡非常鲁棒。ByteTrack同时也为如何最大程度利用检测结果来帮助MOT提供了启发。

ByteTrack在MOT17,20的表现启发我们重新思考多目标追踪中的 运动模型Re-ID模型

当前众多MOT模型依赖于提取物体的外观特征,那如果追踪物体的外观基本一致时,现有模型的表现如何?

当前主流MOT数据集中物体的运动模式非常简单,近乎匀速直线运动,如果物体的运动模式非常复杂,现有模型的表现如何?

你可能感兴趣的:(多目标跟踪MOT,论文阅读,算法,多目标跟踪)