إدارة قائمة الانتظار باستخدام Ultralytics YOLOv8 🚀
ما هي إدارة قائمة الانتظار؟
إدارة قائمة الانتظار باستخدام Ultralytics YOLOv8 يتضمن تنظيم ومراقبة خطوط الأشخاص أو المركبات لتقليل أوقات الانتظار وتعزيز الكفاءة. يتعلق الأمر بتحسين قوائم الانتظار لتحسين رضا العملاء وأداء النظام في أماكن مختلفة مثل البيع بالتجزئة والبنوك والمطارات ومرافق الرعاية الصحية.
شاهد: كيفية تنفيذ إدارة طوابير الانتظار باستخدام Ultralytics YOLOv8 | المطار ومحطة المترو
مزايا إدارة قائمة الانتظار؟
- تقليل أوقات الانتظار: تعمل أنظمة إدارة قائمة الانتظار على تنظيم قوائم الانتظار بكفاءة ، مما يقلل من أوقات الانتظار للعملاء. يؤدي ذلك إلى تحسين مستويات الرضا حيث يقضي العملاء وقتا أقل في الانتظار والمزيد من الوقت في التعامل مع المنتجات أو الخدمات.
- زيادة الكفاءة: يسمح تنفيذ إدارة قائمة الانتظار للشركات بتخصيص الموارد بشكل أكثر فعالية. من خلال تحليل بيانات قائمة الانتظار وتحسين نشر الموظفين، يمكن للشركات تبسيط العمليات وخفض التكاليف وتحسين الإنتاجية الإجمالية.
تطبيقات العالم الحقيقي
السوقيات | التجزئه |
---|---|
إدارة قائمة الانتظار في شباك تذاكر المطار باستخدام Ultralytics YOLOv8 | مراقبة قائمة الانتظار في الحشد Ultralytics YOLOv8 |
إدارة قائمة الانتظار باستخدام YOLOv8 مثل
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,
)
while cap.isOpened():
success, im0 = cap.read()
if success:
tracks = model.track(im0, persist=True)
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,
)
while cap.isOpened():
success, im0 = cap.read()
if success:
tracks = model.track(im0, persist=True, 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()
الحجج QueueManager
اسم | نوع | افتراضي | وصف |
---|---|---|---|
names |
dict |
model.names |
قاموس تعيين معرّفات الفئات إلى أسماء الفئات. |
reg_pts |
list of tuples |
[(20, 400), (1260, 400)] |
النقاط التي تحدد مضلع منطقة العد. افتراضي إلى مستطيل محدد مسبقاً. |
line_thickness |
int |
2 |
سماكة الخطوط التوضيحية. |
view_img |
bool |
False |
ما إذا كان سيتم عرض إطارات الصور أم لا. |
draw_tracks |
bool |
False |
سواء لرسم مسارات الكائنات. |
الحجج model.track
جدال | نوع | افتراضي | وصف |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml أو botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
الأسئلة المتداولة
كيف يمكنني استخدام Ultralytics YOLOv8 لإدارة قوائم الانتظار في الوقت الفعلي؟
لاستخدام Ultralytics YOLOv8 لإدارة قوائم الانتظار في الوقت الفعلي، يمكنك اتباع الخطوات التالية:
- تحميل النموذج YOLOv8 مع
YOLO("yolov8n.pt")
. - التقاط موجز الفيديو باستخدام
cv2.VideoCapture
. - تحديد منطقة الاهتمام (ROI) لإدارة قائمة الانتظار.
- معالجة الإطارات للكشف عن الكائنات وإدارة قوائم الانتظار.
إليك مثال بسيط:
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,
)
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()
يمكن أن تؤدي الاستفادة من Ultralytics HUB إلى تبسيط هذه العملية من خلال توفير منصة سهلة الاستخدام لنشر حل إدارة قوائم الانتظار وإدارته.
ما هي المزايا الرئيسية لاستخدام Ultralytics YOLOv8 لإدارة قوائم الانتظار؟
يوفر استخدام Ultralytics YOLOv8 لإدارة قوائم الانتظار العديد من المزايا:
- تقليل أوقات الانتظار: تنظيم طوابير الانتظار بكفاءة، مما يقلل من أوقات انتظار العملاء ويعزز رضاهم.
- تعزيز الكفاءة: تحليل بيانات قائمة الانتظار لتحسين نشر الموظفين والعمليات على النحو الأمثل، وبالتالي تقليل التكاليف.
- تنبيهات في الوقت الحقيقي: يوفر إشعارات في الوقت الفعلي لقوائم الانتظار الطويلة، مما يتيح التدخل السريع.
- قابلية التوسع: قابلة للتطوير بسهولة عبر بيئات مختلفة مثل البيع بالتجزئة والمطارات والرعاية الصحية.
لمزيد من التفاصيل، استكشف حلول إدارة قوائم الانتظار الخاصة بنا.
لماذا يجب أن أختار Ultralytics YOLOv8 على المنافسين مثل TensorFlow أو Detectron2 لإدارة قوائم الانتظار؟
Ultralytics YOLOv8 العديد من المزايا على TensorFlow و Detectron2 لإدارة قوائم الانتظار:
- الأداء في الوقت الحقيقي: يشتهر موقع YOLOv8 بقدراته على الكشف في الوقت الحقيقي، مما يوفر سرعات معالجة أسرع.
- سهولة الاستخدام: يوفر Ultralytics تجربة سهلة الاستخدام، بدءًا من التدريب وحتى النشر، عبر Ultralytics HUB.
- نماذج مدربة مسبقًا: الوصول إلى مجموعة من النماذج المدربة مسبقًا، مما يقلل من الوقت اللازم للإعداد.
- دعم المجتمع: التوثيق الشامل والدعم المجتمعي النشط يجعل حل المشاكل أسهل.
تعلّم كيف تبدأ مع Ultralytics YOLO.
هل يمكن لموقع Ultralytics YOLOv8 التعامل مع أنواع متعددة من قوائم الانتظار، كما هو الحال في المطارات وتجارة التجزئة؟
نعم، يستطيع Ultralytics YOLOv8 إدارة أنواع مختلفة من قوائم الانتظار، بما في ذلك تلك الموجودة في المطارات وبيئات البيع بالتجزئة. من خلال تهيئة QueueManager بمناطق وإعدادات محددة، يمكن لـ YOLOv8 التكيف مع تخطيطات وكثافات طوابير الانتظار المختلفة.
مثال للمطارات:
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,
)
للمزيد من المعلومات حول التطبيقات المتنوعة، راجع قسم تطبيقات العالم الحقيقي.
ما هي بعض التطبيقات الواقعية لـ Ultralytics YOLOv8 في إدارة قوائم الانتظار؟
Ultralytics YOLOv8 في العديد من التطبيقات الواقعية لإدارة قوائم الانتظار:
- البيع بالتجزئة: مراقبة طوابير الدفع لتقليل أوقات الانتظار وتحسين رضا العملاء.
- المطارات: إدارة طوابير الانتظار عند شبابيك التذاكر ونقاط التفتيش الأمني لتوفير تجربة أكثر سلاسة للركاب.
- الرعاية الصحية: تحسين تدفق المرضى في العيادات والمستشفيات.
- البنوك: تحسين خدمة العملاء من خلال إدارة قوائم الانتظار بكفاءة في البنوك.
راجع مدونتنا حول إدارة قوائم الانتظار في العالم الحقيقي لمعرفة المزيد.