Ultralytics YOLOv8 per stimare la velocità nei progetti di computer vision
Scopri come usare il modello Ultralytics YOLOv8 per stimare la velocità nei tuoi progetti di computer vision. Provalo tu stesso con un semplice esempio di codice.
Abirami Vina8 min di lettura
Probabilmente abbiamo visto tutti i segnali stradali con i limiti di velocità. Alcuni di noi potrebbero anche aver ricevuto per posta o via e-mail una notifica automatica per il superamento del limite. I sistemi di gestione del traffico basati sull’intelligenza artificiale (AI) possono segnalare automaticamente le violazioni dei limiti di velocità grazie alla visione artificiale. Le riprese in tempo reale registrate dalle telecamere ai semafori e sulle autostrade vengono usate per stimare la velocità e migliorare la sicurezza stradale.
La stima della velocità non è limitata alla sicurezza autostradale. Può essere usata nello sport, nei veicoli autonomi e in numerose altre applicazioni. In questo articolo vedremo come usare il modello Ultralytics YOLOv8 per stimare la velocità nei tuoi progetti di visione artificiale. Seguiremo inoltre passo dopo passo un esempio di codice, così potrai provarlo tu stesso.
La stima della velocità semplifica la gestione del traffico#
Secondo l'Organizzazione mondiale della sanità (WHO), circa 1,16 milioni di persone muoiono ogni anno in incidenti stradali, e la velocità eccessiva è uno dei principali fattori che vi contribuiscono. Altre 20-50 milioni di persone riportano lesioni non mortali, molte delle quali causano disabilità. L'importanza della sicurezza stradale non va sottovalutata, soprattutto perché la stima della velocità aiuta a prevenire gli incidenti, salvare vite e mantenere le strade sicure ed efficienti.
La stima della velocità tramite visione artificiale consiste nel rilevare e tracciare gli oggetti nei fotogrammi video per calcolare la loro velocità. Modelli come Ultralytics YOLOv8 possono identificare e tracciare oggetti, come i veicoli, in fotogrammi consecutivi. Il sistema misura la distanza percorsa dagli oggetti usando telecamere calibrate o punti di riferimento per stimare le distanze reali. Misurando il tempo impiegato dagli oggetti per spostarsi tra due punti, il sistema ne calcola la velocità in base al rapporto tra distanza e tempo.

Fig. 1. Stima della velocità con il modello Ultralytics YOLOv8.
Oltre a individuare chi supera i limiti di velocità, i sistemi di stima della velocità basati sull’AI possono raccogliere dati e fare previsioni sul traffico. Queste previsioni possono supportare attività di gestione del traffico come l’ottimizzazione dei tempi dei semafori e l’allocazione delle risorse. Le informazioni sui flussi del traffico e sulle cause della congestione possono essere usate per pianificare nuove strade e ridurre gli ingorghi.
Applicazioni della stima della velocità in altri settori#
Le applicazioni della stima della velocità vanno oltre il monitoraggio stradale. Può essere utile anche per monitorare le prestazioni degli atleti, aiutare i veicoli autonomi a capire la velocità degli oggetti che li circondano, rilevare comportamenti sospetti e molto altro. Ovunque sia possibile usare una telecamera per misurare la velocità di un oggetto, si può applicare la stima della velocità tramite visione artificiale.
Ecco alcuni esempi di applicazione della stima della velocità:
- Le auto autonome di Tesla usano la stima della velocità basata sulla visione per evitare le collisioni.
- Le città intelligenti stanno studiando l’analisi dell’andatura dei pedoni per monitorare la velocità di camminata e migliorare la mobilità e la sicurezza urbane. Questi sistemi possono avvisare i conducenti della presenza di pedoni e prevenire gli incidenti.
- I sistemi di monitoraggio del comportamento animale usano la stima della velocità per tracciare i movimenti degli animali e rilevare segnali di sofferenza o malattia.

