BoT-SORT 丝滑跟踪 | 超越 DeepSORT、StrongSORT++ 和 ByteTrack

简介: BoT-SORT 丝滑跟踪 | 超越 DeepSORT、StrongSORT++ 和 ByteTrack

多目标跟踪 (MOT) 的目标是检测和跟踪场景中的所有目标,同时为每个目标保留一个唯一标识符。在本文中提出了一种新的鲁棒跟踪器,它可以结合运动和外观信息的优点,以及相机运动补偿和更准确的卡尔曼滤波器状态向量。新跟踪器 BoT-SORTBoT-SORT-ReIDMOT17MOT20 测试集的 MOTChallenge 数据集中排名第一,就所有主要的 MOT 指标而言:MOTAIDF1HOTA。对于 MOT17:实现了 80.5% MOTA、80.2% IDF1 和 65.0% HOTA。


1简介


多目标跟踪 (MOT) 旨在检测和估计视频流中多个目标的时空轨迹。MOT 是许多应用的基本问题,例如自动驾驶、视频监控等。

目前,Tracking-by-detection成为 MOT 任务中最有效的范式。Tracking-by-detection包含一个步骤检测步骤,然后是一个跟踪步骤。跟踪步骤通常由2个主要部分组成:

  1. 运动模型和状态估计,用于预测后续帧中轨迹的边界框。卡尔曼滤波器 (KF) 是此任务的主流选择。
  2. 将新帧检测与当前轨迹集相关联。

对于步骤2:有2种主要的方法用于处理关联任务:

  1. 目标的定位,主要是预测轨迹边界框和检测边界框之间的IoU。
  2. 目标的外观模型和解决Re-ID任务。

这2种方法都被量化为距离,并用于将关联任务作为全局分配问题来解决。

最近的许多Tracking-by-detection工作都基于对 SORTDeepSORTJDE 方法的研究。作者认识到这些SORT-like算法存在一些局限性,将在下面进行描述。

大多数SORT-like算法采用卡尔曼滤波器恒速模型假设作为运动模型。KF 用于预测下一帧中的 tracklet 边界框,以与检测边界框相关联,并用于在遮挡或未检测到的情况下预测 tracklet 状态。

与目标检测器驱动的检测相比,使用 KF 状态估计作为跟踪器的输出会导致边界框形状次优。最近的大多数方法都使用了经典跟踪器 DeepSORT 中提出的 KF 状态表征,它试图估计框的纵横比而不是宽度,这导致宽度大小估计不准确。

SORT-likeIoU-based 方法主要取决于 tracklet 的预测边界框的质量。因此,在许多复杂的场景中,预测边界框的正确位置可能会由于相机运动而失败,这导致2个相关边界框之间的重叠率低,最终导致跟踪器性能低下。作者通过采用传统的图像配准来估计相机运动,通过适当地校正卡尔曼滤波器来克服这个问题。这里将此称为相机运动补偿CMC)。

在许多情况下,SORT-like 算法中的定位和外观信息(即重识别)会导致跟踪器的检测能力 (MOTA) 和跟踪器随时间保持正确身份的能力 (IDF1) 之间的权衡。使用 IoU 通常可以实现更好的 MOTA,而 Re-ID 可以实现更高的 IDF1。

image.png

在这项工作中,我们提出了新的跟踪器,通过解决上述 SORT-like 的跟踪器的限制并将它们集成到 ByteTrack 中,新的跟踪器在 MOT17MOT20 挑战的所有主要 MOT 指标(图 1)中都优于所有领先的跟踪器。

工作的主要贡献可以总结如下:

• 通过添加改进,例如基于相机运动补偿的特征跟踪器和合适的卡尔曼滤波器状态向量以实现更好的边界框定位,Tracking-by-detection跟踪器的性能也可以得到显著的改进。

• 为 IoUReID余弦距离融合提出了一种简单有效的方法,以便在检测和轨迹之间建立更强大的关联。


2BoT-SORT


在部分中,介绍了基于多目标跟踪的Tracking-by-detection方法的3个主要修改和改进。通过将它们集成到著名的 ByteTrack 中,作者展示了2个新的最先进的跟踪器,BoT-SORTBoT-SORT-ReIDBoT-SORT-ReID 是包含ReID模块的 BoT-SORT 扩展。算法的流程如图 2 所示。

image.png图 2

2.1 Kalman Filter

