Saltar al contenido

Información sobre la evaluación y el ajuste de modelos

Introducción

Una vez que has entrenado tu modelo de visión por ordenador, es esencial evaluarlo y perfeccionarlo para que funcione de forma óptima. No basta con entrenar tu modelo. Tienes que asegurarte de que tu modelo es preciso, eficaz y cumple el objetivo de tu proyecto de visión por ordenador. Evaluando y afinando tu modelo, puedes identificar sus puntos débiles, mejorar su precisión y potenciar su rendimiento general.

En esta guía, compartiremos ideas sobre la evaluación y el ajuste de modelos que harán que este paso de un proyecto de visión por ordenador sea más accesible. Discutiremos cómo entender las métricas de evaluación y aplicar técnicas de ajuste, proporcionándote los conocimientos necesarios para elevar las capacidades de tu 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 una visión clara y numérica que puede orientar las mejoras para garantizar que el modelo cumple los objetivos previstos. Echemos un vistazo más de cerca a algunas métricas clave.

Puntuación de confianza

La puntuación de confianza representa la certeza del modelo de que un objeto detectado pertenece a una clase determinada. Oscila entre 0 y 1, y las puntuaciones más altas indican una mayor confianza. La puntuación de confianza ayuda a filtrar las predicciones; Solo las detecciones con puntuaciones 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 has comprobado todo lo demás, prueba a reducir 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 puede hacer el modelo y decidir cómo afinarlo.

Intersección sobre la Unión

Intersection over Union (IoU) is a metric in object detection that measures how well the predicted bounding box overlaps with the ground truth bounding box. IoU values range from 0 to 1, where one stands for a perfect match. IoU is essential because it measures how closely the predicted boundaries match the actual object boundaries.

Intersección sobre Union Visión general

Mean Average Precision

Mean Average Precision (mAP) is a way to measure how well an object detection model performs. It looks at the precision of detecting each object class, averages these scores, and gives an overall number that shows how accurately the model can identify and classify objects.

Centrémonos en dos métricas específicas de mAP:

  • mAP@.5: Measures the average precision at a single IoU (Intersection over Union) threshold of 0.5. This metric checks if the model can correctly find objects with a looser accuracy requirement. It focuses on whether the object is roughly in the right place, not needing perfect placement. It helps see if the model is generally good at spotting objects.
  • mAP@.5:.95: Calcula el promedio de los valores de mAP calculados en 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 imagen más completa de la precisión con la que el modelo puede encontrar objetos a distintos niveles de rigurosidad y es especialmente útil para aplicaciones que necesitan una detección precisa de objetos.

Otras métricas mAP son mAP@0.75, que utiliza un umbral IoU más estricto de 0,75, y mAP@small, medium y large, que evalúan la precisión en objetos de distintos tamaños.

Media Media Precisión Resumen

Evaluating YOLO11 Model Performance

With respect to YOLO11, you can use the validation mode to evaluate the model. Also, be sure to take a look at our guide that goes in-depth into YOLO11 performance metrics and how they can be interpreted.

Preguntas comunes de la comunidad

When evaluating your YOLO11 model, you might run into a few hiccups. Based on common community questions, here are some tips to help you get the most out of your YOLO11 model:

Manejo de tamaños de imagen variables

Evaluating your YOLO11 model with images of different sizes can help you understand its performance on diverse datasets. Using the rect=true validation parameter, YOLO11 adjusts the network's stride for each batch based on the image sizes, allowing the model to handle rectangular images without forcing them to a single size.

En imgsz El parámetro de validación establece la dimensión máxima para el cambio de tamaño de la imagen, que es 640 por defecto. Puedes ajustarlo en función de las dimensiones máximas de tu conjunto de datos y de la memoria disponible en GPU . Incluso con imgsz poner rect=true Permite que el modelo gestione los diferentes tamaños de imagen de forma eficaz ajustando dinámicamente la zancada.

Accessing YOLO11 Metrics

If you want to get a deeper understanding of your YOLO11 model's performance, you can easily access specific evaluation metrics with a few lines of Python code. The code snippet below will let you load your model, run an evaluation, and print out various metrics that show how well your model is doing.

Utilización

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)

The results object also includes speed metrics like preprocess time, inference time, loss, and postprocess time. By analyzing these metrics, you can fine-tune and optimize your YOLO11 model for better performance, making it more effective for your specific use case.

¿Cómo funciona el ajuste fino?

