Mejora tu conjunto de datos para entrenar YOLO26 con Albumentations#
Al crear modelos de visión artificial, la calidad y variedad de los datos de entrenamiento pueden influir mucho en el rendimiento del modelo. Albumentations ofrece una forma rápida, flexible y eficaz de aplicar una amplia variedad de transformaciones de imagen que pueden mejorar la capacidad del modelo para adaptarse a situaciones reales. Se integra fácilmente con Ultralytics YOLO26 y puede ayudarte a crear conjuntos de datos sólidos para tareas de detección de objetos, segmentación y clasificación.
Con Albumentations, puedes enriquecer los datos de entrenamiento de YOLO26 mediante técnicas como las transformaciones geométricas y los ajustes de color. En este artículo veremos cómo Albumentations puede mejorar el proceso de aumento de datos y hacer que tus proyectos con YOLO26 tengan aún más impacto. ¡Vamos allá!
Albumentations para el aumento de imágenes#
Albumentations es una biblioteca de código abierto para el aumento de imágenes, creada en junio de 2018. Está diseñada para simplificar y acelerar el proceso de aumento de imágenes en visión artificial. Creada pensando en el rendimiento y la flexibilidad, admite diversas técnicas de aumento, desde transformaciones sencillas 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 variados y completos para tareas como la clasificación de imágenes, la detección de objetos y la segmentación.
Puedes usar Albumentations para aplicar fácilmente aumentos a imágenes, máscaras de segmentación, cuadros delimitadores y puntos clave, y asegurarte de que todos los elementos del conjunto de datos se transformen a la vez. Funciona a la perfección con marcos de aprendizaje profundo populares como PyTorch y TensorFlow, por lo que resulta accesible para una amplia variedad de proyectos.
Además, Albumentations es una excelente opción para el aumento de datos, tanto si trabajas con conjuntos de datos pequeños como si abordas tareas de visión artificial a gran escala. Garantiza un procesamiento rápido y eficaz, y reduce el tiempo dedicado a preparar los datos. Al mismo tiempo, ayuda a mejorar el rendimiento del modelo, lo que hace que tus modelos sean más eficaces en aplicaciones reales.
Características principales de Albumentations#
Albumentations ofrece muchas funciones útiles que simplifican los aumentos de imagen complejos para una amplia variedad de aplicaciones de visión artificial. Estas son algunas de sus características principales:
- Amplia variedad de transformaciones: Albumentations ofrece más de 70 transformaciones distintas, entre ellas cambios geométricos (por ejemplo, rotación y volteo), ajustes de color (por ejemplo, brillo y contraste) y adición de ruido (por ejemplo, ruido gaussiano). Esta variedad de opciones permite crear conjuntos de datos de entrenamiento muy diversos y robustos.
-
Optimización de alto rendimiento: Albumentations, basada en OpenCV y NumPy, utiliza técnicas de optimización avanzadas como SIMD (datos múltiples de instrucción única), que procesa varios puntos de datos a la vez para acelerar el procesamiento. Gestiona rápidamente conjuntos de datos grandes, por lo que es 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 espaciales y transformaciones de mezcla. Las transformaciones a nivel de píxel solo afectan a las imágenes de entrada, sin modificar las máscaras, los cuadros delimitadores ni los puntos clave. En cambio, las transformaciones espaciales modifican tanto la imagen como sus elementos, como las máscaras y los cuadros delimitadores. Además, las transformaciones de mezcla ofrecen una forma exclusiva de aumentar los datos, ya que combinan varias imágenes en una.

