Link to this sectionTécnicas de preprocesamiento de datos para datos de visión artificial anotados#
Link to this sectionIntroducción#
Después de definir los objetivos del proyecto de visión artificial y de haber recopilado y anotado 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.
Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀
El preprocesamiento es un paso en el flujo de trabajo del proyecto de visión artificial 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!
Link to this sectionImportancia 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 conseguir que tus datos tengan un formato adecuado para el entrenamiento, lo que reduce la carga computacional y ayuda a mejorar el rendimiento del modelo. Estos son algunos problemas comunes en los datos sin procesar que el preprocesamiento soluciona:
- 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 en el conjunto de datos.
Link to this sectionTé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 constante. Cambiar el tamaño de las imágenes las hace uniformes y reduce la complejidad computacional.
Link to this sectionCambiar 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 un promedio ponderado de los cuatro valores de píxel más cercanos.
- Vecino más cercano: Asigna el valor del píxel más cercano sin promediar, lo que conduce a una imagen pixelada pero a un cálculo más rápido.
Para facilitar la tarea de cambiar el tamaño, puedes utilizar las siguientes herramientas:
- OpenCV: Una biblioteca popular de visión artificial con amplias funciones para el procesamiento de imágenes.
- PIL (Pillow): Una biblioteca de procesamiento de imágenes para Python para abrir, manipular y guardar archivos de imagen.
Con respecto a YOLO26, el parámetro 'imgsz' durante el entrenamiento del modelo permite tamaños de entrada flexibles. Cuando se establece en un tamaño específico, como 640, el modelo cambiará el tamaño de las imágenes de entrada para que su dimensión más grande sea de 640 píxeles manteniendo la relación de aspecto original.
Al evaluar las necesidades específicas de tu modelo y conjunto de datos, puedes determinar si cambiar el tamaño es un paso de preprocesamiento necesario o si tu modelo puede manejar eficientemente imágenes de tamaños variables.
Link to this sectionNormalización de los valores de píxel#
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 técnicas de normalización comunes:
- 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.
Con respecto a YOLO26, la normalización se maneja sin problemas como parte de su proceso de preprocesamiento durante el entrenamiento del modelo. YOLO26 realiza automáticamente varios pasos de preprocesamiento, incluida la conversión a RGB, el escalado de los valores de los píxeles al rango [0, 1] y la normalización utilizando valores de media y desviación estándar predefinidos.
Link to this sectionDivisión del conjunto de datos#
Una vez que hayas limpiado los datos, estarás 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 con datos no vistos para valorar su rendimiento de generalización. Una división común es el 70 % para entrenamiento, el 20 % para validación y el 10 % para pruebas. Existen varias herramientas y bibliotecas que puedes utilizar para dividir tus datos, como scikit-learn o TensorFlow.
Ten en cuenta lo siguiente al dividir tu conjunto de datos:
- Mantener la distribución de los datos: Asegúrate de que la distribución de datos de las clases se mantenga 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 solo 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 de clases: Para 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.
Link to this section¿Qué es el aumento de datos?#
El paso de preprocesamiento de datos más 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 las imágenes. Al aumentar tus datos, puedes reducir el sobreajuste y mejorar la generalización del modelo.
Aquí tienes 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 frente a variaciones y distorsiones en los datos de entrada. Esto incluye cambios en la iluminación, orientación y escala.
- Rentable: El aumento de datos es una forma rentable de aumentar la cantidad de datos de entrenamiento sin recopilar y etiquetar nuevos datos.
- Mejor uso de los datos: Cada punto de datos disponible se utiliza al máximo creando nuevas variaciones.
Link to this sectionMétodos de aumento de datos#
Las técnicas de aumento comunes incluyen el volteo, la rotación, el escalado y los ajustes de color. Varias bibliotecas, como Albumentations, Imgaug y ImageDataGenerator de TensorFlow, pueden generar estos aumentos.
Con respecto a YOLO26, 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 repositorio Ultralytics YOLO26 admite una amplia gama de aumentos de datos. Puedes aplicar diversas transformaciones como:
- Recortes aleatorios
- Volteo: Las imágenes pueden voltearse horizontal o verticalmente.
- Rotación: Las imágenes pueden rotarse en ángulos específicos.
- Distorsión
Además, puedes ajustar la intensidad de estas técnicas de aumento mediante parámetros específicos para generar mayor variedad de datos.
Link to this sectionUn estudio de caso de preprocesamiento#
Considera un proyecto destinado a desarrollar un modelo para detectar y clasificar diferentes tipos de vehículos en imágenes de tráfico utilizando YOLO26. 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: Como YOLO26 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 de acuerdo con el parámetro 'imgsz' especificado durante el entrenamiento.
- Normalización de los valores de píxel: YOLO26 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.
- División del conjunto de datos: Divide el conjunto de datos en conjuntos de entrenamiento (70 %), validación (20 %) y prueba (10 %) utilizando herramientas como scikit-learn.
- Aumento de datos: Modifica 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 aseguran que el conjunto de datos esté preparado sin posibles problemas y esté listo para el Análisis Exploratorio de Datos (EDA).
Link to this sectionTécnicas de análisis exploratorio de datos#
Después de preprocesar y aumentar tu conjunto de datos, el siguiente paso es obtener información a través del Análisis Exploratorio de Datos. El EDA utiliza técnicas estadísticas y herramientas de visualización para entender los patrones y distribuciones en tus datos. Puedes identificar problemas como desequilibrios de clase o valores atípicos y tomar decisiones informadas sobre ajustes adicionales de preprocesamiento de datos o entrenamiento del modelo.
Link to this sectionTécnicas estadísticas de EDA#
Las técnicas estadísticas suelen comenzar calculando métricas básicas como la media, la mediana, la desviación estándar y el rango. Estas métricas ofrecen una visión general rápida de las propiedades de tu conjunto de datos de imágenes, como las distribuciones de intensidad de los píxeles. Comprender estas estadísticas básicas te ayuda a entender la calidad y las características generales de tus datos, lo que te permite detectar cualquier irregularidad desde el principio.
Link to this sectionTécnicas visuales de EDA#
Las visualizaciones son clave en el EDA para conjuntos de datos de imágenes. Por ejemplo, el análisis de desequilibrio de clases es otro aspecto vital del EDA. Ayuda a determinar si ciertas clases están subrepresentadas en tu conjunto de datos. Visualizar la distribución de diferentes clases o categorías de imágenes utilizando gráficos de barras puede revelar rápidamente cualquier desequilibrio. De manera similar, los valores atípicos pueden identificarse utilizando herramientas de visualización como los diagramas de caja, que resaltan anomalías en la intensidad de los píxeles o las distribuciones de características. La detección de valores atípicos evita que los puntos de datos inusuales sesguen tus resultados.
Las herramientas comunes para las visualizaciones incluyen:
- Histogramas y diagramas 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: Efectivos para visualizar la distribución de las intensidades de los píxeles o la distribución espacial de las características anotadas dentro de las imágenes.
Link to this sectionUso de la plataforma Ultralytics para EDA#
Para un enfoque sin código para el EDA, sube tu conjunto de datos a Ultralytics Platform. La pestaña Charts del conjunto de datos genera automáticamente las visualizaciones descritas anteriormente: distribución de la división, recuento de las clases principales, histogramas de ancho/alto de imagen y mapas de calor 2D de posiciones de anotación y dimensiones de imagen. La pestaña Images te permite explorar tus datos en vistas de cuadrícula, compactas o de tabla con superposiciones de anotaciones, lo que facilita detectar ejemplos mal etiquetados o clases desequilibradas sin escribir una sola línea de código.
Link to this sectionContacta y conecta#
Tener debates sobre tu proyecto con otros entusiastas de la visión artificial puede darte nuevas ideas desde diferentes perspectivas. Aquí tienes algunas formas geniales de aprender, solucionar problemas y establecer contactos:
Link to this sectionCanales para conectar con la comunidad#
- GitHub Issues: Visita el repositorio de GitHub de YOLO26 y utiliza la pestaña Issues para plantear preguntas, informar de errores y sugerir funciones. La comunidad y los mantenedores están ahí para ayudarte con cualquier problema que encuentres.
- Servidor de Discord de Ultralytics: Únete al servidor de Discord de Ultralytics para conectar con otros usuarios y desarrolladores, obtener soporte, compartir conocimientos e intercambiar ideas.
Link to this sectionDocumentación oficial#
- Documentación de Ultralytics YOLO26: Consulta la documentación oficial de YOLO26 para obtener guías exhaustivas e ideas valiosas sobre numerosas tareas y proyectos de visión artificial.
Link to this section¡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 mejores prácticas descritas en esta guía, puedes crear un conjunto de datos sólido. Con tu conjunto de datos preprocesado listo, puedes proceder con confianza a los siguientes pasos de tu proyecto.
Link to this sectionFAQ#
Link to this section¿Cuál es la importancia del preprocesamiento de datos en los proyectos de visión artificial?#
El preprocesamiento de datos es esencial en los proyectos de visión artificial porque garantiza que los datos sean limpios, consistentes y tengan un formato óptimo para el entrenamiento del modelo. Al abordar problemas como el ruido, la inconsistencia y el desequilibrio en los datos sin procesar, 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 mejorar el rendimiento del modelo. Para obtener más detalles, visita los pasos de un proyecto de visión artificial.
Link to this section¿Cómo puedo usar Ultralytics YOLO para el aumento de datos?#
Para el aumento de datos con Ultralytics YOLO26, necesitas modificar el archivo de configuración del conjunto de datos (.yaml). En este archivo, puedes especificar varias técnicas de aumento como recortes aleatorios, volteos horizontales y ajustes de brillo. Esto se puede hacer de manera efectiva utilizando las configuraciones de entrenamiento explicadas 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.
Link to this section¿Cuáles son las mejores técnicas de normalización de datos para datos de visión artificial?#
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 comunes incluyen:
- 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.
Para YOLO26, la normalización se maneja automáticamente, incluida la conversión a RGB y el escalado de los valores de píxel. Aprende más sobre esto en la sección de entrenamiento del modelo.
Link to this section¿Cómo debería dividir mi conjunto de datos anotados para el entrenamiento?#
Para dividir tu conjunto de datos, una práctica común 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 solo en el conjunto de entrenamiento. Utiliza herramientas como scikit-learn o TensorFlow para una división eficiente del conjunto de datos. Consulta la guía detallada sobre preparación de conjuntos de datos.
Link to this section¿Puedo manejar tamaños de imagen variables en YOLO26 sin cambiar el tamaño manualmente?#
Sí, Ultralytics YOLO26 puede manejar tamaños de imagen variables a través del parámetro 'imgsz' durante el entrenamiento del modelo. Este parámetro asegura que las imágenes se redimensionen para que su dimensión más grande coincida con el tamaño especificado (por ejemplo, 640 píxeles), mientras se mantiene la relación de aspecto. Para un manejo de entrada más flexible y ajustes automáticos, consulta la sección de entrenamiento del modelo.