GHOST: Simple Cues Lead to a Strong Multi-Object Tracker
论文地址:https://arxiv.org/abs/2206.04656
代码:https://github.com/dvl-tum/GHOST
论文接收:CVPR2023
1、动机
reID模型在MOT表现不佳的原因:
- (i)reID 模型需要考虑在不同时间范围内预期的不同挑战,即,虽然在附近的帧中,对象的外观变化最小,但在较长的时间间隔中更多预计会发生严重变化,例如,由(部分)遮挡【在不同时间的外观特征不一致,特别是遮挡导致外观特征明显变化】
- (ii)reID性能在 MOT 序列中往往不一致,因为它们的图像统计数据不同【在不同数据集上训练得到的reID不通用(不够鲁棒)】
2、方法
提出一种将reID与简单的线性运动模型加权的MOT方法: GHOST:Good Old Hungarian Simple Tracker
具体贡献:
- 提供了关键的设计选择(见下文外观模型部分),可以显着提高用于 MOT 任务的 reID 模型的性能。
- 分析了在哪些潜在情况下外观是不够的,以及何时可以通过运动来支持。
- 在四个数据集实现SOTA
track管理方法
o_i=(f_i, p_i)
表示某时刻的某track,其中f_i
表示embedding,p_i
表示box位置。
轨迹库T最多保存50帧轨迹
外观模型
model:ResNet50+FC(+BN+classify head)
train:Market-1501数据集
设计选择(design choice):
(i)以不同的方式处理活动和非活动轨迹;
图2是距离分布直方图,图2(a)展示了活动轨迹和非活动轨迹在外观距离上的差异,表明活动轨迹的外观特征总体差异较小,连续帧间几乎没有变化;但不活动轨迹(遮挡)在连续帧间易出现外观特征变化较大的情况并且导致错误匹配(浅蓝色区域)
- 外观距离代价函数【余弦距离d(·)】:
第t帧活动轨迹j
与检测框i
关联时外观距离为
d_i,j = d(f_i, f_jt-1)
非活动轨迹k
与检测框i
关联时外观距离为前Nk
帧得embedding与检测i
的embedding的距离的平均值,即
【本人总结】外观距离可以用多种方式来计算:
(1)one embedding:采用上一帧的embedding来计算(最简单的形式)
(2)embedding bank:每个track保存一个embedding库,计算库中embedding与检测框embedding的最小值作为关联距离【deepsort】
(3)EMA embedding:采用EMA(指数移动平均)不断更新embedding,匹配时用EMA平均的embedding来计算距离【JDE、FairMOT】
(4)EMA bank:既采用EMA计算平均embedding,又保存在库中,计算时取最小的【GIAOTracker】
(5)MA embedding:用MA(移动平均)不断更新embedding【Tracktor】
(6)MA distacnce:每一帧embedding计算的距离的MA【本文】
(7)Mode embedding:保存一个embedding库,取每个维度上的众数作为计算用的embedding【本文附录】
(8)Median embedding:保存一个embedding库,取每个维度上的中位数作为计算用的embedding【本文附录】
(ii)增加动态域自适应(On-the-fly Domain Adaptation)
应该是属于person re-identification领域的概念。
作者在引言部分提到不同数据集的数据分布不一致导致re-ID模型不够鲁棒,因此采用BN的方法来学习数据分布
运动模型
平均线性运动(取Nk帧位置计算平均速度)
运动权重设置为0.5(作者在附录中说不同数据集、不同情况下权重不一样,具体情况具体分析)
关联方式
在匹配时采用一次匈牙利匹配,对活动轨迹和非活动轨迹设置不同的阈值,如图2(b)所示
3、实验:
作者发现:
- 动态场景下(相机运动):在长期和短期关联方面,外观表现优于运动,因为相机运动导致运动难以估计
- 静态场景下(固定相机):在长期关联方面运动表现优于外观,在遮挡情况下外观表现极差
附录中提到:外观经常被用来处理运动无法解决的长期关联,而运动通常用于短期。
其他实验详见原文,作者做了巨多实验。
个人总结:
验证了活跃track和非活跃track外观特征的差异,因此采用不同方式计算。
创新点在于提出一种新的外观距离计算方式,并且进行实验验证;动态域自适应我不了解,不好评价,应该是从其他领域借鉴过来的,反映到MOT上就是不同数据集分布不一致,re-ID模型不够鲁棒;其他就没什么了,实验工作量挺大。
附录
- A、BDD100K实验
- B、对正文部分实验的分析,主要是对遮挡程度、遮挡时间
- C、对动态域自适应的深入分析
- D、对外观距离做了个小总结及实验【写的不错】
- E、运动权重分析,面向数据集分析
- F、对平均速度计算用的帧数做分析,面向数据集分析
- G、track寿命分析(max_age)
- H、自适应阈值分析及算法
- I、距离分布计算,应该是实验设置细节
- J、相似MOT方法比较(主要是将track进行分类的),提到ByteTrack、DeepSORT、HCC等
- K、作者认为ByteTrack在不同数据集上调参,甚至更改基线模型(引入额外的re-ID模型),对其普遍性表示质疑。【看戏】
- L、对每个模块的耗时进行计算,在Quadra P6000 GPU上速度10FPS
- M、效果可视化