Esplorare l'etichettatura dei dati per i progetti di computer vision

Abirami Vina

4 minuti di lettura

2 settembre 2024

Leggete il nostro approfondimento completo sull'etichettatura dei dati in relazione ai progetti di computer vision e scoprite come etichettare i dati visivi e perché è così importante.

L'intelligenza artificiale (IA) si concentra sul dare alle macchine capacità simili a quelle umane e uno dei modi più popolari per farlo è l'apprendimento supervisionato. In altre parole, insegnare ai modelli di IA mostrando loro esempi etichettati può aiutarli a imparare dagli schemi e a migliorare i compiti. È molto simile a come gli esseri umani imparano dall'esperienza. Ma come si creano questi esempi etichettati?

L'annotazione dei dati comporta l'etichettatura o il tagging dei dati per aiutare gli algoritmi di apprendimento automatico a comprenderli. Nella computer vision, ciò significa contrassegnare immagini o video per riconoscere e classificare accuratamente oggetti, azioni o scene. L'etichettatura dei dati è fondamentale perché il successo di un modello di intelligenza artificiale dipende in larga misura dalla qualità dei dati etichettati su cui viene addestrato.

Gli studi dimostrano che oltre l'80% del tempo dedicato ai progetti di IA viene impiegato per la gestione dei dati, dalla raccolta e aggregazione alla pulizia e all'etichettatura. Questo dimostra quanto sia importante l'annotazione dei dati nello sviluppo di modelli di IA. L'utilizzo di dati annotati di alta qualità consente ai modelli di IA di eseguire compiti come il riconoscimento facciale e il rilevamento di oggetti con maggiore precisione e affidabilità in situazioni reali.

Perché è necessaria l'annotazione dei dati

L'annotazione dei dati è alla base delle prestazioni di un modello di computer vision. I dati etichettati sono la verità di base che il modello utilizza per apprendere e fare previsioni. I dati della verità di base sono fondamentali perché rappresentano il mondo reale che il modello cerca di comprendere. Senza questa base affidabile, il modello di intelligenza artificiale sarebbe come una nave che naviga senza bussola. 

__wf_reserved_inherit
Figura 1. Verità a terra e previsione.

Un'etichettatura accurata aiuta questi modelli a capire cosa stanno vedendo e porta a un migliore processo decisionale. Se i dati sono mal etichettati o incoerenti, il modello farà fatica a fare previsioni e decisioni corrette, proprio come uno studente che impara da libri di testo errati. Grazie ai dati annotati, un modello può imparare compiti come la classificazione delle immagini, la segmentazione delle istanze e la stima della posa degli oggetti in immagini e video. 

Le migliori risorse per i set di dati

Prima di creare un set di dati nuovo di zecca e di etichettare meticolosamente immagini e video, è bene verificare se è possibile utilizzare set di dati preesistenti per il proprio progetto. Esistono diversi fantastici repository open-source dove è possibile accedere gratuitamente a set di dati di alta qualità. Tra i più noti ricordiamo:

  • ImageNet: Viene comunemente utilizzato per l'addestramento di modelli di classificazione delle immagini.
  • COCO: Questo set di dati è stato progettato per il rilevamento di oggetti, la segmentazione e la didascalia delle immagini.
  • PASCAL VOC: Supporta le attività di rilevamento e segmentazione degli oggetti.
__wf_reserved_inherit
Figura 2. Esempi di dati del dataset COCO.

Quando si sceglie un set di dati, è importante considerare fattori come l'adeguatezza al proprio progetto, le dimensioni del set di dati, la sua diversità e la qualità delle etichette. Inoltre, assicuratevi di esaminare i termini di licenza del set di dati per evitare qualsiasi ripercussione legale e verificate se i dati sono formattati in modo da adattarsi al vostro flusso di lavoro e ai vostri strumenti.

La creazione di un set di dati personalizzato è un'ottima opzione se i set di dati esistenti non sono adatti alle vostre esigenze. È possibile raccogliere immagini utilizzando strumenti come webcam, droni o smartphone, a seconda di ciò che il progetto richiede. Idealmente, il set di dati personalizzato dovrebbe essere vario, equilibrato e realmente rappresentativo del problema che si sta cercando di risolvere. Ciò potrebbe significare catturare immagini in diverse condizioni di illuminazione, da varie angolazioni e in più ambienti.

