Ir al contenido

Técnicas de preprocesamiento de datos para datos de visión por ordenador anotados

Introducción

Una vez definidos los objetivos del proyecto de visión por ordenador y recopilados y anotados los datos, el siguiente paso consiste en preprocesar los datos anotados y prepararlos para el entrenamiento del modelo. Unos datos limpios y coherentes son vitales para crear un modelo que funcione bien.

El preprocesamiento es un paso del flujo de trabajo de los proyectos de visión por ordenador que incluye el cambio de tamaño de las imágenes, la normalización de los valores de los píxeles, el aumento del conjunto de datos y la división de los datos en conjuntos de entrenamiento, validación y prueba. Exploremos las técnicas esenciales y las mejores prácticas para limpiar los datos.

Importancia del preprocesamiento de datos

Ya estamos recopilando y anotando nuestros datos cuidadosamente teniendo en cuenta múltiples consideraciones. Entonces, ¿qué hace que el preprocesamiento de datos sea tan importante para un proyecto de visión artificial? El preprocesamiento de datos consiste en convertir los datos en un formato adecuado para el entrenamiento que reduzca la carga computacional y ayude a mejorar el rendimiento del modelo. Estos son algunos de los problemas habituales de los datos brutos que aborda el preprocesamiento:

  • Ruido: Variaciones irrelevantes o aleatorias de los datos.
  • Incoherencia: Variaciones en los tamaños, formatos y calidad de las imágenes.
  • Desequilibrio: Distribución desigual de clases o categorías en el conjunto de datos.

Técnicas de preprocesamiento de datos

Uno de los primeros pasos del preprocesamiento de datos es el cambio de tamaño. Algunos modelos están diseñados para manejar tamaños de entrada variables, pero muchos modelos requieren un tamaño de entrada uniforme. Redimensionar las imágenes las hace uniformes y reduce la complejidad computacional.

Cambiar el tamaño de las imágenes

Puedes cambiar el tamaño de tus imágenes utilizando los siguientes métodos:

  • Interpolación bilineal: Suaviza los valores de los píxeles tomando una media ponderada de los cuatro valores de píxel más cercanos.
  • Vecino más próximo: Asigna el valor del píxel más cercano sin promediar, lo que produce una imagen con bloques pero un cálculo más rápido.

Para que redimensionar sea una tarea más sencilla, puedes utilizar las siguientes herramientas:

  • OpenCV: Una popular biblioteca de visión por ordenador con amplias funciones para el procesamiento de imágenes.
  • PIL (Almohada): Una biblioteca de imágenes Python para abrir, manipular y guardar archivos de imagen.

Con respecto a YOLO11, el parámetro "imgsz" durante el entrenamiento del modelo permite tamaños de entrada flexibles. Cuando se establece un tamaño específico, como 640, el modelo redimensiona las imágenes de entrada para que su mayor dimensión sea de 640 píxeles, manteniendo la relación de aspecto original.

Evaluando las necesidades específicas de su modelo y del conjunto de datos, puede determinar si el cambio de tamaño es un paso necesario del preprocesamiento o si su modelo puede manejar eficazmente imágenes de distintos tamaños.

Normalización de valores de píxeles

Otra técnica de preprocesamiento es la normalización. La normalización escala los valores de los píxeles a un rango estándar, lo que ayuda a una convergencia más rápida durante el entrenamiento y mejora el rendimiento del modelo. Estas son algunas de las técnicas de normalización más comunes:

  • Escala Mín-Máx: Escala los valores de los píxeles a un rango de 0 a 1.
  • Normalización Z-Score: Escala los valores de los píxeles en función de su media y desviación estándar.

Con respecto a YOLO11, la normalización se maneja sin problemas como parte de su canal de preprocesamiento durante el entrenamiento del modelo. YOLO11 realiza automáticamente varios pasos de preprocesamiento, incluyendo la conversión a RGB, el escalado de los valores de los píxeles al rango [0, 1], y la normalización utilizando valores predefinidos de media y desviación estándar.

Dividir el conjunto de datos

