Panoramica dei dataset di segmentazione delle istanze
Formati di set di dati supportati
Ultralytics YOLO formato
Il formato delle etichette del set di dati 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 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 esempio, 0 per persona, 1 per auto, ecc.).
- Coordinate di delimitazione dell'oggetto: Le coordinate di delimitazione intorno all'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 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 usato 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 validazione.
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 nell'ambito dell'analisi di laboratorio.
ultralytics
deposito. - COCO128-seg: un set di dati più piccolo per compiti di segmentazione, contenente un sottoinsieme di 128 immagini COCO con annotazioni di segmentazione.
- Carparts-seg: un set di dati specializzato nella segmentazione di parti di automobili, ideale per le applicazioni automobilistiche. Include una varietà 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 degli imballaggi.
Aggiungere il proprio set di dati
Se si dispone di un proprio set di dati e si desidera utilizzarlo per l'addestramento dei modelli di segmentazione con il formato Ultralytics YOLO , assicurarsi che segua il formato specificato sopra in "FormatoUltralytics YOLO ". Convertire le annotazioni nel formato richiesto e specificare i percorsi, il numero di classi e i nomi delle classi nel file di configurazione YAML.
Trasferire o convertire i formati delle etichette
Formato del set di dati COCO in formato YOLO
È possibile convertire facilmente le etichette dal popolare formato di set di dati 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 set di dati in formato COCO nel formato Ultralytics YOLO .
Ricordarsi di verificare se il set di dati che si desidera utilizzare è compatibile con il modello e segue le convenzioni di formato necessarie. I set di dati correttamente formattati sono fondamentali per addestrare modelli di rilevamento di oggetti di successo.
Annotazione automatica
L'annotazione automatica è una funzione essenziale che consente di generare un set di dati di segmentazione utilizzando un modello di rilevamento pre-addestrato. Consente di annotare rapidamente e con precisione un gran numero di immagini senza dover ricorrere all'etichettatura manuale, risparmiando tempo e fatica.
Generare il set di dati di segmentazione utilizzando un modello di rilevamento
Per autoanalizzare il set di dati utilizzando il framework Ultralytics , è possibile utilizzare il metodo auto_annotate
come mostrato di seguito:
Esempio
Argomento | Tipo | Descrizione | Predefinito |
---|---|---|---|
data |
str |
Percorso di una cartella contenente le immagini da annotare. | None |
det_model |
str, optional |
Modello di rilevamento preaddestrato YOLO . Valore predefinito a 'yolo11x.pt' . |
'yolo11x.pt' |
sam_model |
str, optional |
Modello di segmentazione preaddestrato SAM . Predefinito a '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 disponibili). | '' |
output_dir |
str or None, optional |
Directory in cui salvare i risultati annotati. Si imposta come predefinita una cartella 'labels' nella stessa cartella di 'data' . |
None |
Il auto_annotate
La funzione prende il percorso delle immagini, insieme ad argomenti opzionali per specificare il rilevamento preaddestrato e il 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 preaddestrati, l'annotazione automatica 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.
FAQ
Quali formati di dataset supporta Ultralytics YOLO per la segmentazione delle istanze?
Ultralytics YOLO supporta diversi formati di set di dati per la segmentazione dell'istanza, con il formato principale che è il proprio formato Ultralytics YOLO . Ogni immagine del set di dati deve avere un file di testo corrispondente con le informazioni sull'oggetto segmentate in più righe (una riga per oggetto), con l'indice della classe e le coordinate di delimitazione normalizzate. Per istruzioni più dettagliate sul formato del set di dati YOLO , visitare la sezione Panoramica dei set di dati di segmentazione delle istanze.
Come posso convertire le annotazioni dei dataset COCO nel formato YOLO ?
La conversione delle annotazioni in formato COCO in formato YOLO è semplice grazie agli strumenti di Ultralytics . È possibile utilizzare il programma convert_coco
dalla funzione ultralytics.data.converter
modulo:
from ultralytics.data.converter import convert_coco
convert_coco(labels_dir="path/to/coco/annotations/", use_segments=True)
Questo script converte le annotazioni del dataset COCO nel formato YOLO richiesto, rendendole adatte per l'addestramento dei modelli YOLO . Per maggiori dettagli, consultare Porta o Converti i formati delle etichette.
Come si prepara un file YAML per l'addestramento dei modelli di Ultralytics YOLO ?
Per preparare un file YAML per l'addestramento dei modelli YOLO con Ultralytics, è necessario definire i percorsi dei dataset e i nomi delle classi. Ecco un esempio di configurazione YAML:
path: ../datasets/coco8-seg # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
names:
0: person
1: bicycle
2: car
# ...
Assicurarsi di aggiornare i percorsi e i nomi delle classi in base al proprio set di dati. Per ulteriori informazioni, consultare la sezione Formato YAML del set di dati.
Qual è la funzione di annotazione automatica in Ultralytics YOLO ?
L'annotazione automatica in Ultralytics YOLO consente di generare annotazioni di segmentazione per il set di dati utilizzando un modello di rilevamento pre-addestrato. Questo riduce significativamente la necessità di etichettatura manuale. È possibile utilizzare l'opzione auto_annotate
come segue:
from ultralytics.data.annotator import auto_annotate
auto_annotate(data="path/to/images", det_model="yolo11x.pt", sam_model="sam_b.pt")
Questa funzione automatizza il processo di annotazione, rendendolo più rapido ed efficiente. Per maggiori dettagli, consultare la sezione Annotazione automatica.