Saltar al contenido

Gesti贸n de colas mediante Ultralytics YOLOv8 馃殌

驴Qu茅 es la Gesti贸n de Colas?

La gesti贸n de colas mediante Ultralytics YOLOv8 consiste en organizar y controlar colas de personas o veh铆culos para reducir los tiempos de espera y mejorar la eficacia. Se trata de optimizar las colas para mejorar la satisfacci贸n del cliente y el rendimiento del sistema en diversos entornos como comercios, bancos, aeropuertos y centros sanitarios.



Observa: C贸mo implantar la gesti贸n de colas con Ultralytics YOLOv8 | Aeropuerto y estaci贸n de metro

驴Ventajas de la gesti贸n de colas?

  • Tiempos de espera reducidos: Los sistemas de gesti贸n de colas organizan eficazmente las colas, minimizando los tiempos de espera de los clientes. Esto mejora los niveles de satisfacci贸n, ya que los clientes pasan menos tiempo esperando y m谩s tiempo interactuando con los productos o servicios.
  • Mayor eficacia: La implantaci贸n de la gesti贸n de colas permite a las empresas asignar recursos de forma m谩s eficaz. Analizando los datos de las colas y optimizando el despliegue de personal, las empresas pueden agilizar las operaciones, reducir costes y mejorar la productividad general.

Aplicaciones en el mundo real

Log铆stica Venta al por menor
Gesti贸n de colas en el mostrador de venta de billetes del aeropuerto mediante Ultralytics YOLOv8 Control de colas en multitudes mediante Ultralytics YOLOv8
Gesti贸n de colas en el mostrador de venta de billetes del aeropuerto Utilizaci贸n Ultralytics YOLOv8 Control de colas en multitudes Ultralytics YOLOv8

Gesti贸n de colas mediante YOLOv8 Ejemplo

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

Argumentos QueueManager

Nombre Tipo Por defecto Descripci贸n
names dict model.names Un diccionario que asigna ID de clase a nombres de clase.
reg_pts list of tuples [(20, 400), (1260, 400)] Puntos que definen el pol铆gono de la regi贸n de recuento. Por defecto es un rect谩ngulo predefinido.
line_thickness int 2 Grosor de las l铆neas de anotaci贸n.
track_thickness int 2 Grosor de las l铆neas de la v铆a.
view_img bool False Si se muestran los marcos de la imagen.
region_color tuple (255, 0, 255) Color de las l铆neas de la regi贸n de recuento (BGR).
view_queue_counts bool True Si se muestra el recuento de colas.
draw_tracks bool False Si se dibujan las huellas de los objetos.
count_txt_color tuple (255, 255, 255) Color del texto de recuento (BGR).
track_color tuple None Color de las v铆as. Si Nonese utilizar谩n colores diferentes para las distintas v铆as.
region_thickness int 5 Grosor de las l铆neas de la regi贸n de recuento.
fontsize float 0.7 Tama帽o de letra para las anotaciones de texto.

Argumentos model.track

Nombre Tipo Por defecto Descripci贸n
source im0 None directorio fuente de im谩genes o v铆deos
persist bool False persistencia de pistas entre fotogramas
tracker str botsort.yaml M茅todo de seguimiento 'bytetrack' o 'botsort'
conf float 0.3 Umbral de confianza
iou float 0.5 Umbral del pagar茅
classes list None filtrar los resultados por clase, es decir, classes=0, o classes=[0,2,3]
verbose bool True Mostrar los resultados del seguimiento de objetos

PREGUNTAS FRECUENTES

驴C贸mo puedo utilizar Ultralytics YOLOv8 para la gesti贸n de colas en tiempo real?

Para utilizar Ultralytics YOLOv8 para la gesti贸n de colas en tiempo real, puedes seguir estos pasos:

  1. Carga el modelo YOLOv8 con YOLO("yolov8n.pt").
  2. Captura la se帽al de v铆deo utilizando cv2.VideoCapture.
  3. Define la regi贸n de inter茅s (ROI) para la gesti贸n de colas.
  4. Procesa tramas para detectar objetos y gestionar colas.

