Ultralytics YOLO27:
Get Started

Strategie di raccolta e annotazione dei dati per la visione artificiale#

La raccolta e l'annotazione dei dati sono i due passaggi fondamentali di ogni progetto di visione artificiale: raccogli immagini o video rappresentativi e poi li etichetti affinché un modello possa apprendere da essi. La qualità di questi dati determina direttamente le prestazioni del modello, perciò definire le classi, raccogliere dati senza distorsioni e annotarli in modo coerente sono aspetti importanti da curare prima di iniziare l'addestramento.



Guarda: Come creare strategie efficaci di raccolta e annotazione dei dati per la visione artificiale 🚀

Questa guida spiega come impostare le classi e raccogliere i dati, che cos'è l'annotazione dei dati e quali tipi e formati di annotazione scegliere, oltre alle strategie di etichettatura efficienti, allineando ogni decisione agli obiettivi del tuo progetto.

Impostare le classi e raccogliere i dati#

Raccogliere immagini e video per un progetto di visione artificiale dipende da tre decisioni: quante classi definire, da dove reperire i dati e come mantenere il dataset privo di distorsioni.

Scegliere le classi giuste per il tuo progetto#

Una delle prime domande quando si avvia un progetto di visione artificiale è quante classi includere. Devi determinare l'appartenenza alle classi, ovvero le diverse categorie o etichette che vuoi che il modello riconosca e distingua. Il numero di classi va stabilito in base agli obiettivi specifici del tuo progetto.

Per esempio, se vuoi monitorare il traffico, le tue classi potrebbero includere «auto», «camion», «autobus», «motocicletta» e «bicicletta». Per il tracciamento degli articoli in un negozio, invece, le classi potrebbero essere «frutta», «verdura», «bevande» e «snack». Definire le classi in base agli obiettivi del tuo progetto aiuta a mantenere il dataset pertinente e mirato.

Quando definisci le classi, un'altra distinzione importante è scegliere un numero di classi ampio o dettagliato. Per «numero» si intende il conteggio delle classi distinte che ti interessano. Questa decisione influenza il livello di dettaglio dei dati e la complessità del modello. Ecco gli aspetti da considerare per ciascun approccio:

  • Numero ridotto di classi: categorie più ampie e inclusive, come «veicolo» e «non veicolo». Semplificano l'annotazione e richiedono meno risorse di calcolo, ma forniscono meno informazioni dettagliate e possono limitare l'efficacia del modello negli scenari complessi.
  • Numero elevato di classi: più categorie con distinzioni più precise, come «berlina», «SUV», «pick-up» e «motocicletta». Acquisiscono informazioni più dettagliate e migliorano l'accuratezza e le prestazioni del modello. Tuttavia, richiedono più tempo e lavoro per l'annotazione, oltre a maggiori risorse di calcolo.

Iniziare con classi più specifiche può essere molto utile, soprattutto nei progetti complessi in cui i dettagli sono importanti. Classi più specifiche ti permettono di raccogliere dati più dettagliati, ottenere approfondimenti maggiori e definire distinzioni più chiare tra le categorie. Questo non solo migliora l'accuratezza del modello, ma rende anche più facile modificarlo in seguito, se necessario, facendo risparmiare tempo e risorse.

Fonti dei dati#

Puoi usare dataset pubblici o raccogliere dati personalizzati. I dataset pubblici, come quelli disponibili su Kaggle e Google Dataset Search Engine, offrono dati standardizzati e ben annotati, costituendo ottimi punti di partenza per addestrare e convalidare i modelli.

La raccolta di dati personalizzati, invece, ti permette di adattare il dataset alle tue esigenze specifiche. Puoi acquisire immagini e video con fotocamere o droni, estrarre immagini dal Web o usare dati interni già disponibili nella tua organizzazione. I dati personalizzati ti offrono un maggiore controllo sulla loro qualità e pertinenza. Combinare fonti di dati pubbliche e personalizzate aiuta a creare un dataset diversificato e completo.

Evitare le distorsioni nella raccolta dei dati#

Si verifica una distorsione quando alcuni gruppi o scenari sono sottorappresentati o sovrarappresentati nel dataset. Ne deriva un modello che funziona bene su alcuni dati ma male su altri. È fondamentale evitare le distorsioni nell'IA, affinché il tuo modello di visione artificiale funzioni bene in una varietà di scenari.

