Kuyruk yönetimi kullanarak Ultralytics YOLOv8 bekleme sürelerini azaltmak ve verimliliği artırmak için insan veya araç kuyruklarını organize ve kontrol etmeyi içerir. Perakende, bankalar, havaalanları ve sağlık tesisleri gibi çeşitli ortamlarda müşteri memnuniyetini ve sistem performansını artırmak için kuyrukları optimize etmekle ilgilidir.
Kuyruk Yönetiminin Avantajları?
Azaltılmış Bekleme Süreleri: Kuyruk yönetim sistemleri kuyrukları verimli bir şekilde düzenleyerek müşterilerin bekleme sürelerini en aza indirir. Müşteriler beklemek için daha az, ürün veya hizmetlerle ilgilenmek için daha fazla zaman harcadıklarından, bu durum memnuniyet düzeylerinin artmasına yol açar.
Artan Verimlilik: Sıra yönetiminin uygulanması, işletmelerin kaynakları daha etkili bir şekilde tahsis etmesine olanak tanır. Sıra verilerini analiz ederek ve personel dağıtımını optimize ederek işletmeler operasyonları düzene sokabilir, maliyetleri azaltabilir ve genel verimliliği artırabilir.
Gerçek Dünya Uygulamaları
Lojistik
Perakende
Havaalanı bilet gişesinde kuyruk yönetimi Kullanma Ultralytics YOLOv8
Kalabalıkta kuyruk izleme Ultralytics YOLOv8
YOLOv8 Örneğini Kullanarak Kuyruk Yönetimi
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()
İsteğe Bağlı Argümanlar set_args
İsim
Tip
Varsayılan
Açıklama
view_img
bool
False
Çerçeveleri sayımlarla görüntüleme
view_queue_counts
bool
True
Kuyruk sayılarını yalnızca video karesinde görüntüleme
line_thickness
int
2
Sınırlayıcı kutu kalınlığını artırın
reg_pts
list
[(20, 400), (1260, 400)]
Bölge Alanını tanımlayan noktalar
classes_names
dict
model.model.names
Sınıf Adları Sözlüğü
region_color
RGB Color
(255, 0, 255)
Nesne Sayma Bölgesinin veya Çizgisinin Rengi
track_thickness
int
2
İzleme Çizgilerinin Kalınlığı
draw_tracks
bool
False
Çizgileri izlemeyi etkinleştir
track_color
RGB Color
(0, 255, 0)
Her ray hattı için renk
count_txt_color
RGB Color
(255, 255, 255)
Nesne sayıları metni için ön plan rengi
region_thickness
int
5
Nesne karşı bölgesi veya çizgi için kalınlık
fontsize
float
0.6
Sayma metninin yazı tipi boyutu
Argümanlar model.track
İsim
Tip
Varsayılan
Açıklama
source
im0
None
resimler veya videolar için kaynak dizin
persist
bool
False
kareler arasında kalıcı izler
tracker
str
botsort.yaml
İzleme yöntemi 'bytetrack' veya 'botsort'
conf
float
0.3
Güven Eşiği
iou
float
0.5
IOU Eşiği
classes
list
None
sonuçları sınıfa göre filtreleyin, yani classes=0 veya classes=[0,2,3]