Mejora tu conjunto de datos para entrenar YOLO26 con Albumentations#
Cuando creas modelos de visión por ordenador, la calidad y variedad de tus datos de entrenamiento pueden influir mucho en el rendimiento de tu modelo. Albumentations ofrece una forma rápida, flexible y eficiente de aplicar una amplia variedad de transformaciones de imagen que pueden mejorar la capacidad de tu modelo para adaptarse a situaciones 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 mejorar 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 aumento de datos y hacer que tus [proyectos de YOLO26](https://ultralytics-translation-1.invalid sean aún más eficaces. ¡Empecemos!
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 por ordenador. Creada pensando en el rendimiento y la flexibilidad, admite muchas técnicas de aumento diferentes, desde transformaciones sencillas como rotaciones y giros 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.
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 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 opción excelente para el aumento, tanto si trabajas con conjuntos de datos pequeños como con tareas de visión por ordenador a gran escala. Garantiza un procesamiento rápido y eficiente, reduciendo el tiempo dedicado a preparar los datos. Al mismo tiempo, ayuda a mejorar el rendimiento del modelo, haciendo que tus modelos sean más eficaces en aplicaciones del mundo real.
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 por ordenador. Estas son algunas de sus características principales:
- Amplia variedad de transformaciones: Albumentations ofrece más de 70 transformaciones diferentes, incluidos cambios geométricos (por ejemplo, rotación y giro), ajustes de color (por ejemplo, brillo y contraste) y adición de ruido (por ejemplo, ruido gaussiano). Disponer de múltiples opciones permite crear conjuntos de datos de entrenamiento muy diversos y robustos.
-
Optimización de alto rendimiento: Basado en OpenCV y NumPy, Albumentations utiliza técnicas avanzadas de optimización como SIMD (instrucción única, múltiples datos), que procesa varios puntos de datos simultáneamente para acelerar el procesamiento. Gestiona rápidamente grandes conjuntos de datos, lo que lo 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 transformaciones a nivel de mezcla. Las transformaciones a nivel de píxel solo afectan a las imágenes de entrada sin modificar las máscaras, las cajas delimitadoras ni los puntos clave. En cambio, tanto la imagen como sus elementos, como las máscaras y las cajas delimitadoras, se transforman mediante 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 las pruebas de rendimiento: En las pruebas de rendimiento, Albumentations supera sistemáticamente a otras bibliotecas, especialmente con conjuntos de datos grandes.
¿Por qué deberías usar Albumentations en tus proyectos de IA de visión?#
En lo que respecta al aumento de imágenes, Albumentations destaca como una herramienta fiable para tareas de visión por ordenador. Estas son algunas razones clave por las que deberías considerar su uso en tus proyectos de IA de visión:
-
API fácil de usar: Albumentations proporciona una API única y sencilla para aplicar una amplia variedad de aumentos a imágenes, máscaras, cajas delimitadoras y puntos clave. Está diseñada para adaptarse fácilmente a distintos conjuntos de datos, haciendo que la preparación de datos sea más sencilla y eficiente.
-
Pruebas rigurosas de errores: Los errores en la canalización de aumento pueden corromper silenciosamente los datos de entrada, pasando a menudo desapercibidos y degradando finalmente el rendimiento del modelo. Albumentations aborda este problema con un conjunto exhaustivo de pruebas que ayuda a detectar los errores al principio del desarrollo.
-
Extensibilidad: Albumentations permite añadir fácilmente nuevos aumentos y utilizarlos en canalizaciones de visión por ordenador mediante una única interfaz, junto con las transformaciones integradas.
Cómo usar Albumentations para aumentar los datos de entrenamiento de YOLO26#
Ahora que hemos explicado qué es Albumentations y qué puede hacer, veamos cómo usarlo para aumentar tus datos al entrenar modelos 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, empieza por asegurarte de que tienes instalados los paquetes necesarios. Si Albumentations no está instalado, los aumentos no se aplicarán durante el entrenamiento. Una vez configurado, podrás crear un conjunto de datos aumentado para el entrenamiento, con Albumentations integrado para mejorar automáticamente tu modelo.
# Install the required packages
pip install albumentations ultralyticsPara consultar instrucciones detalladas y buenas prácticas relacionadas con el proceso de instalación, revisa nuestra guía de instalación de Ultralytics. Si encuentras dificultades al instalar los paquetes necesarios para YOLO26, consulta nuestra guía de problemas comunes para obtener 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#
Después de instalar los paquetes necesarios, ya puedes empezar a usar Albumentations con YOLO26. Cuando entrenas YOLO26, se aplica automáticamente un conjunto de aumentos mediante 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, examinaremos más detenidamente los aumentos específicos que se aplican durante el entrenamiento.
Desenfoque#
La transformación Blur de Albumentations aplica un efecto de desenfoque sencillo a la imagen calculando la media de los valores de píxel dentro de un área cuadrada pequeña, o kernel. Esto se hace mediante 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 utilizados en esta integración:
-
blur_limit: Controla el intervalo de tamaño del efecto de desenfoque. El intervalo predeterminado es (3, 7), lo que significa que el tamaño del kernel del desenfoque puede variar entre 3 y 7 píxeles, permitiendo únicamente 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 aplicar ocasionalmente el efecto de desenfoque, introduciendo 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 efecto de desenfoque mediano a la imagen, especialmente útil para reducir el ruido conservando los bordes. A diferencia de los métodos de desenfoque habituales, MedianBlur utiliza un filtro de mediana, particularmente eficaz para eliminar el ruido de sal y pimienta y mantener la nitidez 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 intervalo de (3, 7), lo que significa que el tamaño del kernel del desenfoque se elige aleatoriamente entre 3 y 7 píxeles, permitiendo únicamente valores impares para garantizar una alineación correcta.
-
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 garantiza que el desenfoque mediano se utilice con moderación, ayudando 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, 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 utilizar distintos métodos para ajustar cómo se calcula el brillo de la escala de grises, desde un promedio sencillo hasta técnicas más avanzadas para obtener 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 de la imagen de salida. Si este valor es superior a 1, el único canal de escala de grises se replicará para crear una imagen multicanal en escala de grises. De forma predeterminada, se establece en 3, lo que produce 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 proporciona 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 distintas necesidades de velocidad, énfasis en el brillo o conservació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 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 limitada por contraste (CLAHE)#
La transformación CLAHE de 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 (teselas) en lugar de hacerlo en toda la imagen. CLAHE produce un efecto de mejora equilibrado y evita el contraste excesivamente amplificado que puede generar la ecualización de histograma estándar, especialmente en zonas con poco contraste inicial.
Estos son los parámetros y valores utilizados en esta integración:
-
clip_limit: Controla el intervalo de mejora del contraste. Establecido de forma predeterminada en un intervalo de (1, 4), determina el contraste máximo permitido en cada tesela. 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 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. Los tamaños de tesela más pequeños proporcionan ajustes más localizados, mientras que los más grandes crean efectos más próximos 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, garantizando que los ajustes de contraste se apliquen con moderación para aportar 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 de Albumentations proporciona un conjunto sólido de aumentos, es posible que quieras personalizar las transformaciones para tu caso de uso específico. 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, pero mantiene activas todas las demás transformaciones de aumento 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(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,
),
# 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(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=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 personalizadas de Albumentations, ten en cuenta estos puntos:
- Configuración: Construye objetos de transformación personalizados a través de la API de Python. Las transformaciones serializadas también se pueden pasar a través de la CLI o de archivos de configuración YAML, incluso al reanudar el entrenamiento.
- Sustituye las predeterminadas: Tus transformaciones personalizadas sustituirán por completo las transformaciones predeterminadas de Albumentations. Las demás transformaciones de aumento de YOLO seguirán activas.
- Gestión de Etiquetas: Las transformaciones espaciales, incluidas las anidadas en
A.OneOfoA.Compose, mueven las cajas delimitadoras, los polígonos, los puntos clave y las máscaras de profundidad o semánticas junto con la imagen.A.RandomGridShuffleno puede preservar la topología de polígonos o puntos clave y genera un error en las muestras de segmentación, pose y OBB. - Rendimiento: Algunas transformaciones requieren muchos recursos computacionales. Supervisa la velocidad de entrenamiento y ajústala según sea necesario.
- Compatibilidad de 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 tubería de aumento diferente).
Casos de uso de las transformaciones personalizadas#
Las distintas aplicaciones se benefician de diferentes estrategias de aumento:
- Imágenes médicas: Usa deformaciones elásticas, distorsiones de cuadrícula y patrones de ruido especializados.
- Imágenes aéreas o por satélite: Aplica transformaciones que simulen distintas altitudes, condiciones meteorológicas y ángulos de iluminación.
- Situaciones con poca luz: Da prioridad a la adición de ruido y a los ajustes de brillo para entrenar modelos robustos en condiciones de iluminación difíciles.
- Inspección industrial: Añade variaciones de textura y defectos simulados para aplicaciones de control de calidad.
Para consultar la lista completa de transformaciones disponibles y sus parámetros, visita la documentación de Albumentations.
Para ver 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 te interesa saber 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 lista completa de las transformaciones compatibles y técnicas de uso avanzadas.
-
Guía de Albumentations de Ultralytics: Conoce con más detalle 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 analizado su amplia variedad de transformaciones, su rendimiento optimizado y cómo puedes usarla en tu próximo proyecto de YOLO26.
Además, si quieres obtener más información sobre otras integraciones de Ultralytics YOLO26, visita nuestra página de la guía de integraciones. Allí encontrarás recursos e información valiosos.
Preguntas frecuentes#
Albumentations se integra sin problemas con YOLO26 y se aplica automáticamente durante el entrenamiento si tienes instalado el paquete. Estos son los pasos para 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 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: Basado en OpenCV y NumPy, con optimización SIMD para ofrecer una velocidad superior
- Flexibilidad: Admite más de 70 transformaciones entre aumentos a nivel de píxel, espacial y de mezcla
- Compatibilidad: Funciona sin problemas con marcos populares como PyTorch y TensorFlow
- Fiabilidad: Un conjunto exhaustivo de pruebas evita la corrupción silenciosa de los datos
- Facilidad de uso: Una única API unificada para todos los tipos de aumento
Albumentations mejora diversas tareas de visión por ordenador, 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 transformaciones diversas
- Clasificación: Aumenta la capacidad de generalización del modelo con aumentos de color y geométricos
- Estimación de poses: Ayuda a los modelos a adaptarse a distintos 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.