Skip to content

Gestion des files d'attente à l'aide de Ultralytics YOLOv8 🚀

Qu'est-ce que la gestion des files d'attente ?

La gestion des files d'attente Ultralytics YOLOv8 implique l'organisation et le contrôle des files d'attente de personnes ou de véhicules afin de réduire les temps d'attente et d'améliorer l'efficacité. Il s'agit d'optimiser les files d'attente afin d'améliorer la satisfaction des clients et les performances du système dans divers contextes tels que le commerce de détail, les banques, les aéroports et les établissements de soins de santé.



Regarde : Comment mettre en place une gestion des files d'attente avec Ultralytics YOLOv8 | Aéroport et station de métro

Avantages de la gestion des files d'attente ?

  • RĂ©duction des temps d'attente : Les systèmes de gestion des files d'attente organisent efficacement les files d'attente, minimisant ainsi les temps d'attente pour les clients. Cela permet d'amĂ©liorer le niveau de satisfaction car les clients passent moins de temps Ă  attendre et plus de temps Ă  s'occuper des produits ou des services.
  • EfficacitĂ© accrue : La mise en Ĺ“uvre de la gestion des files d'attente permet aux entreprises d'allouer les ressources plus efficacement. En analysant les donnĂ©es relatives aux files d'attente et en optimisant le dĂ©ploiement du personnel, les entreprises peuvent rationaliser les opĂ©rations, rĂ©duire les coĂ»ts et amĂ©liorer la productivitĂ© globale.

Applications dans le monde réel

Logistique Vente au détail
Gestion des files d'attente au guichet de l'aéroport à l'aide de Ultralytics YOLOv8 Surveillance des files d'attente dans les foules Ultralytics YOLOv8
Gestion des files d'attente au guichet de l'aéroport Utilisation Ultralytics YOLOv8 Surveillance des files d'attente dans les foules Ultralytics YOLOv8

Gestion des files d'attente Ă  l'aide de YOLOv8 Exemple

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

Arguments QueueManager

Nom Type DĂ©faut Description
names dict model.names Un dictionnaire qui Ă©tablit une correspondance entre les identifiants des classes et les noms des classes.
reg_pts list of tuples [(20, 400), (1260, 400)] Points définissant le polygone de la région de comptage. La valeur par défaut est un rectangle prédéfini.
line_thickness int 2 Épaisseur des lignes d'annotation.
track_thickness int 2 Épaisseur des lignes de piste.
view_img bool False Permet d'afficher ou non les cadres de l'image.
region_color tuple (255, 0, 255) Couleur des lignes de la région de comptage (BGR).
view_queue_counts bool True Permet d'afficher ou non les comptes de la file d'attente.
draw_tracks bool False Indique s'il faut dessiner les traces des objets.
count_txt_color tuple (255, 255, 255) Couleur du texte de comptage (BGR).
track_color tuple None Couleur des pistes. Si NoneLes différentes couleurs seront utilisées pour les différentes pistes.
region_thickness int 5 Épaisseur des lignes de la région de comptage.
fontsize float 0.7 Taille de la police pour les annotations de texte.

Arguments model.track

Nom Type DĂ©faut Description
source im0 None répertoire source pour les images ou les vidéos
persist bool False persistance des pistes entre les images
tracker str botsort.yaml MĂ©thode de suivi 'bytetrack' ou 'botsort'
conf float 0.3 Seuil de confiance
iou float 0.5 Seuil de reconnaissance de dette
classes list None filtre les résultats par classe, c'est-à-dire classes=0, ou classes=[0,2,3]
verbose bool True Affiche les résultats du suivi des objets

FAQ

Comment puis-je utiliser Ultralytics YOLOv8 pour la gestion des files d'attente en temps réel ?

Pour utiliser Ultralytics YOLOv8 pour la gestion des files d'attente en temps réel, tu peux suivre les étapes suivantes :

  1. Charge le modèle YOLOv8 avec YOLO("yolov8n.pt").
  2. Capture le flux vidéo à l'aide de cv2.VideoCapture.
  3. Définis la région d'intérêt (ROI) pour la gestion des files d'attente.
  4. Traite les trames pour détecter les objets et gérer les files d'attente.

