Multi-Object Tracking (MOT)
探索计算机视觉中的多目标跟踪(MOT)。了解如何使用 Ultralytics YOLO26 检测和跟踪实体,并将其应用于自动驾驶、零售等领域。
多目标跟踪 (MOT) 是计算机视觉 (CV)中的一项动态任务,涉及检测视频流中的多个不同实体,并随时间持续维护它们的身份。与将每一帧视为独立快照的标准目标检测不同,MOT 为人工智能 (AI)引入了时间维度。通过为每个检测到的实例分配唯一的识别编号 (ID)——例如人群中的某位行人或高速公路上的一辆汽车——MOT 算法能够让系统追踪轨迹、分析行为并理解交互。这项能力是现代视频理解的基础,使机器能够感知不断变化环境中的连续性。
MOT 的工作原理#
当代大多数跟踪系统都采用“检测后跟踪”范式。这种方法将流程分为两个主要阶段:识别画面中有什么,然后将这些发现与过去已知的对象进行关联。
-
**运动预测:**为了预测对象接下来将移动到哪里,算法通常会使用卡尔曼滤波器。这一数学工具可以估计动态系统的状态(例如速度和位置),帮助缩小后续帧中的搜索区域。
-
**数据关联:**系统会将新的检测结果与现有轨迹进行匹配。匈牙利算法等优化方法通过最小化匹配成本来解决这一分配问题,通常依靠交并比 (IoU)来衡量空间重叠程度。
-
**重新识别 (ReID):**当发生称为遮挡的视觉障碍时,先进的跟踪器会使用视觉嵌入来在对象重新出现时识别它。这有助于防止“ID 切换”,确保系统知道从隧道中驶出的汽车与驶入隧道的汽车是同一辆。
区分 MOT 与单目标跟踪#
尽管术语相似,多目标跟踪 (MOT) 与单目标跟踪 (SOT)存在显著差异。SOT 专注于跟踪在第一帧中初始化的一个特定目标,通常会忽略其他所有实体。相比之下,MOT 必须处理数量未知且不断变化的目标,这些目标可能随时进入或离开场景。这使 MOT 在计算上更具挑战性,因为它需要可靠的逻辑来处理轨迹的创建、终止以及多个运动物体之间的复杂交互。
实际应用#
同时跟踪多个实体的能力推动了多个主要行业的创新。
- **自动驾驶:**自动驾驶汽车高度依赖 MOT 来实现安全导航。通过跟踪行人、骑行者和其他车辆,自主系统可以预测未来位置以避免碰撞。这通常需要融合摄像头和LiDAR 传感器的数据,以实现最大可靠性。
- **零售分析:**在实体店中,零售商使用零售领域的 AI来绘制顾客的行动路径。MOT 算法会生成客流热力图,帮助管理者优化店内布局,并在高峰时段改进队列管理。
- **体育分析:**职业球队使用 MOT 来分析球员移动和球队阵型。通过跟踪场上的每名球员,教练可以使用姿态估计技术提取速度、跑动距离和战术位置等详细指标。
使用 Python 实现 MOT#
Ultralytics 让使用先进模型实现跟踪变得十分简单。track() 方法无缝集成检测和跟踪逻辑,并支持 ByteTrack 和 BoT-SORT 等算法。下面的示例演示了如何使用推荐的 YOLO26 模型跟踪视频中的车辆。
from ultralytics import YOLO
# Load the official YOLO26 small model
model = YOLO("yolo26s.pt")
# Track objects in a video file (or use '0' for webcam)
# The 'persist=True' argument keeps track IDs consistent between frames
results = model.track(source="traffic_analysis.mp4", show=True, persist=True)
# Print the IDs of objects tracked in the first frame
if results[0].boxes.id is not None:
print(f"Tracked IDs: {results[0].boxes.id.int().tolist()}")多目标跟踪面临的挑战#
尽管取得了诸多进展,MOT 仍然是一个充满挑战的领域。遮挡是主要难点之一;当对象交叉而过或隐藏在障碍物后面时,维持其身份十分复杂。拥挤场景(例如繁忙的马拉松比赛或鸟群)考验着数据关联算法的极限。此外,在处理高分辨率视频流的同时保持实时推理速度,需要高效的模型架构,并且通常还需要 NVIDIA Jetson 设备等专用硬件。
为应对这些挑战,研究人员正在探索端到端深度学习方法,将检测和跟踪统一到单个网络中,同时利用 Ultralytics Platform 标注具有挑战性的数据集,并训练稳健的自定义模型。









