Gestão de filas de espera utilizando Ultralytics YOLOv8 🚀
O que é a gestão de filas de espera?
Gestão de filas de espera utilizando Ultralytics YOLOv8 envolve a organização e o controlo de filas de pessoas ou veículos para reduzir os tempos de espera e aumentar a eficiência. Trata-se de otimizar as filas de espera para melhorar a satisfação do cliente e o desempenho do sistema em vários contextos, como o comércio a retalho, os bancos, os aeroportos e as unidades de saúde.
Vantagens da gestão de filas de espera?
Redução dos tempos de espera: Os sistemas de gestão de filas organizam as filas de forma eficiente, minimizando os tempos de espera dos clientes. Isto leva a melhores níveis de satisfação, uma vez que os clientes passam menos tempo à espera e mais tempo a interagir com os produtos ou serviços.
Aumenta a eficiência: A implementação da gestão de filas de espera permite que as empresas atribuam recursos de forma mais eficaz. Ao analisar os dados das filas de espera e otimizar a distribuição do pessoal, as empresas podem simplificar as operações, reduzir os custos e melhorar a produtividade geral.
Aplicações no mundo real
Logística
Retalho
Gestão de filas de espera na bilheteira do aeroporto Utilizar Ultralytics YOLOv8
Monitorização de filas de espera na multidão Ultralytics YOLOv8
Gestão de filas de espera utilizando YOLOv8 Exemplo
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()
Argumentos opcionais set_args
Nome
Tipo
Predefinição
Descrição
view_img
bool
False
Apresenta quadros com contagens
view_queue_counts
bool
True
Apresenta a contagem de filas apenas no fotograma de vídeo
line_thickness
int
2
Aumenta a espessura das caixas delimitadoras
reg_pts
list
[(20, 400), (1260, 400)]
Pontos que definem a área da região
classes_names
dict
model.model.names
Dicionário de nomes de classes
region_color
RGB Color
(255, 0, 255)
Cor da região ou linha de contagem de objectos
track_thickness
int
2
Espessura das linhas de rastreio
draw_tracks
bool
False
Ativar o desenho de linhas de traço
track_color
RGB Color
(0, 255, 0)
Cor para cada linha de pista
count_txt_color
RGB Color
(255, 255, 255)
Cor de primeiro plano para o texto de contagem de objectos
region_thickness
int
5
Espessura da região ou linha do contador de objectos
fontsize
float
0.6
Tamanho da letra do texto de contagem
Argumentos model.track
Nome
Tipo
Predefinição
Descrição
source
im0
None
diretório de origem para imagens ou vídeos
persist
bool
False
persistência de faixas entre fotogramas
tracker
str
botsort.yaml
Método de rastreio 'bytetrack' ou 'botsort'
conf
float
0.3
Limiar de confiança
iou
float
0.5
Limiar IOU
classes
list
None
filtra os resultados por classe, ou seja, classes=0, ou classes=[0,2,3]
verbose
bool
True
Apresenta os resultados do rastreio de objectos
Criado em 2024-04-02, Atualizado em 2024-04-02 Autores: Burhan-Q (1), RizwanMunawar (1)