Управление очередью с помощью Ultralytics YOLOv8 🚀.
Что такое управление очередью?
Управление очередью с помощью Ultralytics YOLOv8 предполагает организацию и контроль очередей людей или транспортных средств для сокращения времени ожидания и повышения эффективности. Речь идет об оптимизации очередей для повышения удовлетворенности клиентов и производительности системы в различных условиях, таких как розничная торговля, банки, аэропорты и медицинские учреждения.
Преимущества управления очередью?
Сокращение времени ожидания: Системы управления очередью эффективно организуют очереди, сводя к минимуму время ожидания для клиентов. Это приводит к повышению уровня удовлетворенности, так как клиенты тратят меньше времени на ожидание и больше на работу с продуктами или услугами.
Повышение эффективности: Внедрение системы управления очередями позволяет предприятиям более эффективно распределять ресурсы. Анализируя данные об очередях и оптимизируя распределение персонала, предприятия могут оптимизировать работу, сократить расходы и повысить общую производительность.
Применение в реальном мире
Логистика
Розничная торговля
Управление очередью в билетной кассе аэропорта Использование Ultralytics YOLOv8
Мониторинг очередей в толпе Ultralytics YOLOv8
Управление очередью с помощью YOLOv8 Пример
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()
Необязательные аргументы 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
Фильтруй результаты по классам, то есть classes=0, или classes=[0,2,3]