为了对图像平面中的物体运动进行建模,通常使用具有恒定速度模型的离散卡尔曼滤波器。在 SORT 中,状态向量被选择为7元组,,其中  是在图像平面目标中心的二维坐标。s是边界框比例(面积),a 是边界框纵横比。在最近的跟踪器中,状态向量变为8元组,。

然而,作者通过实验发现,直接估计边界框的宽度和高度会可以得到更好的性能。因此,作者选择将 KF 的状态向量定义为 Eq(1),并且测量向量如方程(2)。在 SORT 中选择的度量 Q、R 与时间无关,因此在 DeepSORT 中也建议选择 Q、R 作为一些估计元素和一些测量元素的度量函数。因此,使用 Q 和 R 的这种选择与时间相关的  和 相关。在改变 KF 的状态向量之后,过程噪声协方差  和测量噪声协方差  矩阵也被修改,可以参见方程(3)(4)。因此有:

image.png

这里选择噪声因子为 、 和 ,因为帧速率也是 30FPS。请注意,根据稍微不同的状态向量 x 修改了 Q 和 R。在轨迹丢失的情况下,长时间预测可能会导致 box shape 变形,因此实现了一个类似 ByteTrack 的逻辑。

在消融研究部分,通过实验表明,这些改进带来了更高的HOTA。严格来说,对HOTA整体改善的原因并不清楚。这里假设对KF的修改有助于提高边界框宽度对目标的拟合,如图3所示。

2.2 Camera Motion Compensation (CMC)

Tracking-by-detection 跟踪器严重依赖于预测轨迹的边界框和检测到的边界框之间的重叠。在动态相机情况下,图像平面中的边界框位置可能会发生显著变化,这可能会导致 ID 切换或假阴性增加,如图4所示。

图4

静态相机场景中的跟踪器也可能因振动或漂移引起的运动而受到影响,就像在 MOT20 中一样,在非常拥挤的场景中,ID 切换可能是一个真正的问题。视频中的运动模式可以概括为刚体运动,来自相机姿态的变化,以及物体的非刚体运动。由于缺乏关于相机运动的额外数据(例如导航、IMU 等)或相机内参,2个相邻帧之间的图像配准是相机刚性运动在图像平面上投影的良好近似。

作者使用OpenCV的全局运动估计 (GMC) 技术来表示背景运动。首先提取图像关键点,然后利用稀疏光流进行基于平移的局部异常点抑制的特征跟踪。这里先使用RANSAC计算出仿射变换矩阵 。然后使用仿射变换矩阵将预测边界框从k-1帧的坐标系变换到下一帧k的坐标,如下所述。

仿射变换矩阵的平移部分只影响边界框的中心位置,而另一部分影响所有的状态向量和噪声矩阵。相机运动校正步骤可以通过以下等式执行:

image.png

当 # 是包含仿射矩阵 A 的尺度和旋转部分的矩阵时,T 包含平移部分。通过定义和  来使用数学技巧。此外,、 分别是相机运动补偿前后 KF 时间 k 的预测状态向量。,  分别是校正前后KF的预测协方差矩阵。之后,在卡尔曼滤波器更新步骤中使用 ,  如下:

image.png

在高速的情况下,状态向量的完全修正,包括速度项是必要的。当相机与帧率相比变化缓慢时,校正值为等式8可以省略。通过应用这种方法,跟踪器对相机的运动具有较好鲁棒性。

在对刚性相机运动进行补偿之后,并在一个物体的位置从一帧到下一帧仅略有变化的假设下。在在线高帧率应用中,当出现漏检情况时,可以使用KF的预测步骤进行轨迹外推。这可能会导致更高的MOTA轨道更连续的关注。

2.3 IoU-Re-ID Fusion

为了利用深度视觉表示的最新发展,将外观特征集成到的跟踪器中。为了提取这些 Re-ID 特征,在来自 FastReID 库的 BoT (SBS) 之上采用了更强的基线,FastReIDResNeSt50 作为主干。采用指数移动平均 (EMA) 机制来更新第 k 帧处第 i 个 tracklet 的匹配 tracklet 外观状态 ,

image.png

其中  是当前匹配检测的外观嵌入,α=0.9 是动量项。因为外观特征可能容易受到人群、遮挡和模糊对象的影响,为了保持正确的特征向量,只考虑高置信度检测。为了在平均轨迹外观状态  和新的检测嵌入向量  之间进行匹配,测量余弦相似度。作者决定放弃外观成本  和运动成本  之间的共同加权和来计算成本矩阵C:

