Object Tracking
了解目标跟踪在计算机视觉中的工作原理。探索如何使用 Ultralytics YOLO26 为目标分配唯一 ID 并进行监控,实现实时分析。
目标跟踪是计算机视觉(CV)中的动态过程,涉及识别视频中的特定实体,并监测它们在一系列帧中的移动。与将每个快照孤立处理的静态图像分析不同,跟踪引入了时间这一维度。这使人工智能(AI)系统能够为每个检测到的对象(例如汽车、人员或动物)分配唯一标识号(ID),并在对象移动、改变方向或暂时被遮挡时保持其身份。这项能力是高级视频理解的基石,使机器能够分析行为、计算轨迹,并从原始视频中提取可执行的洞察。
目标跟踪的工作原理#
现代跟踪系统通常采用“检测式跟踪”范式。这一工作流将强大的检测模型与专用算法相结合,以关联不同时刻的检测结果。该过程通常分为三个主要阶段:
-
**检测:**在每一帧中,诸如先进的 YOLO26 之类的目标检测模型会扫描图像,以定位感兴趣的对象。模型会输出用于定义每个对象空间范围的边界框。
-
运动预测:卡尔曼滤波器等算法会根据对象当前的速度和轨迹估计其未来位置。这一预测缩小了下一帧的搜索空间,使系统更加高效。
-
**数据关联:**系统使用匈牙利算法等优化方法,将新的检测结果与现有跟踪目标进行匹配。此步骤通常依赖交并比(IoU)等指标,来衡量预测框与新检测结果的重叠程度。高级跟踪器还可能使用视觉特征提取来重新识别外观相似的对象。
目标跟踪与目标检测#
虽然这些术语密切相关,但它们在机器学习(ML)流水线中承担着不同的功能。
- 目标检测回答的是:“这张图像中有什么,以及它在哪里?”它是无状态的,也就是说,它不会记住之前的帧。如果一辆汽车驶过视频,检测器会在第 1 帧看到一辆“汽车”,在第 2 帧看到一辆“汽车”,但不知道它们是同一辆车。
- 目标跟踪回答的是:“这个特定对象要去哪里?”它是有状态的。它会将第 1 帧中的“汽车”与第 2 帧中的“汽车”关联起来,使系统能够记录“汽车 ID #42”正在从左向右移动。这对于预测建模和计数等任务至关重要。
实际应用#
保持对象身份的能力使各行各业能够实现复杂的实时推理应用。
- **智能交通系统:**跟踪对于自动驾驶汽车安全导航至关重要。通过跟踪行人和其他车辆,汽车可以预测潜在碰撞。此外,交通工程师还使用这些系统进行速度估计,以执行安全法规并优化交通流量。
- **零售分析:**实体店使用零售领域的 AI来了解客户行为。跟踪使店铺管理者能够执行对象计数以衡量客流量,使用热力图分析顾客在展示区前的停留时间,并优化队列管理以减少等待时间。
- **体育分析:**在职业体育中,教练会将跟踪与姿态估计结合起来,分析运动员的生物力学和团队阵型。这些数据能够揭示肉眼无法发现的模式,从而提供竞争优势。
使用 Python 实现跟踪#
Ultralytics 让高性能跟踪的实现变得简单。库中的 track 模式会自动处理检测、运动预测和 ID 分配。下面的示例展示了如何使用兼容 Ultralytics 平台的 YOLO26 模型跟踪视频中的对象。
from ultralytics import YOLO
# Load the official YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Track objects in a video file or webcam (source=0)
# 'show=True' displays the video with bounding boxes and unique IDs
results = model.track(source="https://ultralytics.com/images/bus.jpg", show=True)
# Access the unique tracking IDs from the results
if results[0].boxes.id is not None:
print(f"Detected Track IDs: {results[0].boxes.id.cpu().numpy()}")相关概念#
要全面了解跟踪生态,深入探索实例分割会很有帮助;实例分割跟踪的是对象在像素级的精确轮廓,而不仅仅是一个框。此外,多目标跟踪(MOT)挑战通常会使用 MOTChallenge 等广泛应用的基准,评估算法处理拥挤场景和遮挡的能力。在生产环境中部署时,开发者通常会使用 NVIDIA DeepStream 或 OpenCV 等工具,将这些模型集成到高效的流水线中。









