Validaci贸n de modelos con Ultralytics YOLO
Introducci贸n
La validaci贸n es un paso fundamental en el proceso de aprendizaje autom谩tico, ya que permite evaluar la calidad de los modelos entrenados. El modo Val de Ultralytics YOLO11 proporciona un s贸lido conjunto de herramientas y m茅tricas para evaluar el rendimiento de sus modelos de detecci贸n de objetos. Esta gu铆a es un recurso completo para comprender c贸mo utilizar eficazmente el modo Val para garantizar que sus 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 YOLO11:
- Precisi贸n: Obtenga m茅tricas precisas como mAP50, mAP75 y mAP50-95 para evaluar exhaustivamente su modelo.
- Comodidad: Utiliza funciones integradas que recuerdan los ajustes de entrenamiento, simplificando el proceso de validaci贸n.
- Flexibilidad: Valide su modelo con los mismos o diferentes conjuntos de datos y tama帽os de imagen.
- Ajuste de hiperpar谩metros: Utilice las m茅tricas de validaci贸n para ajustar su modelo y obtener un mejor rendimiento.
Caracter铆sticas principales del modo Val
Estas son las funcionalidades destacadas que ofrece el modo Val de YOLO11:
- Configuraciones automatizadas: Los modelos recuerdan sus configuraciones de entrenamiento para una validaci贸n directa.
- Soporte multim茅trico: Eval煤e su modelo en funci贸n de una serie de m茅tricas de precisi贸n.
- CLI y Python API: Elija entre la interfaz de l铆nea de comandos o la API Python en funci贸n de sus preferencias de validaci贸n.
- Compatibilidad de datos: Funciona a la perfecci贸n con conjuntos de datos utilizados durante la fase de entrenamiento, as铆 como con conjuntos de datos personalizados.
Consejo
- YOLO11 recuerdan autom谩ticamente su configuraci贸n de entrenamiento, por lo que puede validar un modelo en el mismo tama帽o de imagen y en el conjunto de datos original f谩cilmente con s贸lo
yolo val model=yolo11n.pt
omodel('yolo11n.pt').val()
Ejemplos de uso
Validaci贸n del modelo YOLO11n entrenado precisi贸n en el conjunto de datos COCO8. No se necesitan argumentos, ya que el model
conserva su formaci贸n data
y los argumentos como atributos del modelo. Consulte la secci贸n Argumentos para obtener 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 de modelos YOLO
Al validar los modelos de YOLO , pueden ajustarse 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 ayudarle a personalizar eficazmente los 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 rutas a datos de validaci贸nnombres de las clases y 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. Utilice -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 |
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 precisi贸n media (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:0 etc.). Permite flexibilidad en la utilizaci贸n de los recursos de CPU o GPU . |
dnn |
bool |
False |
Si True utiliza el OpenCV M贸dulo DNN para la inferencia de modelos ONNX , que ofrece una alternativa a PyTorch m茅todos de inferencia. |
plots |
bool |
False |
Cuando se establece en True genera y guarda gr谩ficos de predicciones frente a la verdad sobre el terreno para una evaluaci贸n visual del rendimiento del modelo. |
rect |
bool |
True |
Si True utiliza la inferencia rectangular para el procesamiento por lotes, 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 a la hora de elegir el segmento de datos para la evaluaci贸n del rendimiento. |
project |
str |
None |
Nombre del directorio del proyecto donde se guardan los resultados de la validaci贸n. |
name |
str |
None |
Nombre de la ejecuci贸n de validaci贸n. Se utiliza para crear un subdirectorio dentro de la carpeta del proyecto, donde se almacenan los registros de validaci贸n y los resultados. |
Cada uno de estos ajustes desempe帽a un papel vital en el proceso de validaci贸n, permitiendo una evaluaci贸n personalizable y eficiente de los modelos de YOLO . Ajustar estos par谩metros en funci贸n de sus necesidades y recursos espec铆ficos puede ayudar a lograr 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
驴C贸mo puedo validar mi modelo YOLO11 con Ultralytics?
Para validar su modelo YOLO11 , puede utilizar el modo Val proporcionado por Ultralytics. Por ejemplo, utilizando la API Python , puede cargar un modelo y ejecutar la validaci贸n con:
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 puede utilizar la interfaz de l铆nea de comandos (CLI):
Para una mayor personalizaci贸n, puede ajustar varios argumentos como imgsz
, batch
y conf
en los modos Python y CLI . Compruebe la Argumentos para la validaci贸n de modelos YOLO para consultar la lista completa de par谩metros.
驴Qu茅 m茅tricas puedo obtener de la validaci贸n del modelo YOLO11 ?
YOLO11 La validaci贸n de modelos proporciona varias m茅tricas clave para evaluar el rendimiento de los modelos. Entre ellos se incluyen:
- mAP50 (Precisi贸n media en el umbral IoU 0,5)
- mAP75 (Precisi贸n media en el umbral IoU 0,75)
- mAP50-95 (precisi贸n media en varios umbrales de IoU de 0,5 a 0,95)
A trav茅s de la API Python , puede acceder a estas m茅tricas de la siguiente manera:
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, consulte las Caracter铆sticas principales del modo Val.
驴Cu谩les son las ventajas de utilizar Ultralytics YOLO para la validaci贸n?
El uso de Ultralytics YOLO para la validaci贸n ofrece varias ventajas:
- Precisi贸n: YOLO11 ofrece m茅tricas de rendimiento precisas que incluyen mAP50, mAP75 y mAP50-95.
- Comodidad: Los modelos recuerdan sus ajustes de entrenamiento, lo que facilita la validaci贸n.
- Flexibilidad: Puede validar contra el mismo 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 sus modelos se eval煤en a fondo y puedan optimizarse para obtener resultados superiores. Obtenga m谩s informaci贸n sobre estas ventajas en la secci贸n Por qu茅 validar con Ultralytics YOLO .
驴Puedo validar mi modelo YOLO11 utilizando un conjunto de datos personalizado?
S铆, puede validar su modelo YOLO11 utilizando un conjunto de datos personalizado. Especifique el data
con la ruta al archivo de configuraci贸n del conjunto de datos. Este archivo debe incluir las rutas a los archivos datos de validaci贸nnombres de clase y otros detalles relevantes.
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 con CLI:
Para m谩s opciones personalizables durante la validaci贸n, consulte la secci贸n Ejemplo de validaci贸n con argumentos.
驴C贸mo puedo guardar los resultados de la validaci贸n en un archivo JSON en YOLO11?
Para guardar los resultados de la validaci贸n en un archivo JSON, puede establecer el par谩metro 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 con CLI:
Esta funcionalidad es especialmente 煤til para an谩lisis posteriores o para la integraci贸n con otras herramientas. Consulte los Argumentos para la validaci贸n de modelos de YOLO para obtener m谩s detalles.