Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Impostazioni dei cookie
Cliccando su “Accetta tutti i cookie”, l'utente accetta di memorizzare i cookie sul proprio dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere le nostre attività di marketing. Maggiori informazioni
Scoprite come il modello Ultralytics YOLOv8 può essere utilizzato per la stima della velocità nei vostri progetti di computer vision. Provatelo voi stessi con un semplice esempio di codifica.
Probabilmente abbiamo tutti visto i segnali stradali dei limiti di velocità. Alcuni di noi potrebbero aver anche ricevuto una notifica automatica di violazione dei limiti di velocità per posta o e-mail. I sistemi di gestione del traffico basati sull'intelligenza artificiale (AI) possono segnalare automaticamente le violazioni dei limiti di velocità grazie alla computer vision. Le riprese in tempo reale acquisite dalle telecamere ai semafori e sulle autostrade vengono utilizzate per la stima della velocità e per rafforzare la sicurezza stradale.
La stima della velocità non si limita alla sicurezza in autostrada. Può essere utilizzata nello sport, nei veicoli autonomi e in varie altre applicazioni. In questo articolo, discuteremo come utilizzare il modelloYOLOv8 diUltralytics per la stima della velocità nei vostri progetti di computer vision. Inoltre, illustreremo passo dopo passo un esempio di codifica, in modo che possiate provarlo voi stessi. Iniziamo!
La 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, altri 20-50 milioni subiscono lesioni non mortali, molte delle quali causano disabilità. L'importanza della sicurezza stradale non può essere sopravvalutata, soprattutto quando la stima della velocità aiuta a prevenire incidenti, salva vite e mantiene le nostre strade sicure ed efficienti.
La stima della velocità con la computer vision prevede il rilevamento e il tracciamento degli oggetti nei fotogrammi video per calcolare la velocità con cui si muovono. Algoritmi come YOLOv8 sono in grado di identificare e track 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 reali. Cronometrando il tempo impiegato dagli oggetti per spostarsi tra due punti, il sistema calcola la loro velocità utilizzando il rapporto distanza-tempo.
Figura 1. Stima della velocità con il modelloYOLOv8 di Ultralytics
Oltre a individuare gli eccessi di velocità, i sistemi di stima della velocità integrati con l'AI 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 per ridurre la congestione del traffico.
Applicazioni della stima della velocità in altri settori
Le applicazioni di stima della velocità vanno oltre il monitoraggio delle strade. Può anche essere utile per monitorare le prestazioni degli atleti, aiutando i veicoli autonomi a comprendere la velocità degli oggetti che si muovono intorno a loro, rilevare comportamenti sospetti, ecc. Ovunque sia possibile utilizzare una telecamera per misurare la velocità di un oggetto, è possibile utilizzare la stima della velocità tramite computer vision.
Ecco alcuni esempi di dove 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à saranno utilizzate ai Giochi Olimpici del 2024 per migliorare l'analisi delle prestazioni nelle gare track .
Le smart city stanno studiando l'analisi dell'andatura dei pedoni per monitorare la velocità di camminata e aumentare la mobilità e la sicurezza urbana. Questi sistemi possono avvisare i conducenti della presenza di pedoni ed evitare incidenti.
I sistemi di monitoraggio del comportamento animale utilizzano la stima della velocità per track movimento degli animali e detect segni di disagio o malattia.
Fig. 2. La stima della velocità può misurare la velocità di camminata di una persona.
I vantaggi della stima della velocità tramite computer vision
I sistemi di stima della velocità basati sulla visione stanno sostituendo i metodi tradizionali basati su sensori grazie alla loro maggiore precisione, economicità e flessibilità. A differenza dei sistemi che si basano su 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 facilmente con l'infrastruttura di traffico esistente. Inoltre, questi sistemi possono essere costruiti per eseguire una serie di attività complesse come l'identificazione del tipo di veicolo e l'analisi dei modelli di traffico per migliorare il flusso e la sicurezza generale del traffico.
Provate voi stessi: Stima della velocità con YOLOv8
Ora che abbiamo una chiara comprensione della stima della velocità e delle sue applicazioni, diamo un'occhiata più da vicino a come è possibile integrare la stima della velocità nei progetti di computer vision attraverso il codice. detect veicoli in movimento e stimeremo la loro velocità utilizzando il modello YOLOv8 .
Questo esempio utilizza un video di automobili su una strada scaricato da Internet. È possibile utilizzare lo stesso video o qualsiasi altro video pertinente. Il modello YOLOv8 identifica il centro di ogni veicolo e calcola la sua velocità in base alla velocità con cui questo centro attraversa una linea orizzontale nel fotogramma del video.
Prima di immergerci, è importante notare che, in questo caso, il calcolo della distanza è approssimativo e si basa sulla distanza euclidea. La calibrazione della telecamera non viene presa in considerazione e quindi la stima della velocità potrebbe non essere del tutto accurata. Inoltre, la velocità stimata può variare a seconda della velocità della GPU.
Fase 1: Si inizia installando il pacchetto Ultralytics . Aprite il prompt dei comandi o il terminale ed eseguite il comando mostrato di seguito.
pip install ultralytics
Consultate la nostra guida all'installazione diUltralytics per le istruzioni passo-passo e le best practice sul processo di installazione. Se si verificano problemi durante l'installazione dei pacchetti necessari per YOLOv8, la nostra guida sui problemi comuni contiene soluzioni e consigli utili.
Fase 2: Successivamente, importeremo le librerie necessarie. La libreria OpenCV ci aiuterà a gestire l'elaborazione video.
import cv2
from ultralytics import YOLO, solutions
Fase 3: Quindi, possiamo caricare il modello YOLOv8 e recuperare i nomi delle classi che il modello è in grado di detect.
model = YOLO("yolov8n.pt")
names = model.model.names
Dai un'occhiata a tutti i modelli che supportiamo per capire quale modello si adatta meglio al tuo progetto.
Fase 4: in questa fase, apriremo il file video di ingresso 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 video writer per salvare i risultati finali della stima della velocità. Il file video di output verrà salvato come “speed_estimation.avi”.
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.
Fase 8: Il nucleo dello script elabora il video fotogramma per fotogramma. Leggiamo ogni fotogramma e detect e track gli oggetti. La velocità degli oggetti tracciati viene stimata e il fotogramma annotato viene scritto nel video di uscita.
while cap.isOpened():
success, im0 = cap.read()
ifnot 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)
Fase 9: infine, si rilasciano gli oggetti di acquisizione video e di scrittura e si chiudono le finestre di OpenCV .
Passaggio 10: Salva lo script. Se stai lavorando dal terminale o dal prompt dei comandi, esegui lo script utilizzando il seguente comando:
python your_script_name.py
Le sfide della stima della velocità basata sulla visione
È inoltre importante comprendere le sfide che comporta l'implementazione della stima della velocità con la computer vision. Condizioni meteorologiche sfavorevoli come pioggia, nebbia o neve possono creare problemi al sistema, in quanto possono ostruire la visibilità della strada. Allo stesso modo, le occlusioni causate da altri veicoli o oggetti possono rendere difficile per questi sistemi track e stimare con precisione la velocità di un veicolo target. Anche le condizioni di scarsa illuminazione, che causano ombre o riflessi del sole, possono complicare ulteriormente il compito di stimare la velocità.
Un'altra sfida riguarda la potenza di calcolo. Per stimare la velocità in tempo reale, dobbiamo elaborare molti dati visivi da telecamere di alta qualità per il traffico. La tua soluzione potrebbe richiedere hardware costoso per gestire tutto questo 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 serie questioni etiche e legali che devono essere gestite con la massima cura.
A tutta velocità verso il futuro
L'utilizzo del modelloUltralytics YOLOv8 per la stima della velocità offre una soluzione flessibile ed efficiente per molti usi. Anche se ci sono delle sfide, come la precisione in condizioni difficili e la gestione della privacy, i vantaggi sono molteplici. La stima della velocità basata sulla visione artificiale è più economica, adattabile e precisa rispetto ai metodi precedenti. È utile in vari settori come i trasporti, lo sport, la sorveglianza e le auto a guida autonoma. Con tutti i vantaggi e le applicazioni, è destinata a diventare una parte fondamentale dei futuri sistemi intelligenti.
Ti interessa l'AI? Entra in contatto con la nostra community! Esplora il nostro repository GitHub per saperne di più su come stiamo utilizzando l'AI per creare soluzioni innovative in vari settori come sanità e agricoltura. Collabora, innova e impara con noi! 🚀