Ir al contenido

Aumento de datos mediante Ultralytics YOLO

Ejemplo de aumento de imágenes

Introducción

El aumento de datos es una técnica crucial en visión por ordenador que amplía artificialmente el conjunto de datos de entrenamiento aplicando diversas transformaciones a las imágenes existentes. Al entrenar modelos de aprendizaje profundo como Ultralytics YOLO, el aumento de datos ayuda a mejorar la robustez del modelo, reduce el sobreajuste y mejora la generalización a escenarios del mundo real.

Por qué es importante aumentar los datos

El aumento de datos sirve para múltiples propósitos críticos en el entrenamiento de modelos de visión por ordenador:

  • Conjunto de datos ampliado: Al crear variaciones de imágenes existentes, puede aumentar eficazmente el tamaño de su conjunto de datos de formación sin recopilar nuevos datos.
  • Generalización mejorada: Los modelos aprenden a reconocer objetos en diversas condiciones, lo que los hace más robustos en aplicaciones del mundo real.
  • Reducción del sobreajuste: Al introducir variabilidad en los datos de entrenamiento, es menos probable que los modelos memoricen características específicas de las imágenes.
  • Mayor rendimiento: Los modelos entrenados con el aumento adecuado suelen lograr una mayor precisión en los conjuntos de validación y prueba.

La implementación de Ultralytics YOLO proporciona un conjunto completo de técnicas de aumento, cada una de las cuales sirve para fines específicos y contribuye al rendimiento del modelo de diferentes maneras. Esta guía explorará en detalle cada parámetro de aumento, ayudándole a comprender cuándo y cómo utilizarlos eficazmente en sus proyectos.

Ejemplos de configuración

Puede personalizar cada parámetro utilizando la API Python , la interfaz de línea de comandosCLI) o un archivo de configuración. A continuación se muestran ejemplos de cómo configurar el aumento de datos en cada método.

Ejemplos de configuración

from ultralytics import YOLO

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

# Training with custom augmentation parameters
model.train(data="coco.yaml", epochs=100, hsv_h=0.03, hsv_s=0.6, hsv_v=0.5)

# Training without any augmentations (disabled values omitted for clarity)
model.train(
    data="coco.yaml",
    epochs=100,
    hsv_h=0.0,
    hsv_s=0.0,
    hsv_v=0.0,
    translate=0.0,
    scale=0.0,
    fliplr=0.0,
    mosaic=0.0,
    erasing=0.0,
    auto_augment=None,
)
# Training with custom augmentation parameters
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 hsv_h=0.03 hsv_s=0.6 hsv_v=0.5

Utilizar un archivo de configuración

Puede definir todos los parámetros de formación, incluidos los aumentos, en un archivo de configuración YAML (por ejemplo, train_custom.yaml). En mode sólo es necesario cuando se utiliza la CLI. Este nuevo archivo YAML sustituirá a el predeterminado situado en el ultralytics paquete.

# train_custom.yaml
# 'mode' is required only for CLI usage
mode: train
data: coco8.yaml
model: yolo11n.pt
epochs: 100
hsv_h: 0.03
hsv_s: 0.6
hsv_v: 0.5

A continuación, inicie la formación con la API de Python :

Ejemplo de tren

from ultralytics import YOLO

# Load a COCO-pretrained YOLO11n model
model = YOLO("yolo11n.pt")

# Train the model with custom configuration
model.train(cfg="train_custom.yaml")
# Train the model with custom configuration
yolo detect train model="yolo11n.pt" cfg=train_custom.yaml

Aumentos del espacio de color

