Ultralytics YOLO27:
Get Started

多目标跟踪数据集概览#

多目标跟踪是视频分析的重要组成部分,它能够识别目标,并在视频帧之间为每个检测到的目标维护唯一 ID。Ultralytics YOLO 提供强大的跟踪能力,可用于监控、体育分析和交通监测等多个领域。

数据集格式#

跟踪模式不会训练跟踪器,也不需要专门针对跟踪器的数据集。使用该任务的标准数据集格式训练检测、分割、姿势或 OBB 模型,然后通过 model.track() 或 yolo track 使用生成的权重。所选跟踪器会在推理时关联模型在不同帧中的预测结果。

可用的跟踪器#

Ultralytics YOLO 支持以下跟踪算法:

  • BoT-SORT - 使用 botsort.yaml 启用此跟踪器
  • ByteTrack - 使用 bytetrack.yaml 启用此跟踪器
  • OC-SORT - 使用 ocsort.yaml 启用此跟踪器
  • Deep OC-SORT - 使用 deepocsort.yaml 启用此跟踪器
  • FastTracker - 使用 fasttrack.yaml 启用此跟踪器
  • TrackTrack - 使用 tracktrack.yaml 启用此跟踪器(默认)

用法#

示例
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

在帧之间持续跟踪#

要在视频帧之间持续跟踪,可以使用 persist=True 参数:

示例
import cv2

from ultralytics import YOLO

# 加载 YOLO 模型
model = YOLO("yolo26n.pt")

# 打开视频文件
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # 在帧之间持续跟踪
        results = model.track(frame, persist=True)

        # 可视化结果
        annotated_frame = results[0].plot()
        cv2.imshow("Tracking", annotated_frame)

        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
    else:
        break

cap.release()
cv2.destroyAllWindows()

常见问题#

  • 要使用 Ultralytics YOLO 进行多目标跟踪,可以先参考提供的 Python 或 CLI 示例。下面介绍如何开始:

    示例
    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")  # 加载 YOLO26 模型
    results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)

    这些命令会加载 YOLO26 模型,并使用该模型跟踪给定视频源中的目标,同时设置特定的置信度(conf)和交并比(iou)阈值。更多详情请参阅跟踪模式文档。

  • Ultralytics YOLO 是一种先进的目标检测模型,以实时性能和高准确率著称。使用 YOLO 进行多目标跟踪有以下优势:

    • 实时跟踪:实现高效、高速的跟踪,非常适合动态环境。
    • 灵活使用预训练模型:无需从头开始训练;直接使用预训练的检测、分割、姿势或 OBB 模型即可。
    • 易于使用:通过 Python 和 CLI 进行简单的 API 集成,让你能够轻松搭建跟踪流程。
    • 完善的文档和社区支持:Ultralytics 提供全面的文档和活跃的社区论坛,帮助你排查问题并改进跟踪模型。

    如需了解如何设置和使用 YOLO 进行跟踪,请参阅我们的跟踪使用指南。

  • 可以。使用自定义数据集训练检测、分割、姿势或 OBB 模型,然后将模型权重传递给 model.track()。跟踪器会在推理过程中运行,不需要单独的训练数据。

  • 使用 Ultralytics YOLO 运行跟踪任务后,结果中会包含多个数据点,例如被跟踪目标的 ID、边界框和置信度分数。以下是这些结果的简要说明:

    • 跟踪 ID:系统会为每个目标分配唯一 ID,以便在不同帧中跟踪该目标。
    • 边界框:用于指示被跟踪目标在帧中的位置。
    • 置信度分数:反映模型对检测到被跟踪目标的置信程度。

    有关如何解读和可视化这些结果的详细指南,请参阅结果处理指南。

  • 你可以创建修改后的跟踪器配置文件来自定义跟踪器。从 ultralytics/cfg/trackers 复制现有的跟踪器配置文件,根据需要修改参数,然后在运行跟踪器时指定该文件:

    from ultralytics import YOLO
    
    model = YOLO("yolo26n.pt")
    results = model.track(source="video.mp4", tracker="custom_tracker.yaml")

评论