Una vez que haya limpiado los datos, estará listo para dividir el conjunto de datos. La división de los datos en conjuntos de entrenamiento, validación y prueba se realiza para garantizar que el modelo pueda evaluarse en datos no vistos para valorar su rendimiento de generalización. Una división común es 70% para entrenamiento, 20% para validación y 10% para prueba. Existen varias herramientas y bibliotecas que se pueden utilizar para dividir los datos, como scikit-learn o TensorFlow.

Tenga en cuenta lo siguiente a la hora de dividir su conjunto de datos:

  • Mantenimiento de la distribución de datos: Asegúrese de que la distribución de datos de las clases se mantiene en los conjuntos de entrenamiento, validación y prueba.
  • Evitar la fuga de datos: Normalmente, el aumento de datos se realiza después de dividir el conjunto de datos. El aumento de datos y cualquier otro preprocesamiento sólo deben aplicarse al conjunto de entrenamiento para evitar que la información de los conjuntos de validación o prueba influya en el entrenamiento del modelo. -Equilibrio declases: Para conjuntos de datos desequilibrados, considere técnicas como el sobremuestreo de la clase minoritaria o el submuestreo de la clase mayoritaria dentro del conjunto de entrenamiento.

¿Qué es el aumento de datos?

El paso de preprocesamiento de datos más común es el aumento de datos. El aumento de datos incrementa artificialmente el tamaño del conjunto de datos mediante la creación de versiones modificadas de las imágenes. Al aumentar los datos, se puede reducir el sobreajuste y mejorar la generalización del modelo.

He aquí otras ventajas del aumento de datos:

  • Crea un conjunto de datos más robusto: El aumento de datos puede hacer que el modelo sea más robusto frente a variaciones y distorsiones en los datos de entrada. Esto incluye cambios en la iluminación, la orientación y la escala.
  • Rentable: El aumento de datos es una forma rentable de aumentar la cantidad de datos de formación sin necesidad de recopilar y etiquetar nuevos datos.
  • Mejor uso de los datos: Cada punto de datos disponible se aprovecha al máximo creando nuevas variaciones

Métodos de aumento de datos

Entre las técnicas de aumento más comunes se encuentran el volteo, la rotación, el escalado y los ajustes de color. Varias bibliotecas, como Albumentations, Imgaug y TensorFlow's ImageDataGenerator, pueden generar estos aumentos.

Visión general de los aumentos de datos

Con respecto a YOLO11, puede aumentar su conjunto de datos personalizado modificando el archivo de configuración del conjunto de datos, un archivo .yaml. En este archivo, puede añadir una sección de aumento con parámetros que especifiquen cómo desea aumentar sus datos.

El repositorioUltralytics YOLO11 admite una amplia gama de ampliaciones de datos. Puede aplicar diversas transformaciones como:

  • Cultivos aleatorios
  • Voltear: Las imágenes se pueden voltear horizontal o verticalmente.
  • Rotación: Las imágenes se pueden girar en ángulos específicos.
  • Distorsión

Además, puede ajustar la intensidad de estas técnicas de aumento mediante parámetros específicos para generar más variedad de datos.

Un caso práctico de preprocesamiento

Consideremos un proyecto cuyo objetivo es desarrollar un modelo para detectar y clasificar distintos tipos de vehículos en imágenes de tráfico utilizando YOLO11. Hemos recopilado imágenes de tráfico y las hemos anotado con recuadros delimitadores y etiquetas.

He aquí cómo sería cada paso del preprocesamiento para este proyecto:

  • Cambio de tamaño de las imágenes: Dado que YOLO11 maneja tamaños de entrada flexibles y realiza el cambio de tamaño automáticamente, no es necesario cambiar el tamaño manualmente. El modelo ajustará el tamaño de la imagen según el parámetro 'imgsz' especificado durante el entrenamiento.
  • Normalización de los valores de los píxeles: YOLO11 normaliza automáticamente los valores de los píxeles a un rango de 0 a 1 durante el preprocesamiento, por lo que no es necesario.
  • Dividir el conjunto de datos: Divida el conjunto de datos en conjuntos de entrenamiento (70%), validación (20%) y prueba (10%) utilizando herramientas como scikit-learn.
  • Aumento de datos: Modifique el archivo de configuración del conjunto de datos (.yaml) para incluir técnicas de aumento de datos como recortes aleatorios, giros horizontales y ajustes de brillo.

