SORT 与 OC-SORT:检测框之后的多目标跟踪

2024 年 5 月 21 日 星期二
/ , , , ,
1
摘要
Kalman Filter 预测 + Hungarian/IoU 匹配的在线跟踪框架。对比 SORT(prediction-centric)和 OC-SORT(observation-centric)在遮挡、非线性运动下的差异,以及 ByteTrack 的低分框补匹配思路。

阅读此文章之前,你可能需要首先阅读以下的文章才能更好的理解上下文。

SORT 与 OC-SORT:检测框之后的多目标跟踪

编写时间:2024-05

目标检测只回答“这一帧哪里有目标”,跟踪还要回答“下一帧是不是同一个目标”。SORT 这类算法的优势是简单、在线、实时,特别适合先作为工程 baseline。

SORT 基本流程

SORT 主要由三件事组成:

模块作用
Detector每帧给出 bbox
Kalman Filter根据上一状态预测当前 bbox
Hungarian / IoU把检测框和轨迹匹配起来

状态建模

SORT 常用 bbox 中心、尺度、长宽比以及速度建状态。一个简化状态可以写成:

x=[u,v,s,r,u˙,v˙,s˙]T x=[u,v,s,r,\dot u,\dot v,\dot s]^T

其中 (u,v) 是中心,s 是面积,r 是长宽比。Kalman 负责预测下一帧状态,检测框负责校正预测。

OC-SORT 的出发点

OC-SORT 全称 Observation-Centric SORT。它仍然保持实时和简单,但意识到一个问题:SORT 过度依赖预测状态时,在遮挡、非线性运动、检测抖动场景会不稳。OC-SORT 更强调观测本身,试图让轨迹更新围绕观测历史更稳定。

数据关联的核心

匹配可以只用 IoU,也可以叠加外观特征。工程里通常先用 IoU baseline:

costij=1IoU(bboxitrack,bboxjdet) cost_{ij}=1-IoU(bbox_i^{track}, bbox_j^{det})

然后用匈牙利算法求全局最小匹配。未匹配检测新建轨迹,未匹配轨迹增加丢失计数。

和 ByteTrack 的关系

ByteTrack 的核心思想是“低分框也有用”。它不是简单丢掉低置信度检测,而是把高分检测先匹配,再用低分检测补回被遮挡或置信度下降的目标。这对跟踪召回很有效。

工程选择

快速接入目标检测结果时,可以优先放 SORT/OC-SORT:实现简单、速度快、依赖少。等业务发现 ID switch、遮挡恢复、小目标断轨等问题,再考虑 ByteTrack、DeepSORT 或加入外观 ReID。

这类算法最重要的不是背公式,而是记住边界:检测质量决定上限,数据关联决定 ID 稳定性,运动模型只能补短时间缺失,不能凭空恢复长期遮挡。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...