Ajuste del tono (hsv_h)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.015
  • Utilización: Cambia los colores de la imagen conservando sus relaciones. En hsv_h define la magnitud del desplazamiento, con el ajuste final elegido aleatoriamente entre -hsv_h y hsv_h. Por ejemplo, con hsv_h=0.3el turno se selecciona aleatoriamente dentro de-0.3 a 0.3. Para valores superiores a 0.5el cambio de tonalidad envuelve la rueda de color, por eso los aumentos tienen el mismo aspecto entre 0.5 y -0.5.
  • Finalidad: Resulta especialmente útil en exteriores, donde las condiciones de iluminación pueden afectar drásticamente al aspecto de los objetos. Por ejemplo, un plátano puede parecer más amarillo a plena luz del sol, pero más verdoso en interiores.
  • Aplicación deUltralytics: RandomHSV
-0.5 -0.25 0.0 0.25 0.5
hsv_h_-0.5_aumento hsv_h_-0.25_augmentation aumento_identidad hsv_h_0.25_aumento hsv_h_-0.5_aumento

Ajuste de la saturación (hsv_s)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.7
  • Utilización: Modifica la intensidad de los colores de la imagen. La dirección hsv_h define la magnitud del desplazamiento, con el ajuste final elegido aleatoriamente entre -hsv_s y hsv_s. Por ejemplo, con hsv_s=0.7la intensidad se selecciona aleatoriamente dentro de-0.7 a 0.7.
  • Finalidad: Ayuda a los modelos a adaptarse a las distintas condiciones meteorológicas y a la configuración de la cámara. Por ejemplo, una señal de tráfico roja puede parecer muy viva en un día soleado, pero apagada y descolorida en condiciones de niebla.
  • Aplicación deUltralytics: RandomHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_s_-1_aumento hsv_s_-0.5_aumento aumento_identidad hsv_s_0.5_aumento hsv_s_1_aumento

Ajuste del brillo (hsv_v)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.4
  • Utilización: Cambia el brillo de la imagen. En hsv_v define la magnitud del desplazamiento, con el ajuste final elegido aleatoriamente entre -hsv_v y hsv_v. Por ejemplo, con hsv_v=0.4la intensidad se selecciona aleatoriamente dentro de-0.4 a 0.4.
  • Finalidad: Esencial para entrenar modelos que deben funcionar en diferentes condiciones de iluminación. Por ejemplo, una manzana roja puede parecer brillante a la luz del sol, pero mucho más oscura a la sombra.
  • Aplicación deUltralytics: RandomHSV
-1.0 -0.5 0.0 0.5 1.0
hsv_v_-1_aumento hsv_v_-0.5_aumento aumento_identidad hsv_v_0.5_aumento hsv_v_1_aumento

Transformaciones geométricas

Rotación (degrees)

  • Gama: 0.0 a 180
  • Por defecto: 0.0
  • Utilización: Rota imágenes aleatoriamente dentro del rango especificado. La dirección degrees El hiperparámetro define el ángulo de rotación, con el ajuste final elegido aleatoriamente entre -degrees y degrees. Por ejemplo, con degrees=10.0la rotación se selecciona aleatoriamente dentro de-10.0 a 10.0.
  • Finalidad: Crucial para aplicaciones en las que los objetos pueden aparecer en distintas orientaciones. Por ejemplo, en las imágenes aéreas de drones, los vehículos pueden estar orientados en cualquier dirección, lo que exige que los modelos reconozcan los objetos independientemente de su rotación.
  • Aplicación deUltralytics: RandomPerspective
-180 -90 0.0 90 180
grados_-180_aumentación grados_-90_aumentación aumento_identidad grados_90_aumento grados_180_aumentación

