Link to this section多目标跟踪数据集概览#
多目标跟踪是视频分析中的关键组件,用于识别物体并在视频帧中为每个检测到的物体维护唯一的 ID。Ultralytics YOLO 提供了强大的跟踪功能,可应用于视频监控、体育分析和交通监控等各种领域。
Link to this section数据集格式(即将推出)#
Ultralytics 跟踪目前复用检测、分割或姿态模型,无需进行特定于跟踪器的训练。原生跟踪器训练支持正在积极开发中。
Link to this section可用跟踪器#
Ultralytics YOLO 支持以下跟踪算法:
- BoT-SORT - 使用
botsort.yaml启用此跟踪器(默认) - ByteTrack - 使用
bytetrack.yaml启用此跟踪器 - OC-SORT - 使用
ocsort.yaml启用此跟踪器 - Deep OC-SORT - 使用
deepocsort.yaml启用此跟踪器 - FastTracker - 使用
fasttrack.yaml启用此跟踪器 - TrackTrack - 使用
tracktrack.yaml启用此跟踪器
Link to this section用法#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)Link to this section在帧之间持久化跟踪#
若要在视频帧间进行持续跟踪,你可以使用 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()Link to this section常见问题解答#
Link to this section如何使用 Ultralytics YOLO 进行多目标跟踪?#
要使用 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) 和 Intersection over Union (iou) 阈值。更多详细信息,请参阅 跟踪模式文档。
Link to this sectionUltralytics 中针对跟踪器训练的未来功能是什么?#
Ultralytics 正在不断增强其 AI 模型。一项即将推出的功能将支持训练独立跟踪器。在此之前,多目标检测器利用预训练的检测、分割或姿态模型进行跟踪,而无需独立训练。请关注我们的 博客 以获取最新动态。
Link to this section为什么我应该使用 Ultralytics YOLO 进行多目标跟踪?#
Ultralytics YOLO 是一种先进的 object detection 模型,以其实时性能和高 accuracy 而闻名。使用 YOLO 进行多目标跟踪具有以下优势:
- 实时跟踪: 实现高效且高速的跟踪,非常适合动态环境。
- 预训练模型的灵活性: 无需从头开始训练;只需使用预训练的检测、分割或姿态模型即可。
- 易于使用: 通过 Python 和 CLI 实现简单的 API 集成,使设置跟踪流水线变得非常直观。
- 丰富的文档和社区支持: Ultralytics 提供全面的文档和一个活跃的社区论坛,用于解决问题并增强你的跟踪模型。
有关设置和使用 YOLO 进行跟踪的更多详细信息,请访问我们的 跟踪使用指南。
Link to this section我可以使用自定义数据集进行 Ultralytics YOLO 的多目标跟踪吗?#
是的,你可以使用自定义数据集进行 Ultralytics YOLO 的多目标跟踪。虽然支持独立跟踪器训练是一项即将推出的功能,但你现在已经在自定义数据集上使用预训练模型了。请按 YOLO 兼容的适当格式准备你的数据集,并按照文档进行集成。
Link to this section如何解读 Ultralytics YOLO 跟踪模型的结果?#
运行 Ultralytics YOLO 跟踪任务后,结果包含各种数据点,例如跟踪物体的 ID、它们的边界框以及置信度分数。以下是解读这些结果的简要概述:
- 跟踪 ID: 每个物体都会被分配一个唯一 ID,这有助于在不同帧之间对其进行跟踪。
- 边界框: 它们指示了跟踪物体在帧中的位置。
- 置信度分数: 它们反映了模型对检测到的跟踪物体的置信度。
有关解读和可视化这些结果的详细指南,请参阅 结果处理指南。
Link to this section我该如何自定义跟踪器配置?#
你可以通过创建跟踪器配置文件的修改版本来定制跟踪器。从 ultralytics/cfg/trackers 复制一个现有的跟踪器配置文件,根据需要修改参数,并在运行跟踪器时指定此文件:
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.track(source="video.mp4", tracker="custom_tracker.yaml")