सामग्री पर जाएं

का उपयोग कर कतार प्रबंधन Ultralytics YOLOv8 🚀

कतार प्रबंधन क्या है?

का उपयोग कर कतार प्रबंधन Ultralytics YOLOv8 प्रतीक्षा समय को कम करने और दक्षता बढ़ाने के लिए लोगों या वाहनों की लाइनों को व्यवस्थित और नियंत्रित करना शामिल है। यह खुदरा, बैंकों, हवाई अड्डों और स्वास्थ्य सुविधाओं जैसी विभिन्न सेटिंग्स में ग्राहकों की संतुष्टि और सिस्टम के प्रदर्शन को बेहतर बनाने के लिए कतारों को अनुकूलित करने के बारे में है।

कतार प्रबंधन के लाभ?

  • प्रतीक्षा समय में कमी: कतार प्रबंधन प्रणाली कुशलतापूर्वक कतारों को व्यवस्थित करती है, ग्राहकों के लिए प्रतीक्षा समय को कम करती है। इससे संतुष्टि के स्तर में सुधार होता है क्योंकि ग्राहक प्रतीक्षा में कम समय व्यतीत करते हैं और उत्पादों या सेवाओं के साथ जुड़ने में अधिक समय व्यतीत करते हैं।
  • बढ़ी हुई दक्षता: कतार प्रबंधन को लागू करने से व्यवसायों को संसाधनों को अधिक प्रभावी ढंग से आवंटित करने की अनुमति मिलती है। कतार डेटा का विश्लेषण करके और कर्मचारियों की तैनाती का अनुकूलन करके, व्यवसाय संचालन को सुव्यवस्थित कर सकते हैं, लागत कम कर सकते हैं और समग्र उत्पादकता में सुधार कर सकते हैं।

वास्तविक दुनिया अनुप्रयोग

लॉजिस्टिकस फुटकर
हवाई अड्डे के टिकट काउंटर पर कतार प्रबंधन का उपयोग कर Ultralytics YOLOv8 भीड़ में कतार की निगरानी Ultralytics YOLOv8
हवाई अड्डे के टिकट काउंटर पर कतार प्रबंधन का उपयोग करना Ultralytics YOLOv8 भीड़ में कतार की निगरानी Ultralytics YOLOv8

का उपयोग कर कतार प्रबंधन YOLOv8 उदाहरण

import cv2
from ultralytics import YOLO
from ultralytics.solutions import queue_management

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

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
from ultralytics.solutions import queue_management

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

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

वैकल्पिक तर्क set_args

नाम प्रकार चूक या क़िस्‍म
view_img bool False गिनती के साथ फ़्रेम प्रदर्शित करें
view_queue_counts bool True प्रदर्शन कतार केवल वीडियो फ़्रेम पर गणना करता है
line_thickness int 2 बाउंडिंग बॉक्स की मोटाई बढ़ाएं
reg_pts list [(20, 400), (1260, 400)] क्षेत्र क्षेत्र को परिभाषित करने वाले बिंदु
classes_names dict model.model.names वर्ग नामों का शब्दकोश
region_color RGB Color (255, 0, 255) वस्तु की गिनती क्षेत्र या रेखा का रंग
track_thickness int 2 ट्रैकिंग लाइनों की मोटाई
draw_tracks bool False आरेखण सक्षम करें ट्रैक रेखाएँ
track_color RGB Color (0, 255, 0) प्रत्येक ट्रैक लाइन के लिए रंग
count_txt_color RGB Color (255, 255, 255) ऑब्जेक्ट काउंट पाठ के लिए अग्रभूमि रंग
region_thickness int 5 ऑब्जेक्ट काउंटर क्षेत्र या रेखा के लिए मोटाई
fontsize float 0.6 पाठ गिनने का फ़ॉन्ट आकार

तर्क model.track

नाम प्रकार चूक या क़िस्‍म
source im0 None छवियों या वीडियो के लिए स्रोत निर्देशिका
persist bool False फ़्रेम के बीच लगातार ट्रैक
tracker str botsort.yaml ट्रैकिंग विधि 'बाइटट्रैक' या 'बॉटसॉर्ट'
conf float 0.3 कॉन्फिडेंस थ्रेशोल्ड
iou float 0.5 IOU थ्रेसहोल्ड
classes list None कक्षा द्वारा फ़िल्टर परिणाम, यानी कक्षाएं = 0, या कक्षाएं = [0,2,3]
verbose bool True ऑब्जेक्ट ट्रैकिंग परिणाम प्रदर्शित करें


2024-04-02 बनाया गया, अपडेट किया गया 2024-04-02
लेखक: बुरहान-क्यू (1), रिजवान मुनव्वर (1)

टिप्पणियाँ