Ultralytics YOLOv8 per la stima della velocità nei progetti di computer vision
Scopri come il modello Ultralytics YOLOv8 può essere utilizzato per la stima della velocità nei tuoi progetti di computer vision. Provalo tu stesso con un semplice esempio di codice.

Probabilmente abbiamo visto tutti i cartelli stradali con i limiti di velocità. Alcuni di noi potrebbero persino aver ricevuto una notifica automatica di violazione del limite di velocità per posta o e-mail. I sistemi di gestione del traffico basati sull'intelligenza artificiale (IA) possono segnalare automaticamente le violazioni per eccesso di velocità grazie alla computer vision. I filmati in tempo reale acquisiti dalle telecamere ai semafori e sulle autostrade vengono utilizzati per la stima della velocità e per rafforzare la sicurezza stradale.
La stima della velocità non si limita solo alla sicurezza autostradale. Può essere utilizzata nello sport, nei veicoli autonomi e in svariate altre applicazioni. In questo articolo, discuteremo di come puoi utilizzare il modello Ultralytics YOLOv8 per la stima della velocità nei tuoi progetti di computer vision. Ti guideremo anche passo dopo passo attraverso un esempio di codice in modo che tu possa provarlo personalmente. Iniziamo!
Link to this sectionLa stima della velocità semplifica la gestione del traffico#
Secondo l'Organizzazione Mondiale della Sanità (OMS), circa 1,19 milioni di persone muoiono ogni anno a causa di incidenti stradali dovuti all'eccesso di velocità. Inoltre, da 20 a 50 milioni di persone in più subiscono lesioni non mortali, molte delle quali portano a disabilità. L'importanza della sicurezza stradale non può essere sopravvalutata, soprattutto quando la stima della velocità aiuta a prevenire incidenti, salvare vite e mantenere le nostre strade sicure ed efficienti.
La stima della velocità tramite computer vision comporta il rilevamento e il tracciamento degli oggetti nei fotogrammi video per calcolare quanto velocemente si stanno muovendo. Algoritmi come YOLOv8 possono identificare e tracciare oggetti come i veicoli in fotogrammi consecutivi. Il sistema misura la distanza percorsa da questi oggetti utilizzando telecamere calibrate o punti di riferimento per misurare le distanze nel mondo reale. Cronometrando il tempo impiegato dagli oggetti per spostarsi tra due punti, il sistema calcola la loro velocità utilizzando il rapporto distanza-tempo.

Fig 1. Stima della velocità utilizzando il modello Ultralytics YOLOv8.
Oltre a individuare chi supera i limiti, i sistemi di stima della velocità integrati con l'IA possono raccogliere dati per 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 modelli di traffico e sulle cause della congestione possono essere utilizzate per pianificare nuove strade al fine di ridurre l'intasamento del traffico.
Link to this sectionApplicazioni della stima della velocità in altri settori#
Le applicazioni della stima della velocità vanno oltre il monitoraggio stradale. Può anche essere utile per monitorare le prestazioni degli atleti, aiutare i veicoli autonomi a comprendere la velocità degli oggetti che si muovono attorno a loro, rilevare comportamenti sospetti, ecc. Ovunque sia possibile utilizzare una telecamera per misurare la velocità di un oggetto, si può utilizzare la stima della velocità tramite computer vision.
Ecco alcuni esempi in cui viene utilizzata la stima della velocità:
- Le auto autonome di Tesla utilizzano la stima della velocità basata sulla visione per evitare collisioni.
- La computer vision e la stima della velocità verranno utilizzate ai Giochi Olimpici del 2024 per migliorare l'analisi delle prestazioni negli eventi di atletica leggera.
- Le città intelligenti stanno ricercando l'analisi dell'andatura dei pedoni per monitorare le velocità di camminata e aumentare la mobilità e la sicurezza urbana. Questi sistemi possono avvisare i conducenti della presenza di pedoni e prevenire incidenti.
- I sistemi di monitoraggio del comportamento animale utilizzano la stima della velocità per tracciare il movimento degli animali e rilevare segni di stress o malattia.

