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.
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 Flughafen-Schalter Verwenden Ultralytics YOLOv8
Ăberwachung von Warteschlangen in Menschenmengen Ultralytics YOLOv8
Warteschlangenmanagement mit YOLOv8 Beispiel
importcv2fromultralyticsimportYOLOfromultralytics.solutionsimportqueue_managementmodel=YOLO("yolov8n.pt")cap=cv2.VideoCapture("path/to/video/file.mp4")assertcap.isOpened(),"Error reading video file"w,h,fps=(int(cap.get(x))forxin(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=queue_management.QueueManager()queue.set_args(classes_names=model.names,reg_pts=queue_region,line_thickness=3,fontsize=1.0,region_color=(255,144,31))whilecap.isOpened():success,im0=cap.read()ifsuccess:tracks=model.track(im0,show=False,persist=True,verbose=False)out=queue.process_queue(im0,tracks)video_writer.write(im0)ifcv2.waitKey(1)&0xFF==ord('q'):breakcontinueprint("Video frame is empty or video processing has been successfully completed.")breakcap.release()cv2.destroyAllWindows()
importcv2fromultralyticsimportYOLOfromultralytics.solutionsimportqueue_managementmodel=YOLO("yolov8n.pt")cap=cv2.VideoCapture("path/to/video/file.mp4")assertcap.isOpened(),"Error reading video file"w,h,fps=(int(cap.get(x))forxin(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=queue_management.QueueManager()queue.set_args(classes_names=model.names,reg_pts=queue_region,line_thickness=3,fontsize=1.0,region_color=(255,144,31))whilecap.isOpened():success,im0=cap.read()ifsuccess:tracks=model.track(im0,show=False,persist=True,verbose=False,classes=0)# Only person classout=queue.process_queue(im0,tracks)video_writer.write(im0)ifcv2.waitKey(1)&0xFF==ord('q'):breakcontinueprint("Video frame is empty or video processing has been successfully completed.")breakcap.release()cv2.destroyAllWindows()
Optionale Argumente set_args
Name
Typ
Standard
Beschreibung
view_img
bool
False
Rahmen mit ZĂ€hlungen anzeigen
view_queue_counts
bool
True
WarteschlangenzÀhlungen nur bei Videobildern anzeigen
line_thickness
int
2
Dicke der Begrenzungsrahmen erhöhen
reg_pts
list
[(20, 400), (1260, 400)]
Punkte, die das Gebiet der Region definieren
classes_names
dict
model.model.names
Wörterbuch der Klassennamen
region_color
RGB Color
(255, 0, 255)
Farbe des Objekts ZĂ€hlregion oder Linie
track_thickness
int
2
Dicke der NachfĂŒhrlinien
draw_tracks
bool
False
Aktivieren des Zeichnens von Spurlinien
track_color
RGB Color
(0, 255, 0)
Farbe fĂŒr jede Spurlinie
count_txt_color
RGB Color
(255, 255, 255)
Vordergrundfarbe fĂŒr Objekt zĂ€hlt Text
region_thickness
int
5
Dicke fĂŒr Objektgegenbereich oder Linie
fontsize
float
0.6
SchriftgröĂe des ZĂ€hltextes
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
Erstellt am 2024-04-02, Aktualisiert am 2024-04-02 Autoren: Burhan-Q (1), RizwanMunawar (1)