Ir al contenido

Mejore su conjunto de datos para entrenar YOLO11 utilizando Albumentations

Cuando está creando modelos de visión artificial, la calidad y la variedad de sus datos de entrenamiento pueden desempeñar un papel importante en el rendimiento de su modelo. Albumentations ofrece una forma rápida, flexible y eficiente de aplicar una amplia gama de transformaciones de imagen que pueden mejorar la capacidad de su modelo para adaptarse a escenarios del mundo real. Se integra fácilmente con Ultralytics YOLO11 y puede ayudarle a crear conjuntos de datos robustos para tareas de detección de objetos, segmentación y clasificación.

Al usar Albumentations, puedes impulsar tus datos de entrenamiento de YOLO11 con técnicas como transformaciones geométricas y ajustes de color. En este artículo, veremos cómo Albumentations puede mejorar tu proceso de aumento de datos y hacer que tus proyectos YOLO11 sean aún más impactantes. ¡Empecemos!

Albumentations para el Aumento de Imágenes

Albumentations es una biblioteca de aumento de imágenes de código abierto creada en junio de 2018. Está diseñada para simplificar y acelerar el proceso de aumento de imágenes en visión artificial. Creada teniendo en cuenta el rendimiento y la flexibilidad, admite muchas técnicas de aumento diversas, que van desde transformaciones simples como rotaciones e inversiones hasta ajustes más complejos como cambios de brillo y contraste. Albumentations ayuda a los desarrolladores a generar conjuntos de datos ricos y variados para tareas como la clasificación de imágenes, la detección de objetos y la segmentación.

Puede utilizar Albumentations para aplicar fácilmente aumentos a imágenes, máscaras de segmentación, cuadros delimitadores y puntos clave, y asegurarse de que todos los elementos de su conjunto de datos se transformen juntos. Funciona a la perfección con frameworks de aprendizaje profundo populares como PyTorch y TensorFlow, lo que lo hace accesible para una amplia gama de proyectos.

Además, Albumentations es una excelente opción para el aumento de datos, ya sea que estés manejando conjuntos de datos pequeños o tareas de visión artificial a gran escala. Garantiza un procesamiento rápido y eficiente, reduciendo el tiempo dedicado a la preparación de datos. Al mismo tiempo, ayuda a mejorar el rendimiento del modelo, haciendo que tus modelos sean más efectivos en aplicaciones del mundo real.

Características principales de Albumentations

Albumentations ofrece muchas características útiles que simplifican los aumentos de imagen complejos para una amplia gama de aplicaciones de visión artificial. Estas son algunas de las características clave:

  • Amplia gama de transformaciones: Albumentations ofrece más de 70 transformaciones diferentes, incluyendo cambios geométricos (por ejemplo, rotación, volteo), ajustes de color (por ejemplo, brillo, contraste) y adición de ruido (por ejemplo, ruido gaussiano). Tener múltiples opciones permite la creación de conjuntos de datos de entrenamiento muy diversos y robustos.

Ejemplo de aumentos de imagen

  • Optimización de Alto Rendimiento: Construido sobre OpenCV y NumPy, Albumentations utiliza técnicas de optimización avanzadas como SIMD (Single Instruction, Multiple Data), que procesa múltiples puntos de datos simultáneamente para acelerar el procesamiento. Maneja grandes conjuntos de datos rápidamente, lo que la convierte en una de las opciones más rápidas disponibles para el aumento de imágenes.

  • Tres niveles de aumento: Albumentations admite tres niveles de aumento: transformaciones a nivel de píxel, transformaciones a nivel espacial y transformación a nivel de mezcla. Las transformaciones a nivel de píxel solo afectan a las imágenes de entrada sin alterar las máscaras, los cuadros delimitadores o los puntos clave. Mientras tanto, tanto la imagen como sus elementos, como las máscaras y los cuadros delimitadores, se transforman utilizando transformaciones a nivel espacial. Además, las transformaciones a nivel de mezcla son una forma única de aumentar los datos, ya que combina varias imágenes en una.

Descripción General de los Diferentes Niveles de Aumentaciones

  • Resultados de evaluación comparativa: Cuando se trata de evaluaciones comparativas, Albumentations supera constantemente a otras bibliotecas, especialmente con grandes conjuntos de datos.

¿Por qué debería usar Albumentations para sus proyectos de IA de visión?

Con respecto al aumento de imágenes, Albumentations destaca como una herramienta confiable para tareas de visión artificial. Aquí hay algunas razones clave por las que debería considerar usarlo para sus proyectos de Vision AI:

  • API fácil de usar: Albumentations proporciona una API única y sencilla para aplicar una amplia gama de aumentos a imágenes, máscaras, bounding boxes y keypoints. Está diseñado para adaptarse fácilmente a diferentes conjuntos de datos, lo que hace que la preparación de datos sea más sencilla y eficiente.

  • Pruebas rigurosas de errores: Los errores en el pipeline de aumento pueden corromper silenciosamente los datos de entrada, a menudo pasando desapercibidos, pero en última instancia degradando el rendimiento del modelo. Albumentations aborda esto con un conjunto de pruebas exhaustivo que ayuda a detectar errores al principio del desarrollo.

  • Extensibilidad: Albumentations se puede utilizar para añadir fácilmente nuevas aumentaciones y utilizarlas en pipelines de visión artificial a través de una única interfaz junto con transformaciones integradas.

