Validaci贸n del modelo con Ultralytics YOLO
Introducci贸n
Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.
Observa: Ultralytics Tutorial de Modos: Validaci贸n
驴Por qu茅 validar con Ultralytics YOLO ?
Here's why using YOLO11's Val mode is advantageous:
- Precisi贸n: Obt茅n m茅tricas precisas como mAP50, mAP75 y mAP50-95 para evaluar exhaustivamente tu modelo.
- Comodidad: Utiliza funciones integradas que recuerden los ajustes de entrenamiento, simplificando el proceso de validaci贸n.
- Flexibilidad: Valida tu modelo con los mismos o diferentes conjuntos de datos y tama帽os de imagen.
- Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.
Caracter铆sticas principales del modo Val
These are the notable functionalities offered by YOLO11's Val mode:
- Configuraciones automatizadas: Los modelos recuerdan sus configuraciones de entrenamiento para una validaci贸n sencilla.
- Soporte multim茅trico: Eval煤a tu modelo bas谩ndote en una serie de m茅tricas de precisi贸n.
- CLI y la API Python : Elige entre la interfaz de l铆nea de comandos o la API Python en funci贸n de tus preferencias de validaci贸n.
- Compatibilidad de datos: Funciona perfectamente con los conjuntos de datos utilizados durante la fase de entrenamiento, as铆 como con conjuntos de datos personalizados.
Consejo
- YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just
yolo val model=yolo11n.pt
omodel('yolo11n.pt').val()
Ejemplos de uso
Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the model
conserva su formaci贸n data
y los argumentos como atributos del modelo. Consulta la secci贸n Argumentos para ver una lista completa de los argumentos de exportaci贸n.
Ejemplo
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val() # no arguments needed, dataset and settings remembered
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # a list contains map50-95 of each category
Argumentos para la validaci贸n del modelo YOLO
Al validar los modelos YOLO , se pueden ajustar varios argumentos para optimizar el proceso de evaluaci贸n. Estos argumentos controlan aspectos como el tama帽o de la imagen de entrada, el procesamiento por lotes y los umbrales de rendimiento. A continuaci贸n se ofrece un desglose detallado de cada argumento para ayudarte a personalizar eficazmente tus ajustes de validaci贸n.
Argumento | Tipo | Por defecto | Descripci贸n |
---|---|---|---|
data |
str |
None |
Especifica la ruta del archivo de configuraci贸n del conjunto de datos (por ejemplo, coco8.yaml ). This file includes paths to validation data, class names, and number of classes. |
imgsz |
int |
640 |
Define el tama帽o de las im谩genes de entrada. Todas las im谩genes se redimensionan a esta dimensi贸n antes de procesarlas. |
batch |
int |
16 |
Establece el n煤mero de im谩genes por lote. Utiliza -1 para AutoBatch, que se ajusta autom谩ticamente en funci贸n de la disponibilidad de memoria de GPU . |
save_json |
bool |
False |
Si True , guarda los resultados en un archivo JSON para su posterior an谩lisis o integraci贸n con otras herramientas. |
save_hybrid |
bool |
False |
Si True , guarda una versi贸n h铆brida de las etiquetas que combina las anotaciones originales con predicciones adicionales del modelo. |
conf |
float |
0.001 |
Establece el umbral m铆nimo de confianza para las detecciones. Las detecciones con una confianza inferior a este umbral se descartan. |
iou |
float |
0.6 |
Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections. |
max_det |
int |
300 |
Limita el n煤mero m谩ximo de detecciones por imagen. 脷til en escenas densas para evitar detecciones excesivas. |
half |
bool |
True |
Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy. |
device |
str |
None |
Especifica el dispositivo para la validaci贸n (cpu , cuda:0 etc.). Permite flexibilidad en la utilizaci贸n de los recursos de CPU o GPU . |
dnn |
bool |
False |
Si True , uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. |
plots |
bool |
False |
Cuando se ajusta a True genera y guarda gr谩ficos de predicciones frente a la verdad sobre el terreno para evaluar visualmente el rendimiento del modelo. |
rect |
bool |
False |
Si True utiliza la inferencia rectangular para la dosificaci贸n, reduciendo el relleno y aumentando potencialmente la velocidad y la eficacia. |
split |
str |
val |
Determina la divisi贸n del conjunto de datos que se utilizar谩 para la validaci贸n (val , test o train ). Permite flexibilidad en la elecci贸n del segmento de datos para la evaluaci贸n del rendimiento. |
Cada uno de estos ajustes desempe帽a un papel vital en el proceso de validaci贸n, permitiendo una evaluaci贸n personalizable y eficaz de los modelos YOLO . Ajustar estos par谩metros seg煤n tus necesidades y recursos espec铆ficos puede ayudarte a conseguir el mejor equilibrio entre precisi贸n y rendimiento.
Ejemplo de validaci贸n con argumentos
Los siguientes ejemplos muestran la validaci贸n del modelo YOLO con argumentos personalizados en Python y CLI.
Ejemplo
PREGUNTAS FRECUENTES
How do I validate my YOLO11 model with Ultralytics?
To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate the model
metrics = model.val()
print(metrics.box.map) # map50-95
Tambi茅n puedes utilizar la interfaz de l铆nea de comandos (CLI):
Para una mayor personalizaci贸n, puedes ajustar varios argumentos como imgsz
, batch
y conf
en los modos Python y CLI . Comprueba Argumentos para la validaci贸n del modelo YOLO para ver la lista completa de par谩metros.
What metrics can I get from YOLO11 model validation?
YOLO11 model validation provides several key metrics to assess model performance. These include:
- mAP50 (Precisi贸n media en el umbral IoU 0,5)
- mAP75 (Precisi贸n media media en el umbral IoU 0,75)
- mAP50-95 (Precisi贸n media a trav茅s de m煤ltiples umbrales de IoU de 0,5 a 0,95)
Utilizando la API Python , puedes acceder a estas m茅tricas del siguiente modo:
metrics = model.val() # assumes `model` has been loaded
print(metrics.box.map) # mAP50-95
print(metrics.box.map50) # mAP50
print(metrics.box.map75) # mAP75
print(metrics.box.maps) # list of mAP50-95 for each category
Para una evaluaci贸n completa del rendimiento, es crucial revisar todas estas m茅tricas. Para m谩s detalles, consulta las Caracter铆sticas principales del Modo Val.
驴Cu谩les son las ventajas de utilizar Ultralytics YOLO para la validaci贸n?
Utilizar Ultralytics YOLO para la validaci贸n ofrece varias ventajas:
- Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and mAP50-95.
- Comodidad: Los modelos recuerdan sus ajustes de entrenamiento, lo que facilita la validaci贸n.
- Flexibilidad: Puedes validar con los mismos o diferentes conjuntos de datos y tama帽os de imagen.
- Ajuste de hiperpar谩metros: Las m茅tricas de validaci贸n ayudan a ajustar los modelos para mejorar su rendimiento.
Estas ventajas garantizan que tus modelos se eval煤en a fondo y puedan optimizarse para obtener resultados superiores. Obt茅n m谩s informaci贸n sobre estas ventajas en la secci贸n Por qu茅 validar con Ultralytics YOLO .
Can I validate my YOLO11 model using a custom dataset?
Yes, you can validate your YOLO11 model using a custom dataset. Specify the data
argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.
Ejemplo en Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map) # map50-95
Ejemplo utilizando CLI:
Para m谩s opciones personalizables durante la validaci贸n, consulta la secci贸n Ejemplo de validaci贸n con argumentos.
How do I save validation results to a JSON file in YOLO11?
Para guardar los resultados de la validaci贸n en un archivo JSON, puedes establecer la opci贸n save_json
argumento para True
al ejecutar la validaci贸n. Esto puede hacerse tanto en la API Python como en CLI.
Ejemplo en Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Save validation results to JSON
metrics = model.val(save_json=True)
Ejemplo utilizando CLI:
Esta funcionalidad es especialmente 煤til para an谩lisis posteriores o para la integraci贸n con otras herramientas. Consulta los Argumentos para la validaci贸n del modelo YOLO para m谩s detalles.