多目标跟踪数据集概览#
多目标跟踪是视频分析中的关键组成部分,可识别对象并在视频帧之间为每个检测到的对象维持唯一 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
# 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)阈值。有关更多详细信息,请参阅跟踪模式文档。可以。在自定义数据集上训练检测、分割、姿态或 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")