Mejora tu conjunto de datos para entrenar YOLO26 usando Albumentations
Cuando estás creando modelos de visión artificial, la calidad y la variedad de tus datos de entrenamiento pueden desempeñar un papel importante en el rendimiento de tu modelo. Albumentations ofrece una manera rápida, flexible y eficiente de aplicar una amplia gama de transformaciones de imagen que pueden mejorar la capacidad de tu modelo para adaptarse a escenarios del mundo real. Se integra fácilmente con Ultralytics YOLO26 y puede ayudarte a crear conjuntos de datos robustos para tareas de detección de objetos, segmentación y clasificación.
Al usar Albumentations, puedes potenciar tus datos de entrenamiento de YOLO26 con técnicas como transformaciones geométricas y ajustes de color. En este artículo, veremos cómo Albumentations puede mejorar tu proceso de aumentación de datos y hacer que tus proyectos YOLO26 sean aún más impactantes. ¡Empecemos!
Albumentations para la aumentación de imágenes
Albumentations es una biblioteca de código abierto para la aumentación de imágenes creada en junio de 2018. Está diseñada para simplificar y acelerar el proceso de aumentación de imágenes en visión artificial. Creada con el rendimiento y la flexibilidad en mente, admite muchas técnicas de aumentación diversas, que van desde transformaciones simples como rotaciones y volteos 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, detección de objetos y segmentación.
Puedes usar Albumentations para aplicar fácilmente aumentaciones a imágenes, máscaras de segmentación, cajas delimitadoras y puntos clave, y asegurarte de que todos los elementos de tu conjunto de datos se transformen juntos. Funciona a la perfección con marcos de aprendizaje profundo populares como PyTorch y TensorFlow, lo que lo hace accesible para una amplia gama de proyectos.
Además, Albumentations es una gran opción para la aumentación tanto si manejas conjuntos de datos pequeños como 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 clave de Albumentations
Albumentations ofrece muchas características útiles que simplifican las aumentaciones de imagen complejas 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 (p. ej., rotación, volteo), ajustes de color (p. ej., brillo, contraste) y adición de ruido (p. ej., ruido gaussiano). Tener múltiples opciones permite la creación de conjuntos de datos de entrenamiento altamente diversos y robustos.
-
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 la aumentación de imágenes.
-
Tres niveles de aumentación: Albumentations admite tres niveles de aumentación: transformaciones a nivel de píxel, transformaciones a nivel espacial y transformaciones a nivel de mezcla. Las transformaciones a nivel de píxel solo afectan a las imágenes de entrada sin alterar las máscaras, las cajas delimitadoras o los puntos clave. Mientras tanto, tanto la imagen como sus elementos, como las máscaras y las cajas delimitadoras, se transforman usando transformaciones a nivel espacial. Además, las transformaciones a nivel de mezcla son una forma única de aumentar los datos, ya que combinan varias imágenes en una.

