YOLO Vision 2026:

TrackZone mit Ultralytics YOLO26#

Was ist TrackZone?#

Open TrackZone In Colab

TrackZone ist darauf spezialisiert, Objekte in bestimmten Bereichen eines Bildes anstelle des gesamten Bildes zu überwachen. Auf Basis von Ultralytics YOLO26 integriert es Objekterkennung und Tracking gezielt innerhalb von Zonen für Videos und Live-Kamera-Feeds. Die fortschrittlichen Algorithmen und Deep Learning-Technologien von YOLO26 machen es zu einer perfekten Wahl für Echtzeitanwendungen und bieten ein präzises und effizientes Objekt-Tracking in Anwendungen wie Menschenmengenüberwachung und Surveillance.



Watch: How to Track Objects in Region using Ultralytics YOLO26 | TrackZone 🚀

Vorteile der Objektverfolgung in Zonen (TrackZone)#

  • Gezielte Analyse: Das Verfolgen von Objekten innerhalb spezifischer Zonen ermöglicht fokussiertere Erkenntnisse und erlaubt eine präzise Überwachung und Analyse von Interessenbereichen, wie z. B. Eingangspunkten oder gesperrten Zonen.
  • Reduzierte Downstream-Arbeitslast: Indem Objekte außerhalb der Zone ignoriert werden, eliminiert TrackZone irrelevante Erkennungen, sodass weniger Objekte gezählt, protokolliert oder in der Logik, die du darauf aufbaust, ausgewertet werden müssen. Die Erkennung läuft weiterhin auf dem maskierten Vollbild-Frame statt auf einem engen Zuschnitt der Zone. Der Vorteil liegt also in einer saubereren, fokussierteren Ausgabe anstatt in einer schnelleren Modellinferenz.
  • Erhöhte Sicherheit: Zonenbasiertes Tracking verbessert die Überwachung durch die Kontrolle kritischer Bereiche und unterstützt bei der frühzeitigen Erkennung ungewöhnlicher Aktivitäten oder Sicherheitsverletzungen.
  • Skalierbare Lösungen: Die Möglichkeit, sich auf bestimmte Zonen zu konzentrieren, macht TrackZone anpassungsfähig an verschiedene Szenarien, vom Einzelhandel bis zu industriellen Umgebungen, und sorgt für nahtlose Integration und Skalierbarkeit.

Praxisanwendungen#

LandwirtschaftTransportwesen
Plants Tracking in Field Using Ultralytics YOLO26Vehicles Tracking on Road using Ultralytics YOLO26
Pflanzenverfolgung auf dem Feld mit Ultralytics YOLO26Fahrzeugverfolgung auf der 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 stützt sich auf die region-Liste, um zu wissen, welcher Teil des Bildes überwacht werden soll. Definiere das Polygon passend zu dem physischen Bereich, der dich interessiert (Türen, Tore usw.), und lasse show=True während der Konfiguration aktiviert, damit du überprüfen kannst, ob das Overlay mit dem Video-Feed übereinstimmt.

Definieren der Tracking-Zone
  • Jeder Eintrag in region ist eine (x, y)-Pixelkoordinate im Videobild. Liste die Punkte in der Reihenfolge auf, in der sie um den Umfang des zu überwachenden Bereichs herum verbunden werden sollen.
  • Koordinaten sind an die Bildauflösung gebunden, sodass eine für einen 1280×720-Feed dimensionierte Region nicht mit einer 640×480-Auflösung übereinstimmt. Behalte show=True während der Konfiguration bei, um zu bestätigen, dass das Overlay zu deinem Feed passt.
  • TrackZone reduziert die Punkte auf ihre konvexe Hülle, sodass eine konkave Form auf das kleinste konvexe Polygon vereinfacht wird, das alle ihre Punkte enthält. Verwende stattdessen die RegionCounter-Lösung für nicht-konvexe Formen oder mehrere separate Bereiche.
  • Wenn du region vollständig weglässt, wird eine Standardzone von [(75, 75), (565, 75), (565, 285), (75, 285)] verwendet.

TrackZone-Argumente#

Hier ist eine Tabelle mit den TrackZone-Argumenten:

