YOLO Vision 2026:

Exportar anotaciones de LabelMe a YOLO y a Ultralytics Platform#

LabelMe es una herramienta de anotación de imágenes sin conexión con una aplicación Python de código abierto. No hay ninguna conexión activa de LabelMe ni ninguna clave de API que configurar en Ultralytics Platform. La integración completa es un flujo de trabajo local: anota en LabelMe, convierte las anotaciones JSON de LabelMe al formato YOLO con LabelMe Toolkit y sube el ZIP resultante como un conjunto de datos de Platform.

1. Anota las imágenes en LabelMe#

Instala LabelMe mediante la aplicación de escritorio o el paquete Python de código abierto y, después, abre el directorio que contiene tus imágenes. LabelMe guarda las anotaciones de cada imagen en un archivo JSON correspondiente.

Para el flujo de trabajo de detección YOLO de esta guía, dibuja rectángulos alrededor de cada objeto y asigna un nombre de clase. La guía de inicio de LabelMe explica cómo abrir imágenes, dibujar formas y guardar anotaciones, mientras que la guía de conjuntos de datos de LabelMe explica cómo revisar y preparar un conjunto de datos anotado completo.

El directorio de origen debe contener las imágenes y los archivos JSON de LabelMe:

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

2. Instala LabelMe Toolkit#

Instala LabelMe Toolkit siguiendo la guía de instalación del toolkit de LabelMe. El toolkit y sus exportaciones se ejecutan localmente.

Se necesita LabelMe Pro para la exportación

export-to-yolo forma parte de LabelMe Pro Toolkit y para descargar su instalador debes iniciar sesión en LabelMe. Este es un requisito del producto LabelMe; el ZIP resultante se puede subir con cualquier plan de Platform.

Verifica la instalación y, después, enumera todas las etiquetas encontradas en el conjunto de datos de origen:

labelmetk --version
labelmetk list-labels your_dataset/

Revisa el resultado antes de exportarlo. Las etiquetas omitidas de --class-names se omiten, y el orden que proporciones se convierte en el orden de los ID de clase de YOLO.

3. Exporta al formato YOLO#

Ejecuta export-to-yolo con el directorio de origen y una lista de nombres de clase separados por comas:

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

Sustituye crack,normal por las etiquetas devueltas por list-labels. LabelMe escribe el resultado en your_dataset.export/:

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

classes.txt conserva los nombres de clase en el mismo orden utilizado por los archivos de etiquetas YOLO. Déjalo en la raíz de la exportación.

Este flujo de trabajo crea un conjunto de datos de detección

LabelMe Toolkit exporta los rectángulos como BBox de YOLO. También reduce los polígonos y las máscaras a sus BBox alineadas con los ejes, por lo que export-to-yolo no conserva la geometría de segmentación. Dibuja rectángulos cuando prepares un conjunto de datos de detección con este flujo de trabajo.

4. Crea el archivo ZIP#

Comprime el contenido de your_dataset.export/, no el directorio que lo contiene. En macOS o Linux:

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

En Windows PowerShell:

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

Abre el ZIP antes de subirlo y confirma que classes.txt, images/ y labels/ están en su raíz. Un your_dataset.export/ adicional como directorio contenedor impide que Platform encuentre la lista de clases raíz.

5. Sube el archivo a Ultralytics Platform#

  1. Abre Settings > Integrations > LabelMe.
  2. Haz clic en Upload export.
  3. Sube your_dataset.zip y termina de crear el conjunto de datos.
  4. Espera a que finalice el procesamiento y, después, revisa las imágenes, las clases y las anotaciones.
  5. Edita las anotaciones, entrena un modelo y despliégalo desde el mismo espacio de trabajo.

Importación de un conjunto de datos de LabelMe en Ultralytics Platform

LabelMe y la exportación a YOLO funcionan completamente sin conexión. Solo se envía a Platform el archivo ZIP que selecciones en el cuadro de diálogo de carga.

Solución de problemas#

  • Las clases se llaman class0, class1 y sucesivamente: confirma que classes.txt está presente en la raíz del ZIP.
  • Faltan algunas anotaciones: ejecuta labelmetk list-labels your_dataset/ de nuevo e incluye todas las etiquetas necesarias en --class-names.
  • Los polígonos se han convertido en cuadros: este es el comportamiento documentado de export-to-yolo de LabelMe; convierte las formas que no son rectángulos en BBox.
  • El conjunto de datos no tiene imágenes: confirma que el directorio exportado images/ está incluido en el ZIP.
  • Platform no encuentra las clases: elimina cualquier directorio exterior del archivo para que classes.txt, images/ y labels/ sean las entradas del nivel superior.

Para consultar el flujo de trabajo local completo, consulta la guía de entrenamiento de YOLO de LabelMe y la referencia de export-to-yolo.

Preguntas frecuentes#

  • No. LabelMe y la exportación se ejecutan localmente, y solo el archivo ZIP que subes se envía a Platform. El comando export-to-yolo forma parte de LabelMe Pro Toolkit, que es un requisito de LabelMe, pero el archivo ZIP resultante se sube en cualquier plan de Platform.

  • No con este flujo de trabajo. LabelMe Toolkit reduce los polígonos y las máscaras a sus cuadros delimitadores alineados con los ejes, por lo que el resultado es siempre un conjunto de datos de detección. Dibuja rectángulos al preparar los datos para esta exportación.

  • Platform lee los nombres de las clases desde classes.txt en la raíz del archivo ZIP. Comprime el contenido de la carpeta de exportación, no la carpeta en sí, para que classes.txt, images/ y labels/ sean las entradas de nivel superior.

  • Solo las etiquetas pasadas a --class-names, en el orden en que las enumeras. Ejecuta labelmetk list-labels primero e incluye cada etiqueta que quieras conservar.

Colaboradores

Comentarios