多目标跟踪MOT算法-DeepSORT、ByteTrack、OCSort 和 BoTSORT

多目标跟踪(MOT)
一个典型的 MOT 流水线包括:
-
目标检测(Object Detection) —— 使用 YOLO等检测器在每一帧中检测目标(如行人、车辆)。
-
状态预测(State Prediction) —— 预测目标在相邻帧之间的运动,通常使用卡尔曼滤波器。
-
数据关联(Data Association) —— 基于运动信息、外观特征或两者结合,将当前检测结果与已有轨迹进行匹配。
-
轨迹管理(Track Management) —— 初始化新轨迹、更新已有轨迹以及删除丢失轨迹。
本示例支持四种算法,分别为DeepSORT、ByteTrack、OCSort 和 BoTSORT。它们在精度、鲁棒性、计算开销以及对外观特征依赖程度方面体现了不同的设计取舍。
DeepSORT 是经典 SORT(Simple Online and Realtime Tracking)算法的扩展。SORT 仅依赖运动信息(边界框几何关系和卡尔曼滤波预测),而 DeepSORT 引入了深度外观特征(ReID),在遮挡和重新出现(re-identification)场景中显著提升了身份一致性。
核心组件:
-
运动模型(Motion Model):
-
恒定速度卡尔曼滤波器
-
状态通常包含位置、尺度、宽高比及其速度
-
-
外观模型(Appearance Model):
-
使用深度 CNN 为每个检测目标提取特征嵌入向量
-
特征通常为 L2 归一化向量(如 512 维)
-
-
数据关联(Data Association):
-
运动距离(马氏距离)
-
外观距离(余弦相似度)
-
第一阶段:使用卡尔曼滤波预测进行马氏距离(Mahalanobis)门控
-
第二阶段:通过匈牙利算法,基于组合代价进行匹配:
-
-
轨迹生命周期(Track Lifecycle):
-
轨迹状态包括 Tentative(暂定)、Confirmed(确认) 和 Deleted(删除)
-
需要连续多次成功匹配后才确认轨迹
-


Re-ID在DeepSORT里主要扮演了“外观识别专家”的角色,弥补了纯运动信息的不足:
1.提取“视觉指纹”:当一个目标被检测到后,DeepSORT会调用一个预先训练好的Re-ID模型(通常是深度卷积神经网络),为这个目标提取一个独特的特征向量。你可以把这个向量理解为目标的“视觉指纹”或“身份密码”
2.计算“外貌相似度”:在将当前检测到的目标与之前正在跟踪的目标进行匹配时,DeepSORT会计算两者“视觉指纹”的相似度(通常使用余弦距离)。两者特征越接近,就越有可能是同一个目标
3.融合决策:最终,DeepSORT会将运动信息(马氏距离)和外观信息(Re-ID相似度)结合起来,形成一个综合的匹配代价。只有当这两个信息都足够匹配时,才认为是同一个目标,从而完成身份的关联

IoU-全称是Intersection over Union
oU就是用来计算两个框(Bounding Box)重叠程度的一个数值。它的计算公式非常直观:
IoU = (两个框的交集面积) / (两个框的并集面积)
IoU主要用来衡量运动信息的匹配度,具体体现在以下两个关键环节:
-
作为匹配的依据之一:DeepSORT在将当前检测到的目标框与之前正在跟踪的目标框进行关联时,会计算它们之间的IoU。IoU越高,说明目标在空间位置上的运动是连续的(没有发生突变),它们就越有可能是同一个目标。
-
作为遮挡时的“救命稻草”:这是IoU在DeepSORT里最重要的一个价值。当目标被严重遮挡或Re-ID模型无法提取到可靠的外观特征时,DeepSORT会完全依赖IoU来进行匹配。因为即便外观看不清,只要位置是连续的,算法就倾向于认为它们是同一个目标。

-
Re-ID(外观特征):负责判断“这两个人长得像不像”。
-
IoU(位置重叠):负责判断“这两个框是不是在同一个地方”。

ByteTrack 是一种现代 MOT 算法,旨在不使用外观特征的情况下最大化跟踪性能。其核心思想是:低置信度检测结果虽然常被丢弃,但仍然包含有价值的运动信息。传统跟踪器通常只使用高置信度检测进行关联,忽略低置信度检测。ByteTrack 则将检测结果分为:
-
高分检测(High-score detections):用于可靠匹配;
-
低分检测(Low-score detections):用于恢复可能丢失的轨迹;
匹配过程:
-
高分匹配阶段:
-
使用 IoU 距离将预测轨迹与高置信度检测进行匹配
-
采用匈牙利算法求解
-
-
低分匹配阶段:
-
将未匹配的轨迹与低置信度检测进一步匹配
-
有助于在遮挡或运动模糊情况下恢复目标
-
-
轨迹管理:
-
新轨迹仅由高分检测初始化
-
低分检测从不用于创建新轨迹
-
ByteTrack 的主要特点包括:
-
纯运动建模(卡尔曼滤波 + IoU 匹配)
-
无需 ReID 模型
-
极快且易于部署
OCSort 基于 SORT/ByteTrack 风格的跟踪器进行改进,针对卡尔曼滤波在剧烈运动或相机移动时运动预测不准确的问题进行了优化。OCSort 引入以观测为中心的运动建模(Observation-Centric Motion Modeling),更加重视最近的观测结果,而非长期速度估计。
关键技术包括:
-
基于最近观测估计速度,而非完全依赖卡尔曼状态
-
自适应关联策略,在以下情况下更加鲁棒:
-
突然加速
-
相机抖动或快速平移
-
OCSort使用与 SORT/ByteTrack 类似的 IoU 匹配,引入方向一致性约束,侧重几何一致性,而非外观特征。
BoTSORT 结合了 ByteTrack 与 DeepSORT 的优势,目标是在保持高速度的同时,实现更强的身份一致性。BoTSORT 集成了:
-
ByteTrack 风格的检测关联策略(高分与低分检测)
-
可选的基于外观的 ReID 特征(类似 DeepSORT)
-
相较于经典 SORT 更优的运动建模
数据关联策略:
-
主关联阶段:
-
IoU 距离
-
外观距离(余弦距离),若启用 ReID
-
将高置信度检测与轨迹进行匹配
-
代价函数可包含:
-
-
次关联阶段:
-
使用低置信度检测匹配剩余轨迹
-
有助于减少误删除轨迹
-


SORT是一个简单快速的多目标跟踪算法,但它有个致命弱点:只依赖目标的运动信息(比如位置和移动速度)。这在目标被遮挡或相互靠近时,很容易把身份(ID)搞混。
CLIP / Semantic Tracking
|
技术 |
核心问题 |
|---|---|
|
Object Detection | 这是什么? |
|
Tracking | 它在哪里? |
|
Kalman Filter | 它下一步在哪里? |
|
Re-ID | 它是不是刚才那个? |
|
Deep SORT | 如何综合运动+Re-ID持续跟踪? |
|
CLIP / Semantic Re-ID | 它是不是我描述的那个? |
|
VLM | 这个目标在当前任务中意味着什么? |
Semantic Multi-Modal Target Tracking Engine
Detection → Multi-Modal Feature Extraction → Motion + Re-ID + Semantic Matching → Track Association → Persistent Target Identity
appearance-based tracking”升级成“semantic-aware tracking”

转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/moonsims/article/details/166592427



