Link to this sectionStrategie 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, poi li etichetti affinché un modello possa imparare da essi. La qualità di questi dati determina direttamente le prestazioni del modello, motivo per cui la definizione delle classi, l'approvvigionamento imparziale e l'annotazione coerente sono importanti prima che inizi qualsiasi addestramento.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Questa guida copre la configurazione delle classi e la raccolta dei dati, cos'è l'annotazione dei dati insieme ai tipi di annotazione e ai formati tra cui scegliere, e strategie di etichettatura efficienti — ogni decisione è allineata agli obiettivi del tuo progetto.
Link to this sectionImpostazione 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, dove reperire i dati e come mantenere il dataset libero da pregiudizi.
Link to this sectionScegliere le classi giuste per il tuo progetto#
Una delle prime domande quando si inizia un progetto di computer vision è quante classi includere. Devi determinare l'appartenenza alla classe, che coinvolge le diverse categorie o etichette che vuoi che il tuo modello riconosca e differenzi. 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 tracciare 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 tuo dataset pertinente e focalizzato.
Quando definisci le tue classi, un'altra distinzione importante da fare è se scegliere conteggi di classi grossolani o dettagliati. 'Conteggio' si riferisce al numero di classi distinte a cui sei interessato. Questa decisione influenza la granularità dei tuoi dati e la complessità del tuo modello. Ecco le considerazioni per ogni approccio:
- Conteggio di classi grossolano: Si tratta di 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.
- Conteggio di classi dettagliato: Più categorie con distinzioni più sottili, come "berlina", "SUV", "camioncino" e "motocicletta". Catturano informazioni più dettagliate, migliorando l'accuratezza e le prestazioni del modello. Tuttavia, sono più lunghe e laboriose da annotare e richiedono maggiori risorse computazionali.
Iniziare con classi più specifiche può essere molto utile, specialmente in progetti complessi in cui i dettagli sono importanti. Classi più specifiche ti consentono di raccogliere dati più dettagliati, ottenere approfondimenti più profondi e stabilire distinzioni più chiare tra le categorie. Non solo migliora l'accuratezza del modello, ma rende anche più facile regolare il modello in seguito se necessario, risparmiando tempo e risorse.
Link to this sectionFonti dei dati#
Puoi utilizzare dataset pubblici o raccogliere i tuoi dati personalizzati. Dataset pubblici come quelli su Kaggle e Google Dataset Search Engine offrono dati ben annotati e standardizzati, rendendoli ottimi punti di partenza per addestrare e validare i modelli.
La raccolta di dati personalizzati, d'altra parte, ti consente di adattare il tuo dataset alle tue esigenze specifiche. Potresti catturare immagini e video con fotocamere o droni, estrarre immagini dal web o utilizzare dati interni esistenti della tua organizzazione. I dati personalizzati ti danno maggiore controllo sulla loro qualità e rilevanza. Combinare sia fonti di dati pubbliche che personalizzate aiuta a creare un dataset diversificato e completo.
Link to this sectionEvitare pregiudizi nella raccolta dei dati#
Il pregiudizio (bias) si verifica quando determinati gruppi o scenari sono sottorappresentati o sovrarappresentati nel tuo dataset. Porta a un modello che funziona bene su alcuni dati ma male su altri. È fondamentale evitare il bias nell'IA affinché il tuo modello di computer vision possa funzionare bene in una varietà di scenari.
Ecco come puoi evitare il pregiudizio durante la raccolta dei dati:
- Fonti diversificate: Raccogli dati da molte fonti per catturare prospettive e scenari diversi.
- Rappresentazione bilanciata: Includi una rappresentazione bilanciata da tutti i gruppi pertinenti. Ad esempio, considera diverse età, generi ed etnie.
- Monitoraggio continuo: Rivedi e aggiorna regolarmente il tuo dataset per identificare e affrontare eventuali pregiudizi emergenti.
- Tecniche di mitigazione del bias: Usa metodi come il sovracampionamento delle classi sottorappresentate, la data augmentation e algoritmi attenti all'equità.
Seguire queste pratiche aiuta a creare un modello più robusto ed equo in grado di generalizzare bene nelle applicazioni del mondo reale.
Link to this sectionCos'è l'annotazione dei dati?#
L'annotazione dei dati è il processo di etichettatura dei dati per renderli utilizzabili per l'addestramento di modelli di machine learning. Nella computer vision, questo significa etichettare immagini o video con le informazioni che un modello deve apprendere. Senza dati correttamente annotati, i modelli non possono apprendere accuratamente le relazioni tra input e output.
Link to this sectionTipi di annotazione dei dati#
A seconda dei requisiti specifici di un task di computer vision, esistono diversi tipi di annotazione dei dati. Ecco alcuni esempi:
- Bounding Box: Caselle rettangolari disegnate attorno agli oggetti in un'immagine, utilizzate principalmente per i task di object detection. Queste caselle sono definite dalle loro coordinate in alto a sinistra e in basso a destra.
- Poligoni: Contorni dettagliati per gli oggetti, che consentono un'annotazione più precisa rispetto alle bounding box. I poligoni vengono utilizzati in task come l'instance segmentation, dove la forma dell'oggetto è importante.
- Maschere: Maschere binarie in cui ogni pixel è parte di un oggetto o dello sfondo. Le maschere vengono utilizzate nei task di semantic segmentation per fornire dettagli a livello di pixel.
- Keypoint: Punti specifici contrassegnati all'interno di un'immagine per identificare posizioni di interesse. I keypoint vengono utilizzati in task come la pose estimation e il rilevamento dei punti di riferimento facciali.
Link to this sectionFormati di annotazione comuni#
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 del file | Comunemente usato per |
|---|---|---|
| COCO | File JSON singolo | Object detection, instance segmentation, keypoint detection, stuff e panoptic segmentation, image captioning |
| Pascal VOC | Un file XML per immagine | Object detection |
| YOLO | Un file .txt per immagine | Object detection, segmentation e pose |
Il formato YOLO archivia una riga per oggetto con indici di classe che partono da 0. Per la object detection la riga è class x_center y_center width height con coordinate normalizzate 0–1, mentre la segmentation aggiunge punti poligonali normalizzati e la pose aggiunge le coordinate dei keypoint più valori di visibilità opzionali dopo il box.
Link to this sectionDefinizione delle linee guida per l'annotazione#
Una volta scelti il tipo di annotazione e il formato, il passaggio successivo è stabilire regole di etichettatura chiare e oggettive. Queste regole fungono da tabella di marcia per la coerenza e l'accuratezza durante tutto il processo di annotazione. Gli aspetti chiave di queste regole includono:
- Chiarezza e dettaglio: Assicurati che le tue istruzioni siano chiare. Usa esempi e illustrazioni per mostrare cosa ci si aspetta.
- Coerenza: Mantieni le tue annotazioni uniformi. Stabilisci criteri standard per l'annotazione di diversi tipi di dati, in modo che tutte le annotazioni seguano le stesse regole.
- Riduzione del bias: Rimani neutrale. Allenati ad essere obiettivo e riduci al minimo i pregiudizi personali per garantire annotazioni eque.
- Efficienza: Lavora in modo più intelligente, non più difficile. Usa strumenti e flussi di lavoro che automatizzano i compiti ripetitivi, rendendo il processo di annotazione più veloce ed efficiente.
Rivedere e aggiornare regolarmente le tue regole di etichettatura aiuterà a mantenere le tue annotazioni accurate, coerenti e allineate con gli obiettivi del tuo progetto.
Link to this sectionStrumenti di annotazione#
Un buon strumento di annotazione ti consente di etichettare ogni tipo necessario al tuo compito, impone linee guida coerenti ed esporta le etichette in un formato pronto per l'addestramento. Ultralytics Platform fornisce un annotation editor integrato che copre detection, instance segmentation, pose, OBB e classificazione, con SAM-powered smart annotation che trasforma un singolo clic in una maschera per task di detection, segmentation e OBB. Poiché ogni annotazione viene salvata in YOLO format, il tuo dataset etichettato passa direttamente all'addestramento senza passaggi di conversione.
Link to this sectionQualità dell'annotazione: Accuratezza, precisione e outlier#
Prima di annotare su larga scala, è utile comprendere accuratezza, precision, outlier e controllo qualità, così da non etichettare i tuoi dati in modo controproducente.
Link to this sectionComprendere accuratezza e precisione#
È importante comprendere la differenza tra accuratezza e precisione e come si relaziona all'annotazione. L'accuratezza si riferisce a quanto i dati annotati siano vicini ai valori reali. Ci aiuta a misurare quanto le etichette riflettono gli scenari del mondo reale. La precisione indica la coerenza delle annotazioni. Verifica se stai dando la stessa etichetta allo stesso oggetto o caratteristica in tutto il dataset. Elevata accuratezza e precisione portano a modelli meglio addestrati riducendo il rumore e migliorando la capacità del modello di generalizzare dai dati di addestramento.
Link to this sectionIdentificare gli outlier#
Gli outlier sono punti dati che si discostano notevolmente dalle altre osservazioni nel dataset. Rispetto alle annotazioni, un outlier potrebbe essere un'immagine etichettata in modo errato o un'annotazione che non si adatta al resto del dataset. Gli outlier sono preoccupanti perché possono distorcere il processo di apprendimento del modello, portando a previsioni imprecise e scarsa generalizzazione.
Puoi utilizzare vari metodi per rilevare e correggere gli outlier:
- Tecniche statistiche: Per rilevare outlier in caratteristiche numeriche come valori di pixel, coordinate di bounding box o dimensioni degli oggetti, puoi utilizzare metodi come box plot, istogrammi o z-score.
- Tecniche visive: Per individuare anomalie in caratteristiche categoriali come classi di oggetti, colori o forme, usa metodi visivi come la rappresentazione grafica di immagini, etichette o mappe di calore.
- Metodi algoritmici: Usa strumenti come il clustering (es. K-means clustering, DBSCAN) e algoritmi di anomaly detection per identificare gli outlier basati su modelli di distribuzione dei dati.
Link to this sectionControllo qualità dei dati annotati#
Proprio come altri progetti tecnici, il controllo qualità è un must per i dati annotati. È una buona pratica controllare regolarmente le annotazioni per assicurarsi che siano accurate e coerenti. Questo può essere fatto in alcuni modi diversi:
- Revisione di campioni di dati annotati
- Utilizzo di strumenti automatizzati per individuare errori comuni
- Far ricontrollare le annotazioni a un'altra persona
Se lavori con più persone, la coerenza tra diversi annotatori è importante. Un buon accordo tra annotatori significa che le linee guida sono chiare e tutti le stanno seguendo allo stesso modo. Mantiene tutti sulla stessa lunghezza d'onda e le annotazioni coerenti.
Durante la revisione, se trovi errori, correggili e aggiorna le linee guida per evitare errori futuri. Fornisci feedback agli annotatori e offri formazione regolare per aiutare a ridurre gli errori. Avere un processo solido per gestire gli errori mantiene il tuo dataset accurato e affidabile.
Link to this sectionStrategie efficienti di etichettatura dei dati#
Per rendere il processo di etichettatura dei dati più fluido ed efficace, considera l'implementazione di queste strategie:
- Linee guida di annotazione chiare: Fornisci istruzioni dettagliate con esempi per garantire che tutti gli annotatori interpretino i task in modo coerente. Ad esempio, quando etichetti uccelli, specifica se includere l'intero uccello o solo parti specifiche.
- Controlli di qualità regolari: Imposta dei benchmark e usa metriche specifiche per rivedere il lavoro, mantenendo standard elevati attraverso un feedback continuo.
- Usa strumenti di pre-annotazione: Molte moderne piattaforme di annotazione offrono funzionalità di pre-annotazione assistita dall'IA che possono accelerare significativamente il processo generando automaticamente annotazioni iniziali che gli esseri umani possono poi perfezionare.
- Implementa l'apprendimento attivo (Active Learning): Questo approccio dà la priorità all'etichettatura dei campioni più informativi, il che può ridurre il numero totale di annotazioni necessarie mantenendo le prestazioni del modello.
- Elaborazione in batch: Raggruppa immagini simili per l'annotazione per 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 richieste per il processo di etichettatura.
Link to this sectionCondividi le tue opinioni con la community#
Condividere le tue idee e domande con altri appassionati di computer vision può aiutarti ad accelerare i tuoi progetti. Ecco alcuni ottimi modi per imparare, risolvere problemi e fare networking:
Link to this sectionDove trovare aiuto e supporto#
- GitHub Issues: visita il repository GitHub di YOLO26 e utilizza la scheda Issues per sollevare domande, segnalare bug e suggerire funzionalità. La community e i manutentori sono lì per aiutarti con qualsiasi problema tu debba affrontare.
- Server Discord di Ultralytics: Unisciti al server Discord di Ultralytics per connetterti con altri utenti e sviluppatori, ottenere supporto, condividere conoscenze e fare brainstorming di idee.
Link to this sectionDocumentazione ufficiale#
- Documentazione di Ultralytics YOLO26: fai riferimento alla documentazione ufficiale di YOLO26 per guide approfondite e preziose informazioni su numerosi compiti e progetti di computer vision.
Link to this sectionConclusione#
Raccogliere dati diversificati e imparziali e annotarli in modo coerente con gli strumenti giusti è la base di un modello di computer vision affidabile. Con il tuo dataset raccolto ed etichettato, continua con la guida agli step of a computer vision project per passare all'addestramento e alla valutazione.
Link to this sectionFAQ#
Link to this sectionQual è il modo migliore per evitare il bias nella raccolta dati per progetti di computer vision?#
Per ridurre al minimo i pregiudizi, raccogli dati da fonti diverse, garantisci una rappresentazione bilanciata tra tutti i gruppi rilevanti (come diverse età, generi ed etnie), rivedi e aggiorna regolarmente il tuo dataset per cogliere pregiudizi emergenti e applica tecniche di mitigazione come l'oversampling delle classi sottorappresentate, data augmentation e algoritmi sensibili all'equità. Evitare i pregiudizi in questo modo mantiene le prestazioni del tuo modello di computer vision elevate in vari scenari del mondo reale e ne migliora la capacità di generalizzazione.
Link to this sectionCome posso garantire elevata coerenza e accuratezza nell'annotazione dei dati?#
Stabilisci linee guida di etichettatura chiare e oggettive con istruzioni dettagliate, esempi e illustrazioni, quindi applicale uniformemente su tutti i tipi di dati in modo che ogni annotazione segua le stesse regole. Forma gli annotatori a rimanere neutrali per ridurre i pregiudizi personali, rivedi e aggiorna regolarmente le linee guida e utilizza controlli di coerenza automatizzati insieme al feedback tra annotatori per mantenere l'accuratezza elevata e allineata agli obiettivi del tuo progetto.
Link to this sectionQuante immagini mi servono per addestrare i modelli Ultralytics YOLO?#
Alcune centinaia di oggetti annotati per classe sono sufficienti per iniziare a sperimentare con il transfer learning, ma per 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 ragionevole — circa 300 epoche sono un punto di partenza comune, da ridurre se il modello va in overfitting precocemente — e mantieni le tue annotazioni rigorose e allineate agli obiettivi specifici del tuo progetto. Esplora strategie di addestramento dettagliate nella YOLO26 training guide.
Link to this sectionUltralytics fornisce uno strumento per l'annotazione dei dati?#
Sì. Ultralytics Platform include un annotation editor integrato che supporta bounding box, poligoni, keypoint, oriented box ed etichette di classificazione in un unico workspace. La SAM-powered smart annotation velocizza l'etichettatura per task di detection, segmentation e OBB generando maschere con un singolo clic, e ogni annotazione è salvata in YOLO format, pronta per l'addestramento.
Link to this sectionQuali tipi di annotazione dei dati sono comunemente usati nella computer vision?#
I tipi di annotazione dati più comuni nella computer vision sono bounding box, poligoni, maschere e keypoint, ognuno adatto a un compito diverso:
- Bounding Box: Utilizzate principalmente per l'object detection, sono caselle rettangolari attorno agli oggetti in un'immagine.
- Poligoni: Forniscono contorni degli oggetti più precisi, adatti per task di instance segmentation.
- Maschere: Offrono dettagli a livello di pixel, utilizzate nella semantic segmentation per differenziare gli oggetti dallo sfondo.
- Keypoint: Identificano punti di interesse specifici all'interno di un'immagine, utili per task come la pose estimation e il rilevamento di punti di riferimento facciali.
La selezione del tipo di annotazione appropriato dipende dai requisiti del tuo progetto. Scopri di più su come implementare queste annotazioni e i loro formati nella nostra guida all'annotazione dei dati.