Ultralytics YOLO27:

Esporta le annotazioni di LabelMe in YOLO e Ultralytics Platform#

LabelMe è uno strumento offline per annotare immagini con un’applicazione Python open source. Non è necessario configurare una connessione attiva a LabelMe né una chiave API in Ultralytics Platform. L’integrazione completa consiste in un flusso di lavoro locale: annota in LabelMe, converti le annotazioni JSON di LabelMe in formato YOLO con LabelMe Toolkit e carica lo ZIP risultante come dataset su Platform.

1. Annota le immagini in LabelMe#

Installa LabelMe usando l’app desktop o il pacchetto Python open source, quindi apri la directory che contiene le immagini. LabelMe salva le annotazioni di ogni immagine in un file JSON corrispondente.

Per il flusso di lavoro di rilevamento YOLO descritto in questa guida, disegna rettangoli intorno a ogni oggetto e assegna un nome di classe. La guida introduttiva a LabelMe spiega come aprire le immagini, disegnare forme e salvare le annotazioni, mentre la guida ai dataset LabelMe spiega come esaminare e preparare un dataset annotato completo.

La directory di origine deve contenere le immagini e i file JSON di LabelMe:

your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json

2. Installa LabelMe Toolkit#

Installa LabelMe Toolkit seguendo la guida all’installazione del toolkit di LabelMe. Il toolkit e i relativi export vengono eseguiti in locale.

Per l’esportazione è necessario LabelMe Pro

export-to-yolo fa parte di LabelMe Pro Toolkit e per scaricare il relativo programma di installazione è necessario accedere a LabelMe. Si tratta di un requisito del prodotto LabelMe; lo ZIP risultante può essere caricato con qualsiasi piano Platform.

Verifica l’installazione, quindi elenca tutte le etichette presenti nel dataset di origine:

labelmetk --version
labelmetk list-labels your_dataset/

Esamina l’output prima di esportare. Le etichette omesse da --class-names vengono ignorate e l’ordine specificato determina l’ordine degli ID di classe YOLO.

3. Esporta in formato YOLO#

Esegui export-to-yolo indicando la directory di origine e un elenco di nomi di classe separati da virgole:

labelmetk export-to-yolo your_dataset/ --class-names crack,normal

Sostituisci crack,normal con le etichette restituite da list-labels. LabelMe salva il risultato in your_dataset.export/:

your_dataset.export/
├── classes.txt
├── images/
│   ├── image_001.jpg
│   └── image_002.jpg
└── labels/
    ├── image_001.txt
    └── image_002.txt

classes.txt mantiene i nomi delle classi nello stesso ordine usato nei file di etichette YOLO. Lascialo nella directory principale dell’export.

Questo flusso di lavoro crea un dataset di rilevamento

LabelMe Toolkit esporta i rettangoli come bounding box YOLO. Inoltre, riduce poligoni e maschere alle rispettive bounding box allineate agli assi, quindi export-to-yolo non conserva la geometria di segmentazione. Quando prepari un dataset di rilevamento con questo flusso di lavoro, disegna rettangoli.

4. Crea l’archivio ZIP#

Comprimi il contenuto di your_dataset.export/, non la directory che lo contiene. Su macOS o Linux:

cd your_dataset.export
zip -r ../your_dataset.zip classes.txt images labels

Su Windows PowerShell:

Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zip

Apri lo ZIP prima di caricarlo e verifica che classes.txt, images/ e labels/ si trovino nella directory principale. Una directory contenitore aggiuntiva your_dataset.export/ impedisce a Platform di trovare l’elenco delle classi nella directory principale.

5. Carica su Ultralytics Platform#

  1. Apri Impostazioni > Integrazioni > LabelMe.
  2. Fai clic su Carica export.
  3. Carica your_dataset.zip e completa la creazione del dataset.
  4. Attendi il completamento dell’elaborazione, quindi esamina immagini, classi e annotazioni.
  5. Modifica le annotazioni, addestra un modello e distribuiscilo dallo stesso spazio di lavoro.

Importazione di un dataset LabelMe in Ultralytics Platform

LabelMe e l’export YOLO funzionano interamente offline. A Platform viene inviato solo il file ZIP che selezioni nella finestra di caricamento.

Risoluzione dei problemi#

  • Le classi si chiamano class0, class1 e così via: verifica che classes.txt sia presente nella directory principale dello ZIP.
  • Mancano alcune annotazioni: esegui di nuovo labelmetk list-labels your_dataset/ e includi tutte le etichette necessarie in --class-names.
  • I poligoni sono diventati riquadri: è il comportamento documentato di export-to-yolo di LabelMe; converte le forme non rettangolari in bounding box.
  • Il dataset non contiene immagini: verifica che la directory images/ esportata sia inclusa nello ZIP.
  • Platform non riesce a trovare le classi: rimuovi dall’archivio qualsiasi directory esterna, in modo che classes.txt, images/ e labels/ siano gli elementi al livello principale.

Per il flusso di lavoro locale completo, consulta la guida all’addestramento YOLO di LabelMe e il riferimento di export-to-yolo.

Domande frequenti#

  • No. LabelMe e l’export vengono eseguiti in locale e a Platform viene inviato solo lo ZIP che carichi. Il comando export-to-yolo fa parte di LabelMe Pro Toolkit, un requisito di LabelMe, ma lo ZIP risultante può essere caricato con qualsiasi piano Platform.

  • Non con questo flusso di lavoro. LabelMe Toolkit riduce poligoni e maschere alle rispettive bounding box allineate agli assi, quindi il risultato è sempre un dataset di rilevamento. Quando prepari i dati per questo export, disegna rettangoli.

  • Platform legge i nomi delle classi da classes.txt nella directory principale dello ZIP. Comprimi il contenuto della cartella di export, non la cartella stessa, in modo che classes.txt, images/ e labels/ siano gli elementi al livello principale.

  • Solo le etichette passate a --class-names, nell’ordine in cui le elenchi. Esegui prima labelmetk list-labels e includi tutte le etichette che vuoi mantenere.

Collaboratori

Commenti