Saltar al contenido

Técnicas de preprocesamiento de datos para datos de visión artificial anotados

Introducción

Una vez definidos los objetivos de tu proyecto de visión por ordenador y recogidos y anotados los datos, el siguiente paso es 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 cambiar el tamaño de las imágenes, normalizar los valores de los píxeles, aumentar el conjunto de datos y dividir los datos en conjuntos de entrenamiento, validación y prueba. ¡Exploremos las técnicas esenciales y las mejores prácticas para limpiar tus 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? Bueno, el preprocesamiento de datos consiste en obtener 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 comunes en los datos sin procesar que se solucionan en el preprocesamiento:

  • Ruido: Variaciones irrelevantes o aleatorias en 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 y más importantes pasos en el 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 consistente. Cambiar el tamaño de las imágenes las hace uniformes y reduce la complejidad computacional.

Cambiar el tamaño de las imágenes

Puede cambiar el tamaño de sus 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 da lugar a una imagen con bloques pero un cálculo más rápido.

Para simplificar el cambio de tamaño, puede 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 imágenes.

Con respecto a YOLOv8, 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 redimensionará las imágenes de entrada para que su mayor dimensión sea de 640 píxeles, manteniendo la relación de aspecto original.

Al evaluar las necesidades específicas del modelo y del conjunto de datos, puede determinar si el cambio de tamaño es un paso de preprocesamiento necesario o si el modelo puede manejar de manera eficiente imágenes de diferentes tamaños.

Normalización de valores de píxel

Otra técnica de preprocesamiento es la normalización. La normalización escala los valores de píxel 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 técnicas comunes de normalización:

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

Con respecto a YOLOv8, la normalización se gestiona sin problemas como parte de su canalización de preprocesamiento durante el entrenamiento del modelo. YOLOv8 realiza automáticamente varios pasos de preprocesamiento, incluida la conversión a RGB, el escalado de los valores de píxel al rango [0, 1] y la normalización mediante valores medios y desviaciones estándar predefinidos.

División del 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 se pueda evaluar en datos no vistos para evaluar su rendimiento de generalización. Una división común es del 70 % para el entrenamiento, el 20 % para la validación y el 10 % para las pruebas. Hay varias herramientas y bibliotecas que puedes usar para dividir tus datos, como scikit-learn o TensorFlow.

Tenga en cuenta lo siguiente al dividir el conjunto de datos:

  • Mantener la distribución de datos: Asegúrate 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 los conjuntos de datos desequilibrados, considera 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únmente discutido es el aumento de datos. El aumento de datos aumenta artificialmente el tamaño del conjunto de datos mediante la creación de versiones modificadas de imágenes. Al aumentar los datos, puede reducir el sobreajuste y mejorar la generalización del modelo.

Estos son algunos otros beneficios 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 a las variaciones y distorsiones de los datos de entrada. Esto incluye cambios de iluminación, orientación y escala.
  • Rentable: El aumento de datos es una forma rentable de aumentar la cantidad de datos de entrenamiento sin recoger 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

Las técnicas de aumento comunes incluyen volteo, rotación, escalado y ajustes de color. Varias bibliotecas, como Albumentations, Imgaug y TensorFlow, puede generar estos aumentos.

Visión general de los aumentos de datos

Con respecto a YOLOv8, puedes aumentar tu conjunto de datos personalizado modificando el archivo de configuración del conjunto de datos, un archivo .yaml. En este archivo, puedes añadir una sección de aumento con parámetros que especifiquen cómo quieres aumentar tus datos.

El repositorioUltralytics YOLOv8 admite una amplia gama de aumentos de datos. Puedes aplicar diversas transformaciones, como

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

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

Un estudio de caso de preprocesamiento

Considere un proyecto destinado a desarrollar un modelo para detectar y clasificar diferentes tipos de vehículos en imágenes de tráfico utilizando YOLOv8. Hemos recopilado imágenes de tráfico y las hemos anotado con cuadros delimitadores y etiquetas.

Así es como se vería cada paso del preprocesamiento para este proyecto:

  • Cambiar el tamaño de las imágenes: desde YOLOv8 Maneja tamaños de entrada flexibles y realiza el cambio de tamaño automáticamente, no se requiere un cambio de tamaño manual. El modelo ajustará el tamaño de la imagen de acuerdo con el parámetro 'imgsz' especificado durante el entrenamiento.
  • Normalización de valores de píxel: YOLOv8 Normaliza automáticamente los valores de píxel a un rango de 0 a 1 durante el preprocesamiento, por lo que no es necesario.
  • División del 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, volteos horizontales y ajustes de brillo.