El ajuste fino implica tomar un modelo previamente entrenado y ajustar sus parámetros para mejorar el rendimiento en una tarea o conjunto de datos específicos. El proceso, también conocido como reentrenamiento del modelo, permite que el modelo comprenda y prediga mejor los resultados de los datos específicos que encontrará en las aplicaciones del mundo real. Puede volver a entrenar el modelo en función de la evaluación del modelo para lograr resultados óptimos.

Consejos para ajustar el modelo

Ajustar 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.

Starting With a Higher Learning Rate

Usually, during the initial training epochs, the learning rate starts low and gradually increases to stabilize the training process. However, since your model has already learned some features from the previous dataset, starting with a higher learning rate right away can be more beneficial.

When evaluating your YOLO11 model, you can set the warmup_epochs validation 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 sus nuevos datos.

Mosaico de imágenes para objetos pequeños

Image tiling can improve detection accuracy for small objects. By dividing larger images into smaller segments, such as splitting 1280x1280 images into multiple 640x640 segments, you maintain the original resolution, and the model can learn from high-resolution fragments. When using YOLO11, make sure to adjust your labels for these new segments correctly.

Interactúa con la comunidad

Sharing your ideas and questions with other computer vision enthusiasts can inspire creative solutions to roadblocks in your projects. Here are some excellent ways to learn, troubleshoot, and connect.

Encontrar ayuda y apoyo

  • GitHub Issues: Explore the YOLO11 GitHub repository and use the Issues tab to ask questions, report bugs, and suggest features. The community and maintainers are available to assist with any issues you encounter.
  • Ultralytics Servidor Discord: Únete al servidor Discord deUltralytics para conectar con otros usuarios y desarrolladores, obtener ayuda, compartir conocimientos y aportar ideas.

Documentación oficial

  • Ultralytics YOLO11 Documentation: Check out the official YOLO11 documentation for comprehensive guides and valuable insights on various computer vision tasks and projects.

Reflexiones finales

Evaluating and fine-tuning your computer vision model are important steps for successful model deployment. These steps help make sure that your model is accurate, efficient, and suited to your overall application. The key to training the best model possible is continuous experimentation and learning. Don't hesitate to tweak parameters, try new techniques, and explore different datasets. Keep experimenting and pushing the boundaries of what's possible!

PREGUNTAS FRECUENTES

What are the key metrics for evaluating YOLO11 model performance?

To evaluate YOLO11 model performance, important metrics include Confidence Score, Intersection over Union (IoU), and Mean Average Precision (mAP). Confidence Score measures the model's certainty for each detected object class. IoU evaluates how well the predicted bounding box overlaps with the ground truth. Mean Average Precision (mAP) aggregates precision scores across classes, with mAP@.5 and mAP@.5:.95 being two common types for varying IoU thresholds. Learn more about these metrics in our YOLO11 performance metrics guide.

How can I fine-tune a pre-trained YOLO11 model for my specific dataset?

Fine-tuning a pre-trained YOLO11 model involves adjusting its parameters to improve performance on a specific task or dataset. Start by evaluating your model using metrics, then set a higher initial learning rate by adjusting the warmup_epochs a 0 para una estabilidad inmediata. Utiliza parámetros como rect=true para manejar con eficacia tamaños de imagen variados. Para una orientación más detallada, consulta nuestra sección sobre fine-tuning YOLO11 models.

How can I handle variable image sizes when evaluating my YOLO11 model?

Para manejar tamaños de imagen variables durante la evaluación, utiliza la función rect=true parameter in YOLO11, which adjusts the network's stride for each batch based on image sizes. The imgsz establece la dimensión máxima para redimensionar la imagen, por defecto 640. Ajusta imgsz para adaptarlo a tu conjunto de datos y a la memoria GPU . Para más detalles, visita nuestra sección sobre el manejo de tamaños de imagen variables.

What practical steps can I take to improve mean average precision for my YOLO11 model?

Improving mean average precision (mAP) for a YOLO11 model involves several steps:

  1. Tuning Hyperparameters: Experiment with different learning rates, batch sizes, and image augmentations.
  2. Data Augmentation: Use techniques like Mosaic and MixUp to create diverse training samples.
  3. Image Tiling: Split larger images into smaller tiles to improve detection accuracy for small objects. Refer to our detailed guide on model fine-tuning for specific strategies.

How do I access YOLO11 model evaluation metrics in Python?

You can access YOLO11 model evaluation metrics using Python with the following steps:

Utilización

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)

Analyzing these metrics helps fine-tune and optimize your YOLO11 model. For a deeper dive, check out our guide on YOLO11 metrics.

📅 Created 3 months ago ✏️ Updated 22 days ago

Comentarios