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 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 None Les 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 :
- Charge le modèle YOLOv8 avec
YOLO("yolov8n.pt")
. - Capture le flux vidéo à l'aide de
cv2.VideoCapture
. - Définis la région d'intérêt (ROI) pour la gestion des files d'attente.
- 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)