Traducción (translate)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.1
  • Utilización: Desplaza las imágenes horizontal y verticalmente una fracción aleatoria del tamaño de la imagen. La dirección translate El hiperparámetro define la magnitud del desplazamiento, con el ajuste final elegido aleatoriamente dos veces (una para cada eje) dentro del intervalo -translate y translate. Por ejemplo, con translate=0.5la traducción se selecciona aleatoriamente dentro de-0.5 a 0.5 en el eje x, y se selecciona otro valor aleatorio independiente dentro del mismo intervalo en el eje y.
  • Finalidad: Ayuda a los modelos a aprender a detectar objetos parcialmente visibles y mejora la solidez frente a la posición del objeto. Por ejemplo, en las aplicaciones de evaluación de daños en vehículos, las piezas del coche pueden aparecer total o parcialmente en el encuadre en función de la posición y la distancia del fotógrafo; el aumento de la traslación enseñará al modelo a reconocer estas características independientemente de su integridad o posición.
  • Aplicación deUltralytics: RandomPerspective
  • Nota: Para simplificar, las traducciones que se aplican a continuación son las mismas para ambos casos x y y ejes. Valores -1.0 y 1.0no se muestran, ya que trasladarían la imagen completamente fuera del encuadre.
-0.5 -0.25 0.0 0.25 0.5
translate_-0.5_augmentation translate_-0.25_augmentation aumento_identidad translate_0.25_augmentation translate_0.5_augmentation

Escala (scale)

  • Gama: ≥0.0
  • Por defecto: 0.5
  • Utilización: Cambia el tamaño de las imágenes por un factor aleatorio dentro del rango especificado. La dirección scale define el factor de escala, con el ajuste final elegido aleatoriamente entre 1-scale y 1+scale. Por ejemplo, con scale=0.5el escalado se selecciona aleatoriamente dentro de0.5 a 1.5.
  • Finalidad: Permite a los modelos manejar objetos a diferentes distancias y tamaños. Por ejemplo, en aplicaciones de conducción autónoma, los vehículos pueden aparecer a distintas distancias de la cámara, lo que requiere que el modelo los reconozca independientemente de su tamaño.
  • Aplicación deUltralytics: RandomPerspective
  • Nota:
    • El valor -1.0 no se muestra ya que haría desaparecer la imagen, mientras que 1.0 simplemente resulta en un zoom 2x.
    • Los valores que aparecen en la tabla siguiente son los aplicados a través del hiperparámetro scaley no el factor de escala final.
    • Si scale es mayor que 1.0la imagen puede ser muy pequeña o estar invertida, ya que el factor de escala se elige aleatoriamente entre 1-scale y 1+scale. Por ejemplo, con scale=3.0el escalado se selecciona aleatoriamente dentro de-2.0 a 4.0. Si se elige un valor negativo, la imagen se voltea.
-0.5 -0.25 0.0 0.25 0.5
escala_-0.5_aumento escala_-0.25_aumento aumento_identidad escala_0.25_aumento escala_0.5_aumento

Cizalla (shear)

  • Gama: -180 a +180
  • Por defecto: 0.0
  • Utilización: Introduce una transformación geométrica que sesga la imagen a lo largo de los ejes x e y, desplazando partes de la imagen en una dirección y manteniendo las líneas paralelas. La dirección shear El hiperparámetro define el ángulo de cizalladura, y el ajuste final se elige aleatoriamente entre -shear y shear. Por ejemplo, con shear=10.0la cizalla se selecciona aleatoriamente dentro de-10 a 10 en el eje x, y se selecciona otro valor aleatorio independiente dentro del mismo intervalo en el eje y.
  • Finalidad: Ayudar a los modelos a generalizar las variaciones en los ángulos de visión causadas por ligeras inclinaciones o puntos de vista oblicuos. Por ejemplo, en la vigilancia del tráfico, objetos como coches y señales de tráfico pueden aparecer inclinados debido a la colocación de cámaras no perpendiculares. La aplicación del aumento de cizalladura garantiza que el modelo aprenda a reconocer objetos a pesar de estas distorsiones sesgadas.
  • Aplicación deUltralytics: RandomPerspective
  • Nota:
    • shear pueden distorsionar rápidamente la imagen, por lo que se recomienda empezar con valores pequeños e ir aumentándolos gradualmente.
    • A diferencia de las transformaciones de perspectiva, el cizallamiento no introduce profundidad ni puntos de fuga, sino que distorsiona la forma de los objetos modificando sus ángulos y manteniendo paralelos los lados opuestos.
