Vai al contenuto

Stima della velocità utilizzando Ultralytics YOLO11 🚀

Che cos'è la stima della velocità?

La stima della velocità è il processo di calcolo della velocità di movimento di un oggetto all'interno di un determinato contesto, spesso utilizzato nelle applicazioni di computer vision. Utilizzando Ultralytics YOLO11 è ora possibile calcolare la velocità di un oggetto utilizzando il tracciamento dell'oggetto insieme ai dati sulla distanza e sul tempo, fondamentali per attività come il traffico e la sorveglianza. L'accuratezza della stima della velocità influenza direttamente l'efficienza e l'affidabilità di varie applicazioni, rendendola un componente chiave per il progresso dei sistemi intelligenti e dei processi decisionali in tempo reale.



Guarda: Stima della velocità con Ultralytics YOLO11

Scopri il nostro blog

Per un approfondimento sulla stima della velocità, consultate il nostro blog post: Ultralytics YOLO11 per la stima della velocità nei progetti di visione artificiale.

Vantaggi della stima della velocità?

  • Controllo efficiente del traffico: Una stima accurata della velocità aiuta a gestire il flusso del traffico, a migliorare la sicurezza e a ridurre la congestione stradale.
  • Navigazione autonoma precisa: Nei sistemi autonomi come le auto a guida autonoma, una stima affidabile della velocità garantisce una navigazione sicura e precisa del veicolo.
  • Maggiore sicurezza della 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

Trasporto Trasporto
Stima della velocità su strada utilizzando Ultralytics YOLO11 Stima della velocità su un ponte utilizzando Ultralytics YOLO11
Stima della velocità su strada utilizzando Ultralytics YOLO11 Stima della velocità su un ponte utilizzando Ultralytics YOLO11

Esempio di stima della velocità con YOLO11

# Run a speed example
yolo solutions speed show=True

# Pass a source video
yolo solutions speed source="path/to/video/file.mp4"

# Pass region coordinates
yolo solutions speed region=[(20, 400), (1080, 400), (1080, 360), (20, 360)]
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
video_writer = cv2.VideoWriter("speed_management.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Define speed region points
speed_region = [(20, 400), (1080, 400), (1080, 360), (20, 360)]

speed = solutions.SpeedEstimator(
    show=True,  # Display the output
    model="yolo11n-pose.pt",  # Path to the YOLO11 model file.
    region=speed_region,  # Pass region points
    # classes=[0, 2],  # If you want to estimate speed of specific classes.
    # line_width=2,  # Adjust the line width for bounding boxes and text display
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if success:
        out = speed.estimate_speed(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()
La velocità è una stima

La velocità è una stima e potrebbe non essere completamente accurata. Inoltre, la stima può variare a seconda della velocità di GPU .

Argomenti SpeedEstimator

Nome Tipo Predefinito Descrizione
model str None Percorso del file del modello Ultralytics YOLO
region list [(20, 400), (1260, 400)] Elenco dei punti che definiscono la regione di conteggio.
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 Specifica la directory di origine delle immagini o dei video. Supporta percorsi di file e URL.
persist bool False Consente il tracciamento persistente degli oggetti tra i fotogrammi, mantenendo gli ID tra le sequenze video.
tracker str botsort.yaml Specifica l'algoritmo di tracciamento da utilizzare, ad es, bytetrack.yaml o botsort.yaml.
conf float 0.3 Imposta la soglia di confidenza per i rilevamenti; valori più bassi consentono di tracciare un maggior numero di oggetti, ma possono includere falsi positivi.
iou float 0.5 Imposta la soglia Intersection over Union (IoU) per il filtraggio dei rilevamenti sovrapposti.
classes list None Filtra i risultati per indice di classe. Ad esempio, classes=[0, 2, 3] tiene traccia solo delle classi specificate.
verbose bool True Controlla la visualizzazione dei risultati del tracciamento, fornendo un output visivo degli oggetti tracciati.

FAQ

Come si fa a stimare la velocità di un oggetto usando Ultralytics YOLO11 ?

La stima della velocità degli oggetti con Ultralytics YOLO11 comporta la combinazione di tecniche di rilevamento e tracciamento degli oggetti. In primo luogo, è necessario rilevare gli oggetti in ogni fotogramma utilizzando il modello YOLO11 . Quindi, tracciare questi oggetti tra i fotogrammi per calcolare il loro movimento nel tempo. Infine, si utilizza la distanza percorsa dall'oggetto tra un fotogramma e l'altro e la frequenza dei fotogrammi per stimarne la velocità.

Esempio:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video/file.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
speed_obj = solutions.SpeedEstimator(
    region=[(0, 360), (1280, 360)],
    model="yolo11n.pt",
    show=True,
)

while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        break
    im0 = speed_obj.estimate_speed(im0)
    video_writer.write(im0)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Per maggiori dettagli, consultate il nostro post ufficiale sul 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 notevoli vantaggi nella gestione del traffico:

  • Maggiore sicurezza: Stima accurata della velocità dei veicoli per rilevare l'eccesso di velocità e migliorare la sicurezza stradale.
  • Monitoraggio in tempo reale: Approfittate della capacità di rilevamento degli oggetti in tempo reale di YOLO11 per monitorare efficacemente il flusso di traffico e la congestione.
  • Scalabilità: L'implementazione del modello su diverse configurazioni hardware, dai dispositivi edge ai server, garantisce soluzioni flessibili e scalabili per le 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 il supporto per l'esportazione dei modelli di YOLO11 in vari formati come ONNX, TensorRT e CoreML, assicurando un'interoperabilità senza problemi con altri framework di ML.

Per esportare un modello YOLO11 in formato ONNX :

yolo export --weights yolo11n.pt --include onnx

Per saperne di più sull'esportazione dei modelli, consultate la nostra guida all'esportazione.

Quanto è accurata 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 dell'oggetto, la risoluzione e la frequenza dei fotogrammi del video e le variabili ambientali. Sebbene lo stimatore di velocità fornisca stime affidabili, potrebbe non essere accurato al 100% a causa delle variazioni nella velocità di elaborazione dei fotogrammi e dell'occlusione degli oggetti.

Nota: considerare sempre il margine di errore e convalidare le stime con i dati di verità a terra, quando possibile.

Per ulteriori suggerimenti per migliorare la precisione, consultare la sezione Argomenti SpeedEstimator sezione.

Perché scegliere Ultralytics YOLO11 rispetto ad altri modelli di rilevamento degli oggetti come TensorFlow Object Detection API?

Ultralytics YOLO11 offre diversi vantaggi rispetto ad altri modelli di rilevamento degli oggetti, come l'API TensorFlow Object Detection:

  • Prestazioni in tempo reale: YOLO11 è ottimizzato per il rilevamento in tempo reale, garantendo velocità e precisione elevate.
  • Facilità d'uso: Progettato con un'interfaccia facile da usare, YOLO11 semplifica la formazione e l'implementazione dei modelli.
  • Versatilità: Supporta molteplici attività, tra cui il rilevamento di oggetti, la segmentazione e la stima della posa.
  • Comunità e supporto: YOLO11 è supportato da una comunità attiva e da un'ampia documentazione, che assicurano agli sviluppatori le risorse necessarie.

Per maggiori informazioni sui vantaggi di YOLO11, consultate la nostra pagina dettagliata dei modelli.

📅 Created 11 months ago ✏️ Updated 17 days ago

Commenti