es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Entrenamiento de detección de objetos Yolov5

Por favor, necesito su ayuda con respecto a mi proceso de entrenamiento de yolov5 para la detección de objetos.

Intento entrenar mi modelo de detección de objetos yolov5 para detectar objetos pequeños (arañazos). Para etiquetar mis imágenes, utilicé Roboflow, donde apliqué algunas técnicas de aumento de datos y preprocesamiento que Roboflow ofrece como servicios. Cuando terminé la etapa de preprocesamiento y el aumento de datos, Roboflow me da la opción de diferentes formatos de salida, en mi caso es yolov5 pytorch, y Roboflow hace todo por mí, Dividiendo los datos en entrenamiento, validación y prueba. Por lo tanto, todo estaba configurado correctamente para mi preparación de datos y al final obtuve la carpeta con data.yaml y las imágenes con sus etiquetas, en data.yaml coloqué la ruta de mis conjuntos de entrenamiento y validación como vi en el tutorial GitHub para yolov5. Seguí cuidadosamente los pasos.

El problema es que cuando comienza el entrenamiento, obtengo nan en la columna de objetos y cajas como se puede ver en la imagen a continuación, que no sé por qué, ¿puede alguien relacionarse con eso o darme alguna pista para encontrar la solución por favor? Es mi primer proyecto en visión por computadora.

Esto es lo que obtengo cuando comienza el proceso de entrenamiento.

Este es el último mensaje de error cuando finaliza el entrenamiento.

Creo que el problema viene quizás de aquí pero no sé cómo solucionarlo, utilicé el código del equipo yolov5 como lo está en el tutorial.

La capacitación continúa sin problemas, ¡pero el mapa y la precisión permanecen en 0 durante todo el proceso!

PD: Aquí está el enlace del tutorial que seguí: https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Posibles razones para obtener valores “NaN” durante el entrenamiento de YOLOv5

    Obtener valores “NaN” para las columnas de obj y box durante el entrenamiento de YOLOv5 significa que el entrenamiento no está progresando adecuadamente y el modelo no está aprendiendo de los datos. Puede haber varias razones para este problema, como:

    1. Datos insuficientes: YOLOv5 requiere una gran cantidad de datos de entrenamiento para tareas de detección de objetos, especialmente para objetos pequeños como rayones. Si los datos de entrenamiento son insuficientes, el modelo puede no generalizar bien y no aprender de los datos.
    2. Etiquetado inadecuado: La precisión del proceso de etiquetado es crucial para el éxito de cualquier modelo de detección de objetos. Si las etiquetas son incorrectas o incompletas, afectará el rendimiento del modelo.

    3. Aumento de datos: El aumento de datos es un paso necesario para aumentar la diversidad de los datos de entrenamiento, pero un aumento excesivo puede distorsionar las imágenes y dar lugar a etiquetados incorrectos.

    4. Hiperparámetros incorrectos: YOLOv5 tiene varios hiperparámetros que deben ajustarse según la naturaleza de los datos y la tarea en cuestión. Los hiperparámetros incorrectos pueden hacer que el modelo converja a soluciones subóptimas o no converja en absoluto.

    Posibles soluciones para solucionar el problema de “NaN”

    Para solucionar el problema de “NaN”, podemos probar las siguientes soluciones:

    1. Aumentar el número de muestras de entrenamiento: Añadir más muestras de entrenamiento puede ayudar al modelo a aprender mejor y generalizar bien. Se recomienda tener al menos 2000-3000 muestras de entrenamiento para objetos pequeños.
  2. Comprobar las etiquetas: Comprobar las etiquetas de los datos de entrenamiento para asegurarnos de que sean precisas y completas. Una forma de hacerlo es comprobar manualmente una muestra de los datos etiquetados para ver si las etiquetas coinciden con las anotaciones.

  3. Reducir la cantidad de aumento de datos: Reducir la cantidad de aumento de datos para evitar la distorsión de imágenes y etiquetas incorrectas.

  4. Ajustar los hiperparámetros: Ajustar los hiperparámetros para encontrar los valores óptimos que funcionen para los datos y la tarea en cuestión. Este paso puede requerir algo de prueba y error.

  5. Pensamientos finales

    La detección de objetos mediante YOLOv5 requiere una preparación cuidadosa de los datos de entrenamiento y el ajuste fino de los hiperparámetros. Es esencial asegurarse de que los datos de entrenamiento sean representativos de la tarea y contengan suficiente diversidad para capturar las variaciones de los objetos. Además, es crucial supervisar el proceso de entrenamiento y ajustar los hiperparámetros si es necesario. Siguiendo estos pasos, podemos construir modelos precisos y robustos de detección de objetos utilizando YOLOv5.

Comments are closed.