-10 -5 0.0 5 10
cizalla_-10_aumento cizalla_-5_aumento aumento_identidad shear_5_augmentation cizalla_10_aumento

Perspectiva (perspective)

  • Gama: 0.0 - 0.001
  • Por defecto: 0.0
  • Utilización: Aplica una transformación de perspectiva completa a lo largo de los ejes x e y, simulando cómo aparecen los objetos cuando se ven desde diferentes profundidades o ángulos. La página perspective El hiperparámetro define la magnitud de la perspectiva, y el ajuste final se elige aleatoriamente entre -perspective y perspective. Por ejemplo, con perspective=0.001la perspectiva se selecciona aleatoriamente dentro de-0.001 a 0.001 en el eje x, y se selecciona otro valor aleatorio independiente dentro del mismo intervalo en el eje y.
  • Propósito: El aumento de perspectiva es crucial para manejar cambios extremos de punto de vista, especialmente en escenarios donde los objetos aparecen escorzados o distorsionados debido a cambios de perspectiva. Por ejemplo, en la detección de objetos con drones, los edificios, las carreteras y los vehículos pueden aparecer estirados o comprimidos en función de la inclinación y la altitud del dron. Al aplicar transformaciones de perspectiva, los modelos aprenden a reconocer objetos a pesar de estas distorsiones inducidas por la perspectiva, lo que mejora su solidez en despliegues del mundo real.
  • Aplicación deUltralytics: RandomPerspective
-0.001 -0.0005 0.0 0.0005 0.001
perspectiva_-0.001_aumento perspectiva_-0.0005_aumento aumento_identidad perspectiva_0.0005_aumento perspectiva_0.001_aumento

Voltear arriba-abajo (flipud)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.0
  • Utilización: Realiza un giro vertical invirtiendo la imagen a lo largo del eje y. Esta transformación refleja toda la imagen al revés, pero conserva todas las relaciones espaciales entre los objetos. El hiperparámetro flipud define la probabilidad de aplicar la transformación, con un valor de flipud=1.0 asegurando que todas las imágenes se voltean y un valor de flipud=0.0 desactivar por completo la transformación. Por ejemplo, con flipud=0.5cada imagen tiene un 50% de posibilidades de ser invertida.
  • Finalidad: Resulta útil en situaciones en las que los objetos pueden aparecer al revés. Por ejemplo, en sistemas de visión robótica, los objetos de cintas transportadoras o brazos robóticos pueden recogerse y colocarse en distintas orientaciones. El volteo vertical ayuda al modelo a reconocer los objetos independientemente de su posición de arriba abajo.
  • Aplicación deUltralytics: RandomFlip
flipud fuera de flipud en
aumento_identidad flipud_on_augmentation

Voltear a izquierda-derecha (fliplr)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.5
  • Utilización: Realiza un giro horizontal reflejando la imagen a lo largo del eje x. Esta transformación intercambia los lados izquierdo y derecho manteniendo la coherencia espacial, lo que ayuda al modelo a generalizarse a objetos que aparecen en orientaciones reflejadas. La dirección fliplr define la probabilidad de aplicar la transformación, con un valor de fliplr=1.0 asegurando que todas las imágenes se voltean y un valor de fliplr=0.0 desactivar por completo la transformación. Por ejemplo, con fliplr=0.5cada imagen tiene un 50% de posibilidades de ser volteada de izquierda a derecha.
  • Propósito: El volteo horizontal se utiliza ampliamente en la detección de objetos, la estimación de la pose y el reconocimiento facial para mejorar la robustez frente a las variaciones izquierda-derecha. Por ejemplo, en la conducción autónoma, los vehículos y los peatones pueden aparecer a ambos lados de la carretera, y el volteo horizontal ayuda al modelo a reconocerlos igual de bien en ambas orientaciones.
  • Aplicación deUltralytics: RandomFlip