Fig 2. La stima della velocità può misurare la velocità di camminata di una persona.
Link to this sectionI vantaggi della stima della velocità tramite computer vision#
I sistemi di stima della velocità basati sulla visione stanno sostituendo i tradizionali metodi basati su sensori grazie alla loro maggiore precisione, efficacia in termini di costi e flessibilità. A differenza dei sistemi che si affidano a sensori costosi come il LiDAR, la computer vision utilizza telecamere standard per monitorare e analizzare la velocità in tempo reale. Le soluzioni di computer vision per la stima della velocità possono essere integrate senza problemi nell'infrastruttura di traffico esistente. Inoltre, questi sistemi possono essere costruiti per eseguire una serie di compiti complessi come l'identificazione del tipo di veicolo e l'analisi dei modelli di traffico per migliorare il flusso e la sicurezza complessivi del traffico.
Link to this sectionProvalo tu stesso: Stima della velocità utilizzando YOLOv8#
Ora che abbiamo una chiara comprensione della stima della velocità e delle sue applicazioni, diamo un'occhiata più da vicino a come puoi integrare la stima della velocità nei tuoi progetti di computer vision tramite il codice. Rileveremo i veicoli in movimento e ne stimeremo la velocità utilizzando il modello YOLOv8.
Questo esempio utilizza un video di auto su una strada scaricato da internet. Puoi usare lo stesso video o qualsiasi video pertinente. Il modello YOLOv8 identifica il centro di ogni veicolo e calcola la sua velocità in base a quanto velocemente questo centro attraversa una linea orizzontale nel fotogramma video.
Prima di iniziare, è importante notare che, in questo caso, il calcolo della distanza è approssimativo e basato sulla distanza euclidea. La calibrazione della telecamera non è presa in considerazione, quindi la stima della velocità potrebbe non essere del tutto accurata. Inoltre, la velocità stimata può variare a seconda della velocità della tua GPU.
Passaggio 1: Inizieremo installando il pacchetto Ultralytics. Apri il prompt dei comandi o il terminale ed esegui il comando mostrato di seguito.
pip install ultralyticsDai un'occhiata alla nostra guida all'installazione di Ultralytics per istruzioni passo dopo passo e le migliori pratiche sul processo di installazione. Se riscontri problemi durante l'installazione dei pacchetti necessari per YOLOv8, la nostra guida ai problemi comuni contiene soluzioni e suggerimenti utili.
Passaggio 2: Successivamente, importeremo le librerie necessarie. La libreria OpenCV ci aiuterà a gestire l'elaborazione video.
import cv2
from ultralytics import YOLO, solutionsPassaggio 3: Quindi, possiamo caricare il modello YOLOv8 e recuperare i nomi delle classi che il modello può rilevare.
model = YOLO("yolov8n.pt")
names = model.model.namesDai un'occhiata a tutti i modelli che supportiamo per capire quale modello si adatta meglio al tuo progetto.
Passaggio 4: In questo passaggio, apriremo il file video di input utilizzando il modulo VideoCapture di OpenCV. Estrarremo anche la larghezza, l'altezza e i 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 5: Qui, inizializzeremo il writer video per salvare i nostri 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 6: Successivamente, possiamo definire i punti della linea per la stima della velocità. Per il nostro video di input, questa linea sarà posizionata orizzontalmente al centro del fotogramma. Sentiti libero di giocare con i valori per posizionare la linea nelle posizioni più adatte, a seconda del tuo video di input.
line_pts = [(0, 360), (1280, 360)]Passaggio 7: Ora possiamo inizializzare l'oggetto di stima della velocità utilizzando i punti della linea definiti e i nomi delle classi.
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)Passaggio 8: Il fulcro dello script elabora il video fotogramma per fotogramma. Leggiamo ogni fotogramma e rileviamo e tracciamo gli oggetti. La velocità degli oggetti tracciati viene stimata e il fotogramma annotato 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
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)Passaggio 9: Infine, rilasciamo gli oggetti di acquisizione e scrittura video e chiudiamo tutte le finestre OpenCV.
cap.release()
video_writer.release()
cv2.destroyAllWindows()Passaggio 10: Salva il tuo script. Se stai lavorando dal tuo terminale o prompt dei comandi, esegui lo script usando il seguente comando:
python your_script_name.pyLink to this sectionLe sfide della stima della velocità basata sulla visione#
È anche importante comprendere le sfide coinvolte nell'implementazione della stima della velocità utilizzando la computer vision. Condizioni meteorologiche sfavorevoli come pioggia, nebbia o neve possono causare problemi al sistema poiché possono ostacolare la visibilità della strada. Allo stesso modo, le occlusioni causate da altri veicoli o oggetti possono rendere difficile per questi sistemi tracciare e stimare accuratamente la velocità di un veicolo target. Condizioni di illuminazione scarsa che causano ombre o un riflesso del sole possono complicare ulteriormente il compito della stima della velocità.
Un'altra sfida riguarda la potenza computazionale. Per stimare la velocità in tempo reale, dobbiamo elaborare molti dati visivi provenienti da telecamere di traffico ad alta qualità. La tua soluzione potrebbe richiedere hardware costoso per gestire tutto ciò e garantire che tutto funzioni rapidamente senza ritardi.
Poi, c'è la questione della privacy. I dati raccolti da questi sistemi possono includere i dettagli del veicolo di un individuo come marca, modello e informazioni sulla targa, che vengono raccolti senza il loro consenso. Alcune moderne telecamere HD possono persino catturare immagini degli occupanti all'interno dell'auto. Tale raccolta di dati può sollevare gravi questioni etiche e legali che devono essere gestite con la massima cura.
Link to this sectionVerso il futuro a tutta velocità#
Utilizzare il modello Ultralytics YOLOv8 per la stima della velocità fornisce una soluzione flessibile ed efficiente per molti usi. Sebbene ci siano sfide, come la precisione in condizioni difficili e la gestione delle questioni di privacy, i vantaggi sono molteplici. La stima della velocità abilitata dalla computer vision è più economica, adattabile e precisa rispetto ai metodi più vecchi. È utile in vari settori come trasporti, sport, sorveglianza e auto a guida autonoma. Con tutti i benefici e le applicazioni, è destinata a essere una parte fondamentale dei futuri sistemi intelligenti.
Ti interessa l'IA? Connettiti con la nostra community! Esplora il nostro repository GitHub per saperne di più su come stiamo utilizzando l'IA per creare soluzioni innovative in vari settori come l'assistenza sanitaria e l'agricoltura. Collabora, innova e impara con noi! 🚀






