Meet YOLO26: next-gen vision AI.

Link to this sectionInformación sobre la evaluación y el ajuste fino de modelos#

Después de entrenar un modelo YOLO, el siguiente paso es medir qué tan bien funciona y ajustarlo para cerrar las brechas. La evaluación utiliza métricas como mAP y IoU para cuantificar la precisión, mientras que el ajuste fino modifica los parámetros de entrenamiento para reforzar los puntos débiles y que el modelo cumpla con el objetivo de tu proyecto. Esta guía explica las métricas de evaluación clave, cómo interpretarlas y las técnicas de ajuste fino que elevan las capacidades de tu modelo.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

La evaluación y el ajuste fino se encuentran cerca del final del flujo de trabajo del proyecto de visión artificial, una vez que el entrenamiento está en marcha y necesitas verificar que el modelo sea preciso, eficiente y esté listo para su implementación.

Link to this sectionMétricas de evaluación clave#

Varias métricas miden la eficacia con la que funciona un modelo. Estas métricas de rendimiento proporcionan información numérica clara que guía las mejoras para asegurar que el modelo cumpla con los objetivos previstos.

Link to this sectionPuntuación de confianza#

La puntuación de confianza representa la certeza del modelo de que un objeto detectado pertenece a una clase particular. Oscila entre 0 y 1, donde 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 superiores a un umbral especificado.

¿No ves ninguna predicción?

Al ejecutar la inferencia, si no ves ninguna predicción y ya has revisado todo lo demás, intenta reducir el umbral de confianza. A veces, el umbral es demasiado alto, lo que hace que el modelo ignore predicciones válidas. Reducirlo permite que el modelo considere más posibilidades. Puede que esto no cumpla con los objetivos finales de tu proyecto, pero es una buena forma de ver de qué es capaz el modelo y decidir cómo ajustarlo.

Link to this sectionIntersection over Union#

Intersection over Union (IoU) es una métrica en detección de objetos que mide qué tan bien se superpone el bounding box predicho con el bounding box de referencia (ground truth). Los valores de IoU oscilan entre 0 y 1, donde uno representa una coincidencia perfecta. La IoU es esencial porque mide cuánto se ajustan los límites predichos a los límites reales del objeto.

Intersection over Union Overview

Link to this sectionPrecisión media#

La Mean Average Precision (mAP) mide el rendimiento general de un modelo de detección de objetos. Observa la precisión de la detección de cada clase de objeto, promedia estas puntuaciones y ofrece un número único que muestra con qué exactitud el modelo puede identificar y clasificar objetos.

Dos métricas de mAP son las que se reportan con mayor frecuencia:

  • mAP@.5: Mide la precisión media en 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 más flexible. Se centra en si el objeto está aproximadamente en el lugar correcto, sin necesidad de una ubicación perfecta, y ayuda a ver si el modelo es generalmente bueno detectando 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 imagen 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 requieren 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, y large, que evalúan la precisión en objetos de diferentes tamaños.

Mean average precision mAP metric

Link to this sectionEvaluación de un modelo YOLO26#

Puedes evaluar un modelo YOLO26 entrenado con el modo de validación. Para obtener una visión más detallada de cómo se calcula e interpreta cada métrica, consulta la guía de métricas de rendimiento de YOLO26.

Link to this sectionManejo de tamaños de imagen variables#

Evaluar tu modelo con imágenes de diferentes tamaños te ayuda a comprender su rendimiento en diversos conjuntos de datos. El parámetro de validación rect=true agrupa las imágenes por relación de aspecto y rellena cada lote hasta la forma más pequeña que encaje, de modo que las imágenes rectangulares se evalúen sin ser forzadas a un formato cuadrado.