ArgumentTypStandardBeschreibung
modelstrNonePfad zu einer Ultralytics YOLO-Modelldatei.
regionlist oder dictNonePunkte, die die Region von Interesse definieren – entweder eine Liste von (x, y)-Tupeln oder ein Dictionary, das Regionsnamen auf Punktlisten für mehrere Regionen abbildet (nur RegionCounter). Wenn None, greifen Lösungen, die eine Region erfordern, auf einen vordefinierten Standardwert zurück.

Die TrackZone-Lösung enthält Unterstützung für track-Parameter:

ArgumentTypStandardBeschreibung
trackerstr'tracktrack.yaml'Gibt den zu verwendenden Tracking-Algorithmus an. Integrierte Optionen: botsort.yaml, bytetrack.yaml, ocsort.yaml, deepocsort.yaml, fasttrack.yaml, tracktrack.yaml.
conffloat0.1Legt den Konfidenz-Schwellenwert für Detektionen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber zu falsch-positiven Ergebnissen führen.
ioufloat0.7Legt den Schwellenwert für die Intersection over Union (IoU) zum Filtern überlappender Detektionen fest.
classeslistNoneFiltert Ergebnisse nach Klassenindex. Zum Beispiel verfolgt classes=[0, 2, 3] nur die angegebenen Klassen.
verboseboolTrueSteuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
devicestrNoneGibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht Benutzern die Auswahl zwischen CPU, einer spezifischen GPU oder anderen Rechengeräten für die Modellausführung.

Darüber hinaus stehen die folgenden Visualisierungsoptionen zur Verfügung:

ArgumentTypStandardBeschreibung
showboolFalseFalls True, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für unmittelbares visuelles Feedback während der Entwicklung oder des Testens.
line_widthint or NoneNoneGibt die Linienstärke von Bounding Boxes an. Falls None, wird die Linienstärke automatisch basierend auf der Bildgröße angepasst. Bietet visuelle Anpassungsmöglichkeiten für mehr Klarheit.
show_confboolTrueZeigt den Konfidenzwert für jede Erkennung neben dem Label an. Bietet Einblick in die Gewissheit des Modells für jede Erkennung.
show_labelsboolTrueZeigt Labels für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

Objekte innerhalb der Zone zählen#

Jeder Aufruf des Trackers gibt ein SolutionResults-Objekt zurück, dessen total_tracks-Attribut die Anzahl der aktuell in der Zone verfolgten Objekte enthält. Lies es in jedem Frame aus, um die Live-Belegung zu überwachen, beispielsweise um zu protokollieren, wie stark ein Eingangsbereich 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 Verfolgen von Objekten in einem definierten Bereich oder einer Zone eines Video-Frames ist mit Ultralytics YOLO26 unkompliziert. Verwende einfach den unten angegebenen Befehl, um das Tracking zu starten. Dieser Ansatz sorgt für eine effiziente Analyse und genaue Ergebnisse, was ihn ideal für Anwendungen wie Sicherheit, Besuchermanagement oder jedes Szenario macht, das zonenbasiertes Tracking erfordert.

    yolo solutions trackzone source="path/to/video.mp4" show=True
  • Mit nur wenigen Zeilen Code kannst du die Objektverfolgung in bestimmten Zonen einrichten, was die Integration in deine Projekte einfach macht.

    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 der Zonenpunkte für die Videoverarbeitung mit Ultralytics TrackZone ist einfach und anpassbar. Du kannst die Zonen direkt über ein Python-Skript definieren und anpassen, was eine präzise Kontrolle über die Bereiche ermöglicht, die du überwachen möchtest.

    # 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 der Reihe nach um den Umfang des zu überwachenden Bereichs auf.

  • Alle drei Lösungen arbeiten mit Regionen, beantworten aber unterschiedliche Fragen:

    LösungVerwende es, umTypische Ausgabe
    TrackZoneObjekte verfolgen und die Live-Auslastung innerhalb einer einzelnen konvexen Zone überwachenVerfolgte IDs und total_tracks für die Zone
    ObjectCounterObjekte zählen, die eine Linie überqueren oder eine Region betreten und verlassenKumulative Ein- und Ausgangszählungen
    RegionCounterObjekte innerhalb einer oder mehrerer beliebiger (einschließlich nicht-konvexer) Regionen zählenObjektanzahl pro Region

    Wähle TrackZone, wenn du ein kontinuierliches Tracking innerhalb eines Bereichs wünschst, und RegionCounter, wenn du mehrere Zonen oder eine nicht-konvexe Form benötigst.

Kommentare