Información sobre la evaluación y el ajuste fino de modelos#
Después de entrenar un modelo YOLO, el siguiente paso es medir su rendimiento y ajustarlo para corregir sus carencias. La evaluación utiliza métricas como mAP e IoU para cuantificar la precisión, mientras que el ajuste fino modifica los parámetros de entrenamiento para reforzar los puntos débiles y conseguir que el modelo cumpla el objetivo de tu proyecto. En esta guía se explican las principales métricas de evaluación, cómo interpretarlas y cómo actuar según sus resultados.
Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision
La evaluación y el ajuste fino se realizan hacia el final del flujo de trabajo de un proyecto de visión artificial, cuando el entrenamiento ya está en marcha y necesitas verificar que el modelo es preciso, eficiente y está listo para su implementación.
Métricas clave de evaluación#
Diversas métricas miden la eficacia con la que funciona un modelo. Estas métricas de rendimiento proporcionan información numérica clara que orienta las mejoras para garantizar que el modelo cumple sus objetivos previstos.
Puntuación de confianza#
La puntuación de confianza representa la certeza del modelo de que un objeto detectado pertenece a una clase concreta. Va de 0 a 1, y las puntuaciones más altas indican una mayor confianza. La puntuación de confianza ayuda a filtrar las predicciones: solo se consideran válidas las detecciones con puntuaciones de confianza superiores a un umbral especificado.
Al ejecutar la inferencia, si no ves ninguna predicción y ya has comprobado todo lo demás, prueba a reducir el umbral de confianza. A veces el umbral es demasiado alto y hace que el modelo ignore predicciones válidas. Reducirlo permite que el modelo considere más posibilidades. Puede que esto no cumpla los objetivos finales de tu proyecto, pero es una buena forma de ver qué puede hacer el modelo y decidir cómo ajustarlo.
Intersección sobre unión#
La Intersección sobre Unión (IoU) es una métrica de la detección de objetos que mide hasta qué punto la caja delimitadora predicha se solapa con la caja delimitadora real. Los valores de IoU van de 0 a 1, donde 1 representa una coincidencia perfecta. IoU es esencial porque mide en qué medida los límites predichos coinciden con los límites reales del objeto.
Precisión media promedio#
La Precisión media promedio (mAP) mide el rendimiento general de un modelo de detección de objetos. Tiene en cuenta la precisión de la detección de cada clase de objeto, calcula el promedio de esas puntuaciones y proporciona un único número que muestra con qué precisión el modelo puede identificar y clasificar objetos.
Las dos métricas mAP que se notifican con más frecuencia son:
- mAP@.5: Mide la precisión media con un único umbral de IoU de 0.5. Esta métrica comprueba si el modelo puede encontrar correctamente objetos con un requisito de precisión menos estricto. Se centra en si el objeto está aproximadamente en el lugar correcto, sin exigir una ubicación perfecta, y ayuda a comprobar si el modelo es generalmente bueno detectando objetos.
- mAP@.5:.95: Calcula el promedio de los valores de mAP obtenidos con varios umbrales de IoU, de 0.5 a 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 con distintos niveles de exigencia y resulta especialmente útil para aplicaciones que necesitan una detección de objetos precisa.
Otras métricas mAP incluyen mAP@0.75, que utiliza un umbral de IoU más estricto, de 0.75, y mAP@small, medium, and large, que evalúan la precisión en objetos de distintos tamaños.
Evaluación de un modelo YOLO26#
Puedes evaluar un modelo YOLO26 entrenado con el modo de validación. Para consultar en profundidad cómo se calcula e interpreta cada métrica, consulta la guía de métricas de rendimiento de YOLO26.
Gestión de tamaños de imagen variables#
Evaluar tu modelo con imágenes de distintos tamaños te ayuda a comprender su rendimiento en conjuntos de datos diversos. El parámetro de validación rect=true agrupa las imágenes por relación de aspecto y rellena cada lote hasta alcanzar la forma más pequeña que encaje, por lo que las imágenes rectangulares se evalúan sin obligarlas a adoptar una forma cuadrada.
El parámetro imgsz establece el tamaño de imagen utilizado durante la validación y lo aplica como un cuadrado. Si no lo estableces explícitamente, YOLO26 reutiliza el valor guardado en la configuración del modelo (640 para los modelos oficiales preentrenados o el tamaño con el que se entrenó un checkpoint personalizado). Con rect=true, YOLO26 limita el lado más largo a imgsz y rellena el lado más corto hasta alcanzar un múltiplo del stride, conservando la relación de aspecto. Ajusta imgsz según las dimensiones de tu conjunto de datos y la memoria GPU disponible.
Acceso a las métricas de YOLO26#
Para comprender el rendimiento de tu modelo en detalle, puedes acceder a métricas de evaluación específicas con unas pocas líneas de Python. El fragmento siguiente carga un modelo, ejecuta la validación e imprime las métricas más útiles.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Run validation on your dataset
results = model.val(data="coco8.yaml")
# Overall metrics
print("mAP50-95:", results.box.map) # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50) # mAP at IoU 0.50
print("mAP75:", results.box.map75) # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # weighted score used for model selection
# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)
# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)Ten en cuenta que fitness() es un método y debe llamarse con paréntesis, mientras que las métricas como map, map50 y mp son propiedades a las que se accede directamente.
El atributo results.box.image_metrics es un diccionario por imagen cuyas claves son los nombres de archivo de las imágenes y que contiene precision, recall, f1, tp, fp y fn con IoU 0.5 para cada imagen. Los tiempos de preprocesamiento, inferencia, pérdida y posprocesamiento se notifican por separado en el diccionario results.speed. En conjunto, estos datos te permiten identificar qué imágenes suponen dificultades para el modelo y ajustarlo en consecuencia.
Ajuste fino de tu modelo#
El ajuste fino toma un modelo preentrenado y modifica sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específicos. También conocido como reentrenamiento del modelo, permite que el modelo comprenda y prediga mejor los resultados de los datos que encontrará en aplicaciones del mundo real. Según los resultados de la evaluación, vuelves a entrenar el modelo con tus propios datos y ajustas los argumentos de entrenamiento descritos en la guía de ajuste fino.
Segmentación de imágenes para objetos pequeños#
La segmentación de imágenes puede mejorar la precisión de detección de objetos pequeños. Al dividir imágenes grandes en segmentos más pequeños, como al dividir imágenes de 1280x1280 en varios segmentos de 640x640, conservas la resolución original y permites que el modelo aprenda a partir de fragmentos de alta resolución. Ultralytics admite esta función durante la inferencia mediante la inferencia por teselas de SAHI. Al entrenar con imágenes segmentadas en teselas, asegúrate de ajustar correctamente las etiquetas de cada nuevo segmento.
Conclusión#
La evaluación y el ajuste fino son lo que convierten un modelo entrenado en uno fiable y listo para su implementación: métricas como mAP e IoU revelan los puntos débiles, y los cambios específicos en los parámetros los corrigen. Empieza con el modo de validación para obtener una referencia del rendimiento de tu modelo; después, vuelve a entrenarlo con los argumentos descritos en la guía de ajuste fino y sigue iterando con nuevos parámetros, técnicas y conjuntos de datos. Si te surgen dudas durante el proceso, pregunta a la comunidad en el repositorio de Ultralytics en GitHub o en el servidor de Ultralytics en Discord.
Preguntas frecuentes#
Para evaluar el rendimiento de un modelo YOLO26, las métricas importantes incluyen la puntuación de confianza, la Intersección sobre Unión (IoU) y la Precisión media promedio (mAP). La puntuación de confianza mide la certeza del modelo para cada clase de objeto detectada. IoU evalúa en qué medida la caja delimitadora predicha se solapa con la realidad. La Precisión media promedio (mAP) agrega las puntuaciones de precisión de todas las clases; mAP@.5 y mAP@.5:.95 son dos tipos habituales para distintos umbrales de IoU. Obtén más información sobre estas métricas en nuestra guía de métricas de rendimiento de YOLO26.
El ajuste fino de un modelo YOLO26 preentrenado consiste en modificar sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específicos. Empieza evaluando el modelo con métricas y, después, vuelve a entrenarlo a partir de los pesos preentrenados con tu propio conjunto de datos. Durante la evaluación, parámetros como
rect=trueayudan a gestionar eficazmente los distintos tamaños de imagen. Consulta la guía de ajuste fino para conocer los argumentos de entrenamiento que puedes ajustar.Para gestionar tamaños de imagen variables durante la evaluación, utiliza el parámetro
rect=trueen YOLO26, que agrupa las imágenes por relación de aspecto y rellena cada lote en lugar de obligar a que todas las imágenes sean cuadradas. El parámetroimgszestablece el tamaño de imagen para la validación; si no lo sobrescribes, YOLO26 reutiliza el valor guardado en el modelo (640 para los modelos oficiales preentrenados). Ajustaimgszsegún tu conjunto de datos y la memoria GPU. Para obtener más información, consulta nuestra sección sobre la gestión de tamaños de imagen variables.Mejorar la precisión media promedio (mAP) de un modelo YOLO26 implica varios pasos:
- Ajuste de hiperparámetros: Experimenta con distintas tasas de aprendizaje, tamaños de lote y aumentos de datos de imagen.
- Aumento de datos: Utiliza técnicas como Mosaic y MixUp para crear muestras de entrenamiento diversas.
- Segmentación de imágenes: Divide las imágenes grandes en teselas más pequeñas para mejorar la precisión de detección de objetos pequeños.
Para consultar los argumentos de entrenamiento relacionados con los pasos 1 y 2, consulta la guía de ajuste fino; el paso 3 se explica en segmentación de imágenes.
Puedes acceder a las métricas de evaluación de un modelo YOLO26 utilizando Python después de ejecutar la validación:
Usofrom ultralytics import YOLO # Load a model model = YOLO("yolo26n.pt") # Run validation results = model.val(data="coco8.yaml") # Access key metrics print("Mean average precision at IoU=0.50:", results.box.map50) print("Mean average precision at IoU=0.50:0.95:", results.box.map) print("Mean recall:", results.box.mr) print("Class indices evaluated:", results.box.ap_class_index)Analizar estas métricas te ayuda a ajustar y optimizar tu modelo YOLO26. Para profundizar, consulta nuestra guía sobre métricas de rendimiento de YOLO.