Ecco come evitare le distorsioni durante la raccolta dei dati:

  • Fonti diversificate: raccogli dati da molte fonti per acquisire prospettive e scenari diversi.
  • Rappresentazione equilibrata: includi una rappresentazione equilibrata di tutti i gruppi pertinenti. Per esempio, considera età, generi ed etnie diverse.
  • Monitoraggio continuo: esamina e aggiorna regolarmente il dataset per individuare e affrontare eventuali distorsioni emergenti.
  • Tecniche di mitigazione delle distorsioni: usa metodi come il sovracampionamento delle classi sottorappresentate, l'aumento dei dati e gli algoritmi consapevoli dell'equità.

Seguire queste pratiche aiuta a creare un modello più robusto ed equo, capace di generalizzare bene nelle applicazioni del mondo reale.

Che cos'è l'annotazione dei dati?#

L'annotazione dei dati è il processo di etichettatura dei dati per renderli utilizzabili nell'addestramento di modelli di apprendimento automatico. Nella visione artificiale, consiste nell'etichettare immagini o video con le informazioni da cui il modello deve apprendere. Senza dati annotati correttamente, i modelli non possono apprendere con precisione le relazioni tra input e output.

Tipi di annotazione dei dati#

A seconda dei requisiti specifici di un compito di visione artificiale, esistono diversi tipi di annotazione dei dati. Ecco alcuni esempi:

  • Bounding box: riquadri rettangolari disegnati attorno agli oggetti in un'immagine, usati soprattutto per il rilevamento degli oggetti. Sono definiti dalle coordinate dell'angolo superiore sinistro e di quello inferiore destro.
  • Poligoni: contorni dettagliati degli oggetti, che consentono un'annotazione più precisa rispetto alle bounding box. I poligoni sono usati in attività come la segmentazione di istanze, in cui la forma dell'oggetto è importante.
  • Maschere: maschere binarie in cui ogni pixel appartiene a un oggetto oppure allo sfondo. Le maschere sono usate nelle attività di segmentazione semantica per fornire dettagli a livello di pixel.
  • Keypoint: punti specifici contrassegnati in un'immagine per identificare le posizioni di interesse. I keypoint sono usati in attività come la stima della posa e il rilevamento dei punti di riferimento facciali.
  • Bounding box orientate: rettangoli con un angolo di rotazione, usati nelle attività OBB quando gli oggetti appaiono con orientamenti arbitrari, come nelle immagini aeree.

Data annotation types including bounding boxes, polygons, and masks

Formati di annotazione comuni#

Dopo aver scelto un tipo di annotazione, è importante selezionare il formato adatto per archiviare e condividere le annotazioni. I formati più comuni sono:

FormatoStruttura dei fileUsato comunemente per
COCOUn singolo file JSONRilevamento degli oggetti, segmentazione di istanze, rilevamento dei keypoint, classi di sfondo e segmentazione panottica, didascalie delle immagini
Pascal VOCUn file XML per immagineRilevamento degli oggetti
YOLOUn file .txt per immagineRilevamento degli oggetti, segmentazione, posa e bounding box orientate

Il formato YOLO memorizza una riga per oggetto, con gli indici delle classi a partire da 0. Per il rilevamento degli oggetti, la riga è class x_center y_center width height con coordinate normalizzate tra 0 e 1. In una riga di segmentazione, la box è sostituita dai punti normalizzati del poligono dell'oggetto; una riga di posa mantiene la box e aggiunge dopo di essa le coordinate dei keypoint, con un flag di visibilità per ogni keypoint quando il dataset dichiara kpt_shape: [n, 3]. Una riga OBB memorizza class x1 y1 x2 y2 x3 y3 x4 y4 usando le coordinate normalizzate degli angoli.

Se il tuo strumento di annotazione esporta un JSON COCO, puoi convertirlo in etichette YOLO .txt oppure addestrare direttamente sul JSON con una classe di dataset personalizzata.

Definire le linee guida per l'annotazione#

Dopo aver scelto il tipo e il formato di annotazione, il passo successivo è stabilire regole di etichettatura chiare e oggettive. Queste regole fungono da guida per garantire coerenza e accuratezza durante tutto il processo di annotazione. Gli aspetti principali da considerare includono:

  • Chiarezza e dettagli: assicurati che le istruzioni siano chiare. Usa esempi e illustrazioni per mostrare che cosa ci si aspetta.
  • Coerenza: mantieni uniformi le annotazioni. Definisci criteri standard per annotare diversi tipi di dati, così che tutte le annotazioni seguano le stesse regole.
  • Riduzione delle distorsioni: mantieni un atteggiamento neutrale. Abituati a essere obiettivo e riduci al minimo le distorsioni personali per garantire annotazioni eque.
  • Efficienza: lavora in modo più intelligente, non più faticoso. Usa strumenti e flussi di lavoro che automatizzano le attività ripetitive, rendendo il processo di annotazione più rapido ed efficiente.