Voici un exemple minimal :

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

Tirer parti de Ultralytics HUB peut rationaliser ce processus en fournissant une plateforme conviviale pour le déploiement et la gestion de ta solution de gestion des files d'attente.

Quels sont les principaux avantages de l'utilisation de Ultralytics YOLOv8 pour la gestion des files d'attente ?

L'utilisation de Ultralytics YOLOv8 pour la gestion des files d'attente offre plusieurs avantages :

  • Des temps d'attente en chute libre : Organise efficacement les files d'attente, rĂ©duisant ainsi le temps d'attente des clients et augmentant leur satisfaction.
  • AmĂ©liorer l'efficacitĂ© : Analyse les donnĂ©es des files d'attente pour optimiser le dĂ©ploiement du personnel et les opĂ©rations, rĂ©duisant ainsi les coĂ»ts.
  • Alertes en temps rĂ©el : Fournit des notifications en temps rĂ©el pour les longues files d'attente, ce qui permet une intervention rapide.
  • ÉvolutivitĂ© : Facilement extensible dans diffĂ©rents environnements tels que la vente au dĂ©tail, les aĂ©roports et les soins de santĂ©.

Pour plus de détails, explore nos solutions de gestion des files d'attente.

Pourquoi devrais-je choisir Ultralytics YOLOv8 plutĂ´t que des concurrents comme TensorFlow ou Detectron2 pour la gestion des files d'attente ?

Ultralytics YOLOv8 présente plusieurs avantages par rapport à TensorFlow et Detectron2 pour la gestion des files d'attente :

  • Performance en temps rĂ©el : YOLOv8 est connu pour ses capacitĂ©s de dĂ©tection en temps rĂ©el, offrant des vitesses de traitement plus rapides.
  • FacilitĂ© d'utilisation : Ultralytics offre une expĂ©rience conviviale, de la formation au dĂ©ploiement, via Ultralytics HUB.
  • Modèles prĂ©formĂ©s : Accès Ă  une gamme de modèles prĂ©-entraĂ®nĂ©s, ce qui minimise le temps nĂ©cessaire Ă  la configuration.
  • Soutien de la communautĂ© : Une documentation complète et un soutien actif de la communautĂ© facilitent la rĂ©solution des problèmes.

Apprends à démarrer avec Ultralytics YOLO.

Ultralytics YOLOv8 peut-il gérer plusieurs types de files d'attente, comme dans les aéroports et les commerces de détail ?

Oui, Ultralytics YOLOv8 peut gérer différents types de files d'attente, y compris dans les aéroports et les environnements de vente au détail. En configurant le QueueManager avec des régions et des paramètres spécifiques, YOLOv8 peut s'adapter à différentes dispositions et densités de files d'attente.

Exemple pour les aéroports :

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

Pour plus d'informations sur les diverses applications, consulte notre section Applications du monde réel.

Quelles sont les applications réelles de Ultralytics YOLOv8 dans la gestion des files d'attente ?

Ultralytics YOLOv8 est utilisé dans diverses applications réelles pour la gestion des files d'attente :

  • Vente au dĂ©tail : Surveille les lignes de caisse pour rĂ©duire les temps d'attente et amĂ©liorer la satisfaction des clients.
  • AĂ©roports : Gère les files d'attente aux guichets et aux points de contrĂ´le de sĂ©curitĂ© pour une expĂ©rience plus fluide des passagers.
  • SantĂ© : Optimise le flux de patients dans les cliniques et les hĂ´pitaux.
  • Banques : AmĂ©liore le service Ă  la clientèle en gĂ©rant efficacement les files d'attente dans les banques.

Consulte notre blog sur la gestion des files d'attente dans le monde réel pour en savoir plus.



Créé le 2024-04-02, Mis à jour le 2024-07-14
Auteurs : RizwanMunawar (1), glenn-jocher (5), IvorZhu331 (1), Burhan-Q (1)

Commentaires