Ultralytics YOLO27:

Exporte anotações do LabelMe para YOLO e Ultralytics Platform#

LabelMe é uma ferramenta offline de anotação de imagens com um aplicativo Python de código aberto. Não há conexão ativa com o LabelMe nem chave de API para configurar na Ultralytics Platform. A integração completa é um fluxo de trabalho local: faça as anotações no LabelMe, converta as anotações JSON do LabelMe para o formato YOLO com o LabelMe Toolkit e envie o ZIP resultante como um conjunto de dados da Platform.

1. Anote as imagens no LabelMe#

Instale o LabelMe usando o aplicativo para desktop ou o pacote Python de código aberto e, em seguida, abra o diretório que contém as imagens. O LabelMe salva as anotações de cada imagem em um arquivo JSON correspondente.

Para o fluxo de trabalho de detecção YOLO deste guia, desenhe retângulos ao redor de cada objeto e atribua um nome de classe. O guia inicial do LabelMe explica como abrir imagens, desenhar formas e salvar anotações, enquanto o guia de conjuntos de dados do LabelMe explica como revisar e preparar um conjunto de dados totalmente anotado.

O diretório de origem deve conter as imagens e os arquivos JSON do LabelMe:

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

2. Instale o LabelMe Toolkit#

Instale o LabelMe Toolkit seguindo o guia de instalação do toolkit do LabelMe. O toolkit e suas exportações são executados localmente.

O LabelMe Pro é necessário para a exportação

export-to-yolo faz parte do LabelMe Pro Toolkit, e é necessário entrar na conta do LabelMe para baixar o instalador. Este é um requisito do produto LabelMe; o ZIP resultante pode ser enviado em qualquer plano da Platform.

Verifique a instalação e, em seguida, liste todos os rótulos encontrados no conjunto de dados de origem:

labelmetk --version
labelmetk list-labels your_dataset/

Revise a saída antes de exportar. Os rótulos omitidos de --class-names são ignorados, e a ordem informada define a ordem dos IDs de classe YOLO.

3. Exporte para o formato YOLO#

Execute export-to-yolo com o diretório de origem e uma lista de nomes de classes separados por vírgulas:

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

Substitua crack,normal pelos rótulos retornados por list-labels. O LabelMe grava o resultado em your_dataset.export/:

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

classes.txt preserva os nomes de classe na mesma ordem usada pelos arquivos de rótulos YOLO. Mantenha-o na raiz da exportação.

Este fluxo de trabalho cria um conjunto de dados de detecção

O LabelMe Toolkit exporta retângulos como caixas delimitadoras YOLO. Ele também reduz polígonos e máscaras às suas caixas delimitadoras alinhadas aos eixos; por isso, export-to-yolo não preserva a geometria da segmentação. Desenhe retângulos ao preparar um conjunto de dados de detecção com este fluxo de trabalho.

4. Crie o arquivo ZIP#

Comprima o conteúdo de your_dataset.export/, e não o diretório que o contém. No macOS ou Linux:

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

No Windows PowerShell:

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

Abra o ZIP antes de enviá-lo e confirme que classes.txt, images/ e labels/ estão na raiz. Um diretório extra your_dataset.export/ envolvendo esses arquivos impede que a Platform encontre a lista de classes na raiz.

5. Envie para a Ultralytics Platform#

  1. Abra Configurações > Integrações > LabelMe.
  2. Clique em Enviar exportação.
  3. Envie your_dataset.zip e conclua a criação do conjunto de dados.
  4. Aguarde a conclusão do processamento e, em seguida, revise as imagens, classes e anotações.
  5. Edite as anotações, treine um modelo e implante-o no mesmo espaço de trabalho.

Importação de conjunto de dados LabelMe na Ultralytics Platform

O LabelMe e a exportação YOLO permanecem totalmente offline. Somente o arquivo ZIP selecionado na caixa de diálogo de envio é enviado para a Platform.

Resolução de problemas#

  • As classes têm os nomes class0, class1 e assim por diante: confirme que classes.txt está presente na raiz do ZIP.
  • Faltam algumas anotações: execute labelmetk list-labels your_dataset/ novamente e inclua todos os rótulos necessários em --class-names.
  • Os polígonos foram convertidos em caixas: esse é o comportamento documentado de export-to-yolo do LabelMe; ele converte formas que não são retângulos em caixas delimitadoras.
  • O conjunto de dados não tem imagens: confirme que o diretório images/ exportado está incluído no ZIP.
  • A Platform não encontra as classes: remova qualquer diretório externo do arquivo para que classes.txt, images/ e labels/ sejam as entradas de nível superior.

Para conhecer o fluxo de trabalho local completo, consulte o guia de treinamento YOLO e a referência de export-to-yolo do LabelMe.

Perguntas frequentes#

  • Não. O LabelMe e a exportação são executados localmente, e somente o ZIP que você envia é encaminhado à Platform. O comando export-to-yolo faz parte do LabelMe Pro Toolkit, que é um requisito do LabelMe, mas o ZIP resultante pode ser enviado em qualquer plano da Platform.

  • Não com este fluxo de trabalho. O LabelMe Toolkit reduz polígonos e máscaras às suas caixas delimitadoras alinhadas aos eixos; por isso, o resultado é sempre um conjunto de dados de detecção. Desenhe retângulos ao preparar dados para esta exportação.

  • A Platform lê os nomes das classes de classes.txt na raiz do ZIP. Comprima o conteúdo da pasta de exportação, não a pasta em si, para que classes.txt, images/ e labels/ sejam as entradas de nível superior.

  • Somente os rótulos passados para --class-names, na ordem em que você os listar. Execute labelmetk list-labels primeiro e inclua todos os rótulos que deseja manter.

Contribuidores

Comentários