Meet YOLO26: next-gen vision AI.

Link to this sectionTécnicas de preprocesamiento de datos para datos anotados de visión artificial#

El preprocesamiento de datos convierte imágenes crudas y anotadas en los inputs limpios y consistentes que un modelo de visión artificial necesita para entrenar correctamente. Con Ultralytics YOLO26, las operaciones principales con píxeles —conversión RGB, escalado a [0, 1] y redimensionamiento— se ejecutan automáticamente dentro del pipeline de entrenamiento, por lo que el trabajo restante consiste en dividir correctamente tu dataset, equilibrar las clases y elegir las aumentaciones. Esta guía cubre esas técnicas esenciales: redimensionamiento, normalización, división del dataset, aumentación de datos y análisis exploratorio de datos (EDA).



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Este paso se realiza después de que hayas definido los objetivos de tu proyecto y recopilado y anotado tus datos, y se sitúa al principio del flujo de trabajo de proyectos de visión artificial.

Link to this sectionPor qué es importante el preprocesamiento#

El preprocesamiento prepara tus datos en un formato que reduce la carga computacional y mejora el rendimiento del modelo. Aborda tres problemas comunes en los datos crudos:

  • Ruido: Variaciones irrelevantes o aleatorias en los datos.
  • Inconsistencia: Variaciones en el tamaño, formato y calidad de las imágenes.
  • Desequilibrio: Distribución desigual de clases o categorías a lo largo del dataset.

Link to this sectionTécnicas de preprocesamiento#

Las técnicas principales son el redimensionamiento, la normalización, la división del dataset y la aumentación. Con YOLO26, las dos primeras son automáticas, mientras que la división y la aumentación son donde tus elecciones importan más.

Link to this sectionCambiar el tamaño de las imágenes#

Muchos modelos requieren un tamaño de entrada consistente, por lo que el redimensionamiento hace que las imágenes sean uniformes y reduce la complejidad computacional. Dos métodos de interpolación comunes son:

  • Interpolación bilineal: Suaviza los valores de los píxeles calculando un promedio ponderado de los cuatro píxeles más cercanos.
  • Vecino más cercano: Copia el valor del píxel más cercano sin promediar; es más rápido, pero produce una imagen con efecto de bloques.

Librerías como OpenCV y PIL (Pillow) proporcionan estas funciones, pero con YOLO26 normalmente no redimensionas manualmente. El argumento imgsz durante el entrenamiento del modelo se encarga de ello: cuando se establece en un valor como 640, YOLO escala cada imagen para que su dimensión más larga sea de 640 píxeles manteniendo la relación de aspecto, y luego rellena el lado más corto (gris por defecto, valor 114) para obtener una entrada cuadrada de 640 × 640.

Link to this sectionNormalización de los valores de píxel#

La normalización escala los valores de los píxeles a un rango estándar, lo cual ayuda al modelo a converger más rápido durante el entrenamiento. Dos técnicas comunes son:

  • Escalado mín-máx: Escala los valores de los píxeles a un rango de 0 a 1.
  • Normalización por puntuación Z: Escala los valores de los píxeles según su media y desviación estándar.

YOLO26 gestiona la normalización automáticamente como parte de su pipeline de preprocesamiento: convierte las imágenes a RGB y escala los valores de los píxeles al rango [0, 1] dividiendo por 255 (escalado min-max). YOLO no aplica la normalización de estilo ImageNet basada en media/desviación estándar (puntuación z) por defecto, por lo que no se requiere ningún paso de normalización manual.

Link to this sectionDivisión del conjunto de datos#

Dividir los datos en conjuntos de entrenamiento, validación y prueba te permite evaluar el modelo en datos no vistos y medir su generalización. Una división común es 70% para entrenamiento, 20% para validación y 10% para pruebas. Herramientas como scikit-learn o TensorFlow hacen que esto sea sencillo.

Ten en cuenta estos puntos al dividir:

  • Mantén la distribución de clases: Asegúrate de que cada clase esté representada proporcionalmente en los conjuntos de entrenamiento, validación y prueba.
  • Equilibra las clases: Para datasets desequilibrados, considera el sobremuestreo (oversampling) de la clase minoritaria o el submuestreo (undersampling) de la clase mayoritaria, solo dentro del conjunto de entrenamiento.
