Información sobre la evaluación y el ajuste preciso de modelos
Introducción
Una vez que haya entrenado su modelo de visión artificial, es esencial evaluarlo y perfeccionarlo para que funcione de manera óptima. Simplemente entrenar su modelo no es suficiente. Debe asegurarse de que su modelo sea preciso, eficiente y cumpla con el objetivo de su proyecto de visión artificial. Al evaluar y ajustar su modelo, puede identificar debilidades, mejorar su precisión y aumentar el rendimiento general.
Ver: Información sobre la evaluación y el ajuste fino de modelos | Consejos para mejorar la precisión media promedio
En esta guía, compartiremos información sobre la evaluación y el ajuste fino de modelos que harán que este paso de un proyecto de visión artificial sea más accesible. Analizaremos cómo entender las métricas de evaluación e implementar técnicas de ajuste fino, brindándole el conocimiento necesario para mejorar las capacidades de su modelo.
Evaluación del rendimiento del modelo mediante métricas
Evaluar el rendimiento de un modelo nos ayuda a comprender su eficacia. Se utilizan varias métricas para medir el rendimiento. Estas métricas de rendimiento proporcionan información numérica clara que puede guiar las mejoras para asegurar que el modelo cumpla con sus objetivos previstos. Echemos un vistazo más de cerca a algunas métricas clave.
Puntuación de Confianza
El puntaje de confianza representa la certeza del modelo de que un objeto detectado pertenece a una clase en particular. Varía de 0 a 1, y los puntajes más altos indican una mayor confianza. El puntaje de confianza ayuda a filtrar las predicciones; solo las detecciones con puntajes de confianza por encima de un umbral especificado se consideran válidas.
Consejo rápido: Al ejecutar inferencias, si no ves ninguna predicción y ya has comprobado todo lo demás, intenta bajar la puntuación de confianza. A veces, el umbral es demasiado alto, lo que hace que el modelo ignore predicciones válidas. Bajar la puntuación permite que el modelo considere más posibilidades. Puede que esto no cumpla los objetivos de tu proyecto, pero es una buena forma de ver lo que el modelo puede hacer y decidir cómo ajustarlo.
Intersección sobre Unión
La Intersección sobre la Unión (IoU) es una métrica en la detección de objetos que mide qué tan bien se superpone el cuadro delimitador predicho con el cuadro delimitador de la verdad fundamental. Los valores de IoU varían de 0 a 1, donde uno representa una coincidencia perfecta. IoU es esencial porque mide qué tan cerca coinciden los límites predichos con los límites reales del objeto.
Precisión Media Promedio
La Precisión media promedio (mAP) es una forma de medir el rendimiento de un modelo de detección de objetos. Analiza la precisión de la detección de cada clase de objeto, promedia estas puntuaciones y proporciona un número general que muestra con qué precisión el modelo puede identificar y clasificar objetos.
Centrémonos en dos métricas mAP específicas:
- mAP@.5: Mide la precisión media en un único umbral de IoU (Intersección sobre Unión) de 0.5. Esta métrica comprueba si el modelo puede encontrar objetos correctamente con un requisito de precisión menos estricto. Se centra en si el objeto está aproximadamente en el lugar correcto, sin necesidad de una colocación perfecta. Ayuda a ver si el modelo es generalmente bueno para detectar objetos.
- mAP@.5:.95: Promedia los valores de mAP calculados en múltiples umbrales de IoU, desde 0.5 hasta 0.95 en incrementos de 0.05. Esta métrica es más detallada y estricta. Ofrece una visión más completa de la precisión con la que el modelo puede encontrar objetos en diferentes niveles de exigencia, y es especialmente útil para aplicaciones que necesitan una detección de objetos precisa.
Otras métricas de mAP incluyen mAP@0.75, que utiliza un umbral de IoU más estricto de 0.75, y mAP@small, medium y large, que evalúan la precisión en objetos de diferentes tamaños.
Evaluación del rendimiento del modelo YOLO11
Con respecto a YOLO11, puede utilizar el modo de validación para evaluar el modelo. Además, asegúrese de echar un vistazo a nuestra guía que profundiza en las métricas de rendimiento de YOLO11 y cómo se pueden interpretar.
Preguntas comunes de la comunidad
Al evaluar su modelo YOLO11, es posible que se encuentre con algunos problemas. Basándonos en las preguntas comunes de la comunidad, aquí hay algunos consejos para ayudarle a sacar el máximo provecho de su modelo YOLO11:
Manejo de tamaños de imagen variables
Evaluar su modelo YOLO11 con imágenes de diferentes tamaños puede ayudarle a comprender su rendimiento en diversos conjuntos de datos. Usando el rect=true
parámetro de validación, YOLO11 ajusta el stride de la red para cada lote basándose en los tamaños de las imágenes, lo que permite que el modelo gestione imágenes rectangulares sin forzarlas a un único tamaño.
El imgsz
El parámetro de validación establece la dimensión máxima para el redimensionamiento de la imagen, que es de 640 por defecto. Puedes ajustarlo según las dimensiones máximas de tu conjunto de datos y la memoria de la GPU disponible. Incluso con imgsz
establecer, rect=true
permite que el modelo gestione eficazmente los diferentes tamaños de imagen ajustando dinámicamente el stride.
Accediendo a las métricas de YOLO11
Si quieres obtener una comprensión más profunda del rendimiento de tu modelo YOLO11, puedes acceder fácilmente a métricas de evaluación específicas con unas pocas líneas de código Python. El siguiente fragmento de código te permitirá cargar tu modelo, ejecutar una evaluación e imprimir varias métricas que muestran el rendimiento de tu modelo.
Uso
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)
El objeto de resultados también incluye métricas de velocidad como el tiempo de preprocesamiento, el tiempo de inferencia, la pérdida y el tiempo de postprocesamiento. Al analizar estas métricas, puedes ajustar y optimizar tu modelo YOLO11 para un mejor rendimiento, haciéndolo más efectivo para tu caso de uso específico.
¿Cómo funciona el ajuste fino?
El ajuste fino implica tomar un modelo pre-entrenado y ajustar sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específico. El proceso, también conocido como reentrenamiento del modelo, permite que el modelo comprenda y prediga mejor los resultados para los datos específicos que encontrará en las aplicaciones del mundo real. Puede volver a entrenar su modelo basándose en la evaluación del mismo para lograr resultados óptimos.
Consejos para ajustar su modelo
Afinar un modelo significa prestar mucha atención a varios parámetros y técnicas vitales para lograr un rendimiento óptimo. Aquí hay algunos consejos esenciales para guiarlo a través del proceso.
Comenzando con una Tasa de Aprendizaje más Alta
Normalmente, durante las épocas iniciales de entrenamiento, la tasa de aprendizaje comienza baja y aumenta gradualmente para estabilizar el proceso de entrenamiento. Sin embargo, dado que tu modelo ya ha aprendido algunas características del conjunto de datos anterior, comenzar con una tasa de aprendizaje más alta de inmediato puede ser más beneficioso.
Al evaluar su modelo YOLO11, puede establecer el warmup_epochs
parámetro de validación a warmup_epochs=0
para evitar que la tasa de aprendizaje comience demasiado alta. Siguiendo este proceso, el entrenamiento continuará a partir de los pesos proporcionados, ajustándose a los matices de tus nuevos datos.
Mosaico de imágenes para objetos pequeños
El mosaico de imágenes puede mejorar la precisión de la detección de objetos pequeños. Al dividir imágenes más grandes en segmentos más pequeños, como dividir imágenes de 1280x1280 en múltiples segmentos de 640x640, se mantiene la resolución original y el modelo puede aprender de fragmentos de alta resolución. Cuando utilice YOLO11, asegúrese de ajustar correctamente sus etiquetas para estos nuevos segmentos.
Interactúe con la comunidad
Compartir tus ideas y preguntas con otros entusiastas de la visión artificial puede inspirar soluciones creativas a los obstáculos en tus proyectos. Aquí tienes algunas formas excelentes de aprender, solucionar problemas y conectar.
Cómo encontrar ayuda y soporte
- Incidencias de GitHub: Explore el repositorio YOLO11 en GitHub y utilice la pestaña Incidencias para hacer preguntas, informar sobre errores y sugerir funciones. La comunidad y los mantenedores están disponibles para ayudar con cualquier problema que encuentre.
- 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.
Documentación oficial
- Documentación de Ultralytics YOLO11: Consulta la documentación oficial de YOLO11 para obtener guías completas e información valiosa sobre diversas tareas y proyectos de visión artificial.
Reflexiones finales
Evaluar y ajustar su modelo de visión artificial son pasos importantes para una implementación del modelo exitosa. Estos pasos ayudan a asegurar que su modelo sea preciso, eficiente y adecuado para su aplicación general. La clave para entrenar el mejor modelo posible es la experimentación y el aprendizaje continuos. No dude en modificar los parámetros, probar nuevas técnicas y explorar diferentes conjuntos de datos. ¡Siga experimentando y superando los límites de lo posible!
Preguntas frecuentes
¿Cuáles son las métricas clave para evaluar el rendimiento del modelo YOLO11?
Para evaluar el rendimiento del modelo YOLO11, las métricas importantes incluyen el puntaje de confianza (Confidence Score), la intersección sobre la unión (IoU) y la precisión media promedio (mAP). El puntaje de confianza mide la certeza del modelo para cada clase de objeto detectado. IoU evalúa qué tan bien la caja delimitadora predicha se superpone con la verdad fundamental. La precisión media promedio (mAP) agrega puntajes de precisión en todas las clases, siendo mAP@.5 y mAP@.5:.95 dos tipos comunes para diferentes umbrales de IoU. Obtenga más información sobre estas métricas en nuestra guía de métricas de rendimiento de YOLO11.
¿Cómo puedo ajustar un modelo YOLO11 pre-entrenado para mi conjunto de datos específico?
El ajuste fino de un modelo YOLO11 pre-entrenado implica ajustar sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específico. Comience por evaluar su modelo utilizando métricas, luego establezca una tasa de aprendizaje inicial más alta ajustando el warmup_epochs
parámetro a 0 para una estabilidad inmediata. Utilice parámetros como rect=true
para manejar eficazmente los diferentes tamaños de imagen. Para obtener una guía más detallada, consulte nuestra sección sobre ajuste fino de modelos YOLO11.
¿Cómo puedo manejar tamaños de imagen variables al evaluar mi modelo YOLO11?
Para gestionar tamaños de imagen variables durante la evaluación, utiliza el rect=true
parámetro en YOLO11, que ajusta el stride de la red para cada lote en función del tamaño de las imágenes. El imgsz
parámetro establece la dimensión máxima para el cambio de tamaño de la imagen, por defecto a 640. Ajuste el imgsz
para que se adapte a tu conjunto de datos y a la memoria de la GPU. Para obtener más detalles, visita nuestra sección sobre el manejo de tamaños de imagen variables.
¿Qué pasos prácticos puedo seguir para mejorar la precisión media promedio de mi modelo YOLO11?
Mejorar la precisión media promedio (mAP) para un modelo YOLO11 implica varios pasos:
- Ajuste de hiperparámetros: Experimenta con diferentes tasas de aprendizaje, tamaños de lote y aumentos de imagen.
- Aumento de datos: Utiliza técnicas como Mosaic y MixUp para crear muestras de entrenamiento diversas.
- Mosaicos de imágenes: Divida las imágenes más grandes en mosaicos más pequeños para mejorar la precisión de la detección de objetos pequeños. Consulte nuestra guía detallada sobre ajuste fino del modelo para conocer estrategias específicas.
¿Cómo accedo a las métricas de evaluación del modelo YOLO11 en Python?
Puede acceder a las métricas de evaluación del modelo YOLO11 utilizando Python siguiendo estos pasos:
Uso
from ultralytics import YOLO
# Load the model
model = YOLO("yolo11n.pt")
# Run the evaluation
results = model.val(data="coco8.yaml")
# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)
Analizar estas métricas ayuda a ajustar y optimizar su modelo YOLO11. Para una inmersión más profunda, consulte nuestra guía sobre métricas de YOLO11.