Esaminare e aggiornare regolarmente le regole di etichettatura aiuta a mantenere le annotazioni accurate, coerenti e in linea con gli obiettivi del progetto.

Strumenti di annotazione#

Un buon strumento di annotazione ti permette di etichettare ogni tipo richiesto dall'attività, applica linee guida coerenti ed esporta le etichette in un formato pronto per l'addestramento. Ultralytics Platform offre un editor di annotazione integrato per rilevamento, segmentazione di istanze, segmentazione semantica, classificazione, posa e OBB, con un'annotazione intelligente basata su SAM che trasforma un singolo clic in una maschera per le attività di rilevamento, segmentazione di istanze, segmentazione semantica e OBB. Poiché le annotazioni vengono salvate nel formato previsto da ciascuna attività — righe YOLO .txt per le attività spaziali e cartelle di classi per la classificazione — il dataset etichettato passa direttamente all'addestramento, senza conversioni.

Qualità dell'annotazione: accuratezza, precisione e valori anomali#

Prima di annotare su larga scala, è utile comprendere l'accuratezza, la precisione, i valori anomali e il controllo qualità, così da evitare di etichettare i dati in modo controproducente.

Comprendere accuratezza e precisione#

È importante comprendere la differenza tra accuratezza e precisione e il loro rapporto con l'annotazione. L'accuratezza indica quanto i dati annotati sono vicini ai valori reali. Ci aiuta a misurare quanto le etichette riflettano gli scenari del mondo reale. La precisione indica la coerenza delle annotazioni. Verifica se assegni la stessa etichetta allo stesso oggetto o alla stessa caratteristica in tutto il dataset. Un'elevata accuratezza e precisione contribuisce a ottenere modelli meglio addestrati, riducendo il rumore e migliorando la capacità del modello di generalizzare dai dati di addestramento.

Accuracy vs precision comparison for data annotation

Individuare i valori anomali#

I valori anomali sono punti dati che si discostano notevolmente dalle altre osservazioni del dataset. Nel contesto delle annotazioni, un valore anomalo potrebbe essere un'immagine etichettata in modo errato o un'annotazione che non è coerente con il resto del dataset. I valori anomali sono problematici perché possono distorcere il processo di apprendimento del modello, portando a previsioni imprecise e a una scarsa capacità di generalizzazione.

Puoi usare diversi metodi per individuare e correggere i valori anomali:

  • Tecniche statistiche: per individuare valori anomali in caratteristiche numeriche come i valori dei pixel, le coordinate delle bounding box o le dimensioni degli oggetti, puoi usare metodi come i diagrammi a scatola, gli istogrammi o gli z-score.
  • Tecniche visive: per individuare anomalie in caratteristiche categoriali come classi, colori o forme degli oggetti, usa metodi visivi come la visualizzazione di immagini, etichette o mappe di calore.
  • Metodi algoritmici: usa strumenti come il clustering (per esempio, il clustering K-means e DBSCAN) e gli algoritmi di rilevamento delle anomalie per individuare valori anomali in base ai modelli di distribuzione dei dati.

Controllo qualità dei dati annotati#

Come per gli altri progetti tecnici, il controllo qualità è indispensabile per i dati annotati. È buona pratica verificare regolarmente le annotazioni per assicurarsi che siano accurate e coerenti. Puoi farlo in diversi modi:

  • Esaminare campioni di dati annotati
  • Usare strumenti automatizzati per individuare gli errori comuni
  • Chiedere a un'altra persona di ricontrollare le annotazioni

Se lavori con più persone, è importante garantire la coerenza tra i diversi annotatori. Un buon accordo tra annotatori indica che le linee guida sono chiare e che tutti le applicano allo stesso modo. Aiuta tutto il gruppo a procedere in modo coordinato e mantiene coerenti le annotazioni.

Durante la revisione, se trovi errori, correggili e aggiorna le linee guida per evitare che si ripetano. Fornisci riscontri agli annotatori e organizza sessioni di formazione regolari per contribuire a ridurre gli errori. Un processo efficace per gestire gli errori mantiene il dataset accurato e affidabile.

Strategie efficienti per l'etichettatura dei dati#

