Alla scoperta dell'annotazione dei dati per progetti di computer vision
Leggi il nostro approfondimento completo sull'annotazione dei dati per i progetti di computer vision e scopri come annotare i dati visivi e perché è così importante.

L'intelligenza artificiale (AI) mira a conferire alle macchine capacità simili a quelle umane e uno dei modi più diffusi per farlo è attraverso l'apprendimento supervisionato. In altre parole, insegnare ai modelli di AI mostrando loro esempi annotati può aiutarli ad apprendere dagli schemi e a migliorare nelle attività. È molto simile al modo in cui gli esseri umani imparano dall'esperienza. Quindi, come vengono creati questi esempi annotati?
L'annotazione dei dati consiste nell'applicare etichette o tag ai dati per aiutare gli algoritmi di machine learning a comprenderli. Nella visione artificiale, ciò significa contrassegnare immagini o video per riconoscere e categorizzare con precisione oggetti, azioni o scene. L'annotazione dei dati è fondamentale perché il successo di un modello di AI dipende in larga misura dalla qualità dei dati annotati su cui viene addestrato.
Gli studi dimostrano che oltre l'80% del tempo dei progetti di AI viene dedicato alla gestione dei dati, dalla raccolta e aggregazione fino alla pulizia e annotazione. Questo dimostra quanto sia importante l'annotazione dei dati nello sviluppo dei modelli di AI. L'utilizzo di dati annotati di alta qualità consente ai modelli di AI di svolgere attività come il riconoscimento facciale e il rilevamento degli oggetti con maggiore precisione e affidabilità in situazioni reali.
Perché l'annotazione dei dati è necessaria#
L'annotazione dei dati costituisce la base delle prestazioni di un modello di visione artificiale. I dati annotati rappresentano la verità di riferimento che il modello usa per apprendere e fare previsioni. I dati di verità di riferimento sono fondamentali perché rappresentano il mondo reale che il modello cerca di comprendere. Senza questa base affidabile, il modello di AI sarebbe come una nave che naviga senza bussola.

Fig. 1. Verità di riferimento e previsione a confronto.
Un'annotazione accurata aiuta questi modelli a comprendere ciò che vedono e porta a decisioni migliori. Se i dati sono annotati male o in modo incoerente, il modello avrà difficoltà a fare previsioni e prendere decisioni corrette, proprio come uno studente che impara da libri di testo errati. Grazie ai dati annotati, un modello può apprendere attività come la classificazione delle immagini, la segmentazione delle istanze e la stima della posa degli oggetti nelle immagini e nei video.
Le migliori risorse per i dataset#
Prima di creare un dataset completamente nuovo e annotare meticolosamente immagini e video, è una buona idea verificare se puoi utilizzare dataset preesistenti per il tuo progetto. Esistono diversi ottimi repository open source in cui puoi accedere gratuitamente a dataset di alta qualità. Tra i più popolari ci sono:
- ImageNet: viene comunemente utilizzato per addestrare modelli di classificazione delle immagini.
- COCO: questo dataset è progettato per il rilevamento degli oggetti, la segmentazione e la generazione di didascalie per immagini.
- PASCAL VOC: supporta le attività di rilevamento degli oggetti e segmentazione.

Fig. 2. Esempi di dati nel dataset COCO.
Quando scegli un dataset, è importante considerare fattori come la sua adeguatezza al progetto, le dimensioni, la varietà e la qualità delle etichette. Inoltre, assicurati di esaminare i termini di licenza del dataset per evitare eventuali conseguenze legali e verifica che i dati siano formattati in modo compatibile con il tuo flusso di lavoro e i tuoi strumenti.
Creare un dataset personalizzato è un'ottima soluzione se i dataset esistenti non soddisfano pienamente le tue esigenze. Puoi raccogliere immagini usando strumenti come webcam, droni o smartphone, a seconda delle necessità del tuo progetto. Idealmente, il tuo dataset personalizzato dovrebbe essere vario, bilanciato e realmente rappresentativo del problema che stai cercando di risolvere. Ciò potrebbe significare acquisire immagini in condizioni di illuminazione diverse, da varie angolazioni e in ambienti differenti.
Se puoi raccogliere solo un numero limitato di immagini o video, l'aumento dei dati è una tecnica utile. Consiste nell'ampliare il dataset applicando trasformazioni come rotazione, capovolgimento o regolazione dei colori alle immagini esistenti. Aumenta le dimensioni del dataset e rende il modello più robusto e maggiormente in grado di gestire le variazioni nei dati. Utilizzando una combinazione di dataset open source, dataset personalizzati e dati aumentati, puoi migliorare significativamente le prestazioni dei tuoi modelli di visione artificiale.
Tipi di tecniche di annotazione delle immagini#
Prima di iniziare ad annotare le immagini, è importante conoscere i diversi tipi di annotazione. Questo ti aiuterà a scegliere quello giusto per il tuo progetto. Ora esamineremo alcuni dei principali tipi di annotazione.
Riquadri di delimitazione#
I riquadri di delimitazione sono il tipo di annotazione più comune nella visione artificiale. Sono riquadri rettangolari usati per contrassegnare la posizione di un oggetto in un'immagine. Questi riquadri sono definiti dalle coordinate dei loro angoli e aiutano i modelli di AI a identificare e localizzare gli oggetti. I riquadri di delimitazione vengono utilizzati principalmente per il rilevamento degli oggetti.

