Ultralytics YOLO27:
Get Started

TrackZone mit Ultralytics YOLO26#

Was ist TrackZone?#

Open TrackZone In Colab

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#

LandwirtschaftTransport
Pflanzen auf einem Feld mit Ultralytics YOLO26 verfolgenFahrzeuge auf einer Straße mit Ultralytics YOLO26 verfolgen
Pflanzen auf einem Feld mit Ultralytics YOLO26 verfolgenFahrzeuge auf einer Straße mit Ultralytics YOLO26 verfolgen
TrackZone mit Ultralytics YOLO
# 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.

Die Verfolgungszone definieren
  • Jeder Eintrag in region ist 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=True während der Konfiguration aktiviert, damit du überprüfen kannst, ob die Einblendung zu deinem Bild passt.
  • TrackZone reduziert 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 region ganz 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:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics-YOLO-Modelldatei.
regionlist oder dictNonePunkte, 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_widthint2Linienstärke für die Boxen, Keypoints und Zählwerte, die von der Lösung eingezeichnet werden.
verboseboolTrueAktiviert 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:

ArgumentTypStandardBeschreibung
trackerstr'tracktrack.yaml'Legt den zu verwendenden Verfolgungsalgorithmus fest. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.25Legt den Konfidenzschwellenwert für Erkennungen fest. Niedrigere Werte ermöglichen die Verfolgung weiterer Objekte, können aber auch falsch positive Ergebnisse einschließen.
ioufloat0.7Legt den Schwellenwert für die Schnittmenge über Vereinigung (IoU) fest, um überlappende Erkennungen herauszufiltern.
classeslistNoneFiltert die Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneLegt 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.
imgszint or tuple640Zielbildgröß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_detint300Maximale 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.
quantizeint or strNoneInferenzgenauigkeit: 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:

ArgumentTypStandardBeschreibung
showboolFalseWenn 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_confboolTrueZeigt neben der Bezeichnung den Konfidenzwert jeder Erkennung an. Gibt Aufschluss darüber, wie sicher sich das Modell bei der jeweiligen Erkennung ist.
show_labelsboolTrueZeigt 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=True
  • Mit 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 TrackZone die 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ösungVerwendungszweckTypische Ausgabe
    TrackZoneObjekte verfolgen und die aktuelle Belegung innerhalb einer einzelnen konvexen Zone überwachenVerfolgte IDs und total_tracks für die Zone
    ObjectCounterObjekte zählen, die eine Linie überqueren oder einen Bereich betreten und verlassenKumulierte Ein- und Austrittszahlen
    RegionCounterObjekte innerhalb eines oder mehrerer beliebiger Bereiche zählen, auch wenn diese nicht konvex sindObjektzahlen 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.

Kommentare