ByteTrack 论文学习

1. 解决了什么问题?

多目标跟踪是在给定的视频片段中,预测出目标的边框和 ID 信息。现有方法需要在 true positives 和 false positives 之间做取舍,将高于一定阈值的检测框关联起来,获取其 ID。而那些低得分的目标(如被遮挡物体)会被舍弃,造成一些真实目标丢失、轨迹断断续续的问题。

如下图,在 t 1 t_1 t1帧初始化了三个不同的 tracklets,其得分高于 0.5 0.5 0.5。但在 t 2 t_2 t2 t 3 t_3 t3帧出现了遮挡,红框对应的得分就从 0.8 0.8 0.8降到了 0.4 0.4 0.4,然后降到了 0.1 0.1 0.1。因为阈值是 0.5 0.5 0.5,红框就消失了。但是,如果我们将所有的检测框都考虑进来,会出现许多的 false positives,如 t 3 t_3 t3帧最右边的框。
ByteTrack 论文学习_第1张图片

2. 提出了什么方法?

提出了一个简单、有效、通用的目标关联方法,通过关联所有的检测框来实现跟踪,而不只考虑那些高得分的框。对于低得分的检测框,计算它们和 tracklets 的相似度,恢复真实目标,滤掉背景。首先,根据运动相似度匹配高置信度的检测框,利用 Kalman filter 预测新一帧中 tracklets 的位置,运动相似度可以用预测框和检测框的 IOU 计算。然后,对未匹配的 tracklets 和低置信度的检测框进行二次匹配。

2.1 算法细节

BYTE 的输入是一个视频序列 V \text{V} V,以及目标检测器 Det \text{Det} Det和 Kalman filter KF \text{KF} KF。作者设置了 3 个阈值 τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow ϵ \epsilon ϵ τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow是检测得分阈值, ϵ \epsilon ϵ是跟踪得分阈值。BYTE 的输出是视频的 tracks T \mathcal{T} T,每个 track 包含了每一帧中目标的 ID 和边框。

ByteTrack 论文学习_第2张图片

首先用 Det \text{Det} Det对图像做推理,预测出检测框和得分。根据 τ h i g h , τ l o w \tau_{high},\tau_{low} τhigh,τlow将检测框分为 D h i g h , D l o w \mathcal{D}_{high},\mathcal{D}_{low} Dhigh,Dlow两个部分。 D h i g h \mathcal{D}_{high} Dhigh存放的是置信度高于 τ h i g h \tau_{high} τhigh的检测框, D l o w \mathcal{D}_{low} Dlow存放的是置信度在 τ l o w \tau_{low} τlow τ h i g h \tau_{high} τhigh之间的检测框。然后使用 KF \text{KF} KF预测 T \mathcal{T} T中每个 track 在新一帧的位置。

第一次匹配是在高得分检测框 D h i g h \mathcal{D}_{high} Dhigh和所有的 tracks T \mathcal{T} T(包括 lost tracks T l o s t \mathcal{T}_{lost} Tlost)之间进行。计算 D h i g h \mathcal{D}_{high} Dhigh检测框与 T \mathcal{T} T预测框之间的 IOU,得到相似度。然后用 Hungarian 算法基于相似度得分完成匹配。如果检测框和 tracklet 框之间的 IOU 低于 0.2 0.2 0.2,则匹配无效。将未匹配的检测框放入 D r e m a i n \mathcal{D}_{remain} Dremain,未匹配的 tracks 放入 T r e m a i n \mathcal{T}_{remain} Tremain

然后在低得分的检测框 D l o w \mathcal{D}_{low} Dlow T r e m a i n \mathcal{T}_{remain} Tremain进行第二次匹配。将未匹配的 tracks 放入 T r e − r e m a i n \mathcal{T}_{re-remain} Treremain,删除 D l o w \mathcal{D}_{low} Dlow中未匹配的低得分检测框,当作背景。

作者发现在第二次匹配时,将 IOU 作为相似度非常管用,因为低得分检测框通常包含严重遮挡或运动模糊的情况,而外观特征不可靠。因此在二次匹配时,BYTE 没有用外观特征来计算相似度。

