Yolo Vision Shenzhen
Shenzhen
Iscriviti ora

Gestione intelligente dei set di dati nella visione artificiale con Ultralytics

Scopri come utilizzare Ultralytics per gestire al meglio i tuoi set di dati nei progetti di visione artificiale. Monitora, confronta e ottimizza i tuoi set di dati con facilità.

Scala i tuoi progetti di visione artificiale con Ultralytics

Inizia

L'intelligenza artificiale applicata alla visione(Vision AI), o visione artificiale, ha fatto passi da gigante dai suoi esordi, evolvendosi da ricerca sperimentale a tecnologia fondamentale alla base di applicazioni concrete. Oggi, gli appassionati di IA possono sviluppare modelli potenti per attività quali il rilevamento di oggetti e la segmentazione di istanze utilizzando strumenti e framework facilmente accessibili.

Tuttavia, man mano che queste applicazioni passano dalla fase sperimentale a quella produttiva, la gestione dei set di dati rimane una sfida fondamentale e spesso sottovalutata. Con l'aumentare delle dimensioni e della complessità dei set di dati per la visione artificiale, i team hanno spesso difficoltà a mantenere annotazioni coerenti, track tra le diverse versioni e a garantire la qualità complessiva dei dati.

Anche i modelli più all'avanguardia possono fornire prestazioni inferiori alle aspettative in contesti reali se i dati utilizzati per il loro addestramento sono incompleti, sbilanciati o gestiti in modo inadeguato. Questo divario crescente tra le prestazioni in fase di sviluppo e l'affidabilità nel mondo reale è il motivo per cui è necessario un approccio più strutturato alla gestione dei set di dati.

Un altro limite comune è che la raccolta dei dati, l'annotazione e l'addestramento vengono spesso gestiti utilizzando strumenti distinti. Un flusso di lavoro frammentato rende più difficile gestire i set di dati in modo efficiente, aumenta il rischio di incongruenze e rallenta il processo iterativo.

Per superare i colli di bottiglia dell'IA visiva, quali la gestione dei set di dati e la frammentazione dei flussi di lavoro, abbiamo recentemente lanciato Ultralytics . Si tratta di un ambiente di lavoro end-to-end che riunisce la gestione dei set di dati, l'annotazione, l'addestramento, l'implementazione e il monitoraggio in un unico flusso di lavoro unificato. 

Collegando tra loro tutte le fasi del ciclo di vita della visione artificiale, diventa più facile track le modifiche apportate track , confrontare le prestazioni tra le diverse versioni e perfezionare costantemente i dati per ottenere risultati migliori.

Fig. 1. Esempio di visualizzazione delle immagini del set di dati all'interno Ultralytics (Fonte)

In questo articolo vedremo come Ultralytics ti aiuti track, confrontare e migliorare i tuoi set di dati per creare modelli di visione artificiale più affidabili. Cominciamo! 

L'importanza della gestione dei set di dati nella visione artificiale

Le prestazioni di un modello di visione artificiale sono strettamente legate ai dati su cui è stato addestrato. L'accuratezza del modello, ovvero la frequenza con cui le previsioni sono corrette, non dipende solo dall'algoritmo, ma anche dalla capacità del set di dati di rappresentare le condizioni del mondo reale. 

In parole povere, un modello apprende gli schemi direttamente dai dati, quindi eventuali lacune, distorsioni o incongruenze nel set di dati possono influenzare il modo in cui effettua le previsioni. In altre parole, dati di scarsa qualità, annotazioni errate o una copertura limitata delle variazioni presenti nel mondo reale nelle immagini – quali diverse condizioni di illuminazione, angolazioni degli oggetti, sfondi o livelli di occlusione – possono ridurre significativamente l’accuratezza, anche se l’architettura del modello è di per sé solida.

Ciò vale anche quando si ottimizza un modello, ovvero quando un modello pre-addestrato viene ulteriormente addestrato su dati nuovi o aggiornati per adattarlo meglio a un caso d'uso o a un ambiente specifico. Poiché l'accuratezza del modello dipende in larga misura dai dati, è fondamentale gestirli in modo adeguato. 