Fig. 3. Un esempio di riquadri di delimitazione.
Maschere di segmentazione#
A volte un oggetto deve essere rilevato con maggiore precisione rispetto a quanto consentito da un semplice riquadro di delimitazione disegnato intorno a esso. Potresti essere interessato al contorno degli oggetti in un'immagine. In tal 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 la segmentazione delle istanze. La segmentazione semantica consiste nell'assegnare un'etichetta a 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 delle istanze, invece, fa un passo ulteriore identificando e separando ogni oggetto individualmente, ad esempio distinguendo ogni auto in un'immagine, anche se appartengono tutte allo stesso tipo.

Fig. 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 riquadri di delimitazione, ma si distinguono perché 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 vengono spesso utilizzati nelle auto a guida autonoma per misurare la distanza degli oggetti dal veicolo.

Fig. 5. Un esempio di cuboidi 3D.
Punti chiave e punti di riferimento#
Un altro tipo interessante di annotazione è quello dei punti chiave, in cui punti specifici come occhi, nasi o articolazioni vengono contrassegnati sugli oggetti. I punti di riferimento fanno 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 annotazione vengono utilizzati in applicazioni come il riconoscimento facciale, il motion capture e la realtà aumentata. Migliorano inoltre la precisione dei modelli di AI in attività come il riconoscimento dei gesti o l'analisi delle prestazioni sportive.

Fig. 6. Un esempio di punti chiave.
Come annotare i dati usando LabelImg#
Ora che abbiamo esaminato i diversi tipi di annotazione, vediamo come puoi annotare le immagini usando uno strumento popolare, LabelImg. LabelImg è uno strumento open source che semplifica l'annotazione delle immagini e può essere utilizzato per creare dataset nel formato YOLO (Guardi solo una volta). È un'ottima scelta per chi è alle prime armi e lavora su piccoli progetti Ultralytics YOLOv8.
Configurare LabelImg è semplice. Per prima cosa, assicurati di avere Python 3 installato sul computer. Poi puoi installare LabelImg con un comando rapido:
pip3 install labelImgUna volta installato, puoi avviare lo strumento usando il comando:
labelImgLabelImg funziona su più piattaforme, tra cui Windows, macOS e Linux. Se riscontri problemi durante l'installazione, il repository ufficiale di LabelImg può fornirti istruzioni più dettagliate.

Fig. 7. Utilizzo di LabelImg per l'annotazione delle immagini.
Dopo aver avviato lo strumento, segui questi semplici passaggi per iniziare ad annotare le immagini:
- Configura le classi: Inizia definendo l'elenco delle classi (categorie) che vuoi annotare in un file denominato “predefined_classes.txt.” Questo file permette al software di sapere quali oggetti annoterai nelle immagini.
- Passa al formato YOLO: Per impostazione predefinita, LabelImg usa il formato PASCAL VOC, ma se lavori con YOLO devi cambiare formato. Fai clic sul pulsante “PascalVOC” nella barra degli strumenti per passare a YOLO.
- Inizia l'annotazione: Usa le opzioni "Open" o "OpenDIR" per caricare le immagini. Quindi disegna riquadri di delimitazione intorno agli oggetti che vuoi annotare e assegna l'etichetta della classe corretta. Dopo aver annotato ogni immagine, salva il lavoro. LabelImg creerà un file di testo con lo stesso nome dell'immagine, contenente le annotazioni YOLO.
- Salva e verifica: Le annotazioni vengono salvate in un file .txt nel formato YOLO. Il software salva anche un file “classes.txt” contenente l'elenco di tutti i nomi delle classi.
Strategie efficienti per l'annotazione dei dati#
Per rendere più fluido il processo di annotazione dei dati, ci sono alcune strategie chiave da tenere a mente. Ad esempio, linee guida chiare per l'annotazione sono fondamentali. Senza di esse, annotatori diversi potrebbero interpretare un'attività in modo differente.
Supponiamo che l'attività consista nell'annotare uccelli nelle immagini con 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 "etichetta l'intero uccello, comprese le ali e la coda", insieme a esempi e istruzioni per i casi complessi, puoi assicurarti che i dati siano contrassegnati in modo accurato e coerente.
Anche i controlli regolari della qualità sono importanti per mantenere standard elevati. Definendo parametri di riferimento e usando metriche specifiche per verificare il lavoro, puoi mantenere l'accuratezza dei dati e perfezionare il processo attraverso un feedback continuo.
L'annotazione dei dati in breve#
L'annotazione dei dati è un concetto semplice che può avere un impatto significativo sul tuo modello di visione artificiale. Che tu stia usando strumenti come LabelImg per annotare immagini o addestrando modelli su dataset open source, comprendere l'annotazione dei dati è fondamentale. Le strategie di annotazione dei dati possono aiutare a semplificare l'intero processo e a renderlo più efficiente. Dedicare tempo a perfezionare il tuo approccio all'annotazione può portare a risultati di AI migliori e più affidabili.
Continua a esplorare e ad ampliare le tue competenze! Rimani in contatto con la nostra community per continuare a imparare sull'AI! Dai un'occhiata al nostro repository GitHub per scoprire come utilizziamo l'AI per creare soluzioni innovative in settori come la produzione e la sanità. 🚀