fliplr fuera de fliplr en
aumento_identidad fliplr_on_augmentation

Intercambio de canales BGR (bgr)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.0
  • Utilización: Cambia los canales de color de una imagen de RGB a BGR, alterando el orden en que se representan los colores. La dirección bgr El hiperparámetro define la probabilidad de aplicar la transformación, con bgr=1.0 garantizar que todas las imágenes se someten al intercambio de canales y bgr=0.0 desactivándola. Por ejemplo, con bgr=0.5cada imagen tiene un 50% de posibilidades de ser convertida de RGB a BGR.
  • Finalidad: Aumenta la solidez frente a diferentes ordenaciones de los canales de color. Por ejemplo, cuando se entrenan modelos que deben funcionar en varios sistemas de cámaras y bibliotecas de imágenes en los que los formatos RGB y BGR pueden utilizarse de forma incoherente, o cuando se despliegan modelos en entornos en los que el formato de color de entrada puede diferir de los datos de entrenamiento.
  • Aplicación deUltralytics: Formato
bgr fuera de bgr en
aumento_identidad bgr_on_augmentation

Mosaico (mosaic)

  • Gama: 0.0 - 1.0
  • Por defecto: 1.0
  • Utilización: Combina cuatro imágenes de entrenamiento en una. La dirección mosaic El hiperparámetro define la probabilidad de aplicar la transformación, con mosaic=1.0 garantizar que todas las imágenes se combinan y mosaic=0.0 desactivar la transformación. Por ejemplo, con mosaic=0.5Cada imagen tiene un 50% de posibilidades de ser combinada con otras tres imágenes.
  • Finalidad: Muy eficaz para mejorar la detección de objetos pequeños y la comprensión del contexto. Por ejemplo, en proyectos de conservación de la fauna salvaje en los que los animales pueden aparecer a distintas distancias y escalas, el aumento del mosaico ayuda al modelo a aprender a reconocer la misma especie en distintos tamaños, oclusiones parciales y contextos ambientales mediante la creación artificial de diversas muestras de entrenamiento a partir de datos limitados.
  • Aplicación deUltralytics: Mosaico
  • Nota:
    • Aunque el mosaic hace que el modelo sea más robusto, también puede dificultar el proceso de formación.
    • En mosaic puede desactivarse cerca del final del entrenamiento configurando close_mosaic al número de épocas antes de la finalización en que debe apagarse. Por ejemplo, si epochs se establece en 200 y close_mosaic se establece en 20El mosaic aumento se desactivará después de 180 épocas. Si close_mosaic se establece en 0El mosaic se habilitará el aumento para todo el proceso de formación.
    • El centro del mosaico generado se determina utilizando valores aleatorios, y puede estar dentro de la imagen o fuera de ella.
    • La aplicación actual del mosaic combina 4 imágenes elegidas al azar del conjunto de datos. Si el conjunto de datos es pequeño, la misma imagen puede utilizarse varias veces en el mismo mosaico.
mosaic fuera de mosaic en
aumento_identidad mosaico_sobre_aumento

Confusión (mixup)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.0
  • Utilización: Mezcla dos imágenes y sus etiquetas con una probabilidad dada. La dirección mixup El hiperparámetro define la probabilidad de aplicar la transformación, con mixup=1.0 garantizar que todas las imágenes se mezclen y mixup=0.0 desactivar la transformación. Por ejemplo, con mixup=0.5Cada imagen tiene un 50% de posibilidades de mezclarse con otra.
  • Finalidad: Mejorar la solidez del modelo y reducir el sobreajuste. Por ejemplo, en los sistemas de reconocimiento de productos minoristas, la mezcla ayuda al modelo a aprender características más robustas mezclando imágenes de distintos productos, lo que le enseña a identificar artículos incluso cuando son parcialmente visibles o están ocultos por otros productos en estanterías abarrotadas.
  • Aplicación deUltralytics: Mixup
  • Nota:
    • En mixup es un valor aleatorio extraído de un np.random.beta(32.0, 32.0) distribución beta, lo que significa que cada imagen contribuye aproximadamente al 50%, con ligeras variaciones.
