Imparate a trasformare i dati delle applicazioni di visione computerizzata in grafici di facile comprensione utilizzando il pacchetto Ultralytics Python per ottenere maggiori informazioni.
Imparate a trasformare i dati delle applicazioni di visione computerizzata in grafici di facile comprensione utilizzando il pacchetto Ultralytics Python per ottenere maggiori informazioni.
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 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 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 esigenza di narrazione è esattamente il motivo per cui la visualizzazione dei dati è in crescita, con un 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 in avanti, spiegando 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.

Dopo aver esplorato il concetto di visualizzazione dei dati e l'importanza dei diversi tipi di grafici analitici, vediamo come utilizzare la soluzioneUltralytics Analytics per visualizzare i risultati delle previsioni dei modelli di computer vision. Prima di illustrare il processo passo dopo passo, diamo un'occhiata agli strumenti e alle opzioni di configurazione per l'addestramento e l'utilizzo del pacchetto Ultralytics e di modelli come YOLO11.
Il pacchetto Ultralytics Python semplifica l'addestramento dei modelli, il detect oggetti, l'esecuzione delle previsioni e la visualizzazione dei risultati. Per iniziare, è necessario 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, esplorate 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 state lavorando in Google Colab, tenete presente che per impostazione predefinita utilizza la CPU , il che può rallentare le prestazioni. Per accelerare le cose, passate a una GPU andando nel menu "Runtime", selezionando "Change runtime type" e impostando l'acceleratore hardware su GPU (idealmente un T4).
Per preparare il vostro ambiente, dovrete installare il pacchettoUltralytics Python utilizzando il comando indicato di seguito. Negli strumenti basati su notebook come Colab o Jupyter, assicuratevi di aggiungere un punto esclamativo (!) prima del comando.
pip install ultralyticsQuindi, abbiamo bisogno di un video con cui lavorare. È possibile scaricarne facilmente uno da un sito di stock gratuiti come Pexels. Assicuratevi di scegliere un video che includa oggetti che YOLO11 è in grado di detect. Poiché il modello è stato preaddestrato sul set di datiCOCO , è in grado di riconoscere oggetti comuni come persone, automobili 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), 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, 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 impostiamo la soluzione Ultralytics Analytics per generare grafici dal video. È possibile 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 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 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 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 è possibile trasformare facilmente le riprese video in grafici chiari e perspicaci che rivelano ciò che sta accadendo, come ad esempio il monitoraggio di quante persone o oggetti appaiono nel tempo. Invece di esaminare manualmente ore di video, è possibile 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 risultati dell'IA in informazioni comprensibili e utilizzabili da chiunque.
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.