Evita la fuga de datos (data leakage)

Divide el dataset antes de aplicar cualquier aumentación u otro preprocesamiento, y aplica esas transformaciones solo al conjunto de entrenamiento. Aumentar antes de dividir permite que la información de las imágenes de validación o prueba influya en el entrenamiento, produciendo puntuaciones engañosamente altas que colapsan ante datos del mundo real.

Link to this sectionAumentación del dataset#

La aumentación de datos aumenta artificialmente el tamaño de un dataset mediante la creación de versiones modificadas de imágenes existentes. Ayuda a reducir el sobreajuste y mejora la generalización, con varios beneficios:

  • Modelos más robustos: Las variaciones en iluminación, orientación y escala hacen que el modelo sea resistente a distorsiones del mundo real.
  • Rentable: Amplías el conjunto de entrenamiento sin tener que recopilar y etiquetar nuevos datos.
  • Mejor uso de los datos: Cada imagen anotada produce múltiples variaciones de entrenamiento.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

Con YOLO26, la aumentación se controla a través de argumentos de entrenamiento pasados a model.train() o a los flags equivalentes de la CLI; no editando el YAML del dataset, el cual define metadatos del dataset como rutas, nombres de clases y divisiones. Las aumentaciones integradas incluyen:

  • Mosaic, MixUp y CutMix (mosaic, mixup, cutmix): Combinan múltiples imágenes en una sola muestra de entrenamiento.
  • Volteos (fliplr, flipud): Reflejan imágenes horizontal o verticalmente.
  • Transformaciones geométricas (degrees, translate, scale, shear, perspective): Rotan, desplazan, amplían y deforman imágenes.
  • Ajuste de color HSV (hsv_h, hsv_s, hsv_v): Varían el tono, la saturación y el brillo.
  • Copiar y pegar (copy_paste): Pega objetos entre imágenes para segmentación.
Establece la intensidad de la aumentación al entrenar
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

Para ver la lista completa de argumentos de aumentación y sus valores predeterminados, consulta la referencia de configuración de aumentación y la guía de aumentación de datos de YOLO dedicada. Si el paquete albumentations está instalado, YOLO también habilita automáticamente sus aumentaciones integradas basadas en Albumentations.

Link to this sectionUn estudio de caso: Preprocesamiento para detección de vehículos#

Considera un proyecto para detectar y clasificar vehículos en imágenes de tráfico con YOLO26, partiendo de imágenes anotadas con cajas delimitadoras y etiquetas. Así es como se ve cada decisión de preprocesamiento:

  • Redimensionamiento: Sin trabajo manual; YOLO26 redimensiona a imgsz durante el entrenamiento.
  • Normalización: Sin trabajo manual; YOLO26 escala automáticamente los valores de píxel a [0, 1].
  • División: Divide el dataset en 70% de entrenamiento, 20% de validación y 10% de prueba, manteniendo la distribución de clases consistente en todas las divisiones.
  • Aumentación: Establece argumentos de entrenamiento adecuados para escenas de tráfico, por ejemplo fliplr para invarianza de dirección, hsv_v para iluminación diurna/nocturna y mosaic para una densidad de objetos variada.

Con estas decisiones tomadas, el dataset está listo para el Análisis Exploratorio de Datos (EDA).

Link to this sectionAnálisis Exploratorio de Datos (EDA)#

El EDA utiliza estadísticas y visualizaciones para revelar patrones y distribuciones en tus datos, ayudándote a detectar problemas como el desequilibrio de clases o valores atípicos antes de entrenar.

Link to this sectionTécnicas estadísticas de EDA#

El EDA estadístico comienza con métricas básicas (media, mediana, desviación estándar y rango) calculadas sobre propiedades como las distribuciones de intensidad de píxeles. Estas dan una visión general rápida de la calidad de tu dataset y detectan irregularidades desde el principio.

Link to this sectionTécnicas visuales de EDA#