Primera imagen, mixup fuera de Segunda imagen, mixup fuera de mixup en
aumento_mezcla_identidad_1 aumento_mezcla_identidad_2 mixup_on_augmentation

CutMix (cutmix)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.0
  • Utilización: Corta una región rectangular de una imagen y la pega en otra con una probabilidad dada. La dirección cutmix El hiperparámetro define la probabilidad de aplicar la transformación, con cutmix=1.0 garantizar que todas las imágenes se someten a esta transformación y cutmix=0.0 desactivarlo por completo. Por ejemplo, con cutmix=0.5Cada imagen tiene un 50% de posibilidades de que una región sea sustituida por un parche de otra imagen.
  • Finalidad: mejorar el rendimiento del modelo creando situaciones de oclusión realistas y manteniendo la integridad de las características locales. Por ejemplo, en los sistemas de conducción autónoma, cutmix ayuda al modelo a aprender a reconocer vehículos o peatones incluso cuando están parcialmente ocultos por otros objetos, lo que mejora la precisión de la detección en entornos reales complejos con objetos superpuestos.
  • Aplicación deUltralytics: CutMix
  • Nota:
    • El tamaño y la posición de la región de corte se determinan aleatoriamente para cada aplicación.
    • A diferencia de mixup, que mezcla los valores de los píxeles globalmente, cutmix mantiene las intensidades originales de los píxeles dentro de las regiones de corte, preservando las características locales.
    • Una región se pega en la imagen de destino sólo si no se solapa con ningún cuadro delimitador existente. Además, sólo se pegan en la imagen de destino los cuadros delimitadores que conservan al menos 0.1 (10%) de su superficie original dentro de la región pegada.
    • Este umbral mínimo de área del cuadro delimitador no puede modificarse con la aplicación actual y se establece en 0.1 por defecto.
Primera imagen, cutmix fuera de Segunda imagen, cutmix fuera de cutmix en
aumento_corte_identidad_1 aumento_corte_identidad_2 cutmix_on_augmentation

Aumentos específicos de segmentación

Copiar y pegar (copy_paste)

  • Gama: 0.0 - 1.0
  • Por defecto: 0.0
  • Utilización: Sólo funciona para tareas de segmentación, este aumento copia objetos dentro o entre imágenes basándose en una probabilidad especificada, controlada por el copy_paste_mode. En copy_paste El hiperparámetro define la probabilidad de aplicar la transformación, con copy_paste=1.0 garantizar que todas las imágenes se copien y copy_paste=0.0 desactivar la transformación. Por ejemplo, con copy_paste=0.5Cada imagen tiene un 50% de posibilidades de tener objetos copiados de otra imagen.
  • Finalidad: Especialmente útil para tareas de segmentación de instancias y clases de objetos poco comunes. Por ejemplo, en la detección de defectos industriales en la que ciertos tipos de defectos aparecen con poca frecuencia, el aumento de copia-pega puede aumentar artificialmente la aparición de estos defectos raros copiándolos de una imagen a otra, lo que ayuda al modelo a aprender mejor estos casos infrarrepresentados sin necesidad de muestras de defectos adicionales.
  • Implementación deUltralytics: CopyPaste
  • Nota:
    • Como se muestra en el siguiente gif, el copy_paste puede utilizarse para copiar objetos de una imagen a otra.
    • Una vez que se copia un objeto, independientemente del copy_paste_modese calcula su intersección sobre el área (IoA) con todos los objetos de la imagen de origen. Si todas las IoA están por debajo de 0.3 (30%), el objeto se pega en la imagen de destino. Si sólo uno de los IoA está por encima de 0.3el objeto no se pega en la imagen de destino.
    • El umbral de IoA no se puede cambiar con la implementación actual y se establece en 0.3 por defecto.