La gestione dei set di dati comprende l'organizzazione, l'etichettatura e l'aggiornamento continuo dei dati, affinché rimangano accurati e pertinenti. Ciò rende più facile migliorare le prestazioni nel tempo, specialmente quando si rieducano o si ottimizzano i modelli sulla base di nuovi dati.

In che modo la qualità dei set di dati influisce sull'affidabilità nel mondo reale

I casi d'uso della visione artificiale, come i sistemi di monitoraggio della sicurezza, sono un ottimo esempio del motivo per cui una corretta gestione dei dati è fondamentale. Questi sistemi devono funzionare in modo affidabile in una vasta gamma di condizioni reali, tra cui diversi livelli di illuminazione, angolazioni delle telecamere, livelli di affollamento e occlusioni parziali.

Se i dati di addestramento non coprono queste variazioni o non presentano una sufficiente diversità nell'aspetto degli oggetti nelle diverse scene e condizioni, il modello potrebbe avere difficoltà a detect con precisione. Ad esempio, un modello addestrato principalmente su scene ben illuminate e ordinate potrebbe fornire prestazioni scadenti in ambienti con scarsa illuminazione o in contesti affollati. Nei sistemi di sicurezza, ciò può comportare la mancata rilevazione di eventi o la generazione di falsi allarmi.

Per evitare ciò, è importante disporre di set di dati che non solo siano puliti e accuratamente etichettati, ma anche ben bilanciati e costantemente aggiornati. Ciò significa individuare le lacune nei dati, aggiungere nuovi esempi man mano che le condizioni cambiano e assicurarsi che le diverse classi e i diversi ambienti siano rappresentati in modo equilibrato. 

Grazie a un set di dati più completo e strutturato, i modelli sono in grado di gestire meglio la variabilità del mondo reale e di fornire previsioni più affidabili.

Aspetti fondamentali della gestione dei set di dati

Ma in cosa consiste, in realtà, la gestione dei set di dati? Si tratta di organizzare, etichettare e mantenere i dati in modo che possano essere utilizzati in modo efficace durante tutto il processo di sviluppo del modello.

L'organizzazione dei dati, ad esempio, comprende la strutturazione del set di dati e la sua suddivisione in set di addestramento, di validazione e di test. Il set di addestramento serve ad addestrare il modello, quello di validazione a monitorarne le prestazioni e a guidare le modifiche durante lo sviluppo, mentre il set di test serve a valutare le prestazioni del modello finale su dati completamente inediti.

Nel frattempo, l'etichettatura consiste nell'annotare le immagini con dettagli quali etichette di classe, riquadri di delimitazione o maschere di segmentazione. Poiché il modello apprende da queste annotazioni, l'accuratezza e la coerenza sono fondamentali per consentirgli di riconoscere modelli significativi e formulare previsioni affidabili.

Oltre a ciò, la gestione del set di dati comporta la revisione e l'aggiornamento dei dati nel corso del tempo. Ciò può includere la correzione di errori nelle annotazioni, l'eliminazione di dati di scarsa qualità o duplicati e l'aggiunta di nuovi esempi per coprire i casi mancanti o le condizioni mutate. 

Più in generale, la gestione dei set di dati è un processo continuo. Man mano che i modelli vengono valutati e vengono raccolti nuovi dati, i set di dati devono essere aggiornati per riflettere le condizioni reali e i casi limite. Tenere traccia di questi aggiornamenti e confrontare le diverse versioni aiuta i team a capire cosa sta migliorando le prestazioni e dove sono necessarie ulteriori modifiche.

Gestione dei set di dati con Ultralytics

Ultralytics offre un flusso di lavoro strutturato per la gestione dei set di dati all'interno di un unico ambiente, che copre tutte le fasi, dalla preparazione dei dati all'esportazione. È progettata per supportare sia i singoli sviluppatori che i team, facilitando la gestione coerente dei set di dati, sia che si lavori in modo indipendente sia che si collabori su più progetti.

