Analisi Video con Supervision di Roboflow
Roboflow, un leader nel settore della Computer Vision, ha recentemente introdotto una versione aggiornata del suo prodotto di punta, "Supervision". Questo strumento open-source rappresenta un vero e proprio coltellino svizzero per tutto ciò che riguarda la Computer Vision, offrendo una gamma versatile di funzionalità che si estendono ben oltre i confini tradizionali di questo settore.
Supervision è progettato per agevolare l'implementazione di funzioni di rilevamento, classificazione, segmentazione e annotazione video, rendendo possibile l'analisi avanzata di qualsiasi flusso video. L'ultima versione di questo software integra funzionalità innovative come tracker, zone e annotatori, espandendo significativamente le sue capacità e applicazioni.
Uno degli aspetti più notevoli di Supervision è la sua facilità d'uso. Il software può essere installato in un ambiente Python (supporta le versioni da 3.8 in poi) tramite un semplice comando: pip install supervision[desktop]
. Questa accessibilità lo rende uno strumento ideale sia per i principianti che per gli esperti nel campo della visione artificiale.
Supervision si distingue anche per la sua versatilità nell'elaborazione di dataset e nella gestione delle annotazioni. La funzione di media di precisione media (mAP) per compiti di rilevamento oggetti è un esempio del suo avanzato supporto analitico, che permette una valutazione accurata e dettagliata delle prestazioni dei modelli di visione artificiale.
Un caso di studio esemplare dell'efficacia di Supervision è l'analisi del traffico in tempo reale. Utilizzando modelli avanzati come YOLOv8 e ByteTrack, Supervision è in grado di rilevare e tracciare veicoli in immagini aeree, fornendo informazioni preziose sul flusso del traffico e sui modelli di movimento in zone ad alta congestione.
Supervision by Roboflow si presenta come una soluzione all'avanguardia per chiunque sia interessato a esplorare o espandere le proprie competenze nel campo della Computer Vision. La sua facilità d'uso, combinata con una gamma di funzionalità potenti e versatile, lo rende uno strumento indispensabile per professionisti e appassionati di questa tecnologia in rapida evoluzione.
Come usare Supervision by Roboflow
Installazione del Pacchetto Supervision
Per utilizzare Supervision, prima devi installarlo nel tuo ambiente Python. Puoi farlo con il seguente comando:
pip install supervision[desktop]
Rilevamento Oggetti con YOLO
Supervision può essere utilizzato insieme a modelli come YOLO per il rilevamento di oggetti. Ecco un esempio di come potresti farlo:
import supervision as sv from ultralytics import YOLO # Caricare un modello YOLO model = YOLO('yolov8s.pt') # Processare un'immagine con il modello result = model(IMAGE)[0] # Convertire i risultati in un formato utilizzabile da Supervision detections = sv.Detections.from_ultralytics(result)
Filtraggio Avanzato delle Rilevazioni
Puoi filtrare le rilevazioni basandoti su vari criteri come l'ID della classe, la confidenza o l'area:
# Filtraggio delle rilevazioni detections = detections[detections.class_id == 0] detections = detections[detections.confidence > 0.5] detections = detections[detections.area > 1000]
Annotazione delle Immagini
Supervision può essere utilizzato per annotare immagini con le rilevazioni effettuate:
import supervision as sv # Creare un annotatore di box box_annotator = sv.BoxAnnotator() # Annotare un'immagine annotated_frame = box_annotator.annotate( scene=IMAGE, detections=detections )
Elaborazione di Dataset
Puoi utilizzare Supervision per elaborare dataset, ad esempio caricando un dataset in formato YOLO:
import supervision as sv # Caricare un dataset dataset = sv.DetectionDataset.from_yolo( images_directory_path='...', annotations_directory_path='...', data_yaml_path='...' ) # Visualizzare le classi e la dimensione del dataset print(dataset.classes) print(len(dataset))
Calcolo della Media di Precisione Media (mAP)
Infine, puoi utilizzare Supervision per calcolare la mAP, una metrica chiave nella valutazione dei modelli di rilevamento oggetti:
import supervision as sv import numpy as np dataset = sv.DetectionDataset.from_yolo(...) # Definire una callback per il processamento delle immagini def callback(image: np.ndarray) -> sv.Detections: # Logica di rilevamento qui ... # Calcolare la mAP mean_average_precision = sv.MeanAveragePrecision.benchmark( dataset=dataset, callback=callback ) print(mean_average_precision.map50_95)