YOLO Vision 2026:

多目标跟踪数据集概览#

多目标跟踪是视频分析中的关键组件,用于识别物体并在视频帧中为每个检测到的物体维护唯一的 ID。Ultralytics YOLO 提供了强大的跟踪功能,可应用于视频监控、体育分析和交通监控等各种领域。

数据集格式#

Track 模式不会训练跟踪器,也不需要跟踪器专用的数据集。请使用该任务的标准数据集格式训练一个检测、分割、姿态或 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

# Load the YOLO model
model = YOLO("yolo26n.pt")

# Open the video file
cap = cv2.VideoCapture("path/to/video.mp4")

while cap.isOpened():
    success, frame = cap.read()
    if success:
        # Run tracking with persistence between frames
        results = model.track(frame, persist=True)

        # Visualize the results
        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")  # Load the YOLO26 model
    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")

评论