Cómo usar Albumentations para aumentar datos para el entrenamiento de YOLO11

Ahora que hemos cubierto qué es Albumentations y lo que puede hacer, veamos cómo usarlo para aumentar sus datos para el entrenamiento del modelo YOLO11. Es fácil de configurar porque se integra directamente en el modo de entrenamiento de Ultralytics y se aplica automáticamente si tiene el paquete Albumentations instalado.

Instalación

Para usar Albumentations con YOLO11, comience asegurándose de tener instalados los paquetes necesarios. Si Albumentations no está instalado, las aumentaciones no se aplicarán durante el entrenamiento. Una vez configurado, estará listo para crear un conjunto de datos aumentado para el entrenamiento, con Albumentations integrado para mejorar su modelo automáticamente.

Instalación

# Install the required packages
pip install albumentations ultralytics

Para obtener instrucciones detalladas y las mejores prácticas relacionadas con el proceso de instalación, consulte nuestra Guía de instalación de Ultralytics. Mientras instala los paquetes necesarios para YOLO11, si encuentra alguna dificultad, consulte nuestra Guía de problemas comunes para obtener soluciones y consejos.

Uso

Después de instalar los paquetes necesarios, estarás listo para empezar a usar Albumentations con YOLO11. Cuando entrenas YOLO11, se aplica automáticamente un conjunto de aumentos a través de su integración con Albumentations, lo que facilita la mejora del rendimiento de tu modelo.

Uso

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

A continuación, echemos un vistazo más de cerca a las aumentaciones específicas que se aplican durante el entrenamiento.

Desenfoque

La transformación Blur en Albumentations aplica un efecto de desenfoque simple a la imagen promediando los valores de los píxeles dentro de un área cuadrada pequeña, o kernel. Esto se hace usando OpenCV cv2.blur función, que ayuda a reducir el ruido en la imagen, aunque también reduce ligeramente los detalles de la imagen.

Estos son los parámetros y valores utilizados en esta integración:

  • blur_limit: Esto controla el rango de tamaño del efecto de desenfoque. El rango predeterminado es (3, 7), lo que significa que el tamaño del kernel para el desenfoque puede variar entre 3 y 7 píxeles, y solo se permiten números impares para mantener el desenfoque centrado.

  • p: La probabilidad de aplicar el desenfoque. En la integración, p=0.01, por lo que hay un 1% de probabilidad de que este desenfoque se aplique a cada imagen. La baja probabilidad permite efectos de desenfoque ocasionales, introduciendo un poco de variación para ayudar al modelo a generalizar sin desenfocar demasiado las imágenes.

Un ejemplo del aumento de desenfoque

Desenfoque Mediano

La transformación MedianBlur en Albumentations aplica un efecto de desenfoque de mediana a la imagen, lo cual es particularmente útil para reducir el ruido mientras se conservan los bordes. A diferencia de los métodos de desenfoque típicos, MedianBlur utiliza un filtro de mediana, que es especialmente eficaz para eliminar el ruido de sal y pimienta mientras mantiene la nitidez alrededor de los bordes.

Estos son los parámetros y valores utilizados en esta integración:

  • blur_limit: Este parámetro controla el tamaño máximo del kernel de desenfoque. En esta integración, el valor predeterminado es un rango de (3, 7), lo que significa que el tamaño del kernel para el desenfoque se elige aleatoriamente entre 3 y 7 píxeles, y solo se permiten valores impares para garantizar una alineación adecuada.

  • p: Establece la probabilidad de aplicar el desenfoque de mediana. Aquí, p=0.01, por lo que la transformación tiene un 1% de probabilidad de aplicarse a cada imagen. Esta baja probabilidad asegura que el desenfoque de mediana se utilice con moderación, ayudando al modelo a generalizar al ver ocasionalmente imágenes con ruido reducido y bordes preservados.

La imagen de abajo muestra un ejemplo de esta ampliación aplicada a una imagen.

Un ejemplo del aumento de desenfoque medio

Escala de grises

La transformación ToGray en Albumentations convierte una imagen a escala de grises, reduciéndola a un formato de un solo canal y, opcionalmente, replicando este canal para que coincida con un número específico de canales de salida. Se pueden utilizar diferentes métodos para ajustar cómo se calcula el brillo en escala de grises, desde el promedio simple hasta técnicas más avanzadas para una percepción realista del contraste y el brillo.