Per rendere il processo di etichettatura dei dati più fluido ed efficace, valuta l'implementazione di queste strategie:

  • Linee guida chiare per l'annotazione: Fornisci istruzioni dettagliate con esempi per assicurarti che tutti gli annotatori interpretino le attività in modo coerente. Per esempio, quando etichetti gli uccelli, specifica se includere l'intero uccello o solo parti specifiche.
  • Controlli di qualità regolari: Definisci parametri di riferimento e usa metriche specifiche per revisionare il lavoro, mantenendo standard elevati grazie a feedback continui.
  • Usa strumenti di pre-annotazione: Molte piattaforme di annotazione moderne offrono funzionalità di pre-annotazione assistita dall'IA che possono velocizzare notevolmente il processo generando automaticamente annotazioni iniziali che gli operatori possono poi perfezionare.
  • Implementa l'apprendimento attivo: Questo approccio dà la priorità all'etichettatura dei campioni più informativi, riducendo il numero totale di annotazioni necessarie e mantenendo al contempo le prestazioni del modello.
  • Elaborazione in batch: Raggruppa immagini simili per l'annotazione, così da mantenere la coerenza e migliorare l'efficienza.

Queste strategie possono aiutarti a mantenere annotazioni di alta qualità riducendo il tempo e le risorse necessari per il processo di etichettatura.

Conclusione#

Raccogliere dati diversificati e imparziali e annotarli in modo coerente con gli strumenti giusti è il fondamento di un modello di visione artificiale affidabile. Una volta raccolto ed etichettato il tuo dataset, continua con la guida ai passaggi di un progetto di visione artificiale per passare all'addestramento e alla valutazione. Se hai domande, chiedi alla community nel repository GitHub di Ultralytics o nel server Discord di Ultralytics.

Domande frequenti#

  • Per ridurre al minimo le distorsioni, raccogli dati da fonti diverse, assicurati che tutti i gruppi pertinenti siano rappresentati in modo equilibrato (per esempio, diverse età, generi ed etnie), rivedi e aggiorna regolarmente il dataset per individuare eventuali distorsioni emergenti e applica tecniche di mitigazione come il sovracampionamento delle classi sottorappresentate, l'aumento dei dati e gli algoritmi che tengono conto dell'equità. Evitare le distorsioni in questo modo permette al tuo modello di visione artificiale di funzionare bene in scenari reali diversi e ne migliora la capacità di generalizzazione.

  • Definisci linee guida di etichettatura chiare e oggettive, con istruzioni dettagliate, esempi e illustrazioni, quindi applicale in modo uniforme a tutti i tipi di dati affinché ogni annotazione segua le stesse regole. Forma gli annotatori affinché mantengano la neutralità e riducano le distorsioni personali, rivedi e aggiorna regolarmente le linee guida e usa controlli automatici di coerenza e feedback tra annotatori per mantenere elevata l'accuratezza e allinearla agli obiettivi del progetto.

  • Qualche centinaio di oggetti annotati per classe è sufficiente per iniziare a sperimentare con l'apprendimento per trasferimento, ma per ottenere prestazioni affidabili nel mondo reale Ultralytics consiglia almeno 1.500 immagini e 10.000 istanze etichettate per classe. Abbina un dataset sufficientemente ampio a un programma di addestramento adeguato — circa 300 epoche sono un punto di partenza comune, da ridurre se il modello va rapidamente in overfitting — e assicurati che le annotazioni siano rigorose e in linea con gli obiettivi specifici del tuo progetto. Scopri strategie di addestramento dettagliate nella guida all'addestramento di YOLO26.

  • Sì. Ultralytics Platform include un editor di annotazioni integrato che supporta BBox, poligoni, punti chiave, riquadri orientati ed etichette di classificazione in un unico ambiente di lavoro. L'annotazione intelligente basata su SAM velocizza l'etichettatura per le attività di rilevamento, segmentazione di istanze, segmentazione semantica e OBB generando maschere con un solo clic; per i dataset di pose puoi usare i modelli di pose YOLO per l'annotazione intelligente, mentre la classificazione si annota manualmente. Le annotazioni vengono salvate nel formato previsto da ciascuna attività: righe YOLO .txt per le attività spaziali e cartelle di classi per la classificazione, pronte per l'addestramento.

  • Scegli il tipo di annotazione in base all'attività che intendi addestrare. I riquadri di delimitazione sono i più rapidi da disegnare e bastano per il rilevamento di oggetti. I poligoni e le maschere richiedono molto più tempo per oggetto, ma sono necessari per la segmentazione di istanze quando è importante conoscere la forma esatta di un oggetto. I punti chiave sono adatti alla stima della posa e al rilevamento dei punti di riferimento, mentre i riquadri orientati sono indicati per le attività OBB, come le immagini aeree, in cui un rettangolo allineato agli assi includerebbe troppo sfondo. Annotare i dati per l'attività più specifica di cui hai effettivamente bisogno mantiene lo sforzo di etichettatura proporzionato al risultato.

Commenti