Ultralytics YOLO27:

Экспорт аннотаций LabelMe в YOLO и Ultralytics Platform#

LabelMe — это автономный инструмент для разметки изображений с приложением Python с открытым исходным кодом. В Ultralytics Platform не нужно настраивать подключение к LabelMe в реальном времени или API-ключ. Вся интеграция выполняется локально: разметь данные в LabelMe, преобразуй аннотации LabelMe в формате JSON в формат YOLO с помощью LabelMe Toolkit и загрузи полученный ZIP-архив как датасет Platform.

1. Разметь изображения в LabelMe#

Установи LabelMe с помощью настольного приложения или пакета Python с открытым исходным кодом, затем открой каталог с изображениями. LabelMe сохраняет аннотации каждого изображения в соответствующем JSON-файле.

Для описанного в этом руководстве процесса обнаружения объектов в YOLO обведи каждый объект прямоугольником и назначь ему имя класса. В начальном руководстве по LabelMe описано, как открывать изображения, рисовать фигуры и сохранять аннотации, а в руководстве по датасетам LabelMe — как проверять и подготавливать полностью размеченный датасет.

В исходном каталоге должны находиться изображения и JSON-файлы LabelMe:

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

2. Установи LabelMe Toolkit#

Установи LabelMe Toolkit, следуя руководству по установке Toolkit от LabelMe. Toolkit и его экспорт работают локально.

Для экспорта требуется LabelMe Pro

export-to-yolo входит в LabelMe Pro Toolkit, и для загрузки установщика нужно войти в LabelMe. Это требование продукта LabelMe; полученный ZIP-архив можно загрузить на любом тарифном плане Platform.

Проверь установку, затем выведи список всех меток в исходном датасете:

labelmetk --version
labelmetk list-labels your_dataset/

Проверь вывод перед экспортом. Метки, не указанные в --class-names, будут пропущены, а заданный тобой порядок определит порядок ID классов YOLO.

3. Экспорт в формат YOLO#

Запусти export-to-yolo, указав исходный каталог и список имён классов через запятую:

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

Замени crack,normal метками, полученными с помощью list-labels. LabelMe сохранит результат в your_dataset.export/:

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

classes.txt сохраняет имена классов в том же порядке, что и в файлах меток YOLO. Оставь этот файл в корне экспорта.

Этот процесс создаёт датасет для обнаружения объектов

LabelMe Toolkit экспортирует прямоугольники как ограничивающие рамки YOLO. Он также преобразует полигоны и маски в ограничивающие рамки, выровненные по осям, поэтому export-to-yolo не сохраняет геометрию сегментации. При подготовке датасета для обнаружения объектов в рамках этого процесса используй прямоугольники.

4. Создай ZIP-архив#

Сожми содержимое your_dataset.export/, а не сам каталог. В macOS или Linux:

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

В Windows PowerShell:

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

Перед загрузкой открой ZIP-архив и убедись, что classes.txt, images/ и labels/ находятся в его корне. Дополнительная вложенная папка your_dataset.export/ не позволит Platform найти список классов в корне.

5. Загрузи датасет в Ultralytics Platform#

  1. Открой Настройки > Интеграции > LabelMe.
  2. Нажми Загрузить экспорт.
  3. Загрузи your_dataset.zip и заверши создание датасета.
  4. Дождись завершения обработки, затем проверь изображения, классы и аннотации.
  5. Отредактируй аннотации, обучи модель и разверни её в той же рабочей области.

Импорт датасета LabelMe в Ultralytics Platform

LabelMe и экспорт в YOLO выполняются полностью офлайн. В Platform отправляется только выбранный в диалоговом окне загрузки ZIP-файл.

Устранение неполадок#

  • Классы называются class0, class1 и так далее: убедись, что classes.txt находится в корне ZIP-архива.
  • Не хватает некоторых аннотаций: запусти labelmetk list-labels your_dataset/ ещё раз и включи все нужные метки в --class-names.
  • Полигоны превратились в рамки: это описанное поведение export-to-yolo в LabelMe; инструмент преобразует фигуры, отличные от прямоугольников, в ограничивающие рамки.
  • В датасете нет изображений: убедись, что экспортированный каталог images/ включён в ZIP-архив.
  • Platform не может найти классы: убери из архива внешнюю папку, чтобы classes.txt, images/ и labels/ находились на верхнем уровне.

Полное описание локального процесса см. в руководстве LabelMe по обучению YOLO и справочнике по export-to-yolo.

Часто задаваемые вопросы#

  • Нет. LabelMe и экспорт выполняются локально, а в Platform отправляется только загруженный ZIP-архив. Команда export-to-yolo входит в LabelMe Pro Toolkit, который требуется для работы с LabelMe, но полученный ZIP-архив можно загрузить на любом тарифном плане Platform.

  • Нет, в рамках этого процесса нельзя. LabelMe Toolkit преобразует полигоны и маски в ограничивающие рамки, выровненные по осям, поэтому в результате всегда получается датасет для обнаружения объектов. При подготовке данных для этого экспорта используй прямоугольники.

  • Platform считывает имена классов из classes.txt в корне ZIP-архива. Сжимай содержимое папки экспорта, а не саму папку, чтобы classes.txt, images/ и labels/ находились на верхнем уровне.

  • Только метки, переданные в --class-names, в указанном тобой порядке. Сначала запусти labelmetk list-labels и включи все метки, которые нужно сохранить.

Участники

Комментарии