Información sobre la evaluación y el ajuste de modelos#
Después de entrenar un modelo YOLO, el siguiente paso es medir su rendimiento y ajustarlo para corregir sus puntos débiles. La evaluación utiliza métricas como mAP e IoU para cuantificar la precisión, mientras que el ajuste modifica los parámetros de entrenamiento para reforzar los puntos débiles y cumplir el objetivo del proyecto. Esta guía explica las principales métricas de evaluación, cómo interpretarlas y cómo actuar en función de sus resultados.
Ver: Claves para evaluar y ajustar modelos | Consejos para mejorar la precisión media promedio
La evaluación y el ajuste se sitúan hacia el final del flujo de trabajo de un proyecto de visión artificial, cuando el entrenamiento ya está en marcha y necesitas comprobar que el modelo es preciso, eficiente y está listo para su despliegue.
Métricas de evaluación principales#
Hay varias métricas que permiten medir la eficacia de un modelo. Estas métricas de rendimiento ofrecen información numérica clara que orienta las mejoras para que el modelo cumpla los 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; cuanto más alta es la puntuación, mayor es la confianza. La puntuación de confianza ayuda a filtrar las predicciones: solo se consideran válidas las detecciones cuya puntuación de confianza supera un umbral determinado.
Si al ejecutar la inferencia no ves ninguna predicción y ya has comprobado todo lo demás, prueba a bajar el umbral de confianza. A veces el umbral es demasiado alto y el modelo ignora predicciones válidas. Al bajarlo, permites 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 detección de objetos que mide cuánto se solapa la caja delimitadora predicha con la caja delimitadora de referencia. Los valores de IoU oscilan entre 0 y 1; 1 representa una coincidencia perfecta. La IoU es esencial porque mide hasta qué punto coinciden los límites predichos 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 detección de cada clase de objeto, calcula la media de estas puntuaciones y ofrece un único valor que indica con qué precisión puede el modelo identificar y clasificar objetos.
Las dos métricas de mAP que se suelen presentar 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 objetos correctamente 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, en general, el modelo detecta bien los objetos.
- mAP@.5:.95: Calcula la media 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 requieren una detección precisa de objetos.
Otras métricas de mAP son 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 de objetos de distintos tamaños.
Evaluación de un modelo YOLO26#
Puedes evaluar un modelo YOLO26 entrenado con el modo de validación. Para profundizar en cómo se calcula e interpreta cada métrica, consulta la guía sobre las 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 diversos conjuntos de datos. De forma predeterminada, la validación utiliza el agrupamiento rectangular (rect=True en model.val()): agrupa las imágenes por relación de aspecto y aplica relleno a cada lote hasta alcanzar la forma más pequeña que permita incluirlas, por lo que las imágenes rectangulares se evalúan sin forzarlas a adoptar una forma cuadrada.
El parámetro imgsz establece el tamaño de imagen que se utiliza durante la validación y se aplica como un cuadrado. Si no lo especificas, 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 haya entrenado un punto de control personalizado). Con rect=true, YOLO26 limita el lado más largo a imgsz y aplica relleno al 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 en detalle el rendimiento de tu modelo, puedes acceder a métricas de evaluación concretas con unas pocas líneas de Python. El fragmento de código siguiente carga un modelo, ejecuta la validación e imprime las métricas más útiles.
from ultralytics import YOLO
# Cargar un modelo
model = YOLO("yolo26n.pt")
# Ejecuta la validación en tu conjunto de datos
results = model.val(data="coco8.yaml")
# Métricas generales
print("mAP50-95:", results.box.map) # mAP con IoU de 0.50:0.95
print("mAP50:", results.box.map50) # mAP con IoU de 0.50
print("mAP75:", results.box.map75) # mAP con IoU de 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness()) # puntuación ponderada utilizada para seleccionar modelos
# Métricas por clase
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)
# Precisión, exhaustividad, F1, TP, FP y FN por imagen
print("Per-image metrics:", results.box.image_metrics)
# Desglose de tiempos por fase en milisegundos por imagen
print("Timing breakdown (ms/image):", results.speed)Ten en cuenta que fitness() es un método y debe llamarse con paréntesis, mientras que 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 imagen y que contiene precision, recall, f1, tp, fp y fn con IoU de 0.5 para cada imagen. Los tiempos de preprocesamiento, inferencia, pérdida y posprocesamiento se muestran por separado en el diccionario results.speed. En conjunto, estas métricas te permiten identificar las imágenes que le cuestan al modelo y ajustarlo en consecuencia.
Ajuste fino de tu modelo#
El ajuste fino parte de 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 con los que se encontrará en aplicaciones reales. A partir de los resultados de la evaluación, vuelves a entrenar el modelo con tus propios datos y ajustas los argumentos de entrenamiento que se explican en la guía de ajuste fino.
División de imágenes en mosaicos para objetos pequeños#
La división de imágenes en mosaicos puede mejorar la precisión de detección de objetos pequeños. Al dividir imágenes grandes en segmentos más pequeños, como 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 con mosaicos de SAHI. Si entrenas con imágenes divididas en mosaicos, asegúrate de ajustar correctamente las etiquetas de cada segmento nuevo.
Conclusión#
La evaluación y el ajuste fino convierten un modelo entrenado en uno fiable y listo para implementar: métricas como mAP e IoU ponen de manifiesto los puntos débiles, y los cambios específicos en los parámetros los abordan. Empieza con el modo de validación para evaluar tu modelo y, después, vuelve a entrenarlo con los argumentos descritos en la guía de ajuste fino; sigue iterando con nuevos parámetros, técnicas y conjuntos de datos. Si te surgen dudas, pregunta a la comunidad en el repositorio de Ultralytics en GitHub o en el servidor de Discord de Ultralytics.
Preguntas frecuentes#
Para evaluar el rendimiento de un modelo YOLO26, algunas métricas importantes son la puntuación de confianza, la intersección sobre la 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 detectado. IoU evalúa cuánto se solapa el cuadro delimitador predicho con la anotación de referencia. 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. Descubre más 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 con tus propios datos a partir de los pesos preentrenados. 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 saber qué argumentos de entrenamiento debes modificar.Para gestionar tamaños de imagen variables durante la evaluación, utiliza la validación rectangular (
rect=True, el valor predeterminado demodel.val()), que agrupa las imágenes por relación de aspecto y añade relleno a cada lote, en lugar de forzar 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 preentrenados oficiales). Ajustaimgszen función de tu conjunto de datos y de la memoria de la GPU. Para obtener más información, visita nuestra sección sobre cómo gestionar 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 variadas.
- División de imágenes en mosaicos: Divide las imágenes grandes en mosaicos más pequeños para mejorar la precisión de detección de objetos pequeños.
Consulta la guía de ajuste fino para ver los argumentos de entrenamiento relacionados con los pasos 1 y 2; el paso 3 se explica en división de imágenes en mosaicos.
Puedes acceder a las métricas de evaluación de un modelo YOLO26 con Python después de ejecutar la validación:
Usofrom ultralytics import YOLO # Cargar un modelo model = YOLO("yolo26n.pt") # Ejecutar la validación results = model.val(data="coco8.yaml") # Acceder a las métricas clave 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.