TrackZone mit Ultralytics YOLO26#
Was ist TrackZone?#
TrackZone ist auf die Überwachung von Objekten innerhalb festgelegter Bereiche eines Bildausschnitts statt des gesamten Bildausschnitts spezialisiert. Auf Basis von Ultralytics YOLO26 kombiniert es Objekterkennung und Tracking gezielt innerhalb von Zonen für Videos und Live-Kamerabilder. Die fortschrittlichen Algorithmen und Deep-Learning-Technologien von YOLO26 machen die Lösung zur idealen Wahl für Echtzeitanwendungen und ermöglichen präzises und effizientes Objekt-Tracking in Anwendungen wie der Überwachung von Menschenmengen und Sicherheitsüberwachung.
Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀
Vorteile des Objekt-Trackings in Zonen (TrackZone)#
- Gezielte Analyse: Das Tracking von Objekten innerhalb bestimmter Zonen ermöglicht fokussiertere Erkenntnisse und eine präzise Überwachung und Analyse relevanter Bereiche, beispielsweise von Eingängen oder Sperrzonen.
- Geringerer nachgelagerter Arbeitsaufwand: Indem Objekte außerhalb der Zone ignoriert werden, entfernt TrackZone irrelevante Erkennungen. Dadurch müssen in der darauf aufbauenden Logik weniger Objekte gezählt, protokolliert oder für Alarme berücksichtigt werden. Die Erkennung läuft weiterhin auf einem maskierten Bild in voller Größe und nicht auf einem eng zugeschnittenen Bild der Zone. Der Vorteil besteht daher in einer übersichtlicheren und fokussierteren Ausgabe und nicht in einer schnelleren Modellinferenz.
- Erhöhte Sicherheit: Das Tracking in Zonen verbessert die Überwachung kritischer Bereiche und unterstützt die frühzeitige Erkennung ungewöhnlicher Aktivitäten oder Sicherheitsverletzungen.
- Skalierbare Lösungen: Die Möglichkeit, sich auf bestimmte Zonen zu konzentrieren, macht TrackZone für verschiedene Szenarien anpassbar – von Einzelhandelsflächen bis hin zu industriellen Umgebungen – und gewährleistet eine nahtlose Integration und Skalierbarkeit.
Anwendungen in der Praxis#
| Landwirtschaft | Verkehr |
|---|---|
![]() | ![]() |
| Tracking von Pflanzen auf einem Feld mit Ultralytics YOLO26 | Tracking von Fahrzeugen auf einer Straße mit Ultralytics YOLO26 |
# Run a trackzone example
yolo solutions trackzone show=True
# Pass a source video
yolo solutions trackzone source="path/to/video.mp4" show=True
# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"TrackZone verwendet die Liste region, um zu bestimmen, welcher Teil des Bildausschnitts überwacht werden soll. Definiere das Polygon passend zu der physischen Zone, die dich interessiert (Türen, Tore usw.), und lasse show=True während der Konfiguration aktiviert, damit du überprüfen kannst, ob die Einblendung mit dem Videobild übereinstimmt.
- Jeder Eintrag in
regionist eine(x, y)-Pixelkoordinate im Videobild. Liste die Punkte in der Reihenfolge auf, in der sie entlang des Umfangs des zu überwachenden Bereichs verbunden werden sollen. - Die Koordinaten beziehen sich auf die Auflösung des Bildausschnitts. Daher passt ein für ein 1280×720-Bild ausgelegter Bereich nicht zu einem Bild mit 640×480. Lass
show=Truewährend der Konfiguration aktiviert, damit du bestätigen kannst, dass die Einblendung zu deinem Bildausschnitt passt. TrackZonereduziert die Punkte auf ihre konvexe Hülle. Dadurch wird eine konkave Form auf das kleinste konvexe Polygon vereinfacht, das alle ihre Punkte enthält. Verwende für nicht konvexe Formen oder mehrere getrennte Bereiche stattdessen die Lösung RegionCounter.- Wenn du
regionvollständig weglässt, wird eine Standardzone von[(75, 75), (565, 75), (565, 285), (75, 285)]verwendet.
Argumente von TrackZone#
Hier ist eine Tabelle mit den Argumenten von TrackZone:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer YOLO-Modell-Datei von Ultralytics. |
region | list oder dict | None | Punkte zur Definition des Interessenbereichs: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das Bereichsnamen Punktelisten für mehrere Bereiche zuordnet (nur RegionCounter). Wenn None, greifen Lösungen, die einen Bereich benötigen, auf einen vordefinierten Standardwert zurück. |
line_width | int | 2 | Linienstärke für die von der Lösung gezeichneten Boxen, Keypoints und Zählwerte. |
verbose | bool | True | Aktiviert das Protokoll der Lösung pro Frame mit Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit. Der Tracking-Aufruf selbst bleibt immer ohne Ausgabe. |
Die TrackZone-Lösung unterstützt die Parameter von track:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
tracker | str | 'botsort.yaml' | Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml. |
conf | float | 0.25 | Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest. |
classes | list | None | Filtert Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht die Auswahl zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung. |
imgsz | int or tuple | 640 | Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst. |
max_det | int | 300 | Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzpräzision: 16 (FP16) oder 32/nicht gesetzt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate berechnen mit der Präzision, die ihr Artefakt und ihre Laufzeit auswählen. Ersetzt das veraltete half-Flag. |
Darüber hinaus stehen die folgenden Visualisierungsoptionen zur Verfügung:
| Argument | Typ | Standardwert | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Dies ist nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens. |
show_conf | bool | True | Zeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung. |
show_labels | bool | True | Zeigt Labels für jede Erkennung in der visuellen Ausgabe an. Dies ermöglicht ein unmittelbares Verständnis der erkannten Objekte. |
Objekte innerhalb der Zone zählen#
Jeder Aufruf des Trackers gibt ein SolutionResults-Objekt zurück, dessen Attribut total_tracks die Anzahl der aktuell innerhalb der Zone verfolgten Objekte enthält. Lies den Wert für jedes Bild aus, um die aktuelle Belegung zu überwachen, beispielsweise um zu protokollieren, wie stark ein Eingang oder ein Sperrbereich frequentiert ist:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]
trackzone = solutions.TrackZone(show=False, region=region_points, model="yolo26n.pt")
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = trackzone(im0)
print(f"Objects currently in zone: {results.total_tracks}") # live zone occupancy
cap.release()FAQ#
Das Tracking von Objekten in einem definierten Bereich oder einer Zone eines Videobilds ist mit Ultralytics YOLO26 unkompliziert. Verwende einfach den folgenden Befehl, um das Tracking zu starten. Dieser Ansatz gewährleistet eine effiziente Analyse und präzise Ergebnisse und eignet sich daher ideal für Anwendungen wie Überwachung, Menschenmengenmanagement oder jedes Szenario, das Tracking in Zonen erfordert.
yolo solutions trackzone source="path/to/video.mp4" show=TrueMit nur wenigen Codezeilen kannst du das Objekt-Tracking in bestimmten Zonen einrichten und so einfach in deine Projekte integrieren.
import cv2 from ultralytics import solutions cap = cv2.VideoCapture("path/to/video.mp4") assert cap.isOpened(), "Error reading video file" w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS)) video_writer = cv2.VideoWriter("trackzone_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h)) trackzone = solutions.TrackZone( show=True, region=[(150, 150), (1130, 150), (1130, 570), (150, 570)], model="yolo26n.pt" ) while cap.isOpened(): success, im0 = cap.read() if not success: break results = trackzone(im0) video_writer.write(results.plot_im) cap.release() video_writer.release() cv2.destroyAllWindows()Die Konfiguration von Zonenpunkten für die Videoverarbeitung mit Ultralytics TrackZone ist einfach und flexibel. Du kannst die Zonen direkt über ein Python-Skript definieren und anpassen und so die zu überwachenden Bereiche präzise festlegen.
# Define region points region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)] # Initialize trackzone trackzone = solutions.TrackZone( show=True, # display the output region=region_points, # pass region points )Denke daran, dass
TrackZonedie Punkte auf ihre konvexe Hülle reduziert. Liste sie daher in der Reihenfolge entlang des Umfangs des zu überwachenden Bereichs auf.Alle drei Lösungen arbeiten mit Bereichen, beantworten jedoch unterschiedliche Fragen:
Lösung Verwende sie, um Typische Ausgabe TrackZone Objekte zu verfolgen und die aktuelle Belegung innerhalb einer einzelnen konvexen Zone zu überwachen Verfolgte IDs und total_tracksfür die ZoneObjectCounter Objekte zu zählen, die eine Linie überqueren oder einen Bereich betreten und verlassen Kumulative Ein- und Austrittszählungen RegionCounter Objekte innerhalb eines oder mehrerer beliebiger Bereiche zu zählen, einschließlich nicht konvexer Bereiche Objektzählungen pro Bereich Wähle TrackZone, wenn du kontinuierliches Tracking innerhalb eines Bereichs benötigst, und RegionCounter, wenn du mehrere Zonen oder eine nicht konvexe Form brauchst.

