Ferramenta para Conversão de Anotações LabelMe para Formato YOLO

Guia de Utilização da Ferramenta LabelMe para YOLO

Esta ferramenta permite converter anotações criadas com o LabelMe, um popular editor de dados de segmentação, para o formato compatível com modelos YOLO (You Only Look Once), amplamente usado em tarefas de detecção e segmentação de objetos. Ideal para quem já possui um conjunto de imagens rotuladas em JSON pelo LabelMe e deseja utilizá-las em treinamentos com YOLOv5 ou versões superiores.

Estrutura do Projeto

  • LICENSE: Licença aberta Apache-2.0
  • README.md: Documentação básica e instruções de uso
  • labelme2yolo.py: Script principle responsável pela conversão dos arquivos
  • requirements.txt: Lista de dependências Python necessárias

Parâmetros Disponíveis

1. Conversão em Lote com Divisão Automática

Coloque todos os arquivos JSON no diretório especificado. Execute:

python labelme2yolo.py --json_dir /caminho/seus_jsons/ --val_size 0.2

O script criará automaticamente uma pasta YOLODataset com subdiretórios organizados:

  • images/train/ e images/val/: Imagens divididas entre treino e validação
  • labels/train/ e labels/val/: Arquivos .txt no formato YOLO
  • dataset.yaml: Arquivo de configuração com caminhos, classes e quantidade de categorias

Se o parâmetro --seg for usado, a pasta será nomeada YOLODataset_seg.

2. Conversão Baseada em Estrutura de Diretórios Pré-dividida

Caso você já tenha separado manualmente os conjuntos de treino e validação, organize assim:

/caminho/json_dir/train/*.json
/caminho/json_dir/val/*.json

Execute o comando sem definir --val_size:

python labelme2yolo.py --json_dir /caminho/json_dir/

O script respeitará a estrutura existente ao gerar as pastas de saída.

3. Conversão de Arquivo Único

Para processar apenas um anotação específica:

python labelme2yolo.py --json_dir /caminho/json_dir/ --json_name anotacao.json

Serão gerados na mesma pasta:

  • anotacao.txt: Rótulo no formato YOLO
  • anotacao.png: Cópia da imagem associada (se disponível)

Detalhes Técnicos da Conversão

A ferramenta converte difernetes tipos de formas anotadas no LabelMe:

  • Polígonos: As coordenadas dos vértices são normalizadas pelas dimensões da imagem e salvas como sequência no arquivo .txt.
  • Círculos: São aproximados por caixas delimitadoras (bounding boxes) centradas no círculo, com largura e altura iguais ao diâmetro.

O arquivo dataset.yaml gerado inclui automaticamente:

train: ./images/train
val: ./images/val
nc: 5
names: ['cachorro', 'gato', 'pássaro', 'carro', 'bicicleta']

Pronto para uso direto em pipelines de treinamento do YOLO.

Requisitos de Ambiente

O projeto foi testado em CentOS 7 com Python 3.6. Para instalar as dependências:

pip install -r requirements.txt

Pacotes principais:

  • labelme
  • scikit-learn
  • opencv-python

Com essa ferramenta, a migração de conjuntos de dados anotados com LabelMe para o ecossistema YOLO torna-se rápida e eficiente, especialmente em projetos de segmentação de instâncias e detecção multiclasse.

Tags: LabelMe YOLO Conversão de Dados segmentação de instâncias detecção de objetos

Publicado em 9-20 22:04