Wachtrijmanagement met behulp van Ultralytics YOLOv8 Het gaat om het organiseren en controleren van rijen mensen of voertuigen om wachttijden te verkorten en de efficiëntie te verbeteren. Het gaat om het optimaliseren van wachtrijen om de klanttevredenheid en de systeemprestaties te verbeteren in verschillende omgevingen zoals de detailhandel, banken, luchthavens en gezondheidszorg.
Voordelen van wachtrijmanagement?
Kortere wachttijden: Wachtrijbeheersystemen organiseren wachtrijen efficiënt, waardoor de wachttijden voor klanten tot een minimum worden beperkt. Dit leidt tot een grotere tevredenheid omdat klanten minder tijd kwijt zijn met wachten en meer tijd overhouden voor producten of diensten.
Verhoogde efficiëntie: Door wachtrijmanagement te implementeren kunnen bedrijven hun middelen effectiever toewijzen. Door wachtrijgegevens te analyseren en de inzet van personeel te optimaliseren, kunnen bedrijven hun activiteiten stroomlijnen, kosten verlagen en de algehele productiviteit verbeteren.
Toepassingen in de echte wereld
Logistiek
Detailhandel
Wachtrijbeheer bij ticketbalie op luchthaven Gebruiken Ultralytics YOLOv8
Wachtrijbewaking in menigte Ultralytics YOLOv8
Wachtrijbeheer met YOLOv8 Voorbeeld
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()
Optionele argumenten set_args
Naam
Type
Standaard
Beschrijving
view_img
bool
False
Frames met tellingen weergeven
view_queue_counts
bool
True
Wachtrijtellingen alleen op videoframe weergeven
line_thickness
int
2
Vergroot de dikte van bounding boxes
reg_pts
list
[(20, 400), (1260, 400)]
Punten die het gebied van de regio definiëren
classes_names
dict
model.model.names
Woordenboek van klassenamen
region_color
RGB Color
(255, 0, 255)
Kleur van het Object dat Regio of Lijn telt
track_thickness
int
2
Dikte van volglijnen
draw_tracks
bool
False
Tekenen van spoorlijnen inschakelen
track_color
RGB Color
(0, 255, 0)
Kleur voor elke spoorlijn
count_txt_color
RGB Color
(255, 255, 255)
Voorgrondkleur voor tekst Objecttelling
region_thickness
int
5
Dikte voor object tegengebied of lijn
fontsize
float
0.6
Lettergrootte van tellende tekst
Argumenten model.track
Naam
Type
Standaard
Beschrijving
source
im0
None
bronmap voor afbeeldingen of video's
persist
bool
False
Blijvende sporen tussen frames
tracker
str
botsort.yaml
Volgmethode 'bytetrack' of 'botsort'
conf
float
0.3
Vertrouwensdrempel
iou
float
0.5
Drempel IOU
classes
list
None
filter resultaten op klasse, d.w.z. classes=0, of classes=[0,2,3]
verbose
bool
True
De resultaten van het volgen van objecten weergeven
Gemaakt op 2024-04-02, Bijgewerkt op 2024-04-02 Auteurs: Burhan-Q (1), RizwanMunawar (1)