Zum Inhalt springen

Warteschlangenmanagement mit Ultralytics YOLOv8 🚀

Was ist Warteschlangenmanagement?

Warteschlangenmanagement mit Ultralytics YOLOv8 umfasst die Organisation und Kontrolle von Menschen- oder Fahrzeugschlangen, um Wartezeiten zu verkürzen und die Effizienz zu steigern. Es geht um die Optimierung von Warteschlangen, um die Kundenzufriedenheit und die Systemleistung in verschiedenen Bereichen wie Einzelhandel, Banken, Flughäfen und Gesundheitseinrichtungen zu verbessern.



Pass auf: Wie man Warteschlangenmanagement mit Ultralytics implementiertYOLOv8 | Flughafen und Metrostation

Vorteile des Warteschlangenmanagements?

  • Reduzierte Wartezeiten: Warteschlangenmanagementsysteme organisieren Warteschlangen effizient und minimieren die Wartezeiten für Kunden. Dies führt zu einer höheren Kundenzufriedenheit, da die Kunden weniger Zeit mit Warten und mehr Zeit mit der Nutzung von Produkten oder Dienstleistungen verbringen.
  • Gesteigerte Effizienz: Durch die Einführung von Warteschlangenmanagement können Unternehmen ihre Ressourcen effektiver einsetzen. Durch die Analyse von Warteschlangendaten und die Optimierung des Personaleinsatzes können Unternehmen ihre Abläufe rationalisieren, Kosten senken und die Gesamtproduktivität verbessern.

Anwendungen in der realen Welt

Logistik Einzelhandel
Warteschlangenmanagement am Flughafenschalter mit Ultralytics YOLOv8 Überwachung von Warteschlangen in Menschenmengen mit Ultralytics YOLOv8
Warteschlangenmanagement am Flughafen-Schalter Verwenden Ultralytics YOLOv8 Überwachung von Warteschlangen in Menschenmengen Ultralytics YOLOv8

Warteschlangenmanagement mit YOLOv8 Beispiel

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.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("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()

    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False)
        out = queue.process_queue(im0, tracks)

        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()
import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video/file.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("queue_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()

    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False, classes=0)  # Only person class
        out = queue.process_queue(im0, tracks)

        video_writer.write(im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break
        continue

    print("Video frame is empty or video processing has been successfully completed.")
    break

cap.release()
cv2.destroyAllWindows()

Argumente QueueManager

Name Typ Standard Beschreibung
names dict model.names Ein Wörterbuch, das die Klassen-IDs den Klassennamen zuordnet.
reg_pts list of tuples [(20, 400), (1260, 400)] Punkte, die das Polygon der Zählregion definieren. Standardmäßig wird ein vordefiniertes Rechteck verwendet.
line_thickness int 2 Die Dicke der Anmerkungslinien.
track_thickness int 2 Dicke der Spurlinien.
view_img bool False Ob die Bildrahmen angezeigt werden sollen.
region_color tuple (255, 0, 255) Farbe der Linien der Zählregion (BGR).
view_queue_counts bool True Ob die Anzahl der Warteschlangen angezeigt werden soll.
draw_tracks bool False Ob die Spuren der Objekte gezeichnet werden sollen.
count_txt_color tuple (255, 255, 255) Farbe des Zähltextes (BGR).
track_color tuple None Farbe der Spuren. Wenn Nonewerden unterschiedliche Farben für verschiedene Strecken verwendet.
region_thickness int 5 Dicke der Linien der Zählregion.
fontsize float 0.7 Schriftgröße für die Textanmerkungen.

Argumente model.track

Name Typ Standard Beschreibung
source im0 None Quellverzeichnis für Bilder oder Videos
persist bool False Spuren zwischen Frames beibehalten
tracker str botsort.yaml Tracking-Methode 'bytetrack' oder 'botsort'
conf float 0.3 Konfidenzschwelle
iou float 0.5 IOU-Schwelle
classes list None Ergebnisse nach Klassen filtern, d.h. classes=0, oder classes=[0,2,3]
verbose bool True Anzeige der Ergebnisse der Objektverfolgung

FAQ

Wie kann ich Ultralytics YOLOv8 für das Warteschlangenmanagement in Echtzeit nutzen?

Um Ultralytics YOLOv8 für die Verwaltung von Warteschlangen in Echtzeit zu nutzen, kannst du die folgenden Schritte ausführen:

  1. Lade das Modell YOLOv8 mit YOLO("yolov8n.pt").
  2. Erfasse den Video-Feed mit cv2.VideoCapture.
  3. Definiere die Region von Interesse (ROI) für das Warteschlangenmanagement.
  4. Verarbeite Frames, um Objekte zu erkennen und Warteschlangen zu verwalten.

Hier ist ein kleines Beispiel:

import cv2

from ultralytics import YOLO, solutions

model = YOLO("yolov8n.pt")
cap = cv2.VideoCapture("path/to/video.mp4")
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]

