StrongSORT++
论文标题:StrongSORT: Make DeepSORT Great Again
论文地址:https://arxiv.org/pdf/2202.13514.pdf
论文源码:
北邮的最新工作,2月28号挂载在arxiv上,论文可能是初稿,文中模块的绘图不够细致,不方便理解。论文中前部分工作与GIAOTracker差不多。代码开源持续关注。
Introduction
? 现有的多目标跟踪(MOT)方法可以大致分为tracking-by-detection 和 joint-detection-association范式。虽然后者引起了更多的关注,并表现出与前者相当的性能,但我们认为,tracking-by-detection范式仍然是跟踪精度方面的最优解决方案。在本文中,我们回顾了经典的跟踪器DeepSORT,并从检测、嵌入和关联等各个方面对其进行了升级。由此产生的跟踪器,被称为StrongSORT,在MOT17和MOT20上设置了新的HOTA和IDF1记录。我们还提出了两种轻量级和即插即用的算法来进一步细化跟踪结果。首先,提出了一种无外观链路模型(AFLink),将短轨迹与完整轨迹相结合。
? 首先,提出了一种无外观链路模型(AFLink),将短的轨迹与完整的轨迹关联起来。这是第一个没有外观信息的全局链接模型。其次,我们提出了高斯平滑插值(GSI)来补偿缺失的检测。GSI基于高斯过程回归算法忽略运动信息,而不是忽略线性插值,可以实现更准确的定位。此外,AFLink和GSI可以插入到各种跟踪器中,而额外的计算成本可以忽略不计。
? joint-detection-association联合框架中存在两个问题:(1)对不同任务组件之间的不兼容(2)对联合训练这些任务组件的有限数据。虽然已经提出了几种策略来解决这些问题,但这些问题仍然降低了跟踪精度的上界。相反,tracking-by-detection的潜力似乎被低估了。
Review of DeepSORT
? 将DeepSORT简要地总结为一个有两个分支的框架,即外观分支和运动分支,如图2的上半部分所示。在外观分支中,给定每一帧的检测,应用Re-ID数据集MARS上预训练的深度外观descriptor (a simple CNN)来提取它们的外观特征。它利用一个特征集合来存储每个轨迹集的最后100帧的特征。随着新的检测结果的出现,第
i
i
i条轨迹的特征集合
R
i
R_{i}
Ri?与第
j
j
j条检测的特征
f
j
f_{j}
fj?之间的最小余弦距离计算为
? 该距离作为关联过程中的匹配成本。在运动分支中,卡尔曼滤波算法用于预测轨迹在当前帧中的位置。然后,利用马氏距离来测量轨迹和探测之间的时空差异。DeepSORT将这个运动距离来过滤掉不太可能的关联。
? 然后,提出匹配级联算法,将关联任务作为一系列子问题,而不是全局分配问题。其核心思想是给予更常见的物体更大的匹配优先级。每个关联子问题都使用匈牙利算法来解决。
Stronger DeepSORT
? 我们对DeepSORT的改进主要在于这两个分支,如图2的下半部分所示。对于外观分支,采用一个更强的外观特征提取器
B
o
T
BoT
BoT来代替原来的简单CNN。以ResNeSt50为骨干,对DukeMTMCreID数据集进行预训练,可以提取出更多的鉴别特征。此外,用JDE中提出的特征更新策略替换特征集合,该策略以指数移动平均(EMA)的方式更新第
t
t
t帧的第
i
i
i条轨迹的外观状态
e
i
t
e_{i}^{t}
eit?如下:
? 其中拟合为当前匹配检测的外观嵌入
f
i
t
f_{i}^{t}
fit?,
α
=
0.9
α=0.9
α=0.9为动量项。EMA更新策略不仅提高了匹配质量,而且减少了时间消耗。
? 对于运动分支,我们采用ECC进行摄像机运动补偿。此外,vanilla Kalman fifilter是不健壮的,忽略了检测噪声尺度上的信息。为了解决这一问题,我们借用了中的NSA卡尔曼算法在我上一篇博客上的GIAOTracker也使用了NSA ,提出了一个自适应计算噪声协方差
R
^
k
\hat R_{k}
R^k?的公式:
其中,
R
k
R_k
Rk?为预设的常数测量噪声协方差,
c
k
c_k
ck?为状态
k
k
k时的检测置信值。
? 此外,我们没有在匹配过程中只使用外观特征距离,而是同时解决了使用外观和运动信息的分配问题。成本矩阵
C
C
C是外观成本
A
a
A_a
Aa?和运动成本
A
m
A_m
Am?的加权和,如下:
? 其中,权重因子
λ
λ
λ设置为0.98。另一个有趣的发现是,尽管匹配级联算法在DeepSORT中不是微不足道的,但随着跟踪器变得更加强大,它限制了性能。原因是,随着跟踪器变得更强大,它对可混淆的关联也变得更加健壮。因此,额外的先验约束将限制匹配的精度。我们用普通的全局线性分配来代替匹配级联。
stronger DeepSORT在GIAOTracker中使用,但GIAOTracker作用在无人机跟踪,其中加上了更多的trick。
StrongSORT++
? 两种轻量级、即插即用、与模型无关、无外观的算法,即AFLink和GSI,以进一步细化跟踪结果。我们将最终的方法称为StronSORT++,它将StrongSORT集成了两种算法。
AFLink
? 轨迹图的全局链接在几个工作中被用于追求高度精确的关联。然而,它们通常依赖于计算成本昂贵的组件和大量的超参数来进行微调。例如,GIAO跟踪器中的link算法利用改进的ResNet50-TP来提取轨迹的3D特征,并与额外的空间和时间距离进行关联。这意味着6个超参数(3个阈值和3个权重因子)将进行微调,这将导致额外的调优实验和较差的鲁棒性。此外,我们发现过度依赖外观特征是容易受到噪声的影响的。基于此,我们设计了一个无外观的模型,AFLink,通过仅依赖时空信息来预测两个轨迹之间的连通性。
? 图3显示了AFLink模型的双分支框架。它采用两个轨迹线
T
i
T_i
Ti?和
T
j
T_j
Tj?作为输入,其中
T
?
=
{
f
k
,
x
k
,
y
k
}
N
k
=
1
T_{?}=\lbrace f_k,x_k,y_k\rbrace_{N}^{k=1}
T??={fk?,xk?,yk?}Nk=1?由最近的
N
=
30
N=30
N=30帧的帧
f
k
f_k
fk?和位置
(
x
k
,
y
k
)
(x_k,y_k)
(xk?,yk?)组成。对于那些小于30帧的,可以使用零填充。通过
7
×
1
7×1
7×1我的理解应该是7个1x1的卷积 核进行卷积来提取时间关联特征。然后,一个融合模块进行
1
×
3
1×3
1×3卷积,整合来自不同特征维度的信息,即
f
,
x
f,x
f,x和
y
y
y。将得到的两个特征图分别合并和压缩成特征向量,然后进行连接,其中包含丰富的时空信息。最后,使用MLP来预测关联的置信值。请注意,这两个分支的时间模块和融合模块并没有被绑定。在关联过程中,我们过滤掉了具有时空约束的不合理的轨迹对。然后,将全局链接求解为一个线性分配任务,并得到预测的得分。
GSI.
? Interpolation被广泛用于填补由检测缺失引起的轨迹空白。Linear interpolation由于其简单性而广受欢迎。然而,由于它不使用运动信息,因此它的准确性受到了限制。虽然已经提出了几种策略来解决这一问题,但它们通常会引入额外的耗时的模块,如单对象跟踪器、卡尔曼滤波器、ECC。不同的是,我们提出了一个轻量级的插值算法,使用高斯过程回归来建模非线性运动。
我们制定了第
i
i
i个轨迹的GSI模型如下:
? 其中
t
∈
F
t\in F
t∈F为视频帧,
p
t
∈
P
p_{t}\in P
pt?∈P为第
t
t
t帧(即x,y,w,h)的位置坐标变量,
?
~
N
(
0
,
σ
2
)
\epsilon \sim N(0,\sigma^{2})
?~N(0,σ2)为高斯噪声。在给定长度为
L
L
L的跟踪轨迹
S
(
i
)
=
{
t
(
i
)
,
p
t
(
i
)
}
t
=
1
L
S^{(i)}=\lbrace t^{(i)},p_{t}^{(i)} \rbrace_{t=1}^{L}
S(i)={t(i),pt(i)?}t=1L?的情况下,通过拟合函数
f
(
i
)
f(i)
f(i)来解决非线性运动建模的任务。我们假设它服从一个高斯过程
f
(
i
)
∈
G
P
(
0
,
k
(
?
,
?
)
)
f^{(i)}\in GP(0,k(\cdot,\cdot))
f(i)∈GP(0,k(?,?)),其中
k
(
x
,
x
′
)
=
e
x
p
(
?
∣
∣
x
?
x
′
∣
∣
2
2
λ
2
)
k(x,x')=exp(- \frac {||x-x'||^{2}}{2\lambda^{2}})
k(x,x′)=exp(?2λ2∣∣x?x′∣∣2?)是一个径向基函数核。根据高斯过程的性质,给定新的帧集
F
?
F^?
F?,预测其平滑位置
P
?
P^{*}
P?:
其中
K
(
?
,
?
)
K(\cdot,\cdot)
K(?,?)是基于
k
(
)
k()
k()的协方差函数。此外,超参数
λ
λ
λ控制着轨迹的平滑度,这应该与其长度有关。我们简单地将它设计为一个自适应长度
l
l
l的函数,如下:
图4展示了GSI和线性插值(LI)之间的差异的一个例子。原始跟踪的结果(橙色)通常包括噪声抖动,而LI(蓝色)忽略运动信息。我们的GSI(红色)通过自适应平滑因子平滑整个轨迹同时解决这两个问题。
Experiments
? 对于检测,采用在COCO上预训练的YOLOX-X作为我们的探测器,以提高时间-精度的权衡。在推断中,将非最大抑制(NMS)的阈值设置为0.8,将检测置信度的阈值设置为0.6。对于StrongSORT,特征距离阈值为0.45,EMA中的动量项α为0.9,外观成本的重量因子λ为0.98。对于GSI,插值允许的最大间隙为20帧,超参数τ为10帧。
? 对于AFLink,时间模块由四个卷积层组成,{32、64、128、256}输出通道。每个卷积之后都是一个BN层和一个ReLU激活层。融合模块包括一个1×3卷积,一个BN和一个ReLU。它不会改变频道的数量。分类器是一个中间插入有两个完全连接层和一个ReLU层的MLP。训练数据是通过将标注的轨迹切割成具有随机时空噪声的轨迹来生成的。我们使用Adam作为优化器,交叉熵损失作为目标函数,并使用余弦退火学习速率对其进行20个周期的训练。整个训练过程只需要10多秒钟。在推理中,使用30帧的时间距离阈值和75个像素的空间距离阈值来过滤出不合理的关联对。最后,如果其预测得分大于0.95,则考虑该关联。所有的实验都是在一个V100的服务器机器上进行的。
Conclusion
? StrongSORT和StornSORT++仍然有一些局限性。主要关注的是,与联合跟踪器和一些无外观的独立跟踪器相比,它们的运行速度相对较低。提高计算效率有待进一步研究。此外,虽然我们的方法在IDF1和HOTA指标中排名第一,但它的MOTA略低,这主要是由于检测评分阈值高导致许多检测缺失所致。对于AFLink,虽然它在恢复缺失的关联方面表现良好,但它会导致一些数据关联错误。具体来说,AFLink不能将ID混合的轨迹分割成精确的轨迹。
|