Zum Inhalt springen

TrackZone mit Ultralytics YOLO11

Open TrackZone In Colab

Was ist TrackZone?

TrackZone ist darauf spezialisiert, Objekte innerhalb bestimmter Bereiche eines Frames zu überwachen, anstatt den gesamten Frame. Basierend auf Ultralytics YOLO11 integriert es Objekterkennung und -verfolgung speziell innerhalb von Zonen für Videos und Live-Kamerafeeds. Die fortschrittlichen Algorithmen und Deep-Learning-Technologien von YOLO11 machen es zu einer perfekten Wahl für Echtzeit-Anwendungsfälle und bieten eine präzise und effiziente Objektverfolgung in Anwendungen wie Crowd-Monitoring und Überwachung.



Ansehen: So verfolgen Sie Objekte in einer Region mit Ultralytics YOLO11 | TrackZone 🚀

Vorteile der Objektverfolgung in Zonen (TrackZone)

  • Gezielte Analyse: Das Verfolgen von Objekten innerhalb bestimmter Zonen ermöglicht gezieltere Einblicke und eine präzise Überwachung und Analyse von interessierenden Bereichen, wie z. B. Eingangspunkten oder Sperrzonen.
  • Verbesserte Effizienz: Durch die Eingrenzung des Tracking-Bereichs auf definierte Zonen reduziert TrackZone den Rechenaufwand und gewährleistet so eine schnellere Verarbeitung und optimale Leistung.
  • Erhöhte Sicherheit: Die zonale Verfolgung verbessert die Überwachung durch die Beobachtung 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 anpassungsfähig an verschiedene Szenarien, von Einzelhandelsflächen bis hin zu industriellen Umgebungen, und gewährleistet eine nahtlose Integration und Skalierbarkeit.

Anwendungen in der realen Welt

Landwirtschaft Transport
Pflanzenverfolgung auf dem Feld mit Ultralytics YOLO11 Fahrzeugverfolgung auf der Straße mit Ultralytics YOLO11
Pflanzenverfolgung auf dem Feld mit Ultralytics YOLO11 Fahrzeugverfolgung auf der Straße mit Ultralytics YOLO11

TrackZone mit Ultralytics YOLO

# Run a trackzone example
yolo solutions trackzone show=True

# Pass a source video
yolo solutions trackzone show=True source="path/to/video.mp4"

# Pass region coordinates
yolo solutions trackzone show=True region="[(150, 150), (1130, 150), (1130, 570), (150, 570)]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
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))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",  # use any model that Ultralytics support, i.e. YOLOv9, YOLOv10
    # line_width=2,  # adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break

    results = trackzone(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the video file

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

TrackZone Argumente

Hier ist eine Tabelle mit den TrackZone Argumente:

Argument Typ Standard Beschreibung
model str None Pfad zur Ultralytics YOLO Modelldatei.
region list '[(20, 400), (1260, 400)]' Liste der Punkte, die den Zählbereich definieren.

Die TrackZone-Lösung beinhaltet Unterstützung für track Parameter:

Argument Typ Standard Beschreibung
tracker str 'botsort.yaml' Gibt den zu verwendenden Tracking-Algorithmus an, z. B. bytetrack.yaml oder botsort.yaml.
conf float 0.3 Legt den Konfidenzschwellenwert für Erkennungen fest; niedrigere Werte ermöglichen die Verfolgung von mehr Objekten, können aber auch falsch positive Ergebnisse liefern.
iou float 0.5 Legt den Intersection over Union (IoU)-Schwellenwert zum Filtern überlappender Erkennungen fest.
classes list None Filtert Ergebnisse nach Klassenindex. Zum Beispiel, classes=[0, 2, 3] verfolgt nur die angegebenen Klassen.
verbose bool True Steuert die Anzeige der Tracking-Ergebnisse und bietet eine visuelle Ausgabe der verfolgten Objekte.
device str None Gibt das Gerät für die Inferenz an (z. B. cpu, cuda:0 oder 0). Ermöglicht es Benutzern, zwischen CPU, einer bestimmten GPU oder anderen Rechengeräten für die Modellausführung zu wählen.

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

Argument Typ Standard Beschreibung
show bool False Wenn Trueaktiviert, werden die annotierten Bilder oder Videos in einem Fenster angezeigt. Nützlich für sofortiges visuelles Feedback während der Entwicklung oder des Testens.
line_width None or int None Gibt die Linienbreite der Begrenzungsrahmen an. Wenn None, wird die Linienbreite automatisch an die Bildgröße angepasst. Bietet eine visuelle Anpassung für mehr Klarheit.
show_conf bool True Zeigt den Konfidenzwert für jede Erkennung zusammen mit der Beschriftung an. Gibt Einblick in die Sicherheit des Modells für jede Erkennung.
show_labels bool True Zeigt Beschriftungen für jede Erkennung in der visuellen Ausgabe an. Ermöglicht ein sofortiges Verständnis der erkannten Objekte.

FAQ

Wie verfolge ich Objekte in einem bestimmten Bereich oder einer Zone eines Videobildes mit Ultralytics YOLO11?

Das Verfolgen von Objekten in einem definierten Bereich oder einer Zone eines Videobildes ist mit Ultralytics YOLO11 unkompliziert. Verwenden Sie einfach den unten angegebenen Befehl, um die Verfolgung zu starten. Dieser Ansatz gewährleistet eine effiziente Analyse und genaue Ergebnisse, was ihn ideal für Anwendungen wie Überwachung, Crowd-Management oder jedes Szenario macht, das eine zonale Verfolgung erfordert.

yolo solutions trackzone source="path/to/video.mp4" show=True

Wie kann ich TrackZone in Python mit Ultralytics YOLO11 verwenden?

Mit nur wenigen Zeilen Code können Sie die Objektverfolgung in bestimmten Zonen einrichten und so die Integration in Ihre Projekte erleichtern.

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))

# Define region points
region_points = [(150, 150), (1130, 150), (1130, 570), (150, 570)]

# Video writer
video_writer = cv2.VideoWriter("object_counting_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init trackzone (object tracking in zones, not complete frame)
trackzone = solutions.TrackZone(
    show=True,  # display the output
    region=region_points,  # pass region points
    model="yolo11n.pt",
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break
    results = trackzone(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Wie konfiguriere ich die Zonenpunkte für die Videoverarbeitung mit Ultralytics TrackZone?

Das Konfigurieren von Zonenpunkten für die Videoverarbeitung mit Ultralytics TrackZone ist einfach und anpassbar. Sie können die Zonen direkt über ein Python-Skript definieren und anpassen, wodurch Sie die Bereiche, die Sie überwachen möchten, präzise steuern können.

# 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
)


📅 Erstellt vor 9 Monaten ✏️ Aktualisiert vor 4 Monaten

Kommentare