إدارة قائمة الانتظار باستخدام 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 |
طريقة التتبع "bytetrack" أو "botsort" |
conf |
float |
0.3 |
عتبة الثقة |
iou |
float |
0.5 |
عتبة IOU |
classes |
list |
None |
تصفية النتائج حسب الفئة ، أي الفئات = 0 ، أو الفئات = [0،2،3] |
verbose |
bool |
True |
عرض نتائج تعقب الكائن |