- Resultados de la evaluación comparativa: En las evaluaciones comparativas, Albumentations supera sistemáticamente a otras bibliotecas, especialmente con conjuntos de datos grandes.
¿Por qué deberías usar Albumentations en tus proyectos de IA visual?#
En lo que respecta al aumento de imágenes, Albumentations destaca como una herramienta fiable para tareas de visión artificial. Estas son algunas razones clave para plantearte usarlo en tus proyectos de IA visual:
-
API fácil de usar: Albumentations proporciona una API única y sencilla para aplicar una amplia variedad de aumentos a imágenes, máscaras, cuadros delimitadores y puntos clave. Está diseñada para adaptarse fácilmente a distintos conjuntos de datos, lo que simplifica y agiliza la preparación de datos.
-
Pruebas rigurosas de errores: Los errores en el flujo de aumento pueden corromper silenciosamente los datos de entrada. A menudo pasan desapercibidos, pero acaban reduciendo el rendimiento del modelo. Albumentations aborda este problema con un conjunto exhaustivo de pruebas que ayuda a detectar errores al principio del desarrollo.
-
Extensibilidad: Albumentations permite añadir fácilmente nuevos aumentos y utilizarlos en flujos de visión artificial a través de una única interfaz, junto con las transformaciones integradas.
Cómo usar Albumentations para aumentar datos en el entrenamiento de YOLO26#
Ahora que hemos visto qué es Albumentations y qué puede hacer, veamos cómo usarlo para aumentar tus datos al entrenar modelos YOLO26. Configurarlo es fácil, 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, primero asegúrate de tener instalados los paquetes necesarios. Si Albumentations no está instalado, no se aplicarán los aumentos durante el entrenamiento. Una vez configurado, podrás crear un conjunto de datos aumentado para el entrenamiento; Albumentations se integrará para mejorar tu modelo automáticamente.
# Install the required packages
pip install albumentations ultralyticsPara obtener instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, consulta nuestra guía de instalación de Ultralytics. Si tienes dificultades al instalar los paquetes necesarios para YOLO26, consulta nuestra guía sobre problemas habituales, donde encontrarás soluciones y consejos.
Los ejemplos de transformaciones personalizadas de esta página requieren Albumentations 1.4.22 o posterior y, por tanto, Python 3.9 o posterior.
Uso#
Una vez instalados los paquetes necesarios, ya puedes empezar a usar Albumentations con YOLO26. Al entrenar YOLO26, se aplica automáticamente un conjunto de aumentos gracias a su integración con Albumentations, lo que facilita mejorar el rendimiento de tu modelo.
from ultralytics import YOLO
# Cargar un modelo preentrenado
model = YOLO("yolo26n.pt")
# Entrena el modelo con los aumentos predeterminados
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)A continuación, examinaremos más detenidamente los aumentos concretos que se aplican durante el entrenamiento.
Desenfoque#
La transformación Blur de Albumentations aplica un efecto de desenfoque sencillo a la imagen promediando los valores de los píxeles en una pequeña zona cuadrada, o núcleo. Para ello, utiliza la función cv2.blur de OpenCV, que ayuda a reducir el ruido de la imagen, aunque también reduce ligeramente sus detalles.
Estos son los parámetros y valores que se utilizan en esta integración:
-
blur_limit: Controla el intervalo de tamaños del efecto de desenfoque. El intervalo predeterminado es (3, 7), lo que significa que el tamaño del núcleo puede variar entre 3 y 7 píxeles; solo se permiten números impares para mantener el desenfoque centrado.
-
p: La probabilidad de aplicar el desenfoque. En esta integración, p=0.01, por lo que hay un 1 % de probabilidades de que se aplique a cada imagen. Esta probabilidad baja permite aplicar desenfoques de vez en cuando, lo que introduce cierta variación para ayudar al modelo a generalizar sin desenfocar demasiado las imágenes.
Desenfoque mediano#
La transformación MedianBlur de Albumentations aplica un desenfoque mediano a la imagen, especialmente útil para reducir el ruido sin perder los bordes. A diferencia de los métodos de desenfoque habituales, MedianBlur utiliza un filtro de mediana, especialmente eficaz para eliminar el ruido de sal y pimienta y mantener la nitidez de los bordes.
Estos son los parámetros y valores que se utilizan en esta integración:
-
blur_limit: Este parámetro controla el tamaño máximo del núcleo de desenfoque. En esta integración, el intervalo predeterminado es (3, 7), por lo que el tamaño del núcleo se elige aleatoriamente entre 3 y 7 píxeles; solo se permiten valores impares para garantizar una alineación correcta.
-
p: Define la probabilidad de aplicar el desenfoque mediano. En este caso, p=0.01, por lo que hay un 1 % de probabilidades de que la transformación se aplique a cada imagen. Esta probabilidad baja garantiza que el desenfoque mediano se use con moderación y ayuda al modelo a generalizar, al mostrarle ocasionalmente imágenes con menos ruido y bordes conservados.
La imagen siguiente muestra un ejemplo de este aumento aplicado a una imagen.
Escala de grises#
La transformación ToGray de Albumentations convierte una imagen a escala de grises, la reduce a un formato de un solo canal y, de forma opcional, replica ese canal para ajustarlo al número de canales de salida especificado. Se pueden usar distintos métodos para calcular el brillo de la escala de grises, desde un promedio sencillo hasta técnicas más avanzadas que representan de forma realista el contraste y el brillo percibidos.
Estos son los parámetros y valores que se utilizan en esta integración:
-
num_output_channels: Define el número de canales de la imagen de salida. Si este valor es superior a 1, el único canal en escala de grises se replica para crear una imagen multicanal en escala de grises. El valor predeterminado es 3, lo que genera 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 ajusta estrechamente a la percepción humana y produce un efecto de escala de grises natural. Otras opciones, como "from_lab", "desaturation", "average", "max" y "pca", ofrecen formas alternativas de crear imágenes en escala de grises según las necesidades de velocidad, énfasis en el brillo o conservación de los 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 probabilidades de convertir cada imagen a escala de grises, lo que permite combinar imágenes en color y en escala de grises para ayudar al modelo a generalizar mejor.
La imagen siguiente muestra un ejemplo de esta transformación a escala de grises aplicada.
Ecualización adaptativa del histograma con contraste limitado (CLAHE)#
La transformación CLAHE de Albumentations aplica la ecualización adaptativa del histograma con contraste limitado (CLAHE), una técnica que mejora el contraste de la imagen al ecualizar el histograma en regiones locales (teselas) en lugar de hacerlo en toda la imagen. CLAHE produce una mejora equilibrada y evita el aumento excesivo del contraste que puede provocar la ecualización estándar del histograma, especialmente en zonas cuyo contraste inicial es bajo.
Estos son los parámetros y valores que se utilizan en esta integración:
-
clip_limit: Controla el intervalo de mejora del contraste. El intervalo predeterminado es (1, 4) y determina el contraste máximo permitido en cada tesela. 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 teselas, normalmente como (filas, columnas). El valor predeterminado es (8, 8), lo que significa que la imagen se divide en una cuadrícula de 8x8. Las teselas más pequeñas permiten ajustes más localizados, mientras que las más grandes generan efectos más parecidos a la ecualización global.
-
p: La probabilidad de aplicar CLAHE. En este caso, p=0.01, por lo que el efecto de mejora se aplica solo el 1 % de las veces. Así, los ajustes de contraste se aplican con moderación y aportan una variación ocasional a las imágenes de entrenamiento.
La imagen siguiente muestra un ejemplo de la transformación CLAHE aplicada.
Uso de transformaciones personalizadas de Albumentations#
Aunque la integración predeterminada con Albumentations ofrece un sólido conjunto de aumentos, quizá quieras personalizar las transformaciones para tu caso de uso concreto. Con Ultralytics YOLO26, puedes pasar fácilmente transformaciones personalizadas de Albumentations mediante la API de Python usando el parámetro augmentations. Los ejemplos de esta sección requieren Albumentations 1.4.22 o posterior.
Cómo definir transformaciones personalizadas#
Puedes definir tu propia lista de transformaciones de Albumentations y pasarla a la función de entrenamiento. Esto sustituye las transformaciones predeterminadas de Albumentations y mantiene activas 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
# Cargar el modelo
model = YOLO("yolo26n.pt")
# Definir transformaciones personalizadas con varias técnicas de aumento
custom_transforms = [
# Variaciones de desenfoque
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,
),
# Variaciones de ruido
A.OneOf(
[
A.GaussNoise(std_range=(0.0124, 0.0277), p=1.0),
A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
],
p=0.2,
),
# Ajustes de color y contraste
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),
# Simular oclusiones
A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]
# Entrenar con transformaciones personalizadas
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)Consideraciones importantes#
Ten en cuenta estos aspectos al utilizar transformaciones personalizadas de Albumentations:
- Configuración: Crea objetos de transformación personalizados mediante la API de Python. También puedes pasar transformaciones serializadas a través de la CLI o de archivos de configuración YAML, incluso al reanudar el entrenamiento.
- Sustituyen los valores predeterminados: Tus transformaciones personalizadas sustituirán por completo las transformaciones predeterminadas de Albumentations. Las demás aumentaciones de YOLO seguirán activas.
- Gestión de etiquetas: Las transformaciones espaciales, incluidas las anidadas en
A.OneOfoA.Compose, desplazan los cuadros delimitadores, los polígonos, los puntos clave y las máscaras de profundidad o semánticas junto con la imagen.A.RandomGridShuffleno puede conservar la topología de polígonos ni de puntos clave y genera un error con muestras de segmentación, pose y OBB. - Rendimiento: Algunas transformaciones tienen un coste computacional elevado. Supervisa la velocidad de entrenamiento y ajústala según corresponda.
- Compatibilidad con tareas: Las transformaciones personalizadas de Albumentations funcionan con el entrenamiento de detección, segmentación, segmentación semántica, profundidad, pose y OBB, pero no con la clasificación (que utiliza una canalización de aumentos distinta).
Casos de uso de las transformaciones personalizadas#
Cada aplicación puede beneficiarse de distintas estrategias de aumento:
- Imágenes médicas: Utiliza deformaciones elásticas, distorsiones de cuadrícula y patrones de ruido especializados
- Imágenes aéreas y por satélite: Aplica transformaciones que simulen distintas altitudes, condiciones meteorológicas y ángulos de iluminación
- Escenarios con poca luz: Da prioridad a la adición de ruido y a los ajustes de brillo para entrenar modelos robustos ante condiciones de iluminación difíciles
- Inspección industrial: Añade variaciones de textura y defectos simulados para aplicaciones de control de calidad
Para ver la lista completa de transformaciones disponibles y sus parámetros, consulta la documentación de Albumentations.
Para consultar ejemplos más detallados y buenas prácticas sobre el uso de transformaciones personalizadas de Albumentations con YOLO26, consulta la guía de aumento de datos de YOLO.
Sigue aprendiendo sobre Albumentations#
Si quieres aprender más sobre Albumentations, consulta los siguientes recursos para encontrar instrucciones y ejemplos más detallados:
-
Documentación de Albumentations: La documentación oficial ofrece una amplia variedad de transformaciones compatibles y técnicas de uso avanzado.
-
Guía de Albumentations de Ultralytics: Consulta más de cerca los detalles de la función que facilita esta integración.
-
Repositorio de Albumentations en GitHub: El repositorio incluye ejemplos, pruebas de rendimiento y debates que te ayudarán a empezar a personalizar los aumentos.
Conclusiones clave#
En esta guía hemos explorado los aspectos clave de Albumentations, una excelente biblioteca de Python para el aumento de imágenes. Hemos repasado su amplia variedad de transformaciones, su rendimiento optimizado y cómo puedes utilizarla en tu próximo proyecto de YOLO26.
Además, si quieres saber más sobre otras integraciones de Ultralytics YOLO26, visita nuestra página de la guía de integraciones. Allí encontrarás recursos e información útiles.
Preguntas frecuentes#
Albumentations se integra a la perfección con YOLO26 y se aplica automáticamente durante el entrenamiento si tienes instalado el paquete. Así puedes empezar:
# Instalar los paquetes necesarios # !pip install albumentations ultralytics from ultralytics import YOLO # Cargar y entrenar el modelo con aumentos automáticos model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=100)La integración incluye aumentos optimizados, como desenfoque, desenfoque mediano, conversión a escala de grises y CLAHE, con probabilidades ajustadas cuidadosamente para mejorar el rendimiento del modelo.
Albumentations destaca por varios motivos:
- Rendimiento: Basada en OpenCV y NumPy, con optimización SIMD para ofrecer una velocidad superior
- Flexibilidad: Compatible con más de 70 transformaciones de aumento a nivel de píxel, espacial y de mezcla
- Compatibilidad: Funciona a la perfección con marcos de trabajo populares como PyTorch y TensorFlow
- Fiabilidad: Un amplio conjunto de pruebas evita la corrupción silenciosa de datos
- Facilidad de uso: Una API unificada para todos los tipos de aumento
Albumentations mejora distintas tareas de visión artificial, entre ellas:
- Detección de objetos: Mejora la robustez del modelo frente a variaciones de iluminación, escala y orientación
- Segmentación de instancias: Mejora la precisión de la predicción de máscaras mediante diversas transformaciones
- Estimación de pose: Ayuda a los modelos a adaptarse a distintos puntos de vista y condiciones de iluminación
- Detección de cuadros delimitadores orientados: Añade variaciones de color y ruido a imágenes aéreas y de objetos girados
Las diversas opciones de aumento de la biblioteca la hacen muy útil para tareas de visión que requieren un rendimiento robusto del modelo. En Ultralytics YOLO26, el entrenamiento de clasificación utiliza su propia canalización de aumentos basada en torchvision y no aplica transformaciones de Albumentations.