Stima della velocità utilizzando Ultralytics YOLOv8 🚀
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 YOLOv8 è ora possibile calcolare la velocità di un oggetto utilizzando il tracciamento dell'oggetto insieme ai dati relativi alla distanza e al 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 una componente fondamentale per il progresso dei sistemi intelligenti e dei processi decisionali in tempo reale.
Guarda: Stima della velocità con Ultralytics YOLOv8
Scopri il nostro blog
Per un approfondimento sulla stima della velocità , consulta il nostro blog post: Ultralytics YOLOv8 per la stima della velocità nei progetti di Computer Vision
Vantaggi della stima della velocità ?
- Controllo del traffico efficiente: 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 YOLOv8 | Stima della velocità su un ponte utilizzando Ultralytics YOLOv8 |
Esempio di stima della velocità con YOLOv8
import cv2
from ultralytics import YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
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_estimation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
line_pts = [(0, 360), (1280, 360)]
# Init speed-estimation obj
speed_obj = solutions.SpeedEstimator(
reg_pts=line_pts,
names=names,
view_img=True,
)
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)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
La velocità è una stima
La velocità è una stima e potrebbe non essere completamente accurata. Inoltre, la stima può variare in base alla velocità di GPU .
Argomenti SpeedEstimator
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
names |
dict |
None |
Dizionario dei nomi delle classi. |
reg_pts |
list |
[(20, 400), (1260, 400)] |
Elenco dei punti della regione per la stima della velocità . |
view_img |
bool |
False |
Se visualizzare l'immagine con le annotazioni. |
line_thickness |
int |
2 |
Spessore delle linee per disegnare caselle e tracciati. |
region_thickness |
int |
5 |
Spessore delle linee della regione. |
spdl_dist_thresh |
int |
10 |
Soglia di distanza per il calcolo della velocità . |
Argomenti model.track
Nome | Tipo | Predefinito | Descrizione |
---|---|---|---|
source |
im0 |
None |
directory di origine per le immagini o i video |
persist |
bool |
False |
persistenza dei brani tra i fotogrammi |
tracker |
str |
botsort.yaml |
Metodo di tracciamento 'bytetrack' o 'botsort' |
conf |
float |
0.3 |
Soglia di fiducia |
iou |
float |
0.5 |
Soglia IOU |
classes |
list |
None |
filtrare i risultati per classe, ad esempio classi=0 o classi=[0,2,3]. |
verbose |
bool |
True |
Visualizza i risultati del tracciamento dell'oggetto |
DOMANDE FREQUENTI
Come faccio a stimare la velocità di un oggetto utilizzando Ultralytics YOLOv8 ?
La stima della velocità degli oggetti con Ultralytics YOLOv8 prevede la combinazione di tecniche di rilevamento e tracciamento degli oggetti. Per prima cosa, devi rilevare gli oggetti in ogni fotogramma utilizzando il modello YOLOv8 . Poi, segui questi oggetti tra i fotogrammi per calcolare il loro movimento nel tempo. Infine, 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 YOLO, solutions
model = YOLO("yolov8n.pt")
names = model.model.names
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(
reg_pts=[(0, 360), (1280, 360)],
names=names,
view_img=True,
)
while cap.isOpened():
success, im0 = cap.read()
if not success:
break
tracks = model.track(im0, persist=True, show=False)
im0 = speed_obj.estimate_speed(im0, tracks)
video_writer.write(im0)
cap.release()
video_writer.release()
cv2.destroyAllWindows()
Per maggiori dettagli, consulta il nostro blog ufficiale.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLOv8 per la stima della velocità nella gestione del traffico?
L'utilizzo di Ultralytics YOLOv8 per la stima della velocità offre notevoli vantaggi nella gestione del traffico:
- Maggiore sicurezza: Stima con precisione la velocità dei veicoli per rilevare l'eccesso di velocità e migliorare la sicurezza stradale.
- Monitoraggio in tempo reale: Sfrutta la capacità di rilevamento degli oggetti in tempo reale di YOLOv8 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, consulta i vantaggi della stima della velocità .
YOLOv8 può essere integrato con altri framework di AI come TensorFlow o PyTorch?
Sì, YOLOv8 può essere integrato con altri framework di intelligenza artificiale come TensorFlow e PyTorch. Ultralytics supporta l'esportazione dei modelli di YOLOv8 in vari formati come ONNX, TensorRT e CoreML, garantendo un'interoperabilità senza problemi con altri framework di ML.
Per esportare un modello YOLOv8 in formato ONNX :
Per saperne di più sull'esportazione dei modelli, consulta la nostra guida all'esportazione.
Quanto è accurata la stima della velocità utilizzando Ultralytics YOLOv8 ?
L'accuratezza della stima della velocità utilizzando Ultralytics YOLOv8 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: considera sempre il margine di errore e convalida le stime con i dati di verità a terra, quando possibile.
Per ulteriori suggerimenti per migliorare la precisione, consulta la sezione Argomenti SpeedEstimator
sezione.
Perché scegliere Ultralytics YOLOv8 rispetto ad altri modelli di rilevamento degli oggetti come TensorFlow Object Detection API?
Ultralytics YOLOv8 offre diversi vantaggi rispetto ad altri modelli di rilevamento degli oggetti, come l'API TensorFlow Object Detection:
- Prestazioni in tempo reale: YOLOv8 è ottimizzato per il rilevamento in tempo reale, garantendo velocità e precisione elevate.
- Facilità d'uso: Progettato con un'interfaccia facile da usare, YOLOv8 semplifica la formazione e l'implementazione dei modelli.
- Versatilità : Supporta diverse attività , tra cui il rilevamento di oggetti, la segmentazione e la stima della posa.
- Comunità e supporto: YOLOv8 è supportato da una comunità attiva e da un'ampia documentazione, che assicurano agli sviluppatori le risorse necessarie.
Per maggiori informazioni sui vantaggi di YOLOv8, visita la nostra pagina dettagliata dei modelli.
Creato 2024-01-05, Aggiornato 2024-07-05
Autori: glenn-jocher (7), IvorZhu331 (1), RizwanMunawar (2), Burhan-Q (1), AyushExel (1)