论文链接:ByteTrack: Multi-Object Tracking by Associating Every Detection Box
提取码:tz60
开源代码:https://github.com/ifzhang/ByteTrack
MOT17数据集链接链接
提取码:qqzd
文章侧重点
- 本篇文章遵信了多目标追踪(MOT)的Tracking-by-detection范式,即先完成目标检测,根据目标检测的结果进行数据关联生成轨迹从而完成多目标追踪的任务。
- 【Motivation】 本篇文章关注在进行数据关联的时候,被遮挡的物体或因为运动模糊(Motion Blur)的物体的检测得分会很低。因此被过滤掉(通常目标检测框的阈值为0.6,低于该阈值的目标检测框视为背景的误检)如下图所示,
t
1
,
t
2
,
t
3
t_1, t_2, t_3
t1,t2,t3帧中都有置信度为0.1的误检,即背景。同时也有一个在
t
1
,
t
2
t_1, t_2
t1,t2帧置信度高的人,但在
t
3
t_3
t3帧中因为被遮挡所以置信度为0.1(额外用绿色框标记)。
- 针对【Motivation】中提到的问题,本篇文章的解决方案,同时也是本篇文章的创新点,就是提出了两阶段的数据关联方法,将待匹配的检测框视作一个基本单位(正如计算机中的Byte),进行轨迹匹配。
- 第一阶段的数据关联生成轨迹:首先针对高于阈值(检测框置信度为0.6)的检测框生成轨迹;
- 第二阶段的数据关联生成轨迹:在未匹配上的轨迹和置信度低于阈值(0.6)的检测框之间进行匹配生成轨迹,匹配完之后,如果还有未匹配上的置信度低于阈值(0.6)的检测框就视作背景,删除掉。考虑到目标消失再重回视野的长期追踪情况,保留未匹配上的轨迹一段时间(30帧)。
追踪框架伪代码
-
算法BYTE的输入:一个视频序列 V V V,一个目标检测器 D e t Det Det,一个判断目标检测框的阈值 τ \tau τ。
-
针对输入视频的每一帧作如下循环处理:
- 应用 D e t Det Det检测该帧图片中的目标并给出潜在目标的边界框与置信度,生成检测目标集合 D k D_k Dk。根据潜在目标的置信度是否大于阈值 τ \tau τ将检测目标集合 D k D_k Dk细分为高置信度目标集合 D h i g h D_{high} Dhigh和低置信度目标集合 D l o w D_{low} Dlow。
- 利用卡尔曼滤波算法对轨迹集合 Γ \Gamma Γ中的每一个轨迹根据历史运动信息,预测轨迹目标的新的边界框位置。
- 进行第一阶段的轨迹关联。 对高置信度的目标集合 D h i g h D_{high} Dhigh与轨迹集合 Γ \Gamma Γ匹配。计算目标 D h i g h D_{high} Dhigh与轨迹集合 Γ \Gamma Γ之间IoU或者Re-ID特征的相似度,应用匈牙利算法完成匹配。 对于没有匹配到检测框和轨迹集合分别记作 D r e m a i n D_{remain} Dremain和 Γ r e m a i n \Gamma_{remain} Γremain。
- 在第一阶段轨迹关联结束之后, 将仍未匹配到的高置信度的目标边界框初始化为新的轨迹
- 进行第二阶段的轨迹关联。对低置信度的目标集合 D l o w D_{low} Dlow与尚未匹配的轨迹集合 Γ r e m a i n \Gamma_{remain} Γremain匹配轨迹。作者发现在这一阶段的最好只用IoU匹配方法,因为低置信度的目标集合通常是那些被遮挡的目标,所以appearance的特征即Re-ID特征并不可靠。
- 此时匹配工作已经结束,删除掉未匹配上的低置信度的目标检测框,将其视作背景剔除掉。而考虑到长期追踪(long-term),目标消失之后可能会再次出现的情况,就设置这两次都没有匹配上的轨迹 Γ r e − r e m a i n \Gamma_{re-remain} Γre−remain生成丢失目标集合 Γ l o s t \Gamma_{lost} Γlost,而出于计算量的考虑,将 Γ l o s t \Gamma_{lost} Γlost保留30帧,之后则丢弃。
-
算法BYTE的输出:视频中目标的轨迹集合 Γ \Gamma Γ,每一帧中每个轨迹包括的目标的检测框及其ID。
实验
ByteTrack中使用的检测器是YOLOX,YOLOX的backbone是YOLOX-X,使用COCO-pretrained的权重作为初始权重。
MOT17
- 训练阶段: 训练集为MOT17、CrowdHuman、CityPerson、ETHZ。
- 测试阶段: 只使用了IoU生成相似度矩阵。没用Re-ID的特征。
BDD100K
- 训练阶段: 训练集为BDD100K自带的训练集,没有额外数据。
- 测试阶段: 使用了UniTrack中的ResNet-50 ImageNet分类模型提取Re-ID特征,计算外观相似度。因为这个数据集是针对自动驾驶的车辆数据集,车辆本身的外观信息比较少,且外观相似度高,所以提取了Re-ID特征。