Estos pasos garantizan que el conjunto de datos se prepara sin ningún problema potencial y está listo para el Análisis Exploratorio de Datos (AED).

Técnicas de análisis exploratorio de datos

Después de preprocesar y aumentar su conjunto de datos, el siguiente paso es obtener información mediante el Análisis Exploratorio de Datos (AED). El AED utiliza técnicas estadísticas y herramientas de visualización para comprender los patrones y las distribuciones de los datos. Puede identificar problemas como desequilibrios de clases o valores atípicos y tomar decisiones informadas sobre el preprocesamiento de datos o los ajustes de entrenamiento del modelo.

Técnicas estadísticas EDA

Las técnicas estadísticas suelen comenzar con el cálculo de métricas básicas como la media, la mediana, la desviación estándar y el rango. Estas métricas proporcionan una visión rápida de las propiedades del conjunto de datos de la imagen, como las distribuciones de intensidad de los píxeles. La comprensión de estas estadísticas básicas le ayuda a comprender la calidad y las características generales de sus datos, lo que le permite detectar cualquier irregularidad desde el principio.

Técnicas visuales EDA

Las visualizaciones son fundamentales en EDA para los conjuntos de datos de imágenes. Por ejemplo, el análisis del desequilibrio de clases es otro aspecto vital de EDA. Visualizar la distribución de las distintas clases o categorías de imágenes mediante gráficos de barras puede revelar rápidamente cualquier desequilibrio. Del mismo modo, los valores atípicos pueden identificarse mediante herramientas de visualización como los gráficos de caja, que destacan las anomalías en la intensidad de los píxeles o las distribuciones de características. La detección de valores atípicos evita que puntos de datos inusuales sesguen los resultados.

Entre las herramientas habituales para las visualizaciones se incluyen:

  • Histogramas y gráficos de caja: Útiles para comprender la distribución de los valores de los píxeles e identificar valores atípicos.
  • Gráficos de dispersión: Útiles para explorar las relaciones entre las características de la imagen o las anotaciones.
  • Mapas de calor: Eficaces para visualizar la distribución de intensidades de píxeles o la distribución espacial de características anotadas dentro de imágenes.

Uso de Ultralytics Explorer para EDA

Nota comunitaria ⚠️

A partir de ultralytics>=8.3.10Ultralytics explorer support has been deprecated. Pero no se preocupe. Ahora puedes acceder a una funcionalidad similar e incluso mejorada a través de Ultralytics HUBnuestra intuitiva plataforma sin código diseñada para agilizar su flujo de trabajo. Con Ultralytics HUB, puedes seguir explorando, visualizando y gestionando tus datos sin esfuerzo, todo ello sin escribir una sola línea de código. No dejes de probarlo y aprovéchate de sus potentes funciones 🚀.

Para un enfoque más avanzado de EDA, puede utilizar la herramienta Ultralytics Explorer. Ofrece sólidas capacidades para explorar conjuntos de datos de visión por ordenador. Gracias a la búsqueda semántica, las consultas SQL y la búsqueda de similitudes vectoriales, la herramienta facilita el análisis y la comprensión de los datos. Con Ultralytics Explorer, puede crear incrustaciones para su conjunto de datos con el fin de encontrar imágenes similares, ejecutar consultas SQL para un análisis detallado y realizar búsquedas semánticas, todo ello a través de una interfaz gráfica fácil de usar.

Visión general de Ultralytics Explorer

Acércate y conecta

Mantener conversaciones sobre tu proyecto con otros entusiastas de la visión por ordenador puede aportarte nuevas ideas desde diferentes perspectivas. Aquí tienes algunas formas estupendas de aprender, solucionar problemas y trabajar en red:

