
摘要
基于卡尔曼滤波(Kalman Filter, KF)的多目标跟踪(Multi-Object Tracking, MOT)方法通常假设目标运动为线性。尽管这一假设在极短时间的遮挡情况下尚可接受,但在长时间遮挡期间,线性运动估计会产生显著误差。此外,当缺乏观测数据以更新卡尔曼滤波器参数时,标准做法是依赖先验状态估计进行后验更新,这会导致遮挡期间误差不断累积。这种误差在实际应用中往往引发运动方向的显著偏差。本文表明,若能对遮挡期间累积的噪声进行合理处理,基础卡尔曼滤波器仍可实现当前最优的跟踪性能。与传统仅依赖线性状态估计(即“以估计为中心”)的方法不同,我们引入目标观测信息(即目标检测器提供的测量值),在遮挡期间构建一条虚拟轨迹,用于修正滤波器参数的误差累积。该策略使系统能够在更长时间尺度上对遮挡期间积累的误差进行有效校正。我们提出的方法命名为观测中心SORT(Observation-Centric SORT, OC-SORT)。该方法在保持原有方法“简单、在线、实时”特性的同时,显著提升了在遮挡和非线性运动场景下的鲁棒性。在仅使用现成检测结果作为输入的情况下,OC-SORT可在单个CPU上实现700+ FPS的运行速度。该方法在多个主流数据集上均取得了当前最优性能,包括MOT17、MOT20、KITTI、头部跟踪任务,尤其在运动高度非线性的DanceTrack数据集上表现突出。相关代码与模型已开源,地址为:\url{https://github.com/noahcao/OC_SORT}。
代码仓库
BingfengYan/DS_OCSORT
pytorch
GitHub 中提及
mikel-brostrom/boxmot
pytorch
GitHub 中提及
open-mmlab/mmtracking
pytorch
GitHub 中提及
noahcao/OC_SORT
官方
pytorch
GitHub 中提及
dyhBUPT/StrongSORT
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| multi-object-tracking-on-dancetrack | OC-SORT | AssA: 38.0 HOTA: 55.1 IDF1: 54.2 MOTA: 89.4 |
| multi-object-tracking-on-mot17 | OC-SORT | HOTA: 63.2 IDF1: 77.5 MOTA: 78.0 |
| multi-object-tracking-on-mot20-1 | OC-SORT | HOTA: 62.4 IDF1: 76.4 MOTA: 75.9 |
| multi-object-tracking-on-sportsmot | OC-SORT | AssA: 61.5 DetA: 88.5 HOTA: 73.7 IDF1: 74.0 MOTA: 96.5 |
| multiple-object-tracking-on-crohd | OC-SORT | HOTA: 44.1 IDF1: 62.9 MOTA: 67.9 |
| multiple-object-tracking-on-kitti-test-online | OC-SORT | HOTA: 76.5 IDSW: 250 MOTA: 90.3 |
| multiple-object-tracking-on-sportsmot | OC-SORT | AssA: 61.5 DetA: 88.5 HOTA: 73.7 IDF1: 74.0 MOTA: 96.5 |