Etiquetado de Imágenes con Label Studio y Exportación a Yolo

Clase 15 de 16Curso de Visión Artificial con Python

Resumen

La detección de objetos en imágenes mediante inteligencia artificial es una tecnología fascinante que está transformando múltiples industrias. Detrás de estos sistemas hay un proceso fundamental: el etiquetado de datos. Este proceso, aunque laborioso, es esencial para entrenar modelos que puedan identificar objetos específicos en imágenes. Vamos a explorar cómo realizar este etiquetado manual utilizando herramientas profesionales y preparar nuestros datos para entrenar modelos de detección de objetos.

¿Cómo funciona el etiquetado manual de imágenes para modelos de IA?

El etiquetado manual es el proceso mediante el cual identificamos y marcamos objetos específicos en imágenes para que los modelos de inteligencia artificial aprendan a reconocerlos. Para realizar este proceso, utilizaremos Label Studio, una herramienta especializada que anteriormente se conocía como Labelimage.

Para comenzar, necesitamos instalar Label Studio mediante el siguiente comando:

pip install label-studio

Una vez instalado, podemos iniciar la aplicación con el comando:

label-studio

Este comando lanza un servidor local en el puerto 8080 (localhost:8080) que nos permite acceder a la interfaz de Label Studio. Una ventaja importante es que podemos levantar este proceso en una máquina virtual, permitiendo que todo nuestro equipo acceda a la misma URL para colaborar en el etiquetado.

¿Cómo crear un proyecto de etiquetado en Label Studio?

Para iniciar nuestro trabajo de etiquetado, debemos crear un nuevo proyecto:

  1. Hacer clic en "Crear" para iniciar un nuevo proyecto
  2. Definir un nombre para el proyecto (en nuestro ejemplo: "Platzi Demo")
  3. Añadir una descripción detallada (por ejemplo: "Detección de cascos y chalecos")

Después de configurar la información básica del proyecto, procedemos a importar nuestras imágenes. Label Studio soporta múltiples formatos de archivo, lo que lo hace muy versátil. Podemos arrastrar nuestras imágenes directamente o cargarlas mediante el botón correspondiente.

¿Cómo configurar las etiquetas para detección de objetos?

Una vez cargadas las imágenes, debemos configurar el tipo de etiquetado que realizaremos:

  1. En la sección "Labeling Setup", seleccionamos la opción para detección de objetos con bounding box (rectángulos)
  2. Elegimos la configuración manual
  3. Definimos nuestras etiquetas personalizadas:
    • Eliminamos las etiquetas predeterminadas
    • Añadimos "cascos" (con color verde intenso)
    • Añadimos "chalecos" (con color rojo)
  4. Guardamos la configuración

¿Cómo realizar el proceso de etiquetado de imágenes?

El proceso de etiquetado consiste en marcar cada objeto relevante en nuestras imágenes:

  1. Seleccionamos una imagen sin etiquetar
  2. Elegimos la etiqueta correspondiente (por ejemplo, "cascos")
  3. Dibujamos un rectángulo alrededor del objeto en la imagen
  4. Si hay más objetos, repetimos el proceso con sus respectivas etiquetas
  5. Hacemos clic en "Submit" para guardar el etiquetado

Es importante destacar que la precisión del rectángulo que engloba el objeto influye directamente en la calidad del modelo resultante. Cuanto más preciso sea el etiquetado, mejor será el rendimiento del modelo de IA.

Este proceso debe repetirse para cada imagen del dataset. En entornos profesionales, cuando se trabaja con miles de imágenes, suele haber equipos dedicados exclusivamente al etiquetado o se contrata a empresas especializadas para realizar esta tarea.

¿Cómo exportar los datos etiquetados para entrenar modelos YOLO?

Una vez completado el etiquetado de todas las imágenes, podemos exportar los resultados:

  1. Vamos a la página principal del proyecto
  2. Hacemos clic en "Exportar"
  3. Seleccionamos el formato YOLO
  4. Elegimos si queremos exportar solo las etiquetas o también las imágenes

Label Studio nos permite exportar en formato compatible con YOLO v8, que también funciona correctamente con YOLO v11 y otras versiones.

¿Cómo preparar el dataset para entrenar un modelo de detección?

Después de exportar y descomprimir nuestro dataset etiquetado, obtenemos:

  1. Carpeta de imágenes
  2. Carpeta de etiquetas (labels)
  3. Archivo de clases (cascos, chalecos)
  4. Notas sobre YOLO

Para entrenar un modelo de detección, necesitamos dividir nuestro dataset en tres subconjuntos:

  • Entrenamiento (train): 70% de las imágenes
  • Prueba (test): 20% de las imágenes
  • Validación (val): 10% de las imágenes

Podemos utilizar un script para realizar esta división automáticamente:

# Script para dividir el dataset en entrenamiento, test y validación
# Parámetros: directorio que contiene imágenes y etiquetas
# División: 70% entrenamiento, 20% test, 10% validación

Finalmente, necesitamos crear un archivo de configuración YAML que especifique las rutas de nuestros datos y las clases a detectar:

train: ruta/a/train/images
val: ruta/a/valid/images
test: ruta/a/test/images

nc: 2  # número de clases
names: ['cascos', 'chalecos']  # nombres de las clases

Con estos pasos, nuestro dataset queda completamente preparado para entrenar un modelo de detección de objetos utilizando YOLO u otras arquitecturas similares.

El etiquetado manual de imágenes es un proceso fundamental para crear modelos de IA personalizados que detecten objetos específicos. Aunque requiere tiempo y dedicación, los resultados pueden transformar la manera en que automatizamos tareas de reconocimiento visual. ¿Te animas a crear tu propio dataset etiquetado? Comparte tus experiencias y resultados en los comentarios.