Data Annotation
L'annotazione dei dati aggiunge dati di riferimento, come classi, riquadri, maschere e punti chiave, ai dati grezzi. Scopri i tipi di annotazione per attività, i formati di file e l'annotazione automatica.
L'annotazione dei dati è il processo di aggiunta di informazioni di ground truth ai dati grezzi, ad esempio il nome di una classe per un'immagine, un riquadro o un poligono attorno a ciascun oggetto, keypoint su un corpo o un tag su una porzione di testo, affinché i modelli di apprendimento supervisionato possano apprendere da essi. È sinonimo di etichettatura dei dati; i team di computer vision tendono a parlare di annotazione per le geometrie disegnate, come riquadri e maschere. Un'annotazione ha due componenti: la geometria o il tag disegnato da una persona o da un modello e il formato di file in cui viene salvato per l'addestramento.
Tipi di annotazione per attività#
L'output che un modello deve produrre determina cosa disegnano gli annotatori. I dettagli richiedono tempo, quindi i team scelgono il tipo di annotazione più semplice che contenga le informazioni necessarie al modello.
- Etichette di classe: una classe per immagine per la classificazione delle immagini, spesso archiviata come nome della cartella che contiene l'immagine, secondo la struttura delle cartelle dei dataset di classificazione in stile ImageNet.
- Riquadri di delimitazione: un riquadro e una classe per oggetto per il rilevamento degli oggetti. Il formato YOLO crea un file di testo per immagine, con una riga
class x_center y_center width heightper oggetto, normalizzata tra 0 e 1 in base alle dimensioni dell'immagine. COCO JSON memorizza[x_min, y_min, width, height]in pixel, mentre Pascal VOC XML memorizza le coordinate in pixel di due angoli. - Riquadri orientati: quattro punti d'angolo che racchiudono oggetti ruotati, come navi e veicoli nelle immagini aeree, usati per il rilevamento di riquadri di delimitazione orientati.
- Poligoni e maschere: contorni per la segmentazione delle istanze oppure una classe per ogni pixel nella segmentazione semantica. YOLO e COCO memorizzano i poligoni come elenchi di vertici; COCO memorizza anche le maschere come codifica run-length (RLE) per le aree affollate.
- Keypoint: una posizione x, y e un flag di visibilità per ogni punto di riferimento nella stima della posa. Le annotazioni delle persone in COCO indicano 17 keypoint, ciascuno contrassegnato come non etichettato, etichettato ma nascosto oppure visibile.
La precisione dell'annotazione è particolarmente importante per gli oggetti piccoli. Spostare di 3 pixel in orizzontale e 3 pixel in verticale un riquadro di 20 × 20 pixel riduce a 0.57 la sua intersezione sull'unione (IoU) con il riquadro originale; di conseguenza, una previsione che corrisponde all'oggetto reale verrebbe conteggiata come errore in 8 delle 10 soglie IoU, da 0.60 a 0.95, usate per calcolare la precisione media media (mAP) di COCO. Le linee guida scritte che definiscono ogni classe e risolvono i casi limite, ad esempio quanto strettamente racchiudere gli oggetti parzialmente nascosti, mantengono coerenti migliaia di annotazioni.
Annotazione oltre le immagini#
- Video: riquadri o maschere su ogni fotogramma, collegati tramite ID di tracciamento che seguono ogni oggetto nel tempo per il tracciamento di più oggetti.
- Lidar e 3D: cuboidi nelle nuvole di punti, ciascuno con centro, dimensioni e angolo di direzione, per il rilevamento di oggetti 3D nella guida e nella robotica.
- Testo: porzioni contrassegnate da offset di caratteri e da un tipo di entità per il riconoscimento di entità nominate (NER), oppure un'etichetta per documento per attività come l'analisi del sentiment.
- Audio: segmenti con indicazione temporale e trascrizioni o identità dei parlanti per il riconoscimento vocale.
- Preferenze sul modello: gli annotatori scelgono la risposta migliore tra due risposte del modello, producendo i dati di confronto usati nell'apprendimento per rinforzo dal feedback umano (RLHF).
Annotazione automatica#
L'annotazione assistita dal modello parte da proposte del modello che le persone esaminano e correggono. Un rilevatore propone riquadri per le classi che già conosce, mentre un modello di segmentazione interrogabile come Segment Anything di Meta trasforma un riquadro o un clic in una maschera, evitando di tracciare il poligono vertice per vertice. La funzione auto_annotate del pacchetto Ultralytics concatena i due passaggi: un rilevatore YOLO26 individua e classifica gli oggetti, mentre SAM 2.1, eseguito nel pacchetto Ultralytics, converte ogni riquadro in un poligono salvato nel formato di segmentazione YOLO.
from pathlib import Path
from ultralytics.data.annotator import auto_annotate
from ultralytics.utils import ASSETS
# Detect objects in the bundled sample images, then turn each box into a SAM 2.1 polygon
auto_annotate(data=ASSETS, det_model="yolo26n.pt", sam_model="sam2.1_b.pt", output_dir="auto_labels")
# Read the annotation file written for the bus image
rows = Path("auto_labels/bus.txt").read_text().splitlines()
print(f"{len(rows)} objects annotated")
print(rows[0][:80])Ogni riga di bus.txt è composta da un indice di classe COCO seguito dalle coppie di coordinate x, y dei vertici del poligono, normalizzate tra 0 e 1, pronte per essere esaminate e corrette da un annotatore prima dell'addestramento. Le rilevazioni al di sotto della soglia di confidenza predefinita di 0.25 non ricevono annotazioni, quindi gli oggetti mancanti devono ancora essere disegnati a mano.
Etichettatura dei dati e termini correlati#
- Etichettatura dei dati: un sinonimo, più comune per le etichette di classe assegnate a elementi interi, ad esempio contrassegnare un'email come spam.
- Aumento dei dati: applica trasformazioni alle immagini annotate e alle relative annotazioni, ad esempio specchiando le coordinate dei riquadri con un ribaltamento orizzontale, per moltiplicare la varietà dei dati di ground truth esistenti.
- Apprendimento semi-supervisionato: un modello annota autonomamente i dati non etichettati e si addestra sulle proprie previsioni sicure, dette pseudo-etichette, senza revisione umana.
- Dati sintetici: immagini renderizzate o generate le cui annotazioni provengono dal generatore, che conosce la posizione e il contorno esatti di ogni oggetto.










