TrackZone mit Ultralytics YOLO26#
Was ist TrackZone?#
TrackZone ist darauf spezialisiert, Objekte in festgelegten Bereichen eines Frames statt im gesamten Frame zu überwachen. TrackZone basiert auf Ultralytics YOLO26 und kombiniert Objekterkennung und Objektverfolgung gezielt innerhalb von Zonen in Videos und Live-Kamerabildern. Die fortschrittlichen Algorithmen und Deep-Learning-Technologien von YOLO26 machen TrackZone zur idealen Wahl für Anwendungen in Echtzeit. TrackZone ermöglicht eine präzise und effiziente Objektverfolgung, etwa bei der Überwachung von Menschenmengen und der Videoüberwachung.
Ansehen: So verfolgst du Objekte in einem Bereich mit Ultralytics YOLO26 | TrackZone 🚀
Vorteile der Objektverfolgung in Zonen (TrackZone)#
- Gezielte Analyse: Wenn du Objekte in bestimmten Zonen verfolgst, erhältst du gezieltere Erkenntnisse und kannst interessante Bereiche wie Eingänge oder Sperrzonen präzise überwachen und analysieren.
- Weniger nachgelagerter Arbeitsaufwand: Indem TrackZone Objekte außerhalb der Zone ignoriert, entfernt TrackZone irrelevante Erkennungen. Dadurch gibt es weniger Objekte, die du in der darauf aufbauenden Logik zählen, protokollieren oder für die du Warnmeldungen auslösen musst. Die Erkennung erfolgt weiterhin auf einem maskierten Frame in voller Größe und nicht auf einem eng zugeschnittenen Zonenausschnitt. Der Vorteil liegt also in einer übersichtlicheren, gezielteren Ausgabe und nicht in einer schnelleren Modellinferenz.
- Mehr Sicherheit: Die Verfolgung in Zonen verbessert die Überwachung kritischer Bereiche und hilft, ungewöhnliche Aktivitäten oder Sicherheitsverstöße frühzeitig zu erkennen.
- Skalierbare Lösungen: Da sich TrackZone auf bestimmte Zonen konzentrieren kann, lässt sich TrackZone an verschiedenste Szenarien anpassen – von Einzelhandelsflächen bis hin zu Industrieanlagen. So sind eine nahtlose Integration und Skalierbarkeit gewährleistet.
Anwendungen in der Praxis#
| Landwirtschaft | Transport |
|---|---|
![]() | ![]() |
| Pflanzen auf einem Feld mit Ultralytics YOLO26 verfolgen | Fahrzeuge auf einer Straße mit Ultralytics YOLO26 verfolgen |
# 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 festzustellen, welcher Teil des Frames überwacht werden soll. Definiere das Polygon passend zur 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 Videoframe. Liste die Punkte in der Reihenfolge auf, in der sie entlang des Umfangs des zu überwachenden Bereichs verbunden werden sollen. - Die Koordinaten sind an die Frame-Auflösung gebunden. Ein für ein 1280×720-Bild ausgelegter Bereich passt daher nicht zu einem 640×480-Bild. Lasse
show=Truewährend der Konfiguration aktiviert, damit du überprüfen kannst, ob die Einblendung zu deinem Bild passt. TrackZonereduziert die Punkte auf ihre konvexe Hülle. Eine konkave Form wird dadurch auf das kleinste konvexe Polygon vereinfacht, das alle Punkte enthält. Für nichtkonvexe Formen oder mehrere getrennte Bereiche verwendest du stattdessen die Lösung RegionCounter.- Wenn du
regionganz weglässt, wird standardmäßig eine Zone mit[(75, 75), (565, 75), (565, 285), (75, 285)]verwendet.
Argumente für TrackZone#
Hier ist eine Tabelle mit den Argumenten für TrackZone:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
model | str | None | Pfad zu einer Ultralytics-YOLO-Modelldatei. |
region | list oder dict | None | Punkte, die den Interessenbereich festlegen: entweder eine Liste von (x, y)-Tupeln oder ein Wörterbuch, das bei mehreren Bereichen deren Namen den jeweiligen Punktelisten zuordnet (nur RegionCounter). Bei None verwenden Lösungen, die einen Bereich benötigen, einen vordefinierten Standardbereich. |
line_width | int | 2 | Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden. |
verbose | bool | True | Aktiviert das Protokoll der Lösung für jedes Bild, das Eingabeform, Klassenanzahlen und Verarbeitungsgeschwindigkeit enthält. Der Tracking-Aufruf selbst gibt grundsätzlich keine Meldungen aus. |
Die TrackZone-Lösung unterstützt die folgenden Parameter für track:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
tracker | str | 'tracktrack.yaml' | Legt den zu verwendenden Verfolgungsalgorithmus fest. 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 die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen. |
iou | float | 0.7 | Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern. |
classes | list | None | Filtert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen. |
device | str | None | Legt das Gerät für die Inferenz fest (z. B. cpu, cuda:0 oder 0). So kannst du für die Modellausführung zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten wählen. |
imgsz | int or tuple | 640 | Zielbildgröße für die Inferenz: eine Ganzzahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formen werden an den Modellschritt angepasst. |
max_det | int | 300 | Maximale Anzahl der Erkennungen, die pro Bild vor der Verfolgung beibehalten werden. Dadurch wird die Anzahl der Objekte begrenzt, die eine Lösung in dichten Szenen verarbeitet. |
quantize | int or str | None | Inferenzgenauigkeit: 16 (FP16) oder 32/nicht festgelegt (FP32) für PyTorch- und TorchScript-Modelle; andere Formate verwenden die Genauigkeit, die durch ihr Artefakt und ihre Laufzeitumgebung festgelegt wird. Ersetzt das veraltete Flag half. |
Außerdem stehen die folgenden Visualisierungsoptionen zur Verfügung:
| Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
show | bool | False | Wenn True aktiviert ist, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder beim Testen. |
show_conf | bool | True | Zeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist. |
show_labels | bool | True | Zeigt für jede Erkennung eine Bezeichnung in der visuellen Ausgabe an. So lassen sich erkannte Objekte sofort erkennen. |
Objekte innerhalb der Zone zählen#
Jeder Aufruf des Trackers gibt ein Objekt vom Typ SolutionResults zurück. Dessen Attribut total_tracks enthält die Anzahl der Objekte, die derzeit innerhalb der Zone verfolgt werden. Lies den Wert bei jedem Frame aus, um die aktuelle Belegung zu überwachen – du kannst beispielsweise 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()Häufig gestellte Fragen#
Mit Ultralytics YOLO26 lassen sich Objekte einfach in einem definierten Bereich oder einer Zone eines Videoframes verfolgen. Führe einfach den unten angegebenen Befehl aus, um die Verfolgung zu starten. Dieser Ansatz ermöglicht eine effiziente Analyse und genaue Ergebnisse und eignet sich daher ideal für Anwendungen wie Videoüberwachung, Menschenmengenmanagement oder andere Szenarien, in denen eine Verfolgung in Zonen erforderlich ist.
yolo solutions trackzone source="path/to/video.mp4" show=TrueMit nur wenigen Codezeilen kannst du die Objektverfolgung in bestimmten Zonen einrichten und 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 Zonenpunkte für die Videoverarbeitung mit Ultralytics TrackZone lassen sich einfach und flexibel konfigurieren. Du kannst die Zonen direkt in einem Python-Skript festlegen und anpassen und so genau steuern, welche Bereiche überwacht werden sollen.
from ultralytics import solutions # Punkte des Bereichs definieren region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)] # TrackZone initialisieren trackzone = solutions.TrackZone( show=True, # # Ausgabe anzeigen region=region_points, # # Punkte des Bereichs übergeben )Denke daran, dass
TrackZonedie Punkte auf ihre konvexe Hülle reduziert. Eine konkave Kontur wird dadurch auf das kleinste konvexe Polygon vereinfacht, das alle Punkte enthält.Alle drei Lösungen arbeiten mit Bereichen, beantworten aber unterschiedliche Fragen:
Lösung Verwendungszweck Typische Ausgabe TrackZone Objekte verfolgen und die aktuelle Belegung innerhalb einer einzelnen konvexen Zone überwachen Verfolgte IDs und total_tracksfür die ZoneObjectCounter Objekte zählen, die eine Linie überqueren oder einen Bereich betreten und verlassen Kumulierte Ein- und Austrittszahlen RegionCounter Objekte innerhalb eines oder mehrerer beliebiger Bereiche zählen, auch wenn diese nicht konvex sind Objektzahlen pro Bereich Wähle TrackZone, wenn du Objekte fortlaufend innerhalb eines einzelnen Bereichs verfolgen möchtest, und RegionCounter, wenn du mehrere Zonen oder eine nichtkonvexe Form benötigst.

