Panoramica dei dataset di segmentazione delle istanze
Formati di dati supportati
Ultralytics YOLO formato
Il formato delle etichette del dataset utilizzato per l'addestramento dei modelli di segmentazione di YOLO è il seguente:
- Un file di testo per ogni immagine: Ogni immagine del set di dati ha un file di testo corrispondente con lo stesso nome del file immagine e l'estensione ".txt".
- Una riga per ogni oggetto: Ogni riga del file di testo corrisponde a un'istanza di oggetto nell'immagine.
- Informazioni sull'oggetto per riga: Ogni riga contiene le seguenti informazioni sull'istanza dell'oggetto:
- Indice della classe dell'oggetto: Un numero intero che rappresenta la classe dell'oggetto (ad es. 0 per la persona, 1 per l'auto, ecc.).
- Coordinate di delimitazione dell'oggetto: Le coordinate di delimitazione dell'area della maschera, normalizzate per essere comprese tra 0 e 1.
Il formato di una singola riga del file di dati di segmentazione è il seguente:
In questo formato, <class-index>
è l'indice della classe dell'oggetto e <x1> <y1> <x2> <y2> ... <xn> <yn>
sono le coordinate di delimitazione della maschera di segmentazione dell'oggetto. Le coordinate sono separate da spazi.
Ecco un esempio del formato del dataset YOLO per una singola immagine con due oggetti composti da un segmento a 3 punti e uno a 5 punti.
0 0.681 0.485 0.670 0.487 0.676 0.487
1 0.504 0.000 0.501 0.004 0.498 0.004 0.493 0.010 0.492 0.0104
Suggerimento
- La lunghezza di ogni riga non deve essere necessariamente uguale.
- Ogni etichetta di segmentazione deve avere un minimo di 3 punti xy:
<class-index> <x1> <y1> <x2> <y2> <x3> <y3>
Formato YAML del set di dati
Il framework Ultralytics utilizza un formato di file YAML per definire il dataset e la configurazione del modello per l'addestramento dei modelli di rilevamento. Ecco un esempio del formato YAML utilizzato per definire un set di dati di rilevamento:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)
# Classes (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
Il train
e val
specificano i percorsi delle directory contenenti rispettivamente le immagini di addestramento e di convalida.
names
è un dizionario di nomi di classi. L'ordine dei nomi deve corrispondere all'ordine degli indici delle classi degli oggetti nei file del dataset YOLO .
Utilizzo
Esempio
Set di dati supportati
Set di dati supportati
-
COCO: un set di dati completo per il rilevamento, la segmentazione e la didascalia degli oggetti, con oltre 200.000 immagini etichettate in un'ampia gamma di categorie.
-
COCO8-seg: Un sottoinsieme compatto di 8 immagini di COCO progettato per testare rapidamente l'addestramento del modello di segmentazione, ideale per i controlli di CI e la convalida del flusso di lavoro nel laboratorio di analisi.
ultralytics
deposito. -
Carparts-seg: un set di dati specializzato nella segmentazione di parti di automobili, ideale per le applicazioni automobilistiche. Include una serie di veicoli con annotazioni dettagliate dei singoli componenti dell'auto.
-
Crack-seg: un set di dati creato su misura per la segmentazione delle crepe in varie superfici. Essenziale per la manutenzione e il controllo di qualità delle infrastrutture, fornisce immagini dettagliate per l'addestramento di modelli che identificano le debolezze strutturali.
-
Package-seg: un set di dati dedicato alla segmentazione di diversi tipi di materiali e forme di imballaggio. È particolarmente utile per la logistica e l'automazione dei magazzini, aiutando lo sviluppo di sistemi per la gestione e lo smistamento dei pacchi.
Aggiungi il tuo set di dati
Se hai un tuo set di dati e vuoi utilizzarlo per addestrare i modelli di segmentazione con il formato Ultralytics YOLO , assicurati che segua il formato specificato sopra in "FormatoUltralytics YOLO ". Converti le tue annotazioni nel formato richiesto e specifica i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.
Porta o converti i formati delle etichette
Formato del set di dati COCO in formato YOLO
Puoi convertire facilmente le etichette dal popolare formato COCO al formato YOLO utilizzando il seguente frammento di codice:
Esempio
Questo strumento di conversione può essere utilizzato per convertire il set di dati COCO o qualsiasi altro set di dati in formato COCO nel formato Ultralytics YOLO .
Ricordati di controllare due volte che il set di dati che vuoi utilizzare sia compatibile con il tuo modello e che segua le convenzioni di formato necessarie. I dataset correttamente formattati sono fondamentali per addestrare modelli di rilevamento di oggetti di successo.
Annotazione automatica
L'auto-annotazione è una funzione essenziale che ti permette di generare un set di dati di segmentazione utilizzando un modello di rilevamento pre-addestrato. Ti permette di annotare rapidamente e con precisione un gran numero di immagini senza dover ricorrere all'etichettatura manuale, risparmiando tempo e fatica.
Generare un set di dati di segmentazione utilizzando un modello di rilevamento
Per auto-analizzare il tuo set di dati utilizzando il framework Ultralytics , puoi utilizzare il metodo auto_annotate
come mostrato di seguito:
Esempio
Certamente, ecco la tabella aggiornata con i frammenti di codice:
Argomento | Tipo | Descrizione | Predefinito |
---|---|---|---|
data |
str |
Percorso di una cartella contenente le immagini da annotare. | None |
det_model |
str, optional |
Modello di rilevamento preaddestrato di YOLO . Il valore predefinito è 'yolov8x.pt' . |
'yolov8x.pt' |
sam_model |
str, optional |
Modello di segmentazione preaddestrato SAM . Il valore predefinito è 'sam_b.pt' . |
'sam_b.pt' |
device |
str, optional |
Dispositivo su cui eseguire i modelli. Il valore predefinito è una stringa vuota (CPU o GPU, se disponibile). | '' |
output_dir |
str or None, optional |
Directory in cui salvare i risultati annotati. Per impostazione predefinita, si tratta di una cartella 'labels' nella stessa cartella di 'data' . |
None |
Il auto_annotate
La funzione accetta il percorso delle immagini, insieme ad argomenti opzionali per specificare il rilevamento pre-addestrato e la funzione di rilevamento. SAM modelli di segmentazione, il dispositivo su cui eseguire i modelli e la directory di output per salvare i risultati annotati.
Sfruttando la potenza dei modelli pre-addestrati, l'auto-annotazione può ridurre significativamente il tempo e l'impegno necessari per creare set di dati di segmentazione di alta qualità. Questa funzione è particolarmente utile per i ricercatori e gli sviluppatori che lavorano con grandi collezioni di immagini, in quanto consente loro di concentrarsi sullo sviluppo e sulla valutazione dei modelli piuttosto che sull'annotazione manuale.