Bỏ để qua phần nội dung

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.



Xem: Cách triển khai quản lý hàng đợi với Ultralytics YOLOv8 | Sân bay và ga tàu điện ngầm

Ư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 bằng cách sử dụng Ultralytics YOLOv8 Giám sát hàng đợi trong đám đông bằng cách sử dụng Ultralytics YOLOv8
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ụ

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()

Lập luận QueueManager

Tên Kiểu Mặc định Sự miêu tả
names dict model.names Từ điển ánh xạ ID lớp đến tên lớp.
reg_pts list of tuples [(20, 400), (1260, 400)] Các điểm xác định đa giác vùng đếm. Mặc định là một hình chữ nhật được xác định trước.
line_thickness int 2 Độ dày của các dòng chú thích.
track_thickness int 2 Độ dày của các đường ray.
view_img bool False Có hiển thị khung hình ảnh hay không.
region_color tuple (255, 0, 255) Màu sắc của các đường vùng đếm (BGR).
view_queue_counts bool True Có hiển thị số lượng hàng đợi hay không.
draw_tracks bool False Có nên vẽ dấu vết của các đối tượng hay không.
count_txt_color tuple (255, 255, 255) Màu của văn bản đếm (BGR).
track_color tuple None Màu sắc của các bản nhạc. Nếu None, màu sắc khác nhau sẽ được sử dụng cho các bản nhạc khác nhau.
region_thickness int 5 Độ dày của các đường vùng đếm.
fontsize float 0.7 Cỡ chữ cho chú thích 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]
verbose bool True Hiển thị kết quả theo dõi đối tượng

FAQ

Tôi có thể sử dụng như thế nào Ultralytics YOLOv8 Để quản lý hàng đợi theo thời gian thực?

Sử dụng Ultralytics YOLOv8 Để quản lý hàng đợi theo thời gian thực, bạn có thể làm theo các bước sau:

  1. Tải YOLOv8 Mô hình với YOLO("yolov8n.pt").
  2. Chụp nguồn cấp dữ liệu video bằng cách sử dụng cv2.VideoCapture.
  3. Xác định khu vực quan tâm (ROI) để quản lý hàng đợi.
  4. Xử lý khung để phát hiện đối tượng và quản lý hàng đợi.

Dưới đây là một ví dụ tối thiểu:

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()

Tận dụng Ultralytics HUB có thể hợp lý hóa quy trình này bằng cách cung cấp một nền tảng thân thiện với người dùng để triển khai và quản lý giải pháp quản lý hàng đợi của bạn.

Những lợi thế chính của việc sử dụng là gì Ultralytics YOLOv8 để quản lý hàng đợi?

Sử dụng Ultralytics YOLOv8 Để quản lý hàng đợi cung cấp một số lợi ích:

  • Thời gian chờ đợi giảm mạnh: Tổ chức hiệu quả hàng đợi, giảm thời gian chờ đợi của khách hàng và tăng sự hài lòng.
  • Nâng cao hiệu quả: Phân tích dữ liệu hàng đợi để tối ưu hóa việc triển khai và vận hành nhân viên, từ đó giảm chi phí.
  • Cảnh báo thời gian thực: Cung cấp thông báo theo thời gian thực cho hàng đợi dài, cho phép can thiệp nhanh chóng.
  • Khả năng mở rộng: Dễ dàng mở rộng trên các môi trường khác nhau như bán lẻ, sân bay và chăm sóc sức khỏe.

Để biết thêm chi tiết, hãy khám phá các giải pháp Quản lý hàng đợi của chúng tôi.

Tại sao tôi nên chọn Ultralytics YOLOv8 hơn các đối thủ cạnh tranh như TensorFlow hoặc Detectron2 để quản lý hàng đợi?

Ultralytics YOLOv8 có một số lợi thế hơn TensorFlow và Detectron2 để quản lý hàng đợi:

  • Hiệu suất thời gian thực: YOLOv8 được biết đến với khả năng phát hiện thời gian thực, cung cấp tốc độ xử lý nhanh hơn.
  • Dễ sử dụng: Ultralytics Cung cấp trải nghiệm thân thiện với người dùng, từ đào tạo đến triển khai, thông qua Ultralytics TRUNG TÂM.
  • Mô hình đào tạo trước: Truy cập vào một loạt các mô hình được đào tạo trước, giảm thiểu thời gian cần thiết để thiết lập.
  • Hỗ trợ cộng đồng: Tài liệu mở rộng và hỗ trợ cộng đồng tích cực giúp giải quyết vấn đề dễ dàng hơn.

Tìm hiểu cách bắt đầu Ultralytics YOLO.

Có thể Ultralytics YOLOv8 Xử lý nhiều loại hàng đợi, chẳng hạn như trong sân bay và bán lẻ?

Có Ultralytics YOLOv8 có thể quản lý nhiều loại hàng đợi khác nhau, bao gồm cả những hàng đợi trong sân bay và môi trường bán lẻ. Bằng cách cấu hình QueueManager với các khu vực và cài đặt cụ thể, YOLOv8 có thể thích ứng với các bố cục và mật độ hàng đợi khác nhau.

Ví dụ cho sân bay:

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),
)

Để biết thêm thông tin về các ứng dụng đa dạng, hãy xem phần Ứng dụng trong thế giới thực của chúng tôi.

Một số ứng dụng trong thế giới thực của Ultralytics YOLOv8 Trong quản lý hàng đợi?

Ultralytics YOLOv8 được sử dụng trong các ứng dụng thực tế khác nhau để quản lý hàng đợi:

  • Bán lẻ: Giám sát các dòng thanh toán để giảm thời gian chờ đợi và cải thiện sự hài lòng của khách hàng.
  • Airports: Quản lý hàng đợi tại quầy vé và trạm kiểm soát an ninh để mang lại trải nghiệm hành khách mượt mà hơn.
  • Y tế: Tối ưu hóa lưu lượng bệnh nhân tại các phòng khám và bệnh viện.
  • Ngân hàng: Tăng cường dịch vụ khách hàng bằng cách quản lý hàng đợi hiệu quả trong ngân hàng.

Kiểm tra blog của chúng tôi về quản lý hàng đợi trong thế giới thực để tìm hiểu thêm.



Đã tạo 2024-04-02, Cập nhật 2024-07-14
Tác giả: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

Ý kiến