- Resultados de evaluación comparativa: Cuando se trata de evaluación comparativa, Albumentations supera constantemente a otras bibliotecas, especialmente con conjuntos de datos grandes.
¿Por qué deberías usar Albumentations para tus proyectos de Vision AI?
Con respecto a la aumentación de imágenes, Albumentations destaca como una herramienta confiable para tareas de visión artificial. Estas son algunas razones clave por las que deberías considerar usarla para tus proyectos de Vision AI:
-
API fácil de usar: Albumentations proporciona una API única y directa para aplicar una amplia gama de aumentaciones a imágenes, máscaras, cajas delimitadoras y puntos clave. Está diseñada para adaptarse fácilmente a diferentes conjuntos de datos, haciendo que la preparación de datos sea más simple y eficiente.
-
Pruebas rigurosas de errores: Los errores en la canalización de aumentación pueden corromper silenciosamente los datos de entrada, a menudo pasando desapercibidos pero degradando en última instancia el rendimiento del modelo. Albumentations aborda esto con un conjunto completo de pruebas que ayuda a detectar errores al principio del desarrollo.
-
Extensibilidad: Albumentations se puede utilizar para agregar fácilmente nuevas aumentaciones y usarlas en canales 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 YOLO26
Ahora que hemos cubierto qué es Albumentations y qué puede hacer, veamos cómo usarla para aumentar tus datos para el entrenamiento del modelo YOLO26. Es fácil de configurar porque se integra directamente en el modo de entrenamiento de Ultralytics y se aplica automáticamente si tienes instalado el paquete Albumentations.
Instalación
Para usar Albumentations con YOLO26, comienza asegurándote de tener instalados los paquetes necesarios. Si Albumentations no está instalado, las aumentaciones no se aplicarán durante el entrenamiento. Una vez configurado, estarás listo para crear un conjunto de datos aumentado para el entrenamiento, con Albumentations integrado para mejorar tu modelo automáticamente.
# Install the required packages
pip install albumentations ultralyticsPara obtener instrucciones detalladas y mejores prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalación de Ultralytics. Si encuentras alguna dificultad al instalar los paquetes necesarios para YOLO26, consulta nuestra guía de problemas comunes para obtener soluciones y consejos.
Uso
Después de instalar los paquetes necesarios, estarás listo para comenzar a usar Albumentations con YOLO26. Cuando entrenas YOLO26, se aplica automáticamente un conjunto de aumentaciones a través de su integración con Albumentations, lo que facilita la mejora del rendimiento de tu modelo.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Train the model with default augmentations
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 de desenfoque (Blur) en Albumentations aplica un efecto de desenfoque simple a la imagen promediando los valores de píxeles dentro de un área pequeña cuadrada, o kernel. Esto se hace usando la función cv2.blur de OpenCV, que ayuda a reducir el ruido en la imagen, aunque también reduce ligeramente los detalles de la misma.
Aquí están 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, permitiendo solo 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.
Desenfoque mediano
La transformación MedianBlur en Albumentations aplica un efecto de desenfoque mediano a la imagen, lo cual es particularmente útil para reducir el ruido mientras se preservan los bordes. A diferencia de los métodos de desenfoque típicos, MedianBlur utiliza un filtro mediano, que es especialmente efectivo para eliminar el ruido de sal y pimienta mientras mantiene la nitidez alrededor de los bordes.
Aquí están 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, permitiendo solo valores impares para garantizar una alineación adecuada.
-
p: Establece la probabilidad de aplicar el desenfoque mediano. 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 mediano se use con moderación, ayudando al modelo a generalizar al ver ocasionalmente imágenes con ruido reducido y bordes preservados.
La imagen a continuación muestra un ejemplo de esta aumentación aplicada a una imagen.
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 replicando opcionalmente este canal para que coincida con un número especificado de canales de salida. Se pueden usar diferentes métodos para ajustar cómo se calcula el brillo en escala de grises, que van desde el promedio simple hasta técnicas más avanzadas para una percepción realista del contraste y el brillo.
Aquí están 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 a 1, el canal único de escala de grises se replicará para crear una imagen en escala de grises multicanal. Por defecto, se establece en 3, dando 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 según 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, hay un 1% de probabilidad de convertir cada imagen a escala de grises, lo que hace posible una mezcla de imágenes en color y en escala de grises para ayudar a que el modelo generalice mejor.
La imagen a continuación muestra un ejemplo de esta transformación a escala de grises aplicada.
Ecualización de histograma adaptativa limitada por contraste (CLAHE)
La transformación CLAHE en Albumentations aplica la Ecualización de histograma adaptativa limitada por contraste (CLAHE), una técnica que mejora el contraste de la imagen igualando el histograma en regiones localizadas (mosaicos) 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 un contraste inicialmente bajo.
Aquí están 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. Los valores más altos se usan para obtener más contraste, pero también pueden introducir ruido.
-
tile_grid_size: Define el tamaño de la cuadrícula de mosaicos, típicamente 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 obtener una variación ocasional en las imágenes de entrenamiento.
La imagen a continuación muestra un ejemplo de la transformación CLAHE aplicada.
Uso de transformaciones personalizadas de Albumentations
Aunque la integración predeterminada de Albumentations proporciona un conjunto sólido de aumentaciones, es posible que desees personalizar las transformaciones para tu caso de uso específico. Con Ultralytics YOLO26, puedes pasar fácilmente transformaciones de Albumentations personalizadas a través de la API de Python usando el parámetro augmentations.
Cómo definir transformaciones personalizadas
Puedes definir tu propia lista de transformaciones de Albumentations y pasarlas a la función de entrenamiento. Esto reemplaza las transformaciones predeterminadas de Albumentations mientras mantiene activas todas las demás aumentaciones de YOLO (como hsv_h, degrees, mosaic, etc.).
Aquí tienes un ejemplo con transformaciones más avanzadas:
import albumentations as A
from ultralytics import YOLO
# Load model
model = YOLO("yolo26n.pt")
# Define custom transforms with various augmentation techniques
custom_transforms = [
# Blur variations
A.OneOf(
[
A.MotionBlur(blur_limit=7, p=1.0),
A.MedianBlur(blur_limit=7, p=1.0),
A.GaussianBlur(blur_limit=7, p=1.0),
],
p=0.3,
),
# Noise variations
A.OneOf(
[
A.GaussNoise(var_limit=(10.0, 50.0), p=1.0),
A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
],
p=0.2,
),
# Color and contrast adjustments
A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
# Simulate occlusions
A.CoarseDropout(
max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
),
]
# Train with custom transforms
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)Consideraciones importantes
Al usar transformaciones de Albumentations personalizadas, ten en cuenta estos puntos:
- Solo API de Python: Las transformaciones personalizadas solo pueden pasarse a través de la API de Python, no a través de archivos de configuración CLI o YAML.
- Reemplaza los valores predeterminados: Tus transformaciones personalizadas reemplazarán por completo las transformaciones predeterminadas de Albumentations. Otras aumentaciones de YOLO permanecen activas.
- Manejo de cajas delimitadoras: Ultralytics maneja automáticamente los ajustes de las cajas delimitadoras para la mayoría de las transformaciones, pero las transformaciones espaciales complejas pueden requerir pruebas adicionales.
- Rendimiento: Algunas transformaciones son costosas desde el punto de vista computacional. Supervisa la velocidad de entrenamiento y ajústala en consecuencia.
- Compatibilidad de tareas: Las transformaciones personalizadas de Albumentations funcionan con tareas de detección y segmentación, pero no con clasificación (que utiliza una canalización de aumentación diferente).
Casos de uso para transformaciones personalizadas
Diferentes aplicaciones se benefician de diferentes estrategias de aumentación:
- Imágenes médicas: Usa deformaciones elásticas, distorsiones de cuadrícula y patrones de ruido especializados
- Imágenes aéreas/satelitales: Aplica transformaciones que simulen diferentes altitudes, condiciones climáticas y ángulos de iluminación
- Escenarios con poca luz: Enfatiza la adición de ruido y los ajustes de brillo para entrenar modelos robustos para condiciones de iluminación desafiantes
- Inspección industrial: Agrega variaciones de textura y defectos simulados para aplicaciones de control de calidad
Para obtener una lista completa de las transformaciones disponibles y sus parámetros, visita la documentación de Albumentations.
Para obtener ejemplos más detallados y mejores prácticas sobre el uso de transformaciones de Albumentations personalizadas con YOLO26, consulta la guía de aumentación de datos de YOLO.
Sigue aprendiendo sobre Albumentations
Si estás interesado en aprender más sobre Albumentations, consulta los siguientes recursos para obtener instrucciones y ejemplos más detallados:
-
Documentación de Albumentations: La documentación oficial proporciona una gama completa de transformaciones compatibles y técnicas de uso avanzadas.
-
Guía de Albumentations de Ultralytics: Echa un vistazo más de cerca a los detalles de la función que facilita esta integración.
-
Repositorio de GitHub de Albumentations: El repositorio incluye ejemplos, evaluaciones comparativas y debates para ayudarte a comenzar a personalizar las aumentaciones.
Puntos clave
En esta guía, exploramos los aspectos clave de Albumentations, una gran biblioteca de Python para la aumentación de imágenes. Discutimos su amplia gama de transformaciones, su rendimiento optimizado y cómo puedes usarla en tu próximo proyecto YOLO26.
Además, si deseas saber más sobre otras integraciones de Ultralytics YOLO26, visita nuestra página de guía de integración. Encontrarás recursos valiosos e ideas allí.
Preguntas frecuentes
¿Cómo puedo integrar Albumentations con YOLO26 para mejorar la aumentación de datos?
Albumentations se integra a la perfección con YOLO26 y se aplica automáticamente durante el entrenamiento si tienes el paquete instalado. Aquí tienes cómo empezar:
# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO
# Load and train model with automatic augmentations
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=100)La integración incluye aumentaciones optimizadas como desenfoque, desenfoque mediano, conversión a escala de grises y CLAHE con probabilidades cuidadosamente ajustadas para mejorar el rendimiento del modelo.
¿Cuáles son los beneficios clave de usar Albumentations sobre otras bibliotecas de aumentación?
Albumentations destaca por varias razones:
- Rendimiento: Construido sobre OpenCV y NumPy con optimización SIMD para una velocidad superior
- Flexibilidad: Admite más de 70 transformaciones en aumentaciones a nivel de píxel, nivel espacial y nivel de mezcla
- Compatibilidad: Funciona a la perfección con marcos populares como PyTorch y TensorFlow
- Fiabilidad: Un extenso conjunto de pruebas evita la corrupción silenciosa de datos
- Facilidad de uso: Una única API unificada para todos los tipos de aumentación
¿Qué tipos de tareas de visión artificial pueden beneficiarse de la aumentación de 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 aumentaciones de color y geométricas
- Estimación de postura: Ayuda a los modelos a adaptarse a diferentes puntos de vista y condiciones de iluminación
Las diversas opciones de aumentación de la biblioteca la hacen valiosa para cualquier tarea de visión que requiera un rendimiento del modelo robusto.