He aqu铆 un ejemplo m铆nimo:

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,
    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)
        cv2.imshow("Queue Management", im0)
        if cv2.waitKey(1) & 0xFF == ord("q"):
            break

cap.release()
cv2.destroyAllWindows()

Aprovechar Ultralytics HUB puede agilizar este proceso proporcionando una plataforma f谩cil de usar para desplegar y gestionar tu soluci贸n de gesti贸n de colas.

驴Cu谩les son las principales ventajas de utilizar Ultralytics YOLOv8 para la gesti贸n de colas?

Utilizar Ultralytics YOLOv8 para la gesti贸n de colas ofrece varias ventajas:

  • Tiempos de espera en picado: Organiza eficazmente las colas, reduciendo los tiempos de espera de los clientes y aumentando su satisfacci贸n.
  • Mejora de la eficacia: Analiza los datos de las colas para optimizar el despliegue del personal y las operaciones, reduciendo as铆 los costes.
  • Alertas en tiempo real: Proporciona notificaciones en tiempo real de las colas largas, permitiendo una intervenci贸n r谩pida.
  • Escalabilidad: F谩cilmente escalable en distintos entornos como comercios, aeropuertos y sanidad.

Para m谩s detalles, explora nuestras soluciones de Gesti贸n de Colas.

驴Por qu茅 deber铆a elegir Ultralytics YOLOv8 en lugar de competidores como TensorFlow o Detectron2 para la gesti贸n de colas?

Ultralytics YOLOv8 tiene varias ventajas sobre TensorFlow y Detectron2 para la gesti贸n de colas:

  • Rendimiento en tiempo real: YOLOv8 es conocido por su capacidad de detecci贸n en tiempo real, que ofrece una mayor velocidad de procesamiento.
  • Facilidad de uso: Ultralytics proporciona una experiencia f谩cil de usar, desde la formaci贸n hasta la implantaci贸n, a trav茅s de Ultralytics HUB.
  • Modelos preentrenados: Acceso a una gama de modelos preentrenados, minimizando el tiempo necesario para la configuraci贸n.
  • Apoyo de la comunidad: La amplia documentaci贸n y el apoyo activo de la comunidad facilitan la resoluci贸n de problemas.

Aprende a empezar con Ultralytics YOLO.

驴Puede Ultralytics YOLOv8 gestionar varios tipos de colas, como en aeropuertos y comercios?

S铆, Ultralytics YOLOv8 puede gestionar varios tipos de colas, incluidas las de aeropuertos y entornos comerciales. Configurando el QueueManager con regiones y ajustes espec铆ficos, YOLOv8 puede adaptarse a diferentes disposiciones y densidades de colas.

Ejemplo para los aeropuertos:

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,
    fontsize=1.0,
    region_color=(0, 255, 0),
)

Para m谩s informaci贸n sobre diversas aplicaciones, consulta nuestra secci贸n Aplicaciones en el mundo real.

驴Cu谩les son algunas aplicaciones reales de Ultralytics YOLOv8 en la gesti贸n de colas?

Ultralytics YOLOv8 se utiliza en diversas aplicaciones del mundo real para la gesti贸n de colas:

  • Venta al por menor: Supervisa las colas de las cajas para reducir los tiempos de espera y mejorar la satisfacci贸n del cliente.
  • Aeropuertos: Gestiona las colas en los mostradores de venta de billetes y en los controles de seguridad para facilitar la experiencia de los pasajeros.
  • Sanidad: Optimiza el flujo de pacientes en cl铆nicas y hospitales.
  • Bancos: Mejora el servicio al cliente gestionando eficazmente las colas en los bancos.

Consulta nuestro blog sobre gesti贸n de colas en el mundo real para saber m谩s.



Creado 2024-04-02, Actualizado 2024-07-14
Autores: RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

Comentarios