Ultralytics YOLO27:

TrackZone mit Ultralytics YOLO26#

Was ist TrackZone?#

Open TrackZone In Colab

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#

LandwirtschaftVerkehr
Tracking von Pflanzen auf einem Feld mit Ultralytics YOLO26Tracking von Fahrzeugen auf einer Straße mit Ultralytics YOLO26
Tracking von Pflanzen auf einem Feld mit Ultralytics YOLO26Tracking von Fahrzeugen auf einer Straße mit Ultralytics YOLO26
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 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.

Tracking-Zone definieren
  • Jeder Eintrag in region ist 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=True während der Konfiguration aktiviert, damit du bestätigen kannst, dass die Einblendung zu deinem Bildausschnitt passt.
  • TrackZone reduziert 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 region vollstä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:

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

ArgumentTypStandardwertBeschreibung
trackerstr'botsort.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. 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 das Verfolgen weiterer Objekte, können aber Fehlalarme einschließen.
ioufloat0.7Legt den Schwellenwert für Intersection over Union (IoU) zum Filtern überlappender Erkennungen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Beispielsweise verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
devicestrNoneGibt 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.
imgszint or tuple640Ziel-Inferenzbildgröße: eine ganze Zahl für ein quadratisches Bild oder ein (height, width)-Paar. Die Formate werden an die Modellschrittweite angepasst.
max_detint300Maximale Anzahl pro Frame beibehaltener Detektionen vor dem Tracking, wodurch die Objekte begrenzt werden, die eine Solution in dichten Szenen verarbeitet.
quantizeint or strNoneInferenzprä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:

ArgumentTypStandardwertBeschreibung
showboolFalseWenn 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_confboolTrueZeigt neben dem Label den Konfidenzwert für jede Erkennung an. Dadurch erhältst du Einblick in die Sicherheit des Modells bei jeder Erkennung.
show_labelsboolTrueZeigt 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=True
  • Mit 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 TrackZone die 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ösungVerwende sie, umTypische Ausgabe
    TrackZoneObjekte zu verfolgen und die aktuelle Belegung innerhalb einer einzelnen konvexen Zone zu überwachenVerfolgte IDs und total_tracks für die Zone
    ObjectCounterObjekte zu zählen, die eine Linie überqueren oder einen Bereich betreten und verlassenKumulative Ein- und Austrittszählungen
    RegionCounterObjekte innerhalb eines oder mehrerer beliebiger Bereiche zu zählen, einschließlich nicht konvexer BereicheObjektzä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.

Kommentare