Canales para conectar con la Comunidad

  • Problemas en GitHub: Visita el repositorio GitHub de YOLO11 y utiliza la pestaña Problemas para plantear preguntas, informar de errores y sugerir funciones. La comunidad y los mantenedores están ahí para ayudarte con cualquier problema que tengas.
  • Ultralytics Servidor Discord: Únete al servidor Discord deUltralytics para conectar con otros usuarios y desarrolladores, obtener ayuda, compartir conocimientos y aportar ideas.

Documentación oficial

  • Ultralytics YOLO11 Documentación: Consulte la documentación oficial de YOLO11 para obtener guías completas y valiosos conocimientos sobre numerosas tareas y proyectos de visión por ordenador.

Su conjunto de datos está listo

Los datos correctamente redimensionados, normalizados y aumentados mejoran el rendimiento del modelo al reducir el ruido y mejorar la generalización. Siguiendo las técnicas de preprocesamiento y las mejores prácticas descritas en esta guía, podrá crear un conjunto de datos sólido. Con su conjunto de datos preprocesados listo, puede proceder con confianza a los siguientes pasos de su proyecto.

PREGUNTAS FRECUENTES

¿Qué importancia tiene el preprocesamiento de datos en los proyectos de visión por ordenador?

El preprocesamiento de datos es esencial en los proyectos de visión por ordenador porque garantiza que los datos estén limpios, sean coherentes y tengan un formato óptimo para el entrenamiento del modelo. Al abordar problemas como el ruido, la incoherencia y el desequilibrio en los datos brutos, los pasos de preprocesamiento como el cambio de tamaño, la normalización, el aumento y la división del conjunto de datos ayudan a reducir la carga computacional y a mejorar el rendimiento del modelo. Para más detalles, visite los pasos de un proyecto de visión por ordenador.

¿Cómo puedo utilizar Ultralytics YOLO para aumentar los datos?

Para aumentar los datos con Ultralytics YOLO11 , es necesario modificar el archivo de configuración del conjunto de datos (.yaml). En este archivo, puede especificar varias técnicas de aumento, como recortes aleatorios, giros horizontales y ajustes de brillo. Esto puede hacerse eficazmente utilizando las configuraciones de entrenamiento que se explican aquí. El aumento de datos ayuda a crear un conjunto de datos más robusto, reducir el sobreajuste y mejorar la generalización del modelo.

¿Cuáles son las mejores técnicas de normalización de datos para los datos de visión por ordenador?

La normalización escala los valores de los píxeles a un rango estándar para una convergencia más rápida y un mejor rendimiento durante el entrenamiento. Las técnicas más comunes son:

  • Escala Mín-Máx: Escala los valores de los píxeles a un rango de 0 a 1.
  • Normalización Z-Score: Escala los valores de los píxeles en función de su media y desviación estándar.

Para YOLO11, la normalización se maneja automáticamente, incluyendo la conversión a RGB y el escalado del valor del píxel. Más información en la sección de formación de modelos.

¿Cómo debo dividir mi conjunto de datos anotados para el entrenamiento?

Para dividir el conjunto de datos, una práctica habitual es dividirlo en un 70% para entrenamiento, un 20% para validación y un 10% para pruebas. Es importante mantener la distribución de datos de las clases en estas divisiones y evitar la fuga de datos realizando el aumento sólo en el conjunto de entrenamiento. Utilice herramientas como scikit-learn o TensorFlow para una división eficiente del conjunto de datos. Consulte la guía detallada sobre la preparación del conjunto de datos.

¿Puedo manejar distintos tamaños de imagen en YOLO11 sin cambiar el tamaño manualmente?

Sí, Ultralytics YOLO11 puede manejar distintos tamaños de imagen mediante el parámetro 'imgsz' durante el entrenamiento del modelo. Este parámetro garantiza que las imágenes se redimensionen para que su mayor dimensión coincida con el tamaño especificado (por ejemplo, 640 píxeles), manteniendo la relación de aspecto. Para un manejo más flexible de las entradas y ajustes automáticos, consulte la sección de entrenamiento del modelo.

Creado hace 6 meses ✏️ Actualizado hace 1 mes

Comentarios