Stima della velocità utilizzando YOLO11 Ultralytics 🚀
Cos'è la stima della velocità?
La stima della velocità è il processo di calcolo del tasso di movimento di un oggetto all'interno di un determinato contesto, spesso impiegato nelle applicazioni di computer vision. Utilizzando Ultralytics YOLO11 ora puoi calcolare la velocità degli oggetti utilizzando il tracciamento degli oggetti insieme ai dati di distanza e tempo, cruciale per attività come il monitoraggio del traffico e la sorveglianza. L'accuratezza della stima della velocità influenza direttamente l'efficienza e l'affidabilità di varie applicazioni, rendendola una componente chiave nell'avanzamento dei sistemi intelligenti e dei processi decisionali in tempo reale.
Guarda: Stima della velocità utilizzando YOLO11 Ultralytics
Dai un'occhiata al nostro blog
Per approfondire la stima della velocità, consultare il nostro articolo del blog: Ultralytics YOLO11 per la stima della velocità nei progetti di computer vision
Vantaggi della Stima della Velocità
- Controllo Efficiente del Traffico: La stima accurata della velocità aiuta a gestire il flusso del traffico, migliorando la sicurezza e riducendo la congestione sulle strade.
- Navigazione autonoma precisa: Nei sistemi autonomi come le auto a guida autonoma, una stima affidabile della velocità garantisce una navigazione del veicolo sicura e precisa.
- Maggiore sicurezza nella sorveglianza: La stima della velocità nell'analisi della sorveglianza aiuta a identificare comportamenti insoliti o potenziali minacce, migliorando l'efficacia delle misure di sicurezza.
Applicazioni nel mondo reale
Trasporti | Trasporti |
---|---|
![]() |
![]() |
Stima della velocità su strada utilizzando YOLO11 Ultralytics | Stima della velocità su Bridge utilizzando YOLO11 Ultralytics |
La velocità è una stima
La velocità sarà una stima e potrebbe non essere completamente accurata. Inoltre, la stima può variare in base alle specifiche della telecamera e ai fattori correlati.
Stima della velocità tramite Ultralytics YOLO
# Run a speed example
yolo solutions speed show=True
# Pass a source video
yolo solutions speed source="path/to/video.mp4"
# Adjust meter per pixel value based on camera configuration
yolo solutions speed meter_per_pixel=0.05
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
# Video writer
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("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize speed estimation object
speedestimator = solutions.SpeedEstimator(
show=True, # display the output
model="yolo11n.pt", # path to the YOLO11 model file.
fps=fps, # adjust speed based on frame per second
# max_speed=120, # cap speed to a max value (km/h) to avoid outliers
# max_hist=5, # minimum frames object tracked before computing speed
# meter_per_pixel=0.05, # highly depends on the camera configuration
# classes=[0, 2], # estimate speed of specific classes.
# line_width=2, # adjust the line width for bounding boxes
)
# Process video
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or processing is complete.")
break
results = speedestimator(im0)
# print(results) # access the output
video_writer.write(results.plot_im) # write the processed frame.
cap.release()
video_writer.release()
cv2.destroyAllWindows() # destroy all opened windows
SpeedEstimator
Argomenti
Ecco una tabella con i SpeedEstimator
argomenti:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
model |
str |
None |
Percorso del file del modello Ultralytics YOLO. |
fps |
float |
30.0 |
Frame al secondo utilizzati per i calcoli della velocità. |
max_hist |
int |
5 |
Punti storici massimi da tracciare per oggetto per i calcoli di velocità/direzione. |
meter_per_pixel |
float |
0.05 |
Fattore di scala utilizzato per convertire la distanza in pixel in unità del mondo reale. |
max_speed |
int |
120 |
Limite massimo di velocità nelle sovrapposizioni visive (utilizzato negli avvisi). |
Il SpeedEstimator
la soluzione consente l'uso di track
parametri:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
tracker |
str |
'botsort.yaml' |
Specifica l'algoritmo di tracking da utilizzare, ad esempio: bytetrack.yaml oppure botsort.yaml . |
conf |
float |
0.3 |
Imposta la soglia di confidenza per i rilevamenti; valori inferiori consentono di tracciare più oggetti, ma potrebbero includere falsi positivi. |
iou |
float |
0.5 |
Imposta la soglia Intersection over Union (IoU) per filtrare i rilevamenti sovrapposti. |
classes |
list |
None |
Filtra i risultati per indice di classe. Per esempio, classes=[0, 2, 3] traccia solo le classi specificate. |
verbose |
bool |
True |
Controlla la visualizzazione dei risultati del tracking, fornendo un output visivo degli oggetti tracciati. |
device |
str |
None |
Specifica il dispositivo per l'inferenza (ad esempio, cpu , cuda:0 oppure 0 ). Consente agli utenti di scegliere tra CPU, una GPU specifica o altri dispositivi di calcolo per l'esecuzione del modello. |
Inoltre, sono supportate le seguenti opzioni di visualizzazione:
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
show |
bool |
False |
Se True , visualizza le immagini o i video annotati in una finestra. Utile per un feedback visivo immediato durante lo sviluppo o il test. |
line_width |
None or int |
None |
Specifica lo spessore della linea dei riquadri di delimitazione. Se None , lo spessore della linea viene regolato automaticamente in base alle dimensioni dell'immagine, fornendo una personalizzazione visiva per una maggiore chiarezza. |
show_conf |
bool |
True |
Visualizza il punteggio di confidenza per ogni rilevamento accanto all'etichetta, offrendo una panoramica sulla certezza del modello per ogni rilevamento. |
show_labels |
bool |
True |
Mostra le etichette per ogni rilevamento nell'output visivo, fornendo una comprensione immediata degli oggetti rilevati. |
FAQ
Come posso stimare la velocità degli oggetti utilizzando Ultralytics YOLO11?
La stima della velocità degli oggetti con Ultralytics YOLO11 implica la combinazione di tecniche di object detection e di tracciamento. Innanzitutto, è necessario rilevare gli oggetti in ogni frame utilizzando il modello YOLO11. Quindi, traccia questi oggetti attraverso i frame per calcolare il loro movimento nel tempo. Infine, utilizza la distanza percorsa dall'oggetto tra i frame e il frame rate per stimare la sua velocità.
Esempio:
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
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("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
# Initialize SpeedEstimator
speedestimator = solutions.SpeedEstimator(
model="yolo11n.pt",
show=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
results = speedestimator(im0)
video_writer.write(results.plot_im)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Per maggiori dettagli, consulta il nostro post ufficiale del blog.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLO11 per la stima della velocità nella gestione del traffico?
L'utilizzo di Ultralytics YOLO11 per la stima della velocità offre vantaggi significativi nella gestione del traffico:
- Sicurezza Migliorata: Stima accuratamente la velocità dei veicoli per rilevare il superamento dei limiti e migliorare la sicurezza stradale.
- Monitoraggio in tempo reale: Approfitta della capacità di rilevamento di oggetti in tempo reale di YOLO11 per monitorare efficacemente il flusso del traffico e la congestione.
- Scalabilità: Distribuisci il modello su varie configurazioni hardware, dai dispositivi edge ai server, garantendo soluzioni flessibili e scalabili per implementazioni su larga scala.
Per ulteriori applicazioni, vedere i vantaggi della stima della velocità.
YOLO11 può essere integrato con altri framework di intelligenza artificiale come TensorFlow o PyTorch?
Sì, YOLO11 può essere integrato con altri framework di intelligenza artificiale come TensorFlow e PyTorch. Ultralytics fornisce supporto per l'esportazione di modelli YOLO11 in vari formati come ONNX, TensorRT e CoreML, garantendo una perfetta interoperabilità con altri framework ML.
Per esportare un modello YOLO11 in formato ONNX:
yolo export model=yolo11n.pt format=onnx
Scopri di più sull'esportazione di modelli nella nostra guida all'esportazione.
Quanto è precisa la stima della velocità utilizzando Ultralytics YOLO11?
L'accuratezza della stima della velocità utilizzando Ultralytics YOLO11 dipende da diversi fattori, tra cui la qualità del tracciamento degli oggetti, la risoluzione e il frame rate del video e le variabili ambientali. Sebbene lo strumento di stima della velocità fornisca stime affidabili, potrebbe non essere preciso al 100% a causa delle variazioni nella velocità di elaborazione dei frame e dell'occlusione degli oggetti.
Nota: Considerare sempre il margine di errore e convalidare le stime con i dati di riferimento quando possibile.
Per ulteriori suggerimenti sul miglioramento dell'accuratezza, consulta Argomenti SpeedEstimator
sezione.