Übersicht über Datensätze zur Verfolgung mehrerer Objekte#
Die Verfolgung mehrerer Objekte ist ein wesentlicher Bestandteil der Videoanalyse. Dabei werden Objekte identifiziert und für jedes erkannte Objekt über mehrere Videobilder hinweg eindeutige IDs beibehalten. Ultralytics YOLO bietet leistungsstarke Funktionen zur Objektverfolgung, die in verschiedenen Bereichen wie Überwachung, Sportanalyse und Verkehrsüberwachung eingesetzt werden können.
Datensatzformat#
Der Verfolgungsmodus trainiert keinen Verfolger und erfordert keinen speziellen Datensatz für die Objektverfolgung. Trainiere ein Modell für Erkennung, Segmentierung, Pose oder OBB mit dem Standardformat des jeweiligen Datensatzes und verwende anschließend die resultierenden Gewichte mit model.track() oder yolo track. Der ausgewählte Verfolger ordnet die Vorhersagen des Modells während der Inferenz über mehrere Videobilder hinweg einander zu.
Verfügbare Verfolger#
Ultralytics YOLO unterstützt die folgenden Algorithmen zur Objektverfolgung:
- BoT-SORT – Verwende
botsort.yaml, um diesen Verfolger zu aktivieren - ByteTrack – Verwende
bytetrack.yaml, um diesen Verfolger zu aktivieren - OC-SORT – Verwende
ocsort.yaml, um diesen Verfolger zu aktivieren - Deep OC-SORT – Verwende
deepocsort.yaml, um diesen Verfolger zu aktivieren - FastTracker – Verwende
fasttrack.yaml, um diesen Verfolger zu aktivieren - TrackTrack – Verwende
tracktrack.yaml, um diesen Verfolger zu aktivieren (Standard)
Verwendung#
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
results = model.track(source="https://youtu.be/LNwODJXcvt4", conf=0.1, iou=0.7, show=True)Verfolgungen zwischen Videobildern beibehalten#
Für eine kontinuierliche Verfolgung über mehrere Videobilder hinweg kannst du den Parameter persist=True verwenden:
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()FAQ#
Um die Verfolgung mehrerer Objekte mit Ultralytics YOLO zu verwenden, kannst du zunächst die bereitgestellten Beispiele für Python oder CLI nutzen. So kannst du beginnen:
Beispielfrom 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)Diese Befehle laden das YOLO26-Modell und verwenden es zur Verfolgung von Objekten in der angegebenen Videoquelle mit bestimmten Schwellenwerten für die Konfidenz (
conf) und Intersection over Union (iou). Weitere Informationen findest du in der Dokumentation zum Verfolgungsmodus.Ultralytics YOLO ist ein modernes Modell zur Objekterkennung, das für seine Echtzeitleistung und hohe Genauigkeit bekannt ist. Die Verwendung von YOLO zur Verfolgung mehrerer Objekte bietet mehrere Vorteile:
- Echtzeitverfolgung: Ermöglicht eine effiziente und schnelle Verfolgung, die sich ideal für dynamische Umgebungen eignet.
- Flexibilität mit vortrainierten Modellen: Du musst nicht von Grund auf trainieren, sondern kannst einfach vortrainierte Modelle für Erkennung, Segmentierung, Pose oder OBB verwenden.
- Benutzerfreundlichkeit: Die einfache API-Integration mit Python und CLI erleichtert die Einrichtung von Verfolgungspipelines.
- Umfassende Dokumentation und Unterstützung durch die Community: Ultralytics stellt eine umfassende Dokumentation und ein aktives Community-Forum bereit, um Probleme zu beheben und deine Modelle zur Objektverfolgung zu verbessern.
Weitere Informationen zur Einrichtung und Verwendung von YOLO zur Objektverfolgung findest du in unserem Leitfaden zur Verwendung des Verfolgungsmodus.
Ja. Trainiere ein Modell für Erkennung, Segmentierung, Pose oder OBB mit deinem eigenen Datensatz und übergib anschließend dessen Gewichte an
model.track(). Der Verfolger selbst wird während der Inferenz ausgeführt und benötigt keine separaten Trainingsdaten.Nach der Ausführung eines Verfolgungsvorgangs mit Ultralytics YOLO enthalten die Ergebnisse verschiedene Datenpunkte, etwa IDs der verfolgten Objekte, deren Begrenzungsrahmen und die Konfidenzwerte. Hier ist eine kurze Übersicht zur Interpretation dieser Ergebnisse:
- IDs der verfolgten Objekte: Jedem Objekt wird eine eindeutige ID zugewiesen, die dabei hilft, es über mehrere Videobilder hinweg zu verfolgen.
- Begrenzungsrahmen: Sie zeigen die Position der verfolgten Objekte innerhalb des Videobilds an.
- Konfidenzwerte: Sie geben an, wie sicher sich das Modell bei der Erkennung des verfolgten Objekts ist.
Eine ausführliche Anleitung zur Interpretation und Visualisierung dieser Ergebnisse findest du im Leitfaden zur Ergebnisverarbeitung.
Du kannst den Verfolger anpassen, indem du eine geänderte Version der Konfigurationsdatei erstellst. Kopiere eine vorhandene Konfigurationsdatei für den Verfolger aus ultralytics/cfg/trackers, ändere die Parameter nach Bedarf und gib diese Datei bei der Ausführung des Verfolgers an:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.track(source="video.mp4", tracker="custom_tracker.yaml")