第二次匹配后, T r e − r e m a i n \mathcal{T}_{re-remain} Treremain中未匹配的 tracks 会被放入 T l o s t \mathcal{T}_{lost} Tlost,这里面的 tracks 只会保留一定的帧数,如 30 30 30帧,随后就会从 T \mathcal{T} T中删除。否则,在 T \mathcal{T} T中暂时保留 T l o s t \mathcal{T}_{lost} Tlost
最后,对于第一次匹配后 D r e m a i n \mathcal{D}_{remain} Dremain未匹配的、高得分的检测框,创建新的 tracks。 D r e m a i n \mathcal{D}_{remain} Dremain的每个检测框,如果它的检测得分高于 ϵ \epsilon ϵ,并连续两帧出现,我们就会创建一个新的 track。

每一帧的输出就是当前帧的 tracks T \mathcal{T} T的边框和 ID,不输出 T l o s t \mathcal{T}_{lost} Tlost的边框和 ID。

2.2 ByteTrack

本文使用的目标检测器是 YOLOX,对 YOLO 系列做了改进,它采用了 anchor-free 的方式,其它改进包括 decoupled head、Mosaic 和 Mixup 数据增广策略、SimOTA 标签分配。

主干网络是 CSPNet,neck 是 PAN。主干网络后是两个 decoupled heads,一个负责回归,一个负责分类。在回归 head 又增加了一个 IoU 分支,用于预测检测框和 ground truth 框的 IOU。回归 head 直接预测特征图上每个位置的 4 个值,即网格左上角的两个偏移量,和预测框的宽高。回归损失使用了 G I o U GIoU GIoU损失,分类和 IoU 分支则使用了二元交叉熵损失。

SimOTA 标签分配策略根据预测结果和 ground truths 之间的代价矩阵,自动选取正样本。该代价矩阵由分类损失和边框定位损失的加权和组成。然后,选择目标中心点附近的 top-k 个正样本。

MOT17 需要标注框覆盖目标整体,即便它被遮挡了,或者部分位于图像之外。但 YOLOX 的默认操作会对检测框做裁剪,保证其位于图像内。因而作者修改了 YOLOX 的数据处理和标签分配的代码,在数据预处理和增广时,不对边框做裁剪。若数据增广后,边框完全超出了图像边界,则删掉。在 SimOTA 中,正样本需要位于目标的中心附近,而包含目标整体的边框的中心点可能位于图像之外,则对目标的中心点做裁剪,保证在图像内。

MOT20 则对边框标注做了裁剪,保证在图像内,与 YOLOX 一致。

2.3 实验

数据集

在 MOT17 和 MOT20 上进行实验。使用了训练集和测试集,没有用验证集。在消融实验,使用 MOT17 训练集里视频的前半部分作为训练,后半部分验证。

度量

使用了 CLEAR 度量(包括 MOTA、FP、FN、IDs),IDF1 和 HOTA 来评价跟踪性能。考虑到 FP 和 FN 的个数要大于 IDs,MOTA 更多关注在检测性能。IDF1 评价 ID 持续能力,更多关注匹配表现。HOTA 是最近提出的,综合考虑目标检测、匹配和定位的表现。

实现细节

τ h i g h \tau_{high} τhigh默认值为 0.6 0.6 0.6 τ l o w \tau_{low} τlow默认为 0.1 0.1 0.1 ϵ \epsilon ϵ 0.7 0.7 0.7。在线性分配步骤,如果检测框和 tracklet 框的 IOU 小于 0.2 0.2 0.2,匹配不成立。对于 lost tracklets,将其保留 30 30 30帧。

对于 ByteTrack,检测器 YOLOX 的主干网络为 YOLOX-X,COCO 预训练模型初始化权重。在 MOT17、CrowdHuman、CityPerson 和 ETHZ 结合的数据集上训练了 80 epochs。图像输入大小是 1440 × 800 1440\times 800 1440×800,多尺度训练时短边长度在 576 576 576 1024 1024 1024之间缩放。数据增广采用了 Mosaic 和 Mixup,在 8 张 Tesla V100 卡上训练,batch size 是 48。采用了 SGD,weight decay 是 5 × 1 0 − 4 5\times 10^{-4} 5×104,momentum 是 0.9 0.9 0.9。初始学习率是 1 0 − 3 10^{-3} 103,1 个 epoch 热身,学习率采用了余弦退火。总训练时间约12小时。

3. 有什么优点?

对于遮挡的目标或者短暂消失的目标,跟踪效果有明显提升。

你可能感兴趣的:(多目标追踪,学习)