Ogni fase è pensata per semplificare l'organizzazione, l'elaborazione e l'utilizzo dei set di dati durante l'intero ciclo di vita dello sviluppo del modello. Riunendo queste fasi in un unico punto, la piattaforma riduce la frammentazione e rende più semplice garantire la coerenza tra i vari flussi di lavoro.

Vediamo ora quali sono le fasi principali e in che modo la piattaforma le supporta.

Caricamento di set di dati sulla Ultralytics

L'approccio ai set di dati sulla piattaforma è flessibile e offre diverse modalità per importare o riutilizzare i dati. È possibile caricare i propri dati oppure iniziare più rapidamente utilizzando i set di dati pubblici disponibili sulla piattaforma. È inoltre possibile clonare set di dati esistenti condivisi dalla comunità e svilupparli ulteriormente.

Le funzionalità della piattaforma dedicate alla community consentono di esplorare e riutilizzare facilmente i lavori già esistenti. Grazie all'accesso ai set di dati creati da altri utenti, tra cui milioni di immagini e annotazioni, puoi iniziare subito senza dover raccogliere ed etichettare tutto da solo. Clonando un set di dati ne viene creata una copia nel tuo spazio di lavoro, che potrai modificare e ampliare mantenendo intatto l'originale.

Per quanto riguarda i caricamenti, la piattaforma supporta immagini singole, video e archivi di set di dati come file ZIP, TAR o GZ. Supporta inoltre formati di set di dati ampiamente utilizzati come YOLO COCO, facilitando l'importazione di set di dati e annotazioni esistenti senza necessità di ulteriori conversioni. Inoltre, è possibile caricare un set di dati utilizzando un file NDJSON esportato dalla piattaforma, rendendo semplicissimo ricreare o riutilizzare i set di dati tra diversi progetti.

Una volta caricati, i dati vengono elaborati dalla piattaforma attraverso un flusso di lavoro strutturato. Ciò comprende la verifica dei formati e delle dimensioni dei file, il ridimensionamento delle immagini quando necessario, l'analisi delle annotazioni e la generazione di statistiche relative al set di dati.

Ad esempio, i video vengono convertiti in fotogrammi in modo da poter essere utilizzati per l'addestramento, mentre le immagini vengono ottimizzate e preparate per facilitarne la consultazione e l'analisi. Una volta elaborati, i set di dati sono pronti per essere utilizzati per l'annotazione, l'analisi e l'addestramento dei modelli all'interno della piattaforma.

Annotazione dei dati sulla Ultralytics

Una volta caricati, i set di dati possono essere esaminati e annotati direttamente all'interno della piattaforma. La piattaforma include strumenti integrati per l'annotazione delle immagini destinati a una serie di attività di visione artificiale, quali il rilevamento di oggetti, la segmentazione di istanze, la stima della posa, il rilevamento di bounding box orientati (OBB) e la classificazione delle immagini.

Fig. 2. Utilizzo Ultralytics per l'etichettatura dei dati (Fonte)

Le annotazioni possono essere create manualmente utilizzando questi strumenti oppure ottimizzate grazie a funzionalità basate sull'intelligenza artificiale, come l'annotazione intelligente SAM. Con SAM è possibile generare maschere, riquadri di delimitazione o riquadri orientati interagendo con l'immagine, contribuendo così ad accelerare il processo di etichettatura senza comprometterne l'accuratezza.

Analisi della qualità dei set di dati tramite Ultralytics

Oltre alla preparazione e all'annotazione dei dati, comprendere la qualità dei set di dati è fondamentale per sviluppare modelli di visione artificiale affidabili. Senza una chiara comprensione di fattori quali la distribuzione delle classi, la qualità delle annotazioni, la suddivisione dei set di dati e il modo in cui i dati vengono rappresentati nelle diverse condizioni, può risultare difficile individuare i problemi che incidono sulle prestazioni del modello.

Ultralytics include funzionalità integrate che consentono di analizzare i set di dati in modo più efficace. Queste informazioni sono disponibili direttamente nell'interfaccia del set di dati, in schede quali Immagini, Classi e Grafici.