Estos pasos garantizan que el conjunto de datos esté preparado sin ningún problema potencial y esté listo para el análisis exploratorio de datos (EDA).

Técnicas de análisis exploratorio de datos

Después de preprocesar y aumentar el conjunto de datos, el siguiente paso es obtener información a través del análisis exploratorio de datos. EDA 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 clase o valores atípicos y tomar decisiones informadas sobre el preprocesamiento de datos adicionales o los ajustes de entrenamiento del modelo.

Técnicas Estadísticas EDA

Las técnicas estadísticas a menudo comienzan 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 descripción general rápida de las propiedades del conjunto de datos de imágenes, como las distribuciones de intensidad de píxeles. Comprender estas estadísticas básicas le ayuda a comprender la calidad general y las características de sus datos, lo que le permite detectar cualquier irregularidad desde el principio.

Técnicas visuales de EDA

Las visualizaciones son clave en EDA para conjuntos de datos de imágenes. Por ejemplo, el análisis del desequilibrio de clases es otro aspecto vital de la EDA. Ayuda a determinar si ciertas clases están infrarrepresentadas en el conjunto de datos, La visualización de la distribución de diferentes 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 se pueden identificar utilizando herramientas de visualización como diagramas de caja, que resaltan anomalías en la intensidad de píxeles o distribuciones de entidades. La detección de valores atípicos evita que los puntos de datos inusuales sesguen los resultados.

Entre las herramientas comunes para las visualizaciones se incluyen:

  • Histogramas y diagramas de caja: Útiles para comprender la distribución de los valores de píxel e identificar valores atípicos.
  • Diagramas de dispersión: Útil para explorar las relaciones entre entidades o anotaciones de imagen.
  • Mapas de calor: Eficaz para visualizar la distribución de las intensidades de píxeles o la distribución espacial de las entidades anotadas dentro de las imágenes.

Usando Ultralytics Explorador para EDA

Para obtener un enfoque más avanzado de EDA, puede utilizar la función Ultralytics Herramienta de exploración. Ofrece capacidades sólidas para explorar conjuntos de datos de visión artificial. Al admitir la búsqueda semántica, las consultas SQL y la búsqueda de similitud vectorial, la herramienta facilita el análisis y la comprensión de los datos. Con Ultralytics Explorer, puede crear incrustaciones para su conjunto de datos para encontrar imágenes similares, ejecutar consultas SQL para un análisis detallado y realizar búsquedas semánticas, todo a través de una interfaz gráfica fácil de usar.

Visión general de Ultralytics Explorer

Acércate y conéctate

Tener discusiones sobre su proyecto con otros entusiastas de la visión por computadora puede brindarle nuevas ideas desde diferentes perspectivas. Estas son algunas formas excelentes de aprender, solucionar problemas y establecer contactos:

Canales para conectar con la comunidad

  • Cuestiones de GitHub: Visita el repositorio GitHub de YOLOv8 y utiliza la pestaña Cuestiones para plantear preguntas, informar de errores y sugerir funciones. La comunidad y los mantenedores están ahí para ayudarte con cualquier problema que te surja.
  • 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 YOLOv8 Documentación: Consulta la documentación oficial de YOLOv8 para obtener guías completas y valiosos conocimientos sobre numerosas tareas y proyectos de visión por ordenador.

¡Tu 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 prácticas recomendadas descritas en esta guía, puede crear un conjunto de datos sólido. Con su conjunto de datos preprocesado listo, puede continuar con confianza a los siguientes pasos de su proyecto.

PREGUNTAS FRECUENTES

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

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 del 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, visita 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 YOLOv8 , tienes que modificar el archivo de configuración del conjunto de datos (.yaml). En este archivo, puedes 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. Algunas técnicas habituales son:

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

Para YOLOv8, la normalización se gestiona automáticamente, incluyendo la conversión a RGB y el escalado del valor de los píxeles. Aprende más sobre ello en la sección de entrenamiento del modelo.

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

Para dividir tu 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 los datos de las clases en estas divisiones y evitar la fuga de datos realizando el aumento sólo en el conjunto de entrenamiento. Utiliza herramientas como scikit-learn o TensorFlow para dividir eficazmente el conjunto de datos. Consulta la guía detallada sobre la preparación del conjunto de datos.

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

Sí, Ultralytics YOLOv8 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 de modo 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 los ajustes automáticos, consulta la sección de entrenamiento del modelo.



Creado 2024-05-31, Actualizado 2024-07-05
Autores: glenn-jocher (4), abirami-vina (1)

Comentarios