Impara a trasformare i dati delle applicazioni di computer vision in grafici di facile comprensione utilizzando il pacchetto Ultralytics diPython per ottenere maggiori informazioni.
Ogni minuto vengono create enormi quantità di dati, dai terminal degli aeroporti e delle stazioni ferroviarie ai centri commerciali. Con la diffusione dell'intelligenza artificiale, molti di questi dati vengono analizzati e suddivisi. Ma a volte i risultati di questi modelli di intelligenza artificiale possono rendere difficile individuare gli schemi o capire le tendenze a colpo d'occhio. È qui che la visualizzazione dei dati ci viene in aiuto: trasforma i risultati complessi in informazioni chiare e facili da digerire.
Questo è particolarmente vero quando si tratta di applicazioni di computer vision. La computer vision è una branca dell'intelligenza artificiale (AI) che aiuta le macchine a interpretare e comprendere le informazioni visive del mondo circostante, come immagini e video. Mentre i modelli di AI di visione, come Ultralytics YOLO11possono aiutare ad analizzare questi dati visivi per ottenere informazioni, la visualizzazione dei dati aiuta a mettere queste informazioni in un formato facile da capire.
In poche parole, la visualizzazione dei dati colma il divario tra i dati grezzi e la comprensione reale utilizzando grafici analitici significativi. Nell'attuale mondo guidato dai dati, questo aspetto è fondamentale perché non è sufficiente che le macchine si limitino a svolgere dei compiti: è necessario che raccontino una storia.
Questa esigenza di narrazione è il motivo per cui la visualizzazione dei dati è in crescita, con un mercato che raggiungerà i 18,36 miliardi di dollari entro il 2030. In precedenza, abbiamo esplorato come la computer vision possa fornire preziose informazioni commerciali. Oggi faremo un ulteriore passo avanti, spiegando come generare grafici analitici chiari e significativi per le applicazioni di computer vision utilizzando il pacchetto Ultralytics . Cominciamo!
La visualizzazione dei dati nelle applicazioni di computer vision consiste nel trasformare i risultati delle attività di computer vision, come il rilevamento e il tracciamento degli oggetti, in grafici o cruscotti di facile comprensione. Queste visualizzazioni aiutano a identificare schemi e tendenze, soprattutto quando si lavora con grandi volumi di filmati.
Ad esempio, invece di esaminare manualmente ore di video di sorveglianza, un semplice grafico a linee che mostra il numero di auto o persone rilevate nel tempo può evidenziare rapidamente le ore di punta o i periodi insolitamente tranquilli.
Ecco alcuni motivi principali per cui la visualizzazione dei dati è utile:
Diversi tipi di grafici analitici possono trasformare i risultati della computer vision in immagini chiare e facili da capire. Supponiamo che tu stia lavorando a un'applicazione di computer vision che rileva persone e veicoli nei filmati di sorveglianza. In questo caso, un grafico a linee è ottimo per mostrare come cambia il numero di rilevamenti nel tempo, come ad esempio il monitoraggio dei picchi di traffico pedonale durante la giornata.
Allo stesso modo, i grafici a barre sono utili quando vuoi confrontare il numero di diversi tipi di oggetti rilevati, ad esempio se nel video compaiono più auto, biciclette o pedoni. I grafici a torta, invece, mostrano la percentuale di ciascun tipo di oggetto rispetto al totale dei rilevamenti. Ogni grafico ha una sua utilità e aiuta a rendere i dati complessi della computer vision più facili da interpretare e condividere.
Ora che abbiamo esplorato cos'è la visualizzazione dei dati e perché i diversi tipi di grafici analitici sono importanti, vediamo più da vicino come utilizzare la soluzioneUltralytics Analytics per visualizzare i risultati delle previsioni dei tuoi modelli di computer vision. Prima di illustrare il processo passo dopo passo, diamo un'occhiata agli strumenti e alle opzioni di configurazione per la formazione e l'utilizzo del pacchetto Ultralytics e di modelli come YOLO11.
Il pacchetto Ultralytics Python semplifica l'addestramento dei modelli, il rilevamento degli oggetti, l'esecuzione delle previsioni e la visualizzazione dei risultati. Per iniziare a usarlo, hai bisogno di un ambiente di codifica. Ecco tre semplici opzioni:
Questi strumenti sono ottimi per iniziare rapidamente, ma gli utenti possono anche integrare Ultralytics in ambienti di sviluppo integrati (IDE) come Visual Studio Code (VS Code) o in pipeline di produzione. Per ulteriori opzioni, esplora la documentazione ufficiale di Ultralytics .
Una volta scelto l'ambiente che preferisci, il passo successivo è quello di configurarlo per eseguire le previsioni e visualizzare i risultati. Puoi utilizzare uno qualsiasi degli ambienti sopra citati, a seconda di quello con cui ti trovi più a tuo agio.
Se stai lavorando in Google Colab, tieni presente che per impostazione predefinita utilizza una CPU , il che può rallentare le prestazioni. Per accelerare le cose, passa a una GPU andando nel menu "Runtime", selezionando "Cambia tipo di runtime" e impostando l'acceleratore hardware su GPU (idealmente un T4).
Per preparare il tuo ambiente, dovrai installare il pacchettoUltralytics Python utilizzando il comando indicato di seguito. Negli strumenti basati su notebook come Colab o Jupyter, assicurati di aggiungere un punto esclamativo (!) prima del comando.
pip install ultralytics
Poi avremo bisogno di un video con cui lavorare. Puoi scaricarne facilmente uno da un sito di stock gratuiti come Pexels. Assicurati di scegliere un video che includa oggetti che YOLO11 è in grado di riconoscere. Poiché il modello è stato preaddestrato sul set di dati COCO, è in grado di riconoscere oggetti comuni come persone, automobili e biciclette.
Per questo tutorial utilizzeremo un video sulla gestione dei bagagli in un affollato terminal aeroportuale. Puoi utilizzare lo stesso video o sceglierne uno diverso che si adatti al tuo progetto.
Successivamente, possiamo importare le librerie necessarie e caricare il video in ingresso.
Inizieremo importando OpenCV (cv2), una libreria molto utilizzata per lavorare con immagini e video nella computer vision. Importeremo anche la libreria Ultralytics , che ci aiuta a eseguire il rilevamento degli oggetti e a generare analisi dal video.
Quindi, cercheremo di aprire il file video specificando il suo percorso. Assicurati di sostituire "path/to/video.mp4" con la posizione effettiva del file video scaricato.
Inoltre, il frammento di codice qui sotto include un semplice controllo per assicurarsi che il video venga caricato correttamente. Se il percorso è sbagliato o il file è danneggiato, il programma si arresta e mostra un messaggio di errore: "Errore nella lettura del file video".
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"
Quindi, imposteremo un video writer per salvare l'output. Quando eseguiamo l'analisi, questa parte del codice creerà un nuovo file video che registra i grafici aggiornati generati da ogni fotogramma del video originale.
Nel frammento di codice qui sotto, per prima cosa estraiamo le proprietà chiave dal video in ingresso: la larghezza, l'altezza e i fotogrammi al secondo (fps). Questi valori vengono presi direttamente dal video e convertiti in numeri interi per garantire che siano nel formato corretto per la scrittura dell'output.
Successivamente, utilizziamo la funzione cv2.VideoWriter per creare un nuovo file video, chiamato "analytics_output.avi" (puoi rinominarlo come vuoi). Il video viene salvato utilizzando il formato MJPG, un comune metodo di compressione video. La risoluzione di uscita è impostata a 1280×720 pixel, indipendentemente dalle dimensioni del video originale.
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
out = cv2.VideoWriter(
"analytics_output.avi",
cv2.VideoWriter_fourcc(*"MJPG"),
fps,
(1280, 720),
)
Ora configureremo la soluzione Ultralytics Analytics per generare grafici dal video. Puoi scegliere come visualizzare i dati, ad esempio un grafico a linee, a torta, ad area o a barre, e quale modelloYOLO utilizzare. In questo esempio, utilizzeremo il modello leggero "yolo11n.pt" e mostreremo i risultati come un grafico ad area.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)
La parte finale del codice esegue un ciclo che elabora il video un fotogramma alla volta. Ogni fotogramma viene passato allo strumento di analisi, che aggiorna il grafico in tempo reale. Il grafico aggiornato viene poi scritto sul video di uscita. Se un fotogramma non può essere letto, il ciclo si ferma. Dopo aver elaborato tutti i fotogrammi, il video viene salvato e le finestre aperte vengono chiuse.
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()
Infine, mettiamo tutto insieme. Con poche righe di codice in più, possiamo generare due video di output: uno che mostra i risultati delrilevamento degli oggetti YOLO11 con bounding box ed etichette e un altro che mostra i grafici delle analisi in tempo reale.
Per farlo, creeremo due istanze di VideoWriter: una per salvare il video di previsione e un'altra per le analisi. Questa versione del codice include sia il tracciamento degli oggetti che la generazione di grafici, in modo da poter vedere i risultati del rilevamento insieme agli approfondimenti visivi.
Ecco il codice completo e alcuni esempi di previsioni e analisi.
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()
Quando il codice di cui sopra viene eseguito correttamente, genera due video di output. Il file "output_predictions.avi" mostrerà i risultati del rilevamento degli oggetti con bounding box ed etichette, mentre "output_analytics.avi" mostrerà i grafici di analisi in tempo reale basati sui rilevamenti.
Ecco un fotogramma dell'output analitico basato sulle previsioni. Utilizzando il grafico ad area, possiamo ottenere informazioni come le fluttuazioni nel conteggio delle valigie nel tempo, come ad esempio un picco intorno al fotogramma 268, che indica il movimento o l'attività delle valigie in quella parte del video.
Ecco alcune applicazioni reali di computer vision in cui la visualizzazione dei dati ha un impatto significativo:
Con il pacchetto Ultralytics puoi trasformare facilmente le riprese video in grafici chiari e perspicaci che rivelano ciò che sta accadendo, come ad esempio il monitoraggio del numero di persone o oggetti che appaiono nel tempo. Invece di rivedere manualmente ore di video, puoi generare sintesi visive che evidenziano modelli e tendenze chiave, rendendo più facile agire rapidamente. Che si tratti di ospedali, negozi al dettaglio o impianti di produzione, questi grafici trasformano i complessi risultati dell'IA in informazioni comprensibili e utilizzabili da chiunque.
Vuoi saperne di più sull'intelligenza artificiale? Esplora il nostro repository GitHub, entra in contatto con la nostra comunità e scopri le nostre opzioni di licenza per avviare il tuo progetto di computer vision. Scopri di più su innovazioni come l'IA nel settore manifatturiero e la computer vision nel settore della logistica sulle nostre pagine dedicate alle soluzioni.
Inizia il tuo viaggio nel futuro dell'apprendimento automatico