Fig 2. La stima della velocità può misurare la velocità di camminata di una persona.
I vantaggi della stima della velocità tramite visione artificiale#
I sistemi di stima della velocità basati sulla visione stanno sostituendo i metodi tradizionali basati su sensori grazie alla maggiore precisione, convenienza economica e flessibilità. A differenza dei sistemi che si affidano a sensori costosi come LiDAR, la visione artificiale usa telecamere standard per monitorare e analizzare la velocità in tempo reale. Le soluzioni di visione artificiale per la stima della velocità possono essere integrate con le infrastrutture stradali esistenti. Inoltre, questi sistemi possono essere progettati per svolgere numerose attività complesse, come l'identificazione del tipo di veicolo e l'analisi dei flussi di traffico, migliorando la fluidità complessiva della circolazione e la sicurezza.
Provalo tu stesso: stima della velocità con Ultralytics YOLOv8#
Ora che abbiamo chiarito cosa sia la stima della velocità e quali siano le sue applicazioni, vediamo più da vicino come integrarla nei tuoi progetti di visione artificiale tramite il codice. Rileveremo i veicoli in movimento e ne stimeremo la velocità usando il modello Ultralytics YOLOv8.
Questo esempio usa un video di auto su una strada scaricato da Internet. Puoi usare lo stesso video o qualsiasi altro video pertinente. Il modello Ultralytics YOLOv8 rileva e traccia ogni veicolo, mentre lo stimatore di velocità converte lo spostamento di ciascun veicolo tracciato attraverso diversi fotogrammi in una velocità, usando la frequenza dei fotogrammi del video e una scala di metri per pixel.
Prima di iniziare, è importante notare che in questo caso il calcolo della distanza è approssimativo e si basa sulla distanza euclidea in pixel moltiplicata per un valore stimato di metri per pixel. La calibrazione della telecamera non viene presa in considerazione, quindi la stima della velocità potrebbe non essere del tutto precisa.
Passaggio 1: iniziamo installando il pacchetto Ultralytics. Apri il prompt dei comandi o il terminale ed esegui il comando riportato di seguito.
pip install ultralyticsConsulta la guida all’installazione di Ultralytics per istruzioni dettagliate e best practice sul processo di installazione. Se riscontri problemi durante l’installazione dei pacchetti necessari per YOLOv8, la nostra guida ai problemi comuni offre soluzioni e suggerimenti utili.
Passaggio 2: importiamo quindi le librerie necessarie. La libreria OpenCV ci aiuterà a gestire l’elaborazione video.
import cv2
from ultralytics import solutionsPassaggio 3: In questo passaggio apriremo il file video di input usando il modulo VideoCapture di OpenCV. Estrarremo inoltre larghezza, altezza e fotogrammi al secondo (fps) del video.
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))Passaggio 4: Qui inizializzeremo il writer video per salvare i risultati finali della stima della velocità. Il file video di output verrà salvato come “speed_estimation.avi”.
video_writer = cv2.VideoWriter("speed_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))Passaggio 5: Ora possiamo inizializzare l'oggetto per la stima della velocità con il modello Ultralytics YOLOv8 e la frequenza dei fotogrammi del video. Il valore meter_per_pixel imposta la scala del mondo reale della scena, quindi puoi modificarlo in base alla configurazione della tua telecamera.
speed_obj = solutions.SpeedEstimator(
model="yolov8n.pt",
fps=fps,
meter_per_pixel=0.05,
show=True,
)Scopri tutti i modelli supportati per capire quale sia il più adatto al tuo progetto.
Passaggio 6: Il nucleo dello script elabora il video fotogramma per fotogramma. Leggiamo ogni fotogramma e lo stimatore di velocità rileva e traccia gli oggetti, ne stima la velocità e restituisce il fotogramma annotato, che viene scritto nel video di output.
while cap.isOpened():
success, im0 = cap.read()
if not success:
print("Video frame is empty or video processing has been successfully completed.")
break
results = speed_obj(im0)
video_writer.write(results.plot_im)Passaggio 7: Infine, rilasciamo gli oggetti di acquisizione e scrittura video e chiudiamo tutte le finestre di OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Passaggio 8: Salva lo script. Se lavori dal terminale o dal prompt dei comandi, esegui lo script con il comando seguente:
python your_script_name.pyLe sfide della stima della velocità basata sulla visione#
È inoltre importante comprendere le difficoltà legate all'implementazione della stima della velocità tramite visione artificiale. Condizioni meteorologiche sfavorevoli, come pioggia, nebbia o neve, possono creare problemi al sistema perché riducono la visibilità della strada. Analogamente, le occlusioni causate da altri veicoli o oggetti possono rendere difficile per questi sistemi tracciare un veicolo di interesse e stimarne accuratamente la velocità. Anche le condizioni di scarsa illuminazione, che provocano ombre o riflessi del sole, possono complicare ulteriormente la stima della velocità.
Un'altra difficoltà riguarda la potenza di calcolo. Per stimare la velocità in tempo reale, dobbiamo elaborare molti dati visivi provenienti da telecamere stradali ad alta qualità. La tua soluzione potrebbe richiedere hardware costoso per gestire tutto questo e garantire che il sistema funzioni rapidamente, senza ritardi.
C'è poi il problema della privacy. I dati raccolti da questi sistemi possono includere informazioni sul veicolo di una persona, come marca, modello e targa, che potrebbero essere acquisite senza il suo consenso. Alcune moderne telecamere HD possono persino acquisire immagini degli occupanti dell'auto. La raccolta di dati di questo tipo può sollevare seri problemi etici e legali, da gestire con la massima attenzione.
A tutta velocità verso il futuro#
L'uso del modello Ultralytics YOLOv8 per la stima della velocità offre una soluzione flessibile ed efficiente per numerose applicazioni. Nonostante alcune difficoltà, come la precisione in condizioni avverse e la tutela della privacy, i vantaggi sono significativi. Rispetto ai metodi tradizionali, la stima della velocità basata sulla visione artificiale è più conveniente, adattabile e precisa. È utile in diversi settori, come i trasporti, lo sport, la sorveglianza e le auto a guida autonoma. Grazie a tutti questi vantaggi e applicazioni, è probabile che diventi una componente fondamentale dei futuri sistemi intelligenti.
Ti interessa l'AI? Entra in contatto con la nostra community! Esplora il nostro repository GitHub per scoprire come usiamo l'AI per creare soluzioni innovative in diversi settori, come la sanità e l'agricoltura. Collabora, innova e impara insieme a noi!
Scritto da
Commenti
Fai una domanda, condividi i tuoi risultati o aiuta qualcun altro.