Nella scheda Grafici è possibile visualizzare statistiche a livello di set di dati, quali la distribuzione delle parti (addestramento, validazione e test), la frequenza delle classi e le mappe di calore delle annotazioni che mostrano dove compaiono gli oggetti all'interno delle immagini. 

La scheda "Classi" fornisce una ripartizione del numero di annotazioni per classe, rendendo più facile individuare eventuali squilibri tra le classi. La scheda "Immagini", invece, mostra dettagli relativi alle singole immagini, quali le dimensioni, il numero di annotazioni e la distribuzione delle etichette tra le singole immagini.

Queste informazioni consentono di individuare più facilmente problemi quali lo squilibrio tra le classi, la mancanza di scenari o una distribuzione non uniforme dei dati. Ad esempio, potresti notare che alcune classi presentano pochissimi esempi o che la maggior parte delle annotazioni è concentrata in aree specifiche di un'immagine.

Oltre all'analisi dei dati, la piattaforma supporta la curatela e l'arricchimento dei set di dati, ovvero il perfezionamento dei set di dati attraverso la correzione o la rimozione dei dati problematici e la creazione di varianti dei dati esistenti al fine di migliorare le prestazioni dei modelli. Questi miglioramenti possono essere apportati direttamente all'interno della piattaforma aggiornando le annotazioni, aggiungendo nuovi dati o riorganizzando le suddivisioni dei set di dati sulla base delle informazioni ricavate dall'analisi.

Esportazione di set di dati dalla Ultralytics

Una volta preparato e convalidato, un set di dati può essere esportato per essere utilizzato in diversi ambienti. Ciò ti offre la flessibilità necessaria per utilizzare i tuoi dati di visione artificiale dove preferisci, che si tratti di addestrare modelli in locale, nel cloud o in altri strumenti e flussi di lavoro.

La Ultralytics supporta diversi formati di esportazione, tra cui YOLO, COCO e NDJSON, facilitando l'integrazione dei set di dati in diversi flussi di lavoro e strumenti di addestramento.

Fig. 3. Esportazione di un set di dati dalla Ultralytics (Fonte)

L'esportazione di un set di dati crea un'istantanea fissa dei dati in un determinato momento, comprese le immagini, le annotazioni e la struttura. Ciò risulta utile poiché i set di dati cambiano spesso con l'aggiunta di nuovi dati, l'aggiornamento delle annotazioni o la modifica delle suddivisioni. Esportando un'istantanea, è possibile conservare la versione esatta del set di dati utilizzata per una particolare sessione di addestramento.

Ciò semplifica la riproducibilità dei risultati in un secondo momento, poiché è possibile addestrare nuovamente un modello sulla stessa configurazione di dati e confrontare le prestazioni tra diverse versioni del set di dati. Ad esempio, è possibile valutare se l'aggiunta di nuove immagini o la correzione delle annotazioni migliori effettivamente la precisione del modello, anziché cercare di indovinare cosa sia cambiato.

Le esportazioni vengono gestite in modo asincrono e, una volta pronte, le serie di dati possono essere scaricate e utilizzate in ambienti di addestramento locali, su cloud o offline.

Migliorare la qualità dei set di dati attraverso iterazioni sulla Ultralytics

Nei flussi di lavoro di machine learning e deep learning, la gestione dei set di dati prosegue anche dopo l'implementazione, poiché i dati reali spesso differiscono da quelli utilizzati durante l'addestramento. 

Man mano che i modelli vengono confrontati con nuovi dati, le lacune presenti nel set di dati – quali condizioni mancanti come ambienti con scarsa illuminazione, diverse angolazioni della telecamera, occlusioni o scene affollate, oltre agli errori di annotazione – diventano più evidenti, rendendo necessario perfezionare i dati nel corso del tempo.

Esistono diversi modi per migliorare un set di dati. È possibile aggiungere nuove immagini o nuovi video per coprire le condizioni mancanti, come gli ambienti in condizioni di scarsa illuminazione, diverse angolazioni di ripresa, occlusioni o scene affollate, contribuendo così a ridurre i punti ciechi nei dati. 

