Scopri come trasformare i dati provenienti da applicazioni di computer vision in grafici di facile comprensione utilizzando il pacchetto Python di Ultralytics per ottenere informazioni migliori.
Scopri come trasformare i dati provenienti da applicazioni di computer vision in grafici di facile comprensione utilizzando il pacchetto Python di Ultralytics per ottenere informazioni migliori.
Ogni minuto vengono creati enormi quantità di dati, dai terminal degli aeroporti e dalle stazioni ferroviarie ai centri commerciali. Man mano che l'AI diventa più ampiamente utilizzata, molti di questi dati vengono ora analizzati e suddivisi. Ma a volte i risultati di questi modelli AI possono rendere difficile individuare modelli o comprendere le tendenze a colpo d'occhio. È qui che la visualizzazione dei dati aiuta: trasforma output complessi in informazioni chiare e facili da assimilare.
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 Vision AI, come Ultralytics YOLO11, possono aiutare ad analizzare tali dati visivi per ottenere informazioni, la visualizzazione dei dati aiuta a presentare tali informazioni in un formato facile da capire.
In parole semplici, la visualizzazione dei dati colma il divario tra i dati grezzi e la comprensione reale utilizzando grafici analitici significativi. Nel mondo odierno, guidato dai dati, questo è fondamentale perché non è sufficiente che le macchine si limitino a eseguire compiti: abbiamo bisogno che raccontino una storia.
Questa necessità di narrazione è esattamente il motivo per cui la visualizzazione dei dati è in aumento, con il mercato destinato a raggiungere 18,36 miliardi di dollari entro il 2030. In precedenza, abbiamo esplorato come la computer vision possa fornire preziose informazioni aziendali. Oggi, faremo un ulteriore passo avanti illustrando come generare grafici analitici chiari e perspicaci per le applicazioni di computer vision utilizzando il pacchetto Ultralytics. Iniziamo!

La visualizzazione dei dati nelle applicazioni di computer vision comporta la trasformazione dei risultati delle attività di computer vision, come il rilevamento e il tracciamento di oggetti, in grafici o dashboard di facile comprensione. Queste visualizzazioni aiutano a identificare modelli e tendenze, soprattutto quando si lavora con grandi volumi di filmati video.
Ad esempio, invece di rivedere 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 chiave per cui la visualizzazione dei dati è utile:
Diversi tipi di grafici analitici possono trasformare i risultati della computer vision in immagini chiare e di facile comprensione. Supponiamo che tu stia lavorando a un'applicazione di computer vision che rileva persone e veicoli in filmati di sorveglianza. In questo caso, un grafico a linee è ottimo per mostrare come il numero di rilevamenti cambia nel tempo, ad esempio per tracciare i picchi di traffico pedonale durante il giorno.
Allo stesso modo, i grafici a barre sono utili quando si desidera confrontare il numero di diversi tipi di oggetti rilevati, come vedere se nel video compaiono più auto, biciclette o pedoni. I grafici a torta, d'altra parte, mostrano la percentuale di ciascun tipo di oggetto rispetto al totale dei rilevamenti. Ogni grafico ha un suo utilizzo e aiuta a rendere i dati complessi di computer vision più facili da interpretare e condividere.

