Strategie di raccolta e annotazione dei dati per la computer vision#
La raccolta e l'annotazione dei dati sono i due passaggi fondamentali di ogni progetto di computer vision: raccogli immagini o video rappresentativi, quindi li etichetti affinché un modello possa apprendere da essi. La qualità di questi dati determina direttamente le prestazioni del modello, perciò la definizione delle classi, la raccolta imparziale e l'annotazione coerente sono importanti prima dell'inizio di qualsiasi addestramento.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Questa guida illustra come impostare le classi e raccogliere i dati, che cos'è l'annotazione dei dati, oltre ai tipi e ai formati di annotazione tra cui scegliere, e le strategie di etichettatura efficienti — ogni decisione è allineata agli obiettivi del tuo progetto.
Impostazione delle classi e raccolta dei dati#
La raccolta di immagini e video per un progetto di computer vision si riduce a tre decisioni: quante classi definire, da dove acquisire i dati e come mantenere il dataset privo di bias.
Scegliere le classi giuste per il tuo progetto#
Una delle prime domande quando si avvia un progetto di computer vision riguarda il numero di classi da includere. Devi determinare l'appartenenza alle classi, ovvero le diverse categorie o etichette che vuoi che il tuo modello riconosca e distingua. Il numero di classi dovrebbe essere determinato dagli obiettivi specifici del tuo progetto.
Ad esempio, se vuoi monitorare il traffico, le tue classi potrebbero includere "auto", "camion", "autobus", "motocicletta" e "bicicletta". D'altra parte, per monitorare gli articoli in un negozio, le tue 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 focalizzato.
Quando definisci le classi, un'altra distinzione importante da fare è se scegliere un numero di classi generico o dettagliato. Il termine "numero" si riferisce al numero di classi distinte che ti interessano. Questa decisione influisce sulla granularità dei dati e sulla complessità del modello. Ecco le considerazioni per ciascun approccio:
- Numero di classi generico: sono categorie più ampie e inclusive, come "veicolo" e "non veicolo". Semplificano l'annotazione e richiedono meno risorse computazionali, ma forniscono informazioni meno dettagliate, limitando potenzialmente l'efficacia del modello in scenari complessi.
- Numero di classi dettagliato: comprende più categorie con distinzioni più precise, come "berlina", "SUV", "pick-up" e "motocicletta". Cattura informazioni più dettagliate, migliorando l'accuratezza e le prestazioni del modello. Tuttavia, l'annotazione richiede più tempo e lavoro e sono necessarie maggiori risorse computazionali.
Iniziare con classi più specifiche può essere molto utile, soprattutto nei progetti complessi in cui i dettagli sono importanti. Le classi più specifiche permettono di raccogliere dati più dettagliati, ottenere informazioni più approfondite e stabilire distinzioni più chiare tra le categorie. Non solo migliorano l'accuratezza del modello, ma rendono anche più semplice modificarlo in seguito, se necessario, risparmiando tempo e risorse.
Fonti dei dati#
Puoi utilizzare dataset pubblici o raccogliere dati personalizzati. I dataset pubblici, come quelli disponibili su Kaggle e sul motore di ricerca Google Dataset Search, offrono dati ben annotati e standardizzati, rappresentando un ottimo punto 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, raccogliere immagini dal web oppure utilizzare dati interni già esistenti della tua organizzazione. I dati personalizzati ti offrono un maggiore controllo sulla loro qualità e pertinenza. La combinazione di fonti di dati pubbliche e personalizzate aiuta a creare un dataset diversificato e completo.
Evitare i bias nella raccolta dei dati#
Il bias si verifica quando determinati gruppi o scenari sono sottorappresentati o sovrarappresentati nel dataset. Questo porta a un modello che funziona bene su alcuni dati, ma male su altri. È fondamentale evitare il bias nell'AI affinché il tuo modello di computer vision possa funzionare bene in una varietà di scenari.
Ecco come puoi evitare i bias 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. Ad esempio, considera età, generi ed etnie diverse.
- Monitoraggio continuo: esamina e aggiorna regolarmente il dataset per identificare e affrontare eventuali bias emergenti.
- Tecniche di mitigazione dei bias: utilizza metodi come il sovracampionamento delle classi sottorappresentate, l'aumento dei dati e algoritmi consapevoli dell'equità.
Seguire queste pratiche aiuta a creare un modello più robusto ed equo, in grado 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 dei modelli di machine learning. Nella computer vision, ciò significa etichettare immagini o video con le informazioni da cui un 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'attività di computer vision, esistono diversi tipi di annotazione dei dati. Ecco alcuni esempi:
- Riquadri di delimitazione: riquadri rettangolari disegnati intorno agli oggetti in un'immagine, utilizzati principalmente per le attività di rilevamento degli oggetti. Questi riquadri sono definiti dalle coordinate dell'angolo superiore sinistro e dell'angolo inferiore destro.
- Poligoni: contorni dettagliati degli oggetti, che consentono un'annotazione più precisa rispetto ai riquadri di delimitazione. I poligoni vengono utilizzati in attività come la segmentazione delle istanze, in cui la forma dell'oggetto è importante.
- Maschere: maschere binarie in cui ogni pixel appartiene a un oggetto oppure allo sfondo. Le maschere vengono utilizzate nelle attività di segmentazione semantica per fornire dettagli a livello di pixel.
- Punti chiave: punti specifici contrassegnati all'interno di un'immagine per identificare le posizioni di interesse. I punti chiave vengono utilizzati in attività come la stima della posa e il rilevamento dei punti di riferimento facciali.
- Riquadri di delimitazione orientati: rettangoli che includono un angolo di rotazione, utilizzati nelle attività OBB in cui gli oggetti possono avere orientamenti arbitrari, come nelle immagini aeree.
Formati comuni di annotazione#
Dopo aver selezionato un tipo di annotazione, è importante scegliere il formato appropriato per archiviare e condividere le annotazioni. I formati più comuni sono:
| Formato | Struttura dei file | Utilizzato comunemente per |
|---|---|---|
| COCO | Singolo file JSON | Rilevamento degli oggetti, segmentazione delle istanze, rilevamento dei punti chiave, segmentazione dello sfondo e segmentazione panottica, didascalie delle immagini |
| Pascal VOC | Un file XML per immagine | Rilevamento degli oggetti |
| YOLO | Un file .txt per immagine | Rilevamento degli oggetti, segmentazione, posa e riquadri orientati |
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. Una riga di segmentazione sostituisce il riquadro con i punti poligonali normalizzati dell'oggetto, mentre una riga di posa mantiene il riquadro e aggiunge le coordinate dei punti chiave, con un flag di visibilità per ogni punto chiave quando il dataset dichiara kpt_shape: [n, 3]. Una riga OBB memorizza class x1 y1 x2 y2 x3 y3 x4 y4 utilizzando coordinate normalizzate degli angoli.
Se il tuo strumento di annotazione esporta COCO JSON, puoi convertirlo in etichette YOLO .txt oppure addestrare direttamente sul JSON con una classe di dataset personalizzata.
Definizione delle linee guida per l'annotazione#
Dopo aver scelto il tipo e il formato di annotazione, il passaggio successivo consiste nello stabilire regole di etichettatura chiare e obiettive. Queste regole fungono da guida per garantire coerenza e accuratezza durante tutto il processo di annotazione. Gli aspetti principali di queste regole includono:
- Chiarezza e dettaglio: assicurati che le istruzioni siano chiare. Utilizza esempi e illustrazioni per mostrare cosa ci si aspetta.
- Coerenza: mantieni uniformi le annotazioni. Stabilisci criteri standard per annotare diversi tipi di dati, in modo che tutte le annotazioni seguano le stesse regole.
- Riduzione dei bias: mantieni un atteggiamento neutrale. Impara a essere obiettivo e riduci al minimo i bias personali per garantire annotazioni eque.
- Efficienza: lavora in modo più intelligente, non più duro. Utilizza 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 allineate agli obiettivi del tuo progetto.
Strumenti di annotazione#
Un buon strumento di annotazione ti permette di etichettare ogni tipo richiesto dalla tua attività, impone 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 delle istanze, segmentazione semantica, classificazione, posa e OBB, con annotazione intelligente basata su SAM che trasforma un singolo clic in una maschera per le attività di rilevamento, segmentazione delle istanze, segmentazione semantica e OBB. Poiché le annotazioni vengono salvate nel layout previsto da ogni attività — righe YOLO .txt per le attività spaziali e cartelle delle classi per la classificazione — il tuo dataset etichettato passa direttamente all'addestramento senza alcuna fase di conversione.
Qualità dell'annotazione: accuratezza, precisione e valori anomali#
Prima di annotare su larga scala, è utile comprendere accuratezza, precisione, valori anomali e controllo della qualità, per 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 siano vicini ai valori reali. Ci aiuta a misurare quanto le etichette riflettano fedelmente gli scenari del mondo reale. La precisione indica la coerenza delle annotazioni. Verifica se assegni la stessa etichetta allo stesso oggetto o caratteristica in tutto il dataset. Un'elevata accuratezza e precisione portano a modelli meglio addestrati, riducendo il rumore e migliorando la capacità del modello di generalizzare dai dati di addestramento.
Identificazione dei valori anomali#
I valori anomali sono punti dati che si discostano significativamente dalle altre osservazioni nel dataset. Per quanto riguarda le 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, causando previsioni inaccurate e una scarsa generalizzazione.
Puoi utilizzare diversi metodi per rilevare e correggere i valori anomali:
- Tecniche statistiche: per rilevare valori anomali nelle caratteristiche numeriche, come i valori dei pixel, le coordinate dei riquadri di delimitazione o le dimensioni degli oggetti, puoi utilizzare metodi come diagrammi a scatola, istogrammi o z-score.
- Tecniche visive: per individuare anomalie nelle caratteristiche categoriche, come classi di oggetti, colori o forme, utilizza metodi visivi come la rappresentazione grafica di immagini, etichette o mappe di calore.
- Metodi algoritmici: utilizza strumenti come il clustering, ad esempio il clustering K-means e DBSCAN, e gli algoritmi di rilevamento delle anomalie per identificare i valori anomali in base ai modelli di distribuzione dei dati.
Controllo della qualità dei dati annotati#
Come per qualsiasi altro progetto tecnico, il controllo della 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
- Utilizzare strumenti automatizzati per individuare gli errori comuni
- Chiedere a un'altra persona di ricontrollare le annotazioni
Se lavori con più persone, la coerenza tra i diversi annotatori è importante. Un buon accordo inter-annotatore indica che le linee guida sono chiare e che tutti le seguono nello stesso modo. Mantiene tutti sulla stessa linea e garantisce annotazioni coerenti.
Durante la revisione, se trovi degli errori, correggili e aggiorna le linee guida per evitare futuri sbagli. Fornisci feedback agli annotatori e organizza sessioni di formazione regolari per contribuire a ridurre gli errori. Un processo solido per la gestione degli errori mantiene il dataset accurato e affidabile.
Strategie efficienti per l'etichettatura dei dati#
Per rendere il processo di etichettatura dei dati più semplice ed efficace, valuta l'implementazione delle seguenti strategie:
- Linee guida chiare per l'annotazione: fornisci istruzioni dettagliate con esempi per assicurarti che tutti gli annotatori interpretino le attività in modo coerente. Ad esempio, quando etichetti gli uccelli, specifica se includere l'intero uccello o solo parti specifiche.
- Controlli regolari della qualità: stabilisci parametri di riferimento e utilizza metriche specifiche per esaminare il lavoro, mantenendo standard elevati attraverso un feedback continuo.
- Utilizzo di strumenti di pre-annotazione: molte piattaforme moderne di annotazione offrono funzionalità di pre-annotazione assistita dall'AI che possono accelerare notevolmente il processo generando automaticamente annotazioni iniziali che gli operatori possono poi perfezionare.
- Implementazione dell'apprendimento attivo: questo approccio dà priorità all'etichettatura prima 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 aiutare a mantenere annotazioni di alta qualità riducendo al contempo il tempo e le risorse necessari per il processo di etichettatura.
Conclusioni#
Raccogliere dati diversificati e privi di bias e annotarli in modo coerente con gli strumenti giusti è la base di un modello di computer vision affidabile. Dopo aver raccolto ed etichettato il dataset, continua con la guida sui passaggi di un progetto di computer vision per passare all'addestramento e alla valutazione. Se sorgono domande, chiedi alla community nel repository GitHub di Ultralytics o nel server Discord di Ultralytics.
FAQ#
Per ridurre al minimo i bias, raccogli dati da fonti diversificate, assicurati una rappresentazione equilibrata di tutti i gruppi pertinenti, come età, generi ed etnie diverse, esamina e aggiorna regolarmente il dataset per individuare i bias emergenti e applica tecniche di mitigazione come il sovracampionamento delle classi sottorappresentate, l'aumento dei dati e gli algoritmi consapevoli dell'equità. Evitare i bias in questo modo permette al tuo modello di computer vision di funzionare bene in diversi scenari del mondo reale e ne migliora la capacità di generalizzazione.
Stabilisci linee guida di etichettatura chiare e obiettive, con istruzioni dettagliate, esempi e illustrazioni, quindi applicale uniformemente a tutti i tipi di dati affinché ogni annotazione segua le stesse regole. Forma gli annotatori a mantenere un atteggiamento neutrale per ridurre i bias personali, esamina e aggiorna regolarmente le linee guida e utilizza controlli automatizzati della coerenza insieme al feedback inter-annotatore per mantenere alta l'accuratezza e allinearla agli obiettivi del tuo progetto.
Sono sufficienti alcune centinaia di oggetti annotati per classe per iniziare a sperimentare con il transfer learning, 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 grande a un programma di addestramento ragionevole — circa 300 epoche sono un punto di partenza comune, da ridurre se il modello va rapidamente in overfitting — e mantieni le annotazioni rigorose e allineate agli obiettivi specifici del tuo progetto. Approfondisci le strategie di addestramento nella guida all'addestramento di YOLO26.
Sì. Ultralytics Platform include un editor di annotazione integrato che supporta riquadri di delimitazione, poligoni, punti chiave, riquadri orientati ed etichette di classificazione in un unico spazio di lavoro. L'annotazione intelligente basata su SAM accelera l'etichettatura per le attività di rilevamento, segmentazione delle istanze, segmentazione semantica e OBB generando maschere con un singolo clic, mentre la posa e la classificazione vengono annotate manualmente. Le annotazioni vengono memorizzate nel layout previsto da ogni attività — righe YOLO
.txtper le attività spaziali e cartelle delle classi per la classificazione — pronte per l'addestramento.Abbina il tipo di annotazione all'attività che intendi addestrare. I riquadri di delimitazione sono i più rapidi da disegnare e sono tutto ciò che serve per il rilevamento degli oggetti. I poligoni e le maschere richiedono molto più tempo per oggetto, ma sono necessari per la segmentazione delle istanze quando conta 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 adatti alle attività OBB, come le immagini aeree, in cui un rettangolo allineato agli assi includerebbe troppo sfondo. Annotare per l'attività più specifica di cui hai effettivamente bisogno mantiene l'impegno richiesto per l'etichettatura proporzionato al risultato.