模板跟踪是一项任务,涉及识别模板的位置和类别,然后为视频流中的检测分配唯一ID。跟踪器的输出与添加了模板ID的检测相同。
YOLOv8加入了哪些检测器?
以下跟踪算法已经实现,可以通过 tracker=tracker_type.yaml
实现:
- BoT-SORT -
botsort.yaml
- ByteTrack -
bytetrack.yaml
默认跟踪器为:BoT-SORT
Tracking
将训练好的 YOLOv8n/YOLOv8n-seg model加入到不同的跟踪器之中里进行视频流的检测和跟踪。
示例1
代码语言:javascript复制from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load an official detection model
model = YOLO("yolov8n-seg.pt") # load an official segmentation model
model = YOLO("path/to/best.pt") # load a custom model
# Track with the model
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", show=True)
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", show=True, tracker="bytetrack.yaml")
命令行如下
代码语言:javascript复制yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc" # official detection model
yolo track model=yolov8n-seg.pt source=... # official segmentation model
yolo track model=path/to/best.pt source=... # custom model
yolo track model=path/to/best.pt tracker="bytetrack.yaml" # bytetrack tracker
与上述用法一样,YOLOv8支持用于跟踪的检测和分割模型,只需加载相应的(检测或分割)模型即可。
配置
跟踪
跟踪与预测共享配置,即“conf”、“iou”、“show”。更多配置请参考 predict page。
示例1
代码语言:javascript复制from ultralytics import YOLO
model = YOLO("yolov8n.pt")
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", conf=0.3, iou=0.5, show=True)
命令行如下
代码语言:javascript复制yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc" conf=0.3, iou=0.5 show
跟踪器
YOLOv8还支持使用修改的跟踪器配置文件,只需复制一个配置文件即可,比如复制 custom_tracker.yaml
ultralytics/tracker/cfg并修改配置(比如 tracker_type
)。
示例2
代码语言:javascript复制from ultralytics import YOLO
model = YOLO("yolov8n.pt")
results = model.track(source="https://youtu.be/Zgi9g1ksQHc", tracker='custom_tracker.yaml')
命令行如下
代码语言:javascript复制yolo track model=yolov8n.pt source="https://youtu.be/Zgi9g1ksQHc" tracker='custom_tracker.yaml'
具体可以参考ultralytics/tracker/cfg。
参考
[1].https://github.com/ultralytics/ultralytics.