El parámetro imgsz establece el tamaño de imagen utilizado durante la validación, aplicado como un cuadrado. Si no lo estableces explícitamente, YOLO26 reutiliza el valor guardado en la configuración del modelo (640 para los modelos preentrenados oficiales, 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 un múltiplo del stride, preservando la relación de aspecto. Ajusta imgsz según las dimensiones de tu conjunto de datos y la memoria de GPU disponible.

Link to this sectionAcceso 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 a continuación carga un modelo, ejecuta la validación e imprime las métricas más útiles.

Uso
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 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 organizado por nombre de archivo, que contiene precision, recall, f1, tp, fp y fn en IoU 0.5 para cada imagen. Los tiempos de preprocesamiento, inferencia, pérdida y posprocesamiento se reportan por separado en el diccionario results.speed. Juntos, te permiten identificar con qué imágenes tiene dificultades el modelo y realizar el ajuste fino en consecuencia.

Link to this sectionAjuste fino de tu modelo#

El ajuste fino toma un modelo preentrenado y ajusta sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específico. También conocido como reentrenamiento del modelo, permite que el modelo comprenda y prediga mejor los resultados para los datos que encontrará en aplicaciones del mundo real. Según los resultados de tu evaluación, reentrenas el modelo para lograr resultados óptimos prestando mucha atención a algunos parámetros y técnicas clave.

Link to this sectionEmpezar con una tasa de aprendizaje más alta#

Durante el entrenamiento normal, la learning rate comienza baja y aumenta gradualmente durante las primeras épocas para estabilizar las actualizaciones iniciales. Al realizar un ajuste fino, el modelo ya posee características útiles del preentrenamiento, por lo que puedes omitir este calentamiento y comenzar a adaptarte a tus nuevos datos de inmediato.

Establece el argumento de entrenamiento warmup_epochs a 0 en model.train() para deshabilitar la fase de calentamiento. El entrenamiento continúa entonces desde los pesos preentrenados a la tasa de aprendizaje base configurada (lr0) en lugar de aumentar hasta ella, adaptándose a los matices de tus nuevos datos.

Ajuste fino sin calentamiento de la tasa de aprendizaje
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

Link to this sectionMosaico de imágenes para objetos pequeños#

El mosaico de imágenes (image tiling) puede mejorar la precisión de detección para 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, preservas la resolución original y permites que el modelo aprenda de fragmentos de alta resolución. Ultralytics admite esto durante la inferencia a través de SAHI tiled inference. Al entrenar con imágenes en mosaico, asegúrate de ajustar tus etiquetas correctamente para cada nuevo segmento.

Link to this sectionConclusión#

La evaluación y el ajuste fino son lo que convierte a un modelo entrenado en uno confiable y desplegable: métricas como mAP e IoU exponen debilidades, y los cambios de parámetros específicos las abordan. Comienza con el modo de validación para realizar un benchmarking de tu modelo, luego aplica las técnicas de ajuste fino anteriores y sigue iterando con nuevos parámetros, técnicas y conjuntos de datos. Si surgen preguntas en el camino, pregunta a la comunidad en el repositorio de GitHub de Ultralytics o en el servidor de Discord de Ultralytics.

Link to this sectionFAQ#

Link to this section¿Cuáles son las métricas clave para evaluar el rendimiento del modelo YOLO26?#

Para evaluar el rendimiento del modelo YOLO26, las métricas importantes incluyen la puntuación de confianza, Intersection over Union (IoU) y Mean Average Precision (mAP). La puntuación de confianza mide la certeza del modelo para cada clase de objeto detectado. IoU evalúa qué tan bien se superpone el bounding box predicho con el ground truth. Mean Average Precision (mAP) agrega las puntuaciones de precisión entre clases, siendo mAP@.5 y mAP@.5:.95 dos tipos comunes para diferentes umbrales de IoU. Aprende más sobre estas métricas en nuestra guía de métricas de rendimiento de YOLO26.

Link to this section¿Cómo puedo realizar el ajuste fino de un modelo YOLO26 preentrenado para mi conjunto de datos específico?#

El ajuste fino de un modelo YOLO26 preentrenado implica ajustar sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específico. Comienza evaluando tu modelo con métricas, luego establece el argumento de entrenamiento warmup_epochs a 0 en model.train() para que la tasa de aprendizaje comience inmediatamente en el valor base configurado en lugar de aumentar gradualmente. Durante la evaluación, parámetros como rect=true ayudan a manejar eficazmente diferentes tamaños de imagen. Para una guía más detallada, consulta nuestra sección sobre ajuste fino de tu modelo.

Link to this section¿Cómo puedo manejar tamaños de imagen variables al evaluar mi modelo YOLO26?#

Para manejar tamaños de imagen variables durante la evaluación, utiliza el parámetro rect=true en YOLO26, que agrupa las imágenes por relación de aspecto y rellena cada lote en lugar de forzar a cada imagen a ser cuadrada. El parámetro imgsz establece el tamaño de imagen para la validación; si no lo anulas, YOLO26 reutiliza el valor guardado del modelo (640 para los modelos preentrenados oficiales). Ajusta imgsz para adaptarlo a tu conjunto de datos y memoria de GPU. Para más detalles, visita nuestra sección sobre manejo de tamaños de imagen variables.

Link to this section¿Qué pasos prácticos puedo seguir para mejorar la precisión media (mAP) de mi modelo YOLO26?#

Mejorar la precisión media (mAP) de un modelo YOLO26 implica varios pasos:

  1. Ajuste de hiperparámetros: Experimenta con diferentes tasas de aprendizaje, tamaños de lote (batch sizes) y aumentos de imagen.
  2. Aumento de datos (Data Augmentation): Utiliza técnicas como Mosaic y MixUp para crear muestras de entrenamiento diversas.
  3. Mosaico de imágenes: divide imágenes más grandes en mosaicos más pequeños para mejorar la precisión de la detección de objetos pequeños.

Consulta nuestra sección detallada sobre ajuste fino de tu modelo para conocer estrategias específicas.

Link to this section¿Cómo accedo a las métricas de evaluación del modelo YOLO26 en Python?#

Puedes acceder a las métricas de evaluación del modelo YOLO26 usando Python después de ejecutar la validación:

Uso
from 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 una inmersión más profunda, echa un vistazo a nuestra guía sobre métricas de rendimiento de YOLO.

Comentarios