YOLO Vision 2026:

LabelMe-Annotationen in YOLO und die Ultralytics Platform exportieren#

LabelMe ist ein Offline-Tool zur Bildannotation mit einer Open-Source-Python-Anwendung. Für die Konfiguration in der Ultralytics Platform ist weder eine aktive LabelMe-Verbindung noch ein API-Schlüssel erforderlich. Die vollständige Integration ist ein lokaler Arbeitsablauf: Annotiere in LabelMe, konvertiere die LabelMe-JSON-Annotationen mit dem LabelMe Toolkit in das YOLO-Format und lade die resultierende ZIP-Datei als Datensatz in die Platform hoch.

1. Bilder in LabelMe annotieren#

Installiere LabelMe über die Desktop-App oder das Open-Source-Python-Paket und öffne anschließend das Verzeichnis, das deine Bilder enthält. LabelMe speichert die Annotationen jedes Bildes in einer zugehörigen JSON-Datei.

Zeichne für den YOLO-Erkennungsworkflow in diesem Leitfaden Rechtecke um jedes Objekt und weise ihm einen Klassennamen zu. Der LabelMe-Einstiegsleitfaden behandelt das Öffnen von Bildern, das Zeichnen von Formen und das Speichern von Annotationen. Der LabelMe-Datensatzleitfaden behandelt die Überprüfung und Vorbereitung eines vollständig annotierten Datensatzes.

Dein Quellverzeichnis sollte die Bilder und die LabelMe-JSON-Dateien enthalten:

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

2. LabelMe Toolkit installieren#

Installiere das LabelMe Toolkit gemäß dem Installationsleitfaden für das Toolkit von LabelMe. Das Toolkit und seine Exporte werden lokal ausgeführt.

LabelMe Pro ist für den Export erforderlich

export-to-yolo ist Teil des LabelMe Pro Toolkit. Für den Download des Installationsprogramms ist eine Anmeldung bei LabelMe erforderlich. Dies ist eine Produktanforderung von LabelMe; die resultierende ZIP-Datei kann mit jedem Platform-Tarif hochgeladen werden.

Überprüfe die Installation und liste anschließend alle Bezeichnungen auf, die im Quelldatensatz gefunden wurden:

labelmetk --version
labelmetk list-labels your_dataset/

Überprüfe die Ausgabe vor dem Export. Bezeichnungen, die in --class-names nicht enthalten sind, werden übersprungen. Die von dir angegebene Reihenfolge wird zur Reihenfolge der YOLO-Klassen-IDs.

3. In das YOLO-Format exportieren#

Führe export-to-yolo mit dem Quellverzeichnis und einer durch Kommas getrennten Liste von Klassennamen aus:

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

Ersetze crack,normal durch die von list-labels zurückgegebenen Bezeichnungen. LabelMe schreibt das Ergebnis nach your_dataset.export/:

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

classes.txt bewahrt die Klassennamen in derselben Reihenfolge wie in den YOLO-Bezeichnungsdateien. Belasse die Datei im Stammverzeichnis des Exports.

Dieser Arbeitsablauf erstellt einen Erkennungsdatensatz

Das LabelMe Toolkit exportiert Rechtecke als YOLO-Bounding-Boxes. Außerdem reduziert es Polygone und Masken auf ihre achsenparallelen Bounding-Boxes, sodass export-to-yolo die Segmentierungsgeometrie nicht bewahrt. Zeichne Rechtecke, wenn du mit diesem Arbeitsablauf einen Erkennungsdatensatz vorbereitest.

4. ZIP-Archiv erstellen#

Komprimiere den Inhalt von your_dataset.export/, nicht das übergeordnete Verzeichnis. Unter macOS oder Linux:

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

Unter Windows PowerShell:

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

Öffne die ZIP-Datei vor dem Hochladen und überprüfe, dass sich classes.txt, images/ und labels/ in ihrem Stammverzeichnis befinden. Ein zusätzliches Wrapper-Verzeichnis your_dataset.export/ verhindert, dass die Platform die Klassenliste im Stammverzeichnis findet.

5. In die Ultralytics Platform hochladen#

  1. Öffne Einstellungen > Integrationen > LabelMe.
  2. Klicke auf Export hochladen.
  3. Lade your_dataset.zip hoch und schließe die Erstellung des Datensatzes ab.
  4. Warte, bis die Verarbeitung abgeschlossen ist, und überprüfe anschließend die Bilder, Klassen und Annotationen.
  5. Bearbeite die Annotationen, trainiere ein Modell und stelle es bereit – alles aus demselben Arbeitsbereich.

LabelMe-Datensatzimport in der Ultralytics Platform

LabelMe und der YOLO-Export bleiben vollständig offline. Nur die ZIP-Datei, die du im Upload-Dialog auswählst, wird an die Platform gesendet.

Fehlerbehebung#

  • Die Klassen heißen class0, class1 usw.: Bestätige, dass classes.txt im Stammverzeichnis der ZIP-Datei vorhanden ist.
  • Einige Annotationen fehlen: Führe labelmetk list-labels your_dataset/ erneut aus und nimm jede erforderliche Bezeichnung in --class-names auf.
  • Polygone wurden zu Boxen: Dies entspricht dem dokumentierten Verhalten von export-to-yolo in LabelMe; Formen, die keine Rechtecke sind, werden in Bounding-Boxes umgewandelt.
  • Der Datensatz enthält keine Bilder: Bestätige, dass das exportierte Verzeichnis images/ in der ZIP-Datei enthalten ist.
  • Die Platform findet die Klassen nicht: Entferne jedes äußere Verzeichnis aus dem Archiv, sodass classes.txt, images/ und labels/ die Einträge auf oberster Ebene sind.

Den vollständigen lokalen Arbeitsablauf findest du im YOLO-Trainingsleitfaden von LabelMe und in der Referenz zu export-to-yolo.

FAQ#

  • Nein. LabelMe und der Export laufen lokal, und nur die von dir hochgeladene ZIP-Datei wird an Platform gesendet. Der export-to-yolo-Befehl ist Teil des LabelMe Pro Toolkit, welches eine Voraussetzung für LabelMe ist, aber die resultierende ZIP-Datei wird in jedem Platform-Tarif hochgeladen.

  • Nicht mit diesem Workflow. Das LabelMe Toolkit reduziert Polygone und Masken auf ihre achsenparallelen Bounding Boxes, sodass das Ergebnis immer ein Detektionsdatensatz ist. Zeichne Rechtecke, wenn du Daten für diesen Export vorbereitest.

  • Platform liest Klassennamen aus classes.txt im Stammverzeichnis der ZIP-Datei. Komprimiere den Inhalt des Exportordners und nicht den Ordner selbst, sodass classes.txt, images/ und labels/ die Einträge der obersten Ebene sind.

  • Nur die Labels, die an --class-names übergeben werden, in der Reihenfolge, in der du sie auflistest. Führe labelmetk list-labels zuerst aus und schließe jedes Label ein, das du behalten möchtest.

Mitwirkende

Kommentare