Queue Management using Ultralytics YOLO11 🚀
Che cos'è la gestione delle code?
Queue management using Ultralytics YOLO11 involves organizing and controlling lines of people or vehicles to reduce wait times and enhance efficiency. It's about optimizing queues to improve customer satisfaction and system performance in various settings like retail, banks, airports, and healthcare facilities.
Guarda: How to Implement Queue Management with Ultralytics YOLO11 | Airport and Metro Station
Vantaggi della gestione delle code?
- Riduzione dei tempi di attesa: I sistemi di gestione delle code organizzano in modo efficiente le code, riducendo al minimo i tempi di attesa dei clienti. Questo porta a migliorare i livelli di soddisfazione dei clienti, che passano meno tempo ad aspettare e più tempo a interagire con i prodotti o i servizi.
- Maggiore efficienza: L'implementazione della gestione delle code consente alle aziende di allocare le risorse in modo più efficace. Analizzando i dati sulle code e ottimizzando l'impiego del personale, le aziende possono snellire le operazioni, ridurre i costi e migliorare la produttività complessiva.
Applicazioni nel mondo reale
Logistica | Vendita al dettaglio |
---|---|
Queue management at airport ticket counter Using Ultralytics YOLO11 | Queue monitoring in crowd Ultralytics YOLO11 |
Queue Management using YOLO11 Example
import cv2
from ultralytics import solutions
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(
model="yolo11n.pt",
region=queue_region,
)
while cap.isOpened():
success, im0 = cap.read()
if success:
out = queue.process_queue(im0)
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 solutions
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(
model="yolo11n.pt",
classes=3,
)
while cap.isOpened():
success, im0 = cap.read()
if success:
out = queue.process_queue(im0)
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()
Argomenti QueueManager
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Path to Ultralytics YOLO Model File |
region |
list |
[(20, 400), (1260, 400)] |
List of points defining the queue region. |
line_width |
int |
2 |
Spessore delle linee per i riquadri di delimitazione. |
show |
bool |
False |
Flag per controllare se visualizzare il flusso video. |
Argomenti model.track
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
str |
None |
Specifies the source directory for images or videos. Supports file paths and URLs. |
persist |
bool |
False |
Enables persistent tracking of objects between frames, maintaining IDs across video sequences. |
tracker |
str |
botsort.yaml |
Specifies the tracking algorithm to use, e.g., bytetrack.yaml o botsort.yaml . |
conf |
float |
0.3 |
Sets the confidence threshold for detections; lower values allow more objects to be tracked but may include false positives. |
iou |
float |
0.5 |
Sets the Intersection over Union (IoU) threshold for filtering overlapping detections. |
classes |
list |
None |
Filters results by class index. For example, classes=[0, 2, 3] only tracks the specified classes. |
verbose |
bool |
True |
Controls the display of tracking results, providing a visual output of tracked objects. |
DOMANDE FREQUENTI
How can I use Ultralytics YOLO11 for real-time queue management?
To use Ultralytics YOLO11 for real-time queue management, you can follow these steps:
- Load the YOLO11 model with
YOLO("yolo11n.pt")
. - Cattura il feed video utilizzando
cv2.VideoCapture
. - Definisci la regione di interesse (ROI) per la gestione delle code.
- Elabora i frame per rilevare gli oggetti e gestire le code.
Ecco un esempio minimo:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
queue_region = [(20, 400), (1080, 404), (1080, 360), (20, 360)]
queue = solutions.QueueManager(
model="yolo11n.pt",
region=queue_region,
line_width=3,
)
while cap.isOpened():
success, im0 = cap.read()
if success:
out = queue.process_queue(im0)
cv2.imshow("Queue Management", im0)
if cv2.waitKey(1) & 0xFF == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
L'utilizzo di Ultralytics HUB può semplificare questo processo, fornendo una piattaforma di facile utilizzo per l'implementazione e la gestione della tua soluzione di gestione delle code.
What are the key advantages of using Ultralytics YOLO11 for queue management?
Using Ultralytics YOLO11 for queue management offers several benefits:
- Riduzione dei tempi di attesa: Organizza in modo efficiente le code, riducendo i tempi di attesa dei clienti e aumentandone la soddisfazione.
- Migliorare l'efficienza: Analizza i dati sulle code per ottimizzare l'impiego del personale e le operazioni, riducendo così i costi.
- Avvisi in tempo reale: Fornisce notifiche in tempo reale per le code lunghe, consentendo un intervento rapido.
- Scalabilità: Facilmente scalabile in ambienti diversi come la vendita al dettaglio, gli aeroporti e la sanità.
Per maggiori dettagli, esplora le nostre soluzioni di Queue Management.
Why should I choose Ultralytics YOLO11 over competitors like TensorFlow or Detectron2 for queue management?
Ultralytics YOLO11 has several advantages over TensorFlow and Detectron2 for queue management:
- Real-time Performance: YOLO11 is known for its real-time detection capabilities, offering faster processing speeds.
- Facilità d'uso: Ultralytics offre un'esperienza facile da usare, dalla formazione all'implementazione, tramite Ultralytics HUB.
- Modelli preaddestrati: Accesso a una serie di modelli preaddestrati, che riducono al minimo il tempo necessario per la configurazione.
- Supporto della comunità: L'ampia documentazione e il supporto attivo della comunità facilitano la risoluzione dei problemi.
Scopri come iniziare a lavorare con Ultralytics YOLO.
Can Ultralytics YOLO11 handle multiple types of queues, such as in airports and retail?
Yes, Ultralytics YOLO11 can manage various types of queues, including those in airports and retail environments. By configuring the QueueManager with specific regions and settings, YOLO11 can adapt to different queue layouts and densities.
Esempio per gli aeroporti:
queue_region_airport = [(50, 600), (1200, 600), (1200, 550), (50, 550)]
queue_airport = solutions.QueueManager(
model="yolo11n.pt",
region=queue_region_airport,
line_width=3,
)
Per maggiori informazioni sulle diverse applicazioni, consulta la nostra sezione Applicazioni del mondo reale.
What are some real-world applications of Ultralytics YOLO11 in queue management?
Ultralytics YOLO11 is used in various real-world applications for queue management:
- Vendita al dettaglio: Monitora le linee di cassa per ridurre i tempi di attesa e migliorare la soddisfazione dei clienti.
- Aeroporti: Gestisce le code alle biglietterie e ai controlli di sicurezza per rendere più agevole l'esperienza dei passeggeri.
- Assistenza sanitaria: Ottimizza il flusso dei pazienti in cliniche e ospedali.
- Banche: Migliora il servizio ai clienti gestendo in modo efficiente le code nelle banche.
Per saperne di più, consulta il nostro blog sulla gestione delle code nel mondo reale.