Vai al contenuto

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
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.



📅 Creato 1 anno fa ✏️ Aggiornato 1 mese fa

Commenti