image.png

其中权重因子λ通常设置为0.98。

作者开发了一种结合运动和外观信息的新方法,即 IoU 距离矩阵和余弦距离矩阵。首先,就 IoU 的分数而言,低余弦相似度或距离较远的候选者会被拒绝。然后,使用矩阵的每个元素中的最小值作为Cost矩阵 C 的最终值。IoU-ReID 融合管道可以表述如下:

image.png

其中  是Cost矩阵C的(i,j)元素。 是 tracklet 第 i 个预测边界框和第 j 个检测边界框之间的 IoU 距离,表示运动成本。$d^{cos}_{i,j} 是平均 tracklet 外观描述符 i 和新检测描述符 j 之间的余弦距离。 是新设计的Cost。 是接近阈值,设置为 0.5,用于丢弃不太可能的轨迹和检测对。 是外观阈值,用于将 tracklets 外观状态和检测嵌入向量的正关联与负数分离。

在图 5 之后将  设置为 0.2。基于匈牙利匹配和前面提到的Cost矩阵解决了高置信度检测(即第1个关联步骤)的线性分配问题。

image.png


3实验


3.1 消融实验

image.png

image.png

3.2 SOTA对比


4参考


[1].BoT-SORT: Robust Associations Multi-Pedestrian Tracking


5推荐阅读


Inception 新结构 | 究竟卷积与Transformer如何结合才是最优的?

超快变形金刚 | 用Res2Net思想和动态kernel-size再设计 ViT,超越MobileViT

Shunted Self-Attention | 源于 PvT又高于PvT,解决小目标问题的ViT方法

相关文章
|
算法
YOLOv8官方支持多目标跟踪 | ByteTrack、BoT-SORT都已加入YOLOv8官方
YOLOv8官方支持多目标跟踪 | ByteTrack、BoT-SORT都已加入YOLOv8官方
1380 0
|
7月前
|
存储 人工智能 算法
YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
YOLOv8界面-目标检测+语义分割+追踪+姿态识别(姿态估计)+界面DeepSort/ByteTrack-PyQt-GUI
|
机器学习/深度学习 人工智能 自然语言处理
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
人类通过自然监督,即探索视觉世界和倾听他人描述情况,学会了毫不费力地识别和定位物体。我们人类对视觉模式的终身学习,并将其与口语词汇联系起来,从而形成了丰富的视觉和语义词汇,不仅可以用于检测物体,还可以用于其他任务,如描述物体和推理其属性和可见性。人类的这种学习模式为我们实现开放世界的目标检测提供了一个可以学习的角度。
一文尽览 | 开放世界目标检测的近期工作及简析!(基于Captioning/CLIP/伪标签/Prompt)(上)
|
计算机视觉 Python
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
yolov5+deepsort目标检测与跟踪(毕业设计+代码)
|
3月前
|
编解码 人工智能 测试技术
2B多模态新SOTA!华科、华南理工发布Mini-Monkey,专治切分增大分辨率后遗症
【9月更文挑战第7天】华中科技大学与华南理工大学联合发布了一款名为Mini-Monkey的2B参数多模态大语言模型,采用多尺度自适应裁剪策略(MSAC)和尺度压缩机制(SCM),在高分辨率图像处理方面取得突破,尤其在文档理解上超越了8B参数的SOTA模型InternVL2-8B。Mini-Monkey仅需8张RTX 3090显卡即可完成训练,展现出高效性能,但处理复杂图像场景时仍存局限。论文详情见:https://arxiv.org/pdf/2408.02034。
61 8
|
7月前
|
机器学习/深度学习 运维 监控
一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人
一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人
1535 0
|
6月前
|
机器学习/深度学习 算法 安全
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
基于YOLOv8深度学习的危险区域人员闯入检测与报警系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、区域闯入
|
6月前
|
机器学习/深度学习 计算机视觉 Python
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(3)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
|
6月前
|
机器学习/深度学习 存储 算法
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(2)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数
|
6月前
|
机器学习/深度学习 编解码 监控
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数(1)
深度学习实战】行人检测追踪与双向流量计数系统【python源码+Pyqt5界面+数据集+训练代码】YOLOv8、ByteTrack、目标追踪、双向计数、行人检测追踪、过线计数