Estos son los parámetros y valores utilizados en esta integración:

  • num_output_channels: Establece el número de canales en la imagen de salida. Si este valor es mayor que 1, el canal de escala de grises único se replicará para crear una imagen de escala de grises multicanal. De forma predeterminada, está configurado en 3, lo que proporciona una imagen en escala de grises con tres canales idénticos.

  • method: Define el método de conversión a escala de grises. El método predeterminado, "weighted_average", aplica una fórmula (0.299R + 0.587G + 0.114B) que se alinea estrechamente con la percepción humana, proporcionando un efecto de escala de grises de aspecto natural. Otras opciones, como "from_lab", "desaturation", "average", "max" y "pca", ofrecen formas alternativas de crear imágenes en escala de grises basadas en diversas necesidades de velocidad, énfasis en el brillo o preservación de detalles.

  • p: Controla la frecuencia con la que se aplica la transformación a escala de grises. Con p=0.01, existe una probabilidad del 1% de convertir cada imagen a escala de grises, lo que permite una combinación de imágenes en color y en escala de grises para ayudar al modelo a generalizar mejor.

La imagen de abajo muestra un ejemplo de esta transformación de escala de grises aplicada.

Un ejemplo del aumento de ToGray

Ecualización de Histograma Adaptativa Limitada por Contraste (CLAHE)

La transformación CLAHE en Albumentations aplica la Ecualización Adaptativa del Histograma Limitada por Contraste (CLAHE), una técnica que mejora el contraste de la imagen ecualizando el histograma en regiones localizadas (tiles) en lugar de en toda la imagen. CLAHE produce un efecto de mejora equilibrado, evitando el contraste excesivamente amplificado que puede resultar de la ecualización de histograma estándar, especialmente en áreas con contraste inicialmente bajo.

Estos son los parámetros y valores utilizados en esta integración:

  • clip_limit: Controla el rango de mejora del contraste. Establecido en un rango predeterminado de (1, 4), determina el contraste máximo permitido en cada mosaico. Se utilizan valores más altos para obtener más contraste, pero también pueden introducir ruido.

  • tile_grid_size: Define el tamaño de la cuadrícula de mosaicos, normalmente como (filas, columnas). El valor predeterminado es (8, 8), lo que significa que la imagen se divide en una cuadrícula de 8x8. Los tamaños de mosaico más pequeños proporcionan ajustes más localizados, mientras que los más grandes crean efectos más cercanos a la ecualización global.

  • p: La probabilidad de aplicar CLAHE. Aquí, p=0.01 introduce el efecto de mejora solo el 1% de las veces, asegurando que los ajustes de contraste se apliquen con moderación para una variación ocasional en las imágenes de entrenamiento.

La imagen de abajo muestra un ejemplo de la transformación CLAHE aplicada.

Un ejemplo del aumento de CLAHE

Sigue aprendiendo sobre Albumentations

Si está interesado en obtener más información sobre Albumentations, consulte los siguientes recursos para obtener instrucciones y ejemplos más detallados:

Puntos clave

En esta guía, exploramos los aspectos clave de Albumentations, una excelente biblioteca de Python para el aumento de imágenes. Discutimos su amplia gama de transformaciones, rendimiento optimizado y cómo puede usarlo en su próximo proyecto YOLO11.

Además, si deseas obtener más información sobre otras integraciones de Ultralytics YOLO11, visita nuestra página de guía de integración. Allí encontrarás muchos recursos e información valiosa.

Preguntas frecuentes

¿Cómo puedo integrar Albumentations con YOLO11 para mejorar el aumento de datos?

Albumentations se integra perfectamente con YOLO11 y se aplica automáticamente durante el entrenamiento si tienes el paquete instalado. Aquí te mostramos cómo empezar:

# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO

# Load and train model with automatic augmentations
model = YOLO("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

La integración incluye aumentos optimizados como desenfoque, desenfoque medio, conversión a escala de grises y CLAHE con probabilidades cuidadosamente ajustadas para mejorar el rendimiento del modelo.

¿Cuáles son las principales ventajas de usar Albumentations en comparación con otras bibliotecas de aumento de datos?

Albumentations destaca por varias razones:

  1. Rendimiento: Construido sobre OpenCV y NumPy con optimización SIMD para una velocidad superior
  2. Flexibilidad: Soporta más de 70 transformaciones entre aumentos a nivel de píxel, nivel espacial y nivel de mezcla
  3. Compatibilidad: Funciona perfectamente con frameworks populares como PyTorch y TensorFlow
  4. Fiabilidad: Un extenso conjunto de pruebas evita la corrupción silenciosa de los datos
  5. Facilidad de uso: API unificada única para todos los tipos de aumento

¿Qué tipos de tareas de visión artificial pueden beneficiarse del aumento de datos con Albumentations?

Albumentations mejora varias tareas de visión artificial, incluyendo:

  • Detección de Objetos: Mejora la robustez del modelo ante variaciones de iluminación, escala y orientación.
  • Segmentación de instancias: Mejora la precisión de la predicción de máscaras a través de diversas transformaciones
  • Clasificación: Aumenta la generalización del modelo con aumentos geométricos y de color.
  • Estimación de Pose: Ayuda a los modelos a adaptarse a diferentes puntos de vista y condiciones de iluminación.

Las diversas opciones de aumento de la biblioteca la hacen valiosa para cualquier tarea de visión que requiera un rendimiento robusto del modelo.



📅 Creado hace 9 meses ✏️ Actualizado hace 2 meses

Comentarios