copy_paste fuera de copy_paste con copy_paste_mode=flip Visualice el copy_paste proceso
aumento_identidad copiar_pegar_en_aumento copy_paste_augmentation_gif_demo

Modo Copiar-Pegar (copy_paste_mode)

  • Opciones: 'flip', 'mixup'
  • Por defecto: 'flip'
  • Utilización: Determina el método utilizado para copiar-pegar aumento. Si se establece en 'flip'los objetos proceden de la misma imagen, mientras que 'mixup' permite copiar objetos de diferentes imágenes.
  • Finalidad: Permite integrar con flexibilidad los objetos copiados en las imágenes de destino.
  • Implementación deUltralytics: CopyPaste
  • Nota:
    • El principio IoA es el mismo para ambos copy_paste_modepero la forma en que se copian los objetos es diferente.
    • Dependiendo del tamaño de la imagen, a veces los objetos pueden copiarse parcial o totalmente fuera del marco.
    • Dependiendo de la calidad de las anotaciones poligonales, los objetos copiados pueden presentar ligeras variaciones de forma en comparación con los originales.
Imagen de referencia Imagen elegida para copy_paste copy_paste con copy_paste_mode=mixup
aumento_mezcla_identidad_2 aumento_identidad copy_paste_mode_mixup_augmentation

Aumentos específicos por clasificación

Aumento automático (auto_augment)

  • Opciones: 'randaugment', 'autoaugment', 'augmix', None
  • Por defecto: 'randaugment'
  • Utilización: Aplica políticas automatizadas de aumento para la clasificación. La dirección 'randaugment' utiliza RandAugment, 'autoaugment' utiliza AutoAugment, y 'augmix' utiliza AugMix. Ajuste a None desactiva el aumento automático.
  • Propósito: Optimiza automáticamente las estrategias de aumento para las tareas de clasificación. Las diferencias son las siguientes:
    • AutoAumento: Este modo aplica políticas de aumento predefinidas aprendidas de conjuntos de datos como ImageNet, CIFAR10 y SVHN. Los usuarios pueden seleccionar estas políticas existentes pero no pueden entrenar nuevas dentro de Torchvision. Para descubrir estrategias de aumento óptimas para conjuntos de datos específicos, serían necesarias bibliotecas externas o implementaciones personalizadas. Referencia al documento AutoAugment.
    • RandAugment: Aplica una selección aleatoria de transformaciones con magnitud uniforme. Este enfoque reduce la necesidad de una fase de búsqueda exhaustiva, lo que lo hace más eficiente desde el punto de vista computacional, al tiempo que mejora la robustez del modelo. Referencia al documento RandAugment.
    • AugMix: AugMix es un método de aumento de datos que mejora la robustez del modelo mediante la creación de diversas variaciones de imagen a través de combinaciones aleatorias de transformaciones simples. Referencia al artículo sobre AugMix.
  • Aplicación deUltralytics: classify_augmentations()
  • Nota:
    • Esencialmente, la principal diferencia entre los tres métodos es la forma en que se definen y aplican las políticas de aumento.
    • Puede consultar este artículo que compara los tres métodos en detalle.