Se siete in grado di raccogliere solo un numero ridotto di immagini o video, l'aumento dei dati è una tecnica utile. Si tratta di ampliare il set di dati applicando trasformazioni come la rotazione, il capovolgimento o la regolazione del colore alle immagini esistenti. In questo modo si aumenta la dimensione del set di dati e si rende il modello più robusto e in grado di gestire meglio le variazioni dei dati. Utilizzando un mix di set di dati open source, set di dati personalizzati e dati aumentati, è possibile aumentare in modo significativo le prestazioni dei modelli di computer vision.

Tipi di tecniche di annotazione delle immagini

Prima di iniziare ad annotare le immagini, è importante conoscere i diversi tipi di annotazioni. Questo vi aiuterà a scegliere quella giusta per il vostro progetto. Di seguito, vedremo alcuni dei principali tipi di annotazioni. 

Caselle di delimitazione

Le caselle di delimitazione sono il tipo di annotazione più comune nella computer vision. Si tratta di caselle rettangolari utilizzate per contrassegnare la posizione di un oggetto in un'immagine. Queste caselle sono definite dalle coordinate dei loro angoli e aiutano i modelli di intelligenza artificiale a identificare e localizzare gli oggetti. Le caselle di delimitazione sono utilizzate principalmente per il rilevamento degli oggetti.

__wf_reserved_inherit
Figura 3. Un esempio di Bounding Box.

Maschere di segmentazione

A volte è necessario rilevare un oggetto in modo più preciso rispetto a un semplice riquadro di delimitazione disegnato intorno ad esso. Si può essere interessati ai confini degli oggetti in un'immagine. In questo caso, le maschere di segmentazione consentono di delineare oggetti complessi. Le maschere di segmentazione sono una rappresentazione più dettagliata a livello di pixel. 

Queste maschere possono essere utilizzate per la segmentazione semantica e per la segmentazione delle istanze. La segmentazione semantica prevede l'etichettatura di ogni pixel di un'immagine in base all'oggetto o all'area che rappresenta, come un pedone, un'auto, una strada o un marciapiede. La segmentazione per istanze, invece, va oltre, identificando e separando ogni oggetto individualmente, come ad esempio distinguendo tra le auto di un'immagine, anche se sono tutte dello stesso tipo.

__wf_reserved_inherit
Figura 4. Un esempio di segmentazione semantica (a sinistra) e di maschere di segmentazione delle istanze (a destra).

Cuboidi 3D

I cuboidi 3D sono simili ai bounding box, ma ciò che li rende unici è che i cuboidi 3D aggiungono informazioni sulla profondità e forniscono una rappresentazione 3D di un oggetto. Queste informazioni aggiuntive consentono ai sistemi di comprendere la forma, il volume e la posizione degli oggetti in uno spazio 3D. I cuboidi 3D sono spesso utilizzati nelle auto a guida autonoma per misurare la distanza degli oggetti dal veicolo.

__wf_reserved_inherit
Figura 5. Un esempio di cuboidi 3D.

Punti chiave e punti di riferimento

Un altro tipo interessante di annotazione è quello dei punti chiave, in cui vengono segnati sugli oggetti punti specifici come occhi, nasi o articolazioni. Landmarks fa un ulteriore passo avanti collegando questi punti per catturare la struttura e il movimento di forme più complesse, come volti o pose del corpo. Questi tipi di annotazioni sono utilizzati per applicazioni come il riconoscimento facciale, la cattura del movimento e la realtà aumentata. Inoltre, migliorano l'accuratezza dei modelli di intelligenza artificiale in attività come il riconoscimento dei gesti o l'analisi delle prestazioni sportive.

__wf_reserved_inherit
Figura 6. Un esempio di punti chiave.

Come annotare i dati utilizzando labelImg

