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.0README.md: Documentação básica e instruções de usolabelme2yolo.py: Script principle responsável pela conversão dos arquivosrequirements.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/eimages/val/: Imagens divididas entre treino e validaçãolabels/train/elabels/val/: Arquivos.txtno formato YOLOdataset.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 YOLOanotacao.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:
labelmescikit-learnopencv-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.