Las visualizaciones revelan patrones que las estadísticas resumidas omiten, como el desequilibrio de clases y valores atípicos. Las herramientas comunes incluyen:

  • Histogramas y diagramas de caja: Muestran la distribución de los valores de los píxeles y marcan los valores atípicos en las distribuciones de intensidad o características.
  • Gráficos de barras: Revelan el desequilibrio de clases comparando cuántos ejemplos tiene cada clase.
  • Gráficos de dispersión: Exploran las relaciones entre características de las imágenes o anotaciones.
  • Mapas de calor: Visualizan las distribuciones de intensidad de píxeles o la distribución espacial de las anotaciones en las imágenes.

Link to this sectionPlataforma Ultralytics para EDA#

Para un enfoque sin código (no-code) para el EDA, sube tu dataset a la Plataforma Ultralytics. La pestaña Charts del dataset genera automáticamente visualizaciones clave de EDA: distribución de la división, recuento de clases principales, histogramas de ancho/alto de imagen y mapas de calor 2D de las posiciones de las anotaciones y dimensiones de la imagen. La pestaña Images te permite navegar por tus datos en vistas de cuadrícula, compactas o de tabla con superposiciones de anotaciones, facilitando la identificación de ejemplos mal etiquetados o clases desequilibradas sin escribir código.

Link to this sectionConclusión#

Los datos correctamente divididos, normalizados y aumentados reducen el ruido y mejoran la generalización, convirtiendo una colección cruda de imágenes en un conjunto de entrenamiento confiable. Con tu dataset preprocesado, el siguiente paso es entrenar tu modelo. Si te surgen preguntas en el camino, pregunta a la comunidad en el repositorio de GitHub de Ultralytics o en el servidor de Discord de Ultralytics.

Link to this sectionFAQ#

Link to this section¿Por qué es importante el preprocesamiento de datos en los proyectos de visión artificial?#

El preprocesamiento garantiza que tus datos sean limpios, consistentes y tengan un formato optimizado para el entrenamiento. Al abordar el ruido, la inconsistencia y el desequilibrio de clases en los datos crudos, pasos como el redimensionamiento, la normalización, la aumentación y la división del dataset reducen la carga computacional y mejoran el rendimiento del modelo. Consulta los pasos de un proyecto de visión artificial para ver cómo encaja esto en el flujo de trabajo general.

Link to this section¿Cómo utilizo Ultralytics YOLO para la aumentación de datos?#

Configura la aumentación a través de argumentos de entrenamiento, no mediante el YAML del dataset. Pasa argumentos como fliplr, mosaic, hsv_h y degrees a model.train() (o a los flags equivalentes de la CLI) para establecer la probabilidad y la intensidad de cada transformación. Estos se definen en la configuración de aumentación y se explican en la guía de aumentación de datos de YOLO.

Link to this section¿Cuáles son las mejores técnicas de normalización para datos de visión artificial?#

Las dos técnicas más comunes son el escalado min-max (reescalar píxeles a un rango de 0 a 1) y la normalización de puntuación z (reescalar según la media y la desviación estándar). YOLO26 aplica el escalado min-max automáticamente (convirtiendo imágenes a RGB y dividiendo los valores de píxel por 255), por lo que no necesitas un paso de normalización manual. No aplica la normalización de puntuación z por defecto.

Link to this section¿Cómo debería dividir mi conjunto de datos anotados para el entrenamiento?#

Una práctica común es usar 70% para entrenamiento, 20% para validación y 10% para pruebas. Mantén la distribución de clases en las tres divisiones y evita la fuga de datos aplicando la aumentación solo al conjunto de entrenamiento después de la división. Herramientas como scikit-learn o TensorFlow gestionan la división de manera eficiente. Consulta la guía de recopilación y anotación de datos para la preparación previa del dataset.

Link to this section¿Puede YOLO26 manejar tamaños de imagen variables sin redimensionamiento manual?#

Sí. El argumento imgsz redimensiona las imágenes durante el entrenamiento y la inferencia para que su dimensión más larga coincida con el tamaño especificado (por ejemplo, 640 píxeles) mientras mantiene la relación de aspecto, y luego rellena el lado más corto. No necesitas redimensionar las imágenes tú mismo; consulta la documentación de entrenamiento del modelo para más detalles.

Comentarios