Borrado aleatorio (erasing)

  • Gama: 0.0 - 0.9
  • Por defecto: 0.4
  • Utilización: Borra aleatoriamente partes de la imagen durante el entrenamiento de clasificación. La dirección erasing El hiperparámetro define la probabilidad de aplicar la transformación, con erasing=0.9 garantizar que casi todas las imágenes se borren y erasing=0.0 desactivar la transformación. Por ejemplo, con erasing=0.5Cada imagen tiene un 50% de posibilidades de que se borre una parte.
  • Finalidad: Ayuda a los modelos a aprender características robustas y evita la dependencia excesiva de regiones específicas de la imagen. Por ejemplo, en los sistemas de reconocimiento facial, el borrado aleatorio ayuda a los modelos a ser más robustos ante oclusiones parciales como gafas de sol, máscaras faciales u otros objetos que puedan cubrir parcialmente los rasgos faciales. Esto mejora el rendimiento en el mundo real al obligar al modelo a identificar a los individuos utilizando múltiples características faciales en lugar de depender únicamente de rasgos distintivos que podrían estar oscurecidos.
  • Aplicación deUltralytics: classify_augmentations()
  • Nota:
    • En erasing aumento viene con un scale, ratioy value hiperparámetros que no pueden modificarse con la función aplicación actual. Sus valores por defecto son (0.02, 0.33), (0.3, 3.3)y 0respectivamente, tal como se indica en PyTorch documentación.
    • El límite superior del erasing se establece en 0.9 para evitar aplicar la transformación a todas las imágenes.
erasing fuera de erasing on (ejemplo 1) erasing on (ejemplo 2) erasing on (ejemplo 3)
aumento_identidad borrado_ex1_aumento borrado_ex2_aumento borrado_ex3_aumento

PREGUNTAS FRECUENTES

Hay demasiados aumentos entre los que elegir. ¿Cómo sé cuáles utilizar?

La elección de los aumentos adecuados depende de su caso de uso específico y del conjunto de datos. He aquí algunas directrices generales que le ayudarán a decidir:

  • En la mayoría de los casos, las ligeras variaciones de color y brillo son beneficiosas. Los valores por defecto para hsv_h, hsv_sy hsv_v son un buen punto de partida.
  • Si el punto de vista de la cámara es coherente y no va a cambiar una vez desplegado el modelo, es probable que pueda omitir transformaciones geométricas como rotation, translation, scale, shearo perspective. Sin embargo, si el ángulo de la cámara puede variar y necesitas que el modelo sea más robusto, es mejor mantener estos aumentos.
  • Utiliza el mosaic aumento sólo si tener objetos parcialmente ocluidos o múltiples objetos por imagen es aceptable y no cambia el valor de la etiqueta. Como alternativa, puede mantener mosaic activa pero aumenta la close_mosaic para desactivarlo antes en el proceso de entrenamiento.

En resumen: simplifique las cosas. Empiece con un pequeño conjunto de aumentos y añada más gradualmente según sea necesario. El objetivo es mejorar la generalización y robustez del modelo, no complicar en exceso el proceso de entrenamiento. Además, asegúrese de que los aumentos que aplica reflejan la misma distribución de datos que su modelo encontrará en producción.

Al iniciar una formación, a ver un albumentations: Blur[...] referencia. ¿Significa eso que Ultralytics YOLO ejecuta aumentos adicionales como el desenfoque?

Si el albumentations Ultralytics aplica automáticamente un conjunto de aumentos de imagen adicionales. Estos aumentos se gestionan internamente y no requieren ninguna configuración adicional.

Puede consultar la lista completa de transformaciones aplicadas en nuestro documentación técnicaasí como en nuestro Guía de integración de la documentación. Obsérvese que sólo los aumentos con probabilidad p superior a 0 están activas. Se aplican intencionadamente a bajas frecuencias para imitar artefactos visuales del mundo real, como efectos de desenfoque o escala de grises.

Al iniciar una formación, no veo ninguna referencia a las albumentaciones. ¿Por qué?

Compruebe si el albumentations está instalado. Si no lo está, puede instalarlo ejecutando pip install albumentations. Una vez instalado, el paquete debería ser detectado y utilizado automáticamente por Ultralytics.



Creado hace 1 mes ✏️ Actualizado hace 1 mes

Comentarios