Dopo aver discusso i diversi tipi di annotazioni, vediamo come è possibile annotare le immagini utilizzando uno strumento molto diffuso, LabelImg. LabelImg è uno strumento open-source che semplifica l'annotazione delle immagini e può essere usato per creare insiemi di dati nel formato YOLO (You Only Look Once). È un'ottima scelta per i principianti che lavorano su piccoli progetti Ultralytics YOLOv8.

La configurazione di LabelImg è semplice. Innanzitutto, assicuratevi di avere installato Python 3 sul vostro computer. Quindi, è possibile installare LabelImg con un rapido comando.

Una volta installato, è possibile avviare lo strumento utilizzando il comando:

LabelImg funziona su diverse piattaforme, tra cui Windows, macOS e Linux. Se si riscontrano problemi durante l'installazione, il repository ufficiale di LabelImg può fornire istruzioni più dettagliate.

__wf_reserved_inherit
Figura 7. Utilizzo di LabelImg per l'annotazione delle immagini.

Una volta lanciato lo strumento, seguite questi semplici passaggi per iniziare a etichettare le immagini:

  • Impostare le classi: Si inizia definendo l'elenco delle classi (categorie) che si desidera annotare in un file chiamato "predefined_classes.txt". Questo file consente al software di sapere quali oggetti verranno etichettati nelle immagini.
  • Passare al formato YOLO: Per impostazione predefinita, LabelImg utilizza il formato PASCAL VOC, ma se si lavora con YOLO, è necessario cambiare formato. Basta fare clic sul pulsante "PascalVOC" nella barra degli strumenti per passare a YOLO.
  • Iniziare ad annotare: Utilizzare le opzioni "Apri" o "ApriDIR" per caricare le immagini. Quindi, disegnare i riquadri di delimitazione intorno agli oggetti da annotare e assegnare l'etichetta di classe corretta. Dopo aver etichettato ogni immagine, salvare il lavoro. LabelImg creerà un file di testo con lo stesso nome dell'immagine, contenente le annotazioni YOLO.
  • Salvare e rivedere: Le annotazioni vengono salvate in un file .txt nel formato YOLO. Il software salva anche un file "classes.txt" che elenca tutti i nomi delle classi.

Strategie efficienti di etichettatura dei dati

Per rendere più fluido il processo di etichettatura dei dati, ci sono alcune strategie chiave da tenere a mente. Ad esempio, sono fondamentali linee guida chiare per l'annotazione. Senza di esse, diversi annotatori potrebbero interpretare un compito in modo diverso. 

Supponiamo che il compito sia quello di annotare gli uccelli nelle immagini con i riquadri di delimitazione. Un annotatore potrebbe etichettare l'intero uccello, mentre un altro potrebbe etichettare solo la testa o le ali. Questo tipo di incoerenza può confondere il modello durante l'addestramento. Fornendo definizioni chiare, come "etichettare l'intero uccello, comprese le ali e la coda", insieme a esempi e istruzioni per i casi difficili, è possibile assicurarsi che i dati siano etichettati in modo accurato e coerente.

Anche i controlli regolari della qualità sono importanti per mantenere standard elevati. Stabilendo dei parametri di riferimento e utilizzando metriche specifiche per la revisione del lavoro, è possibile mantenere i dati accurati e perfezionare il processo attraverso un feedback continuo. 

L'etichettatura dei dati in breve

L'annotazione dei dati è un concetto semplice che può avere un impatto significativo sul modello di computer vision. Sia che si utilizzino strumenti come LabelImg per annotare le immagini, sia che si addestrino i modelli su set di dati open-source, la comprensione dell'etichettatura dei dati è fondamentale. Le strategie di etichettatura dei dati possono contribuire a snellire e rendere più efficiente l'intero processo. Dedicare del tempo a perfezionare il proprio approccio all'annotazione può portare a risultati di IA migliori e più affidabili.

Continuate a esplorare e ad ampliare le vostre competenze! Rimanete in contatto con la nostra comunità per continuare a imparare sull'IA! Consultate il nostro repository GitHub per scoprire come stiamo utilizzando l'IA per creare soluzioni innovative in settori come la produzione e la sanità. 🚀

Costruiamo insieme il futuro
dell'IA!

Iniziate il vostro viaggio nel futuro dell'apprendimento automatico

Iniziare gratuitamente
Link copiato negli appunti