Allo stesso tempo, garantire che le annotazioni siano accurate e coerenti, ad esempio con oggetti correttamente etichettati e riquadri di delimitazione o maschere precisi, aiuta il modello ad apprendere modelli più affidabili.

Questo processo segue solitamente un ciclo semplice: addestrare il modello, valutare i risultati, individuare gli errori, migliorare il set di dati e ripetere l'addestramento. Ogni fase contribuisce a mettere in luce problemi quali annotazioni errate, dati mancanti o casi sottorappresentati.

Supponiamo che tu stia lavorando a un sistema di monitoraggio in tempo reale degli scaffali nei negozi, utilizzato per detect . Le prime versioni del set di dati potrebbero non includere determinati tipi di prodotti, condizioni di illuminazione o scaffali molto affollati. Durante la valutazione, potresti notare che il modello ha difficoltà a detect in queste situazioni.

Per migliorare le prestazioni, è possibile raccogliere nuove immagini che coprano questi scenari mancanti e aggiornare le annotazioni dove necessario. Nel corso del tempo, ripetere questo processo aiuta il modello a diventare più preciso e affidabile in condizioni reali.

Ultralytics supporta questo flusso di lavoro collegando gli aggiornamenti dei set di dati alle fasi di addestramento e valutazione. Grazie alle funzionalità integrate di monitoraggio degli esperimenti e alle metriche di prestazione, diventa più facile tenere sotto controllo i progressi e migliorare costantemente i set di dati nel tempo.

Monitoraggio delle modifiche ai set di dati tramite Ultralytics

Abbiamo accennato brevemente a come i set di dati si evolvano nel tempo nell'ambito del processo di sviluppo dei modelli. Man mano che vengono aggiunti nuovi dati, le annotazioni vengono perfezionate e le classi aggiornate, tenere track questi cambiamenti diventa fondamentale per preservare la qualità dei dati e garantire prestazioni costanti dei modelli.

Ecco alcune delle principali funzionalità Ultralytics che consentono il monitoraggio dei set di dati e il controllo delle versioni:

  • Controllo delle versioni dei set di dati: È possibile creare versioni fisse dei set di dati sotto forma di snapshot NDJSON. Ogni versione registra dettagli fondamentali quali il numero di immagini, il numero di classi, il numero di annotazioni e la dimensione del set di dati in un determinato momento. Queste versioni vengono archiviate e possono essere scaricate in un secondo momento, facilitando la riproduzione degli esperimenti e il confronto dei risultati tra diversi stati del set di dati.
  • Scheda "Versioni": tutte le versioni del set di dati sono organizzate nella scheda "Versioni", dove è possibile visualizzare la cronologia delle versioni, aggiungere descrizioni alle modifiche e track del set di dati nel tempo.
  • Collegamento ai modelli: la scheda "Modelli" mostra tutti i modelli addestrati su un set di dati, comprese metriche come mAP i dettagli dell'addestramento. Le versioni del set di dati sono associate alle sessioni di addestramento, consentendo di comprendere in che modo le modifiche ai dati influiscono sulle prestazioni dei modelli.
  • Scheda "Errori": la scheda "Errori" evidenzia i file che hanno dato esito negativo durante l'elaborazione, fornendo i dettagli dell'errore e alcuni suggerimenti. Ciò consente di individuare e risolvere problemi quali file danneggiati o formati non supportati prima dell'addestramento.
  • Interfaccia del set di dati (schede "Immagini" e "Classi"): queste schermate consentono di sfogliare le immagini, esaminare le annotazioni, gestire le etichette delle classi e analizzare la distribuzione delle classi. Funzionalità quali il filtraggio, l'ordinamento e l'identificazione delle immagini non annotate semplificano il monitoraggio della qualità del set di dati nel tempo.
  • Statistiche e grafici: le visualizzazioni dei dati integrate, quali la distribuzione per segmenti, la frequenza delle classi e le mappe di calore delle annotazioni, consentono di track nella distribuzione dei dati e di individuare eventuali squilibri man mano che il set di dati si evolve.
Fig. 4. Uno sguardo all'analisi della distribuzione delle classi di un set di dati sulla Ultralytics (Fonte)

