BoT-SORT:强大的关联多行人跟踪
Posted AI浩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BoT-SORT:强大的关联多行人跟踪相关的知识,希望对你有一定的参考价值。
摘要
论文连接:https://arxiv.org/pdf/2206.14651.pdf
多对象跟踪 (MOT) 的目标是检测和跟踪场景中的所有对象,同时为每个对象保留一个唯一标识符。 在本文中,我们提出了一种新的鲁棒的最先进的跟踪器,它可以结合运动和外观信息的优点,以及相机运动补偿和更准确的卡尔曼滤波器状态向量。 我们的新跟踪器 BoT-SORT 和 BoT-SORT-ReID 在 MOT17 和 MOT20 测试集的 MOTChallenge [29, 11] 数据集中排名第一,就所有主要 MOT 指标而言:MOTA、IDF1 和 HOTA。 对于 MOT17:实现了 80.5 MOTA、80.2 IDF1 和 65.0 HOTA。 源代码和预训练模型可在 https://github.com/NirAharon/BOT-SORT 获得。
一、简介
多目标跟踪 (MOT) 旨在检测和估计视频流中多个目标的时空轨迹。 MOT 是许多应用的基本问题,例如自动驾驶、视频监控等。
目前,检测跟踪已成为 MOT 任务最有效的范例 [54,3,48,4,58]。检测跟踪包含一个目标检测步骤,然后是跟踪步骤。 跟踪步骤通常由两个主要部分组成:(1)运动模型和状态估计,用于预测后续帧中轨迹的边界框。 卡尔曼滤波器 (KF) [8] 是该任务的流行选择。 (2) 将新帧检测与当前轨迹集相关联。 两种主要的方法用于处理关联任务:(a)对象的定位,主要是预测轨迹边界框和检测边界框之间的交叉联合(IoU)。 (b) 对象的外观模型和解决重新识别 (Re-ID) 任务。 两种方法都被量化为距离并用于解决关联任务作为全局分配问题。
许多最近的检测跟踪工作基于他们对 SORT [3]、DeepSORT [48] 和 JDE [46] 方法的研究。 我们已经认识到这些“类 SORT”算法的一些局限性,我们将在下面进行描述。
与目标检测器驱动的检测相比,使用 KF 状态估计作为跟踪器的输出会导致边界框形状次优。 最近的大多数方法都使用了经典跟踪器 DeepSORT [48] 中提出的 KF 状态表征,它试图估计框的纵横比而不是宽度,这导致宽度大小估计不准确。
SORT-like IoU-based 方法主要取决于 tracklet 的预测边界框的质量。 因此,在许多复杂的场景中,预测边界框的正确位置可能会由于相机运动而失败,这导致两个相关边界框之间的重叠率低,最终导致跟踪器性能低下。 我们通过采用传统的图像配准来估计相机运动,并正确校正卡尔曼滤波器来克服这个问题。 我们将此称为相机运动补偿(CMC)。
在许多情况下,类 SORT 算法中的定位和外观信息(即重新识别)会导致跟踪器的检测能力 (MOTA) 和跟踪器随时间保持正确身份的能力 (IDF1) 之间的权衡。 使用 IoU 通常可以实现更好的 MOTA,而 Re-ID 可以实现更高的 IDF1。
在这项工作中,我们提出了新的跟踪器,通过解决上述类似 SORT 的跟踪器的限制并将它们集成到新颖的 ByteTrack [58] 中,新的跟踪器在 MOT17 和 MOT20 挑战的所有主要 MOT 指标(图 1)中都优于所有领先的跟踪器。 特别是,我们工作的主要贡献可以总结如下:
- 我们表明,通过添加改进,例如基于相机运动补偿的特征跟踪器和合适的卡尔曼滤波器状态向量以实现更好的框定位,可以显着改进检测跟踪器。
- 我们为 IoU 和 ReID 的余弦距离融合提出了一种新的简单而有效的方法,以便在检测和轨迹之间建立更强大的关联。
二、相关工作
随着过去几年对象检测的快速改进[34,14,33,5,17,63],多对象跟踪器获得了发展势头。 更强大的检测器会带来更高的跟踪性能并减少对复杂跟踪器的需求。 因此,检测跟踪器主要专注于改善数据关联,同时利用深度学习趋势 [58, 12]。
运动模型。 大多数最近的检测跟踪算法都基于运动模型。 最近,具有恒速模型假设的著名卡尔曼滤波器 [8] 往往是建模对象运动的流行选择 [3,48,59,58,18]。 许多研究使用 KF 的更高级变体,例如 NSA-Kalman 滤波器 [13,12],它将检测分数合并到 KF 中。 许多复杂的场景包括相机运动,这可能导致对象的非线性运动并导致不正确的 KF 预测。 因此,许多研究人员通过使用增强相关系数 (ECC) 最大化 [15] 或 ORB [36] 等匹配特征通过图像配准来对齐帧,从而采用相机运动补偿 (CMC) [1,21,18,40,13]。
外观模型和重新识别。通过深度外观提示来区分和重新识别(ReID)对象 [43,61,28] 也很流行,但在许多情况下都达不到要求,尤其是在场景拥挤时,由于人的部分遮挡。单独的基于外观的跟踪器裁剪帧检测框并使用附加的深度神经网络提取深度外观特征 [48,13,12]。他们享受先进的训练技术,但需要高推理计算成本。最近,已经提出了几个联合跟踪器 [46,51,59,26,53,32,24,44] 来联合训练检测和其他一些组件,例如运动、嵌入和关联模型。这些跟踪器的主要好处是它们的计算成本低和性能相当。
最近,最近的几项研究 [40,58] 已经放弃了外观信息,仅依赖于高性能检测器和运动信息,从而实现了高运行速度和最先进的性能。特别是 ByteTrack [58],它通过匹配高置信度检测然后与低置信度检测进行另一个关联来利用低分检测框。
3、建议方法
在本节中,我们介绍了基于多目标跟踪的检测跟踪方法的三个主要修改和改进。 通过将这些集成到著名的 ByteTrack [58] 中,我们提出了两个新的最先进的跟踪器,BoT-SORT 和 BoT-SORT-ReID。 BoTSORT-ReID 是一个包含重新识别模块的 BoT-SORT 扩展。 我们的 BoT-SORT-ReID 的伪代码见附录 A。 我们算法的流程如图 2 所示。
3.1、 卡尔曼滤波器
为了对图像平面中的物体运动进行建模,通常使用离散卡尔曼滤波器和恒速模型 [48],详见附录 B。
在 SORT [3] 中,状态向量被选择为一个七元组,
x
=
[
x
c
,
y
c
,
s
,
a
,
x
c
˙
,
y
c
˙
,
s
˙
]
⊤
\\boldsymbolx=\\left[x_c, y_c, s, a, \\dotx_c, \\doty_c, \\dots\\right]^\\top
x=[xc,yc,s,a,xc˙,yc˙,s˙]⊤,其中
(
x
c
,
y
c
)
\\left(x_c, y_c\\right)
(xc,yc) 是对象的 2 个
D
\\mathrmD
D 坐标图像平面的中心。 s 是边界框比例(面积),a 是边界框纵横比。在最近的跟踪器 [48,46,59,58,12] 中,状态向量已更改为八元组,
x
=
[
x
c
,
y
c
,
a
,
h
,
x
˙
c
,
y
˙
c
,
a
˙
,
h
˙
]
⊤
\\boldsymbolx=\\left[x_c, y_c, a, h, \\dotx_c, \\doty_c, \\dota, \\doth\\right]^\\top
x=[xc,yc,a,h,x˙c,y˙c,a˙,h˙]⊤。然而,我们通过实验发现,直接估计边界框的宽度和高度,可以获得更好的性能。因此,我们选择将 KF 的状态向量定义为公式(1),测量向量定义为公式(2)。在 SORT [3] 中选择矩阵 Q、R 是时间无关的,但是在 DeepSORT [48] 中建议选择
Q
、
R
\\mathrmQ、\\mathrmR
Q、R 作为一些估计元素和一些测量元素的函数,从他们的 Github 源代码https://github.com/nwojke/deep_sort 中可以看出。因此,使用
Q
和
R
\\mathrmQ 和 \\mathrmR
Q和R 的这种选择会导致与时间相关的
Q
k
和
R
k
\\boldsymbolQ_k 和 \\boldsymbolR_k
Qk和Rk 。在我们改变 KF 的状态向量之后,过程噪声协方差
Q
k
\\boldsymbolQ_k
Qk 和测量噪声协方差
R
k
\\boldsymbolR_k
Rk 矩阵进行了修改,参见方程式。 (3)、(4)。因此我们有:
x
k
=
[
x
c
(
k
)
,
y
c
(
k
)
,
w
(
k
)
,
h
(
k
)
,
x
˙
c
(
k
)
,
y
˙
c
(
k
)
,
w
˙
(
k
)
,
h
˙
(
k
)
]
⊤
(1)
\\beginaligned \\boldsymbolx_k=& \\left[x_c(k), y_c(k), w(k), h(k),\\right. \\\\ &\\left.\\dotx_c(k), \\doty_c(k), \\dotw(k), \\doth(k)\\right]^\\top \\endaligned\\tag1
xk=[xc(k),yc(k),w(k),h(k),x˙c(k),y˙c(k),w˙(k),h˙(k)]⊤(1)
z k = [ z x c ( k ) , z y c ( k ) , z w ( k ) , z h ( k ) ] ⊤ (2) \\boldsymbolz_k=\\left[z_x_c(k), z_y_c(k), z_w(k), z_h(k)\\right]^\\top\\tag2 zk=[zxc(k),zyc(k),zw(k),zh(k)]⊤(2)
Q k = diag ( ( σ p w ^ k − 1 ∣ k − 1 ) 2 , ( σ p h ^ k − 1 ∣ k − 1 ) 2 , ( σ p w ^ k − 1 ∣ k − 1 ) 2 , ( σ p h ^ k − 1 ∣ k − 1 ) 2 , ( σ v w ^ k − 1 ∣ k − 1 ) 2 , ( σ v h ^ k − 1 ∣ k − 1 ) 2 , ( σ v w ^ k − 1 ∣ k − 1 ) 2 , ( σ v h ^ k − 1 ∣ k − 1 ) 2 ) (3) \\beginaligned \\boldsymbolQ_k=\\operatornamediag &\\left(\\left(\\sigma_p \\hatw_k-1 \\mid k-1\\right)^2,\\left(\\sigma_p \\hath_k-1 \\mid k-1\\right)^2,\\right.\\\\ &\\left(\\sigma_p \\hatw_k-1 \\mid k-1\\right)^2,\\left(\\sigma_p \\hath_k-1 \\mid k-1\\right)^2, \\\\ &\\left(\\sigma_v \\hatw_k-1 \\mid k-1\\right)^2,\\left(\\sigma_v \\hath_k-1 \\mid k-1\\right)^2, \\\\ &\\left.\\left(\\sigma_v \\hatw_k-1 \\mid k-1\\right)^2,\\left(\\sigma_v \\hath_k-1 \\mid k-1\\right)^2\\right) \\endaligned \\tag3 Qk=diag以上是关于BoT-SORT:强大的关联多行人跟踪的主要内容,如果未能解决你的问题,请参考以下文章