Ora che abbiamo esplorato cos'è la visualizzazione dei dati e perché sono importanti diversi tipi di grafici analitici, diamo un'occhiata più da vicino a come utilizzare la soluzione Ultralytics Analytics per visualizzare i risultati delle previsioni del tuo modello di computer vision. Prima di esaminare il processo passo dopo passo, diamo un'occhiata agli strumenti e alle opzioni di configurazione per l'addestramento e l'utilizzo del pacchetto e dei modelli Ultralytics come YOLO11.
Il pacchetto Python Ultralytics semplifica l'addestramento dei modelli, il rilevamento degli oggetti, l'esecuzione delle previsioni e la visualizzazione dei risultati. Per iniziare, avrai 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, consultare la documentazione ufficiale di Ultralytics.
Una volta scelto l'ambiente preferito, il passo successivo è configurarlo per eseguire previsioni e visualizzare i risultati. Puoi utilizzare uno qualsiasi degli ambienti menzionati sopra, a seconda di ciò con cui ti trovi più a tuo agio.
Se lavori in Google Colab, tieni presente che utilizza una CPU per impostazione predefinita, il che può rallentare le prestazioni. Per velocizzare le operazioni, passa a una GPU andando al menu "Runtime", selezionando "Cambia tipo di runtime" e impostando l'acceleratore hardware su GPU (idealmente una T4).
Per preparare l'ambiente, è necessario installare il pacchetto Python di Ultralytics 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 ultralyticsSuccessivamente, avremo bisogno di un video su cui lavorare. Puoi facilmente scaricarne uno da un sito di stock gratuito come Pexels. Assicurati di scegliere un video che includa oggetti che YOLO11 può rilevare. Poiché il modello è pre-addestrato sul dataset COCO, può riconoscere oggetti comuni come persone, auto e biciclette.
Per questo tutorial, utilizzeremo un video della 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 di input.
Inizieremo importando OpenCV (cv2), che è una libreria ampiamente utilizzata per lavorare con immagini e video nella computer vision. Importeremo anche la libreria Ultralytics, che ci aiuta a eseguire il rilevamento di oggetti e a generare analisi dal video.
Quindi, proveremo ad aprire il file video specificandone il percorso. Assicurati di sostituire "path/to/video.mp4" con la posizione effettiva del file video scaricato.
Inoltre, il frammento di codice seguente include un semplice controllo per assicurarsi che il video venga caricato correttamente. Se il percorso è errato o il file è danneggiato, il programma si interromperà e mostrerà un messaggio di errore: "Errore durante la 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, configureremo 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.
Nello snippet di codice seguente, estraiamo innanzitutto le proprietà chiave dal video di input: la sua larghezza, altezza e frame al secondo (fps). Questi valori vengono prelevati 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, denominato "analytics_output.avi" (puoi rinominarlo come necessario). Il video viene salvato utilizzando il formato MJPG, che è un metodo di compressione video comune. La risoluzione di output è impostata su 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 come grafico a linee, a torta, ad area o a barre, e quale modello YOLO utilizzare. In questo esempio, utilizzeremo il modello leggero "yolo11n.pt" e mostreremo i risultati come 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 quindi scritto nel video di output. Se un fotogramma non può essere letto, il ciclo si interrompe. Dopo che tutti i fotogrammi sono stati elaborati, il video viene salvato e tutte 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 insieme tutto. Con poche righe di codice aggiuntive, possiamo generare due video di output: uno che mostra i risultati del rilevamento di oggetti YOLO11 con bounding box ed etichette, e un altro che mostra i grafici di analisi in tempo reale.
Per fare ciò, configureremo due istanze di VideoWriter: una per salvare il video di previsione e un'altra per l'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 alle informazioni visive.
Ecco il codice completo, insieme a esempi degli output di previsione 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 sopra viene eseguito correttamente, genererà due video di output. Il file "output_predictions.avi" mostrerà i risultati dell'object detection con bounding box ed etichette, mentre "output_analytics.avi" visualizzerà i grafici di analisi in tempo reale basati sui rilevamenti.

Ecco un frame dell'output di analisi basato sulle previsioni. Utilizzando il grafico ad area, possiamo ottenere informazioni dettagliate come le fluttuazioni nel conteggio delle valigie nel tempo, come ad esempio un picco intorno al frame 268, che indica il movimento delle valigie o l'attività 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 i filmati video in grafici chiari e perspicaci che rivelano cosa sta succedendo, come ad esempio tracciare quante persone o oggetti appaiono nel tempo. Invece di rivedere manualmente ore di video, puoi generare riepiloghi visivi 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 output dell'AI in informazioni che chiunque può comprendere e utilizzare.
Vuoi saperne di più sull'IA? Esplora il nostro repository GitHub, entra in contatto con la nostra community e dai un'occhiata alle nostre opzioni di licenza per dare il via al tuo progetto di computer vision. Scopri di più sulle innovazioni come l'IA nella produzione e la computer vision nel settore della logistica nelle nostre pagine dedicate alle soluzioni.