Saltar al contenido

Validaci贸n del modelo con Ultralytics YOLO

Ultralytics YOLO ecosistema e integraciones

Introducci贸n

La validaci贸n es un paso cr铆tico en el proceso de aprendizaje autom谩tico, que te permite evaluar la calidad de tus modelos entrenados. El modo Val de Ultralytics YOLOv8 proporciona un s贸lido conjunto de herramientas y m茅tricas para evaluar el rendimiento de tus modelos de detecci贸n de objetos. Esta gu铆a es un recurso completo para comprender c贸mo utilizar eficazmente el modo Val para asegurarte de que tus modelos son precisos y fiables.



Observa: Ultralytics Tutorial de Modos: Validaci贸n

驴Por qu茅 validar con Ultralytics YOLO ?

He aqu铆 por qu茅 es ventajoso utilizar el modo Val de YOLOv8:

  • 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.
  • Ajuste de hiperpar谩metros: Utiliza las m茅tricas de validaci贸n para ajustar tu modelo y obtener un mejor rendimiento.

Caracter铆sticas principales del modo Val

Estas son las funcionalidades destacadas que ofrece el modo Val de YOLOv8:

  • 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

  • YOLOv8 recuerdan autom谩ticamente sus ajustes de entrenamiento, por lo que puedes validar un modelo con el mismo tama帽o de imagen y en el conjunto de datos original f谩cilmente con s贸lo yolo val model=yolov8n.pt o model('yolov8n.pt').val()

Ejemplos de uso

Valida la precisi贸n del modelo entrenado YOLOv8n en el conjunto de datos COCO8. No es necesario pasar ning煤n argumento como 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('yolov8n.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
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

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). Este archivo incluye las rutas a los datos de validaci贸n, los nombres de las clases y el n煤mero de clases.
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 la 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 Establece el umbral de Intersecci贸n Sobre Uni贸n (IoU) para la Supresi贸n No M谩xima (NMS). Ayuda a reducir las detecciones duplicadas.
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 Permite el c谩lculo de media precisi贸n (FP16), reduciendo el uso de memoria y aumentando potencialmente la velocidad con un impacto m铆nimo en la precisi贸n.
device str None Especifica el dispositivo para la validaci贸n (cpu, cuda:0etc.). Permite flexibilidad en la utilizaci贸n de recursos de CPU o GPU.
dnn bool False Si True, utiliza el m贸dulo DNN de OpenCV para la inferencia del modelo ONNX , ofreciendo una alternativa a los m茅todos de inferencia de PyTorch .
plots bool False Cuando se ajusta a Truegenera y guarda gr谩ficos de predicciones frente a la verdad sobre el terreno para evaluar visualmente el rendimiento del modelo.
rect bool False Si Trueutiliza 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, testo 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

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.pt')

# Customize validation settings
validation_results = model.val(data='coco8.yaml',
                               imgsz=640,
                               batch=16,
                               conf=0.25,
                               iou=0.6,
                               device='0')
yolo val model=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Creado 2023-11-12, Actualizado 2024-04-18
Autores: glenn-jocher (9), Burhan-Q (1), RizwanMunawar (1)

Comentarios