Quản lý hàng đợi bằng cách sử dụng Ultralytics YOLOv8 🚀
Quản lý hàng đợi là gì?
Quản lý hàng đợi bằng cách sử dụng Ultralytics YOLOv8 liên quan đến việc tổ chức và kiểm soát dòng người hoặc phương tiện để giảm thời gian chờ đợi và nâng cao hiệu quả. Đó là về việc tối ưu hóa hàng đợi để cải thiện sự hài lòng của khách hàng và hiệu suất hệ thống trong các cài đặt khác nhau như bán lẻ, ngân hàng, sân bay và cơ sở chăm sóc sức khỏe.
Ưu điểm của quản lý hàng đợi?
Giảm thời gian chờ đợi: Hệ thống quản lý hàng đợi tổ chức hiệu quả hàng đợi, giảm thiểu thời gian chờ đợi cho khách hàng. Điều này dẫn đến mức độ hài lòng được cải thiện khi khách hàng dành ít thời gian chờ đợi hơn và nhiều thời gian hơn để tương tác với các sản phẩm hoặc dịch vụ.
Tăng hiệu quả: Thực hiện quản lý hàng đợi cho phép doanh nghiệp phân bổ nguồn lực hiệu quả hơn. Bằng cách phân tích dữ liệu hàng đợi và tối ưu hóa việc triển khai nhân viên, doanh nghiệp có thể hợp lý hóa hoạt động, giảm chi phí và cải thiện năng suất tổng thể.
Ứng dụng trong thế giới thực
Hậu cần
Bán lẻ
Quản lý hàng đợi tại quầy vé sân bay Sử dụng Ultralytics YOLOv8
Giám sát hàng đợi trong đám đông Ultralytics YOLOv8
Quản lý hàng đợi bằng cách sử dụng YOLOv8 Ví dụ
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()
Đối số tùy chọn set_args
Tên
Kiểu
Mặc định
Sự miêu tả
view_img
bool
False
Hiển thị khung có số lượng
view_queue_counts
bool
True
Hàng đợi hiển thị chỉ được tính trên khung hình video
line_thickness
int
2
Tăng độ dày hộp giới hạn
reg_pts
list
[(20, 400), (1260, 400)]
Các điểm xác định Khu vực
classes_names
dict
model.model.names
Từ điển tên lớp
region_color
RGB Color
(255, 0, 255)
Màu sắc của Vùng hoặc Đường đếm Đối tượng
track_thickness
int
2
Độ dày của đường theo dõi
draw_tracks
bool
False
Bật vẽ Đường theo dõi
track_color
RGB Color
(0, 255, 0)
Màu sắc cho từng đường đua
count_txt_color
RGB Color
(255, 255, 255)
Màu nền trước cho đối tượng đếm văn bản
region_thickness
int
5
Độ dày cho vùng hoặc đường đối tượng
fontsize
float
0.6
Cỡ phông đếm văn bản
Lập luận model.track
Tên
Kiểu
Mặc định
Sự miêu tả
source
im0
None
Thư mục nguồn cho hình ảnh hoặc video
persist
bool
False
Các rãnh liên tục giữa các khung hình
tracker
str
botsort.yaml
Phương pháp theo dõi 'bytetrack' hoặc 'botsort'
conf
float
0.3
Ngưỡng tin cậy
iou
float
0.5
Ngưỡng IOU
classes
list
None
Lọc kết quả theo lớp, tức là lớp = 0 hoặc lớp = [0,2,3]