Collegamento dei set di dati alle fasi di addestramento e implementazione all'interno della Ultralytics

Ultralytics collega le diverse fasi dello sviluppo dei modelli di IA in un unico flusso di lavoro. Ciò semplifica il processo che porta dai dati grezzi alle applicazioni di IA per la visione pronte per la produzione.

Una volta preparati e annotati, i set di dati possono essere utilizzati per addestrare modelli di visione artificiale, come Ultralytics , direttamente all'interno della piattaforma. Durante l'addestramento, è possibile monitorare le metriche di prestazione, track e valutare l'efficacia dell'apprendimento del modello tramite i dashboard integrati.

Fig. 5. Una panoramica delle metriche di addestramento dei modelli sulla Ultralytics (Fonte)

Una volta addestrati, i modelli possono essere testati su nuove immagini direttamente nel browser per valutare le previsioni e individuare gli aspetti da migliorare prima della distribuzione. Quando il modello funziona correttamente, può essere distribuito in produzione. 

La piattaforma supporta l'esportazione dei modelli in diversi formati o la loro distribuzione tramite servizi di inferenza ed endpoint dedicati, consentendone l'esecuzione in diversi ambienti.

Una volta implementati, gli strumenti di monitoraggio integrati consentono di track le prestazioni track nel tempo, comprese le metriche relative all'utilizzo e al comportamento dei modelli. Ciò semplifica la manutenzione e il miglioramento dei sistemi di IA visiva nelle applicazioni reali.

Migliori pratiche per la gestione dei set di dati con Ultralytics

Ecco alcuni fattori chiave da tenere presenti quando si gestiscono i set di dati utilizzando la Ultralytics :

  • Utilizza i filtri per individuare le lacune: individua i dati non etichettati o sottorappresentati utilizzando gli strumenti di filtraggio, in modo da semplificare il completamento delle annotazioni e migliorare la copertura.
  • Risolvi gli errori tempestivamente: utilizza la scheda "Errori" per il controllo qualità, in modo da individuare eventuali caricamenti non riusciti, file danneggiati o formati non supportati prima dell'addestramento.
  • Aggiornare costantemente i set di dati: aggiungere nuovi dati, correggere le annotazioni e includere i casi limite man mano che si presentano. Ciò contribuisce a migliorare la copertura e garantisce che i modelli funzionino in modo affidabile in scenari reali.
  • Gestisci con attenzione la suddivisione dei set di dati: assicurati che vi sia un buon equilibrio tra i set di addestramento, di validazione e di test. Puoi riorganizzare manualmente le suddivisioni oppure ricorrere alla ridistribuzione automatica quando necessario.

Per saperne di più sulla Ultralytics , consulta la Ultralytics ufficiale Ultralytics .

Punti chiave

Man mano che i progetti di visione artificiale assumono dimensioni sempre maggiori, la gestione efficace dei set di dati diventa importante tanto quanto lo sviluppo dei modelli. Un approccio strutturato alla gestione dei set di dati contribuisce a migliorare la qualità dei dati, a semplificare i flussi di lavoro e a garantire prestazioni migliori dei modelli nel tempo.

Ultralytics semplifica questo processo riunendo la gestione dei set di dati, l'addestramento e l'implementazione in un unico flusso di lavoro. Adottando un approccio strutturato alla gestione dei set di dati, i team possono ridurre la complessità, migliorare l'efficienza e realizzare sistemi di visione artificiale più scalabili e affidabili.

Unisciti alla nostra comunità in continua crescita ed esplora il nostro repository GitHub per trovare risorse sull'intelligenza artificiale. Se desideri sviluppare soluzioni di visione artificiale, dai un'occhiata alle nostre opzioni di licenza. Scopri come l'intelligenza artificiale sta trasformando il settore agricolo e come la visione artificiale sta plasmando il futuro nel settore sanitario visitando le nostre pagine dedicate alle soluzioni.

Costruiamo insieme il futuro dell'intelligenza artificiale!

Inizia il tuo viaggio con il futuro del machine learning