YOLO Vision 2026:

Esporta le annotazioni di LabelMe in YOLO e Ultralytics Platform#

LabelMe è uno strumento offline per l'annotazione delle immagini con un'applicazione Python open source. Non è disponibile alcuna connessione live a LabelMe né alcuna chiave API da configurare in Ultralytics Platform. L'integrazione completa consiste in un flusso di lavoro locale: annota in LabelMe, converti le annotazioni JSON di LabelMe nel formato YOLO con LabelMe Toolkit e carica il file 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 alla classe. La guida introduttiva di LabelMe illustra come aprire le immagini, disegnare forme e salvare le annotazioni, mentre la guida ai dataset di 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 di LabelMe Toolkit. Toolkit e le relative esportazioni vengono eseguiti localmente.

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. Questo è un requisito del prodotto LabelMe; il file 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 dell'esportazione. Le etichette omesse da --class-names vengono ignorate e l'ordine fornito diventa l'ordine degli ID delle classi YOLO.

3. Esporta nel formato YOLO#

Esegui export-to-yolo con la directory di origine e un elenco di nomi delle classi separati da virgole:

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

Sostituisci crack,normal con le etichette restituite da list-labels. LabelMe scrive 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 conserva i nomi delle classi nello stesso ordine utilizzato dai file delle etichette YOLO. Mantienilo nella directory radice dell'esportazione.

Questo flusso di lavoro crea un dataset di rilevamento

LabelMe Toolkit esporta i rettangoli come BBox YOLO. Inoltre riduce poligoni e maschere ai relativi BBox allineati agli assi, quindi export-to-yolo non conserva la geometria della segmentazione. Disegna rettangoli quando prepari un dataset di rilevamento con questo flusso di lavoro.

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

In Windows PowerShell:

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

Apri il file ZIP prima del caricamento e verifica che classes.txt, images/ e labels/ si trovino nella radice. Un'ulteriore directory contenitore your_dataset.export/ impedisce a Platform di trovare l'elenco delle classi radice.

5. Carica su Ultralytics Platform#

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

Importazione del dataset LabelMe in Ultralytics Platform

LabelMe e l'esportazione YOLO restano completamente offline. Solo il file ZIP selezionato nella finestra di dialogo di caricamento viene inviato a Platform.

Risoluzione dei problemi#

  • Le classi hanno nomi come class0, class1 e così via: verifica che classes.txt sia presente nella radice del file ZIP.
  • Mancano alcune annotazioni: esegui nuovamente labelmetk list-labels your_dataset/ e includi tutte le etichette necessarie in --class-names.
  • I poligoni sono diventati riquadri: questo è il comportamento documentato di export-to-yolo di LabelMe; converte le forme non rettangolari in BBox.
  • Il dataset non contiene immagini: verifica che la directory esportata images/ sia inclusa nel file ZIP.
  • Platform non riesce a trovare le classi: rimuovi qualsiasi directory esterna dall'archivio in modo che classes.txt, images/ e labels/ siano le voci di primo livello.

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

FAQ#

  • No. LabelMe e l'esportazione vengono eseguiti localmente e solo il file ZIP caricato viene inviato alla Platform. Il comando export-to-yolo fa parte del LabelMe Pro Toolkit, che è un requisito di LabelMe, ma il file ZIP risultante viene caricato su qualsiasi piano della Platform.

  • Non con questo flusso di lavoro. Il LabelMe Toolkit riduce i poligoni e le maschere ai relativi bounding box allineati agli assi, quindi il risultato è sempre un dataset di rilevamento. Disegna rettangoli quando prepari i dati per questa esportazione.

  • La Platform legge i nomi delle classi da classes.txt nella root del file ZIP. Comprimi il contenuto della cartella di esportazione, non la cartella stessa, in modo che classes.txt, images/ e labels/ siano le voci di livello superiore.

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

Contributori

Commenti