queue = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region,
    line_thickness=3,
    fontsize=1.0,
    region_color=(255, 144, 31),
)

while cap.isOpened():
    success, im0 = cap.read()
    if success:
        tracks = model.track(im0, show=False, persist=True, verbose=False)
        out = queue.process_queue(im0, tracks)
        cv2.imshow("Queue Management", im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break

cap.release()
cv2.destroyAllWindows()

Die Nutzung von Ultralytics HUB kann diesen Prozess rationalisieren, indem es eine benutzerfreundliche Plattform für die Bereitstellung und Verwaltung deiner Warteschlangenmanagement-Lösung bietet.

Was sind die wichtigsten Vorteile von Ultralytics YOLOv8 für das Warteschlangenmanagement?

Die Verwendung von Ultralytics YOLOv8 für das Warteschlangenmanagement bietet mehrere Vorteile:

  • Sinkende Wartezeiten: Organisiert Warteschlangen effizient, verkürzt die Wartezeiten und erhöht die Kundenzufriedenheit.
  • Steigerung der Effizienz: Analysiert Warteschlangendaten, um den Personaleinsatz und die Abläufe zu optimieren und so die Kosten zu senken.
  • Echtzeit-Warnungen: Benachrichtigt in Echtzeit über lange Warteschlangen und ermöglicht so ein schnelles Eingreifen.
  • Skalierbarkeit: Leichte Skalierbarkeit in verschiedenen Umgebungen wie Einzelhandel, Flughäfen und Gesundheitswesen.

Weitere Informationen findest du in unseren Lösungen für das Warteschlangenmanagement.

Warum sollte ich Ultralytics YOLOv8 gegenüber Konkurrenten wie TensorFlow oder Detectron2 für das Warteschlangenmanagement wählen?

Ultralytics YOLOv8 hat mehrere Vorteile gegenüber TensorFlow und Detectron2 für das Warteschlangenmanagement:

  • Echtzeit-Performance: YOLOv8 ist bekannt für seine Echtzeit-Erkennungsfunktionen, die eine schnellere Verarbeitungsgeschwindigkeit bieten.
  • Benutzerfreundlichkeit: Ultralytics bietet eine benutzerfreundliche Erfahrung, von der Schulung bis zum Einsatz, über Ultralytics HUB.
  • Vorgefertigte Modelle: Zugang zu einer Reihe von vortrainierten Modellen, die den Zeitaufwand für die Einrichtung minimieren.
  • Community-Unterstützung: Eine ausführliche Dokumentation und aktiver Community-Support erleichtern die Problemlösung.

Erfahre, wie du loslegen kannst mit Ultralytics YOLO.

Kann Ultralytics YOLOv8 mit verschiedenen Arten von Warteschlangen umgehen, z. B. an Flughäfen und im Einzelhandel?

Ja, Ultralytics YOLOv8 kann verschiedene Arten von Warteschlangen verwalten, darunter auch Warteschlangen in Flughäfen und im Einzelhandel. Indem du den QueueManager mit bestimmten Regionen und Einstellungen konfigurierst, kann sich YOLOv8 an unterschiedliche Warteschlangenlayouts und -dichten anpassen.

Beispiel für Flughäfen:

queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)]
queue_airport = solutions.QueueManager(
    names=model.names,
    reg_pts=queue_region_airport,
    line_thickness=3,
    fontsize=1.0,
    region_color=(0, 255, 0),
)

Weitere Informationen zu verschiedenen Anwendungen findest du in unserem Abschnitt Real World Applications.

Was sind einige praktische Anwendungen von Ultralytics YOLOv8 in der Warteschlangenverwaltung?

Ultralytics YOLOv8 wird in verschiedenen realen Anwendungen zur Verwaltung von Warteschlangen eingesetzt:

  • Einzelhandel: Überwacht die Kassenschlangen, um die Wartezeiten zu verkürzen und die Kundenzufriedenheit zu verbessern.
  • Flughäfen: Verwaltet die Warteschlangen an den Ticketschaltern und Sicherheitskontrollen und sorgt so für einen reibungslosen Ablauf für die Passagiere.
  • Gesundheitswesen: Optimiert den Patientenfluss in Kliniken und Krankenhäusern.
  • Banken: Verbessert den Kundenservice durch effizientes Management von Warteschlangen in Banken.

In unserem Blog zum Thema Warteschlangenmanagement erfährst du mehr.



Erstellt am 2024-04-02, Aktualisiert am 2024-07-14
Autoren: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

Kommentare