Convalida del modello con Ultralytics YOLO
Introduzione
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.
Guarda: Ultralytics Tutorial sulle modalità: Convalida
Perché convalidare con Ultralytics YOLO ?
Here's why using YOLO11's Val mode is advantageous:
- Precisione: Ottieni metriche precise come mAP50, mAP75 e mAP50-95 per valutare in modo completo il tuo modello.
- Convenienza: Utilizza funzioni integrate che ricordano le impostazioni di allenamento, semplificando il processo di convalida.
- Flessibilità: Convalida il tuo modello con lo stesso set di dati o con immagini di dimensioni diverse.
- Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.
Caratteristiche principali della modalità Val
These are the notable functionalities offered by YOLO11's Val mode:
- Impostazioni automatiche: I modelli ricordano le configurazioni di addestramento per una convalida immediata.
- Supporto multimetrico: Valuta il tuo modello in base a una serie di parametri di accuratezza.
- CLI e Python API: Scegli l'interfaccia a riga di comando o l'API Python in base alle tue preferenze di convalida.
- Compatibilità dei dati: Funziona perfettamente con i set di dati utilizzati durante la fase di formazione e con quelli personalizzati.
Suggerimento
- 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()
Esempi di utilizzo
Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the model
mantiene la sua formazione data
e gli argomenti come attributi del modello. Per un elenco completo degli argomenti di esportazione, consulta la sezione Argomenti.
Esempio
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
Argomenti per la convalida del modello YOLO
Quando si convalidano i modelli di YOLO , è possibile regolare con precisione diversi argomenti per ottimizzare il processo di valutazione. Questi argomenti controllano aspetti come le dimensioni dell'immagine di input, l'elaborazione in batch e le soglie di rendimento. Di seguito troverai una descrizione dettagliata di ogni argomento per aiutarti a personalizzare le impostazioni di convalida in modo efficace.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
data |
str |
None |
Specifica il percorso del file di configurazione del dataset (ad es, coco8.yaml ). This file includes paths to validation data, class names, and number of classes. |
imgsz |
int |
640 |
Definisce la dimensione delle immagini in ingresso. Tutte le immagini vengono ridimensionate a questa dimensione prima dell'elaborazione. |
batch |
int |
16 |
Imposta il numero di immagini per batch. Utilizza -1 per AutoBatch, che si regola automaticamente in base alla disponibilità di memoria di GPU . |
save_json |
bool |
False |
Se True salva i risultati in un file JSON per ulteriori analisi o per l'integrazione con altri strumenti. |
save_hybrid |
bool |
False |
Se True , salva una versione ibrida delle etichette che combina le annotazioni originali con le previsioni aggiuntive del modello. |
conf |
float |
0.001 |
Imposta la soglia minima di confidenza per i rilevamenti. I rilevamenti con una confidenza inferiore a questa soglia vengono scartati. |
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 il numero massimo di rilevamenti per immagine. Utile in scene dense per evitare rilevamenti eccessivi. |
half |
bool |
True |
Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy. |
device |
str |
None |
Specifica il dispositivo per la convalida (cpu , cuda:0 , ecc.) Permette di utilizzare in modo flessibile le risorse di CPU o GPU . |
dnn |
bool |
False |
Se True , uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods. |
plots |
bool |
False |
Quando è impostato su True genera e salva i grafici delle previsioni rispetto alla verità a terra per valutare visivamente le prestazioni del modello. |
rect |
bool |
False |
Se True utilizza l'inferenza rettangolare per il batching, riducendo il padding e aumentando potenzialmente la velocità e l'efficienza. |
split |
str |
val |
Determina la suddivisione del set di dati da utilizzare per la validazione (val , test , oppure train ). Permette di scegliere con flessibilità il segmento di dati per la valutazione delle prestazioni. |
Ognuna di queste impostazioni svolge un ruolo fondamentale nel processo di convalida, consentendo una valutazione personalizzabile ed efficiente dei modelli YOLO . Regolare questi parametri in base alle tue specifiche esigenze e risorse può aiutarti a raggiungere il miglior equilibrio tra accuratezza e prestazioni.
Esempio di validazione con argomenti
Gli esempi seguenti mostrano la validazione del modello YOLO con argomenti personalizzati in Python e CLI.
Esempio
DOMANDE FREQUENTI
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
In alternativa, puoi utilizzare l'interfaccia a riga di comando (CLI):
Per un'ulteriore personalizzazione, puoi regolare diversi argomenti come imgsz
, batch
, e conf
sia in modalità Python che CLI . Controlla il Argomenti per la convalida del modello YOLO per l'elenco completo dei parametri.
What metrics can I get from YOLO11 model validation?
YOLO11 model validation provides several key metrics to assess model performance. These include:
- mAP50 (precisione media con soglia IoU 0,5)
- mAP75 (precisione media con soglia IoU 0,75)
- mAP50-95 (precisione media su più soglie IoU da 0,5 a 0,95)
Utilizzando l'API di Python , puoi accedere a queste metriche come segue:
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
Per una valutazione completa delle prestazioni, è fondamentale esaminare tutte queste metriche. Per maggiori dettagli, consulta le Caratteristiche principali della Modalità Val.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLO per la convalida?
L'utilizzo di Ultralytics YOLO per la convalida offre diversi vantaggi:
- Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and mAP50-95.
- Convenienza: I modelli ricordano le impostazioni di addestramento, rendendo semplice la convalida.
- Flessibilità: Puoi convalidare con lo stesso set di dati o con immagini di dimensioni diverse.
- Regolazione degli iperparametri: Le metriche di convalida aiutano a mettere a punto i modelli per ottenere prestazioni migliori.
Questi vantaggi garantiscono che i tuoi modelli siano valutati in modo approfondito e possano essere ottimizzati per ottenere risultati superiori. Scopri di più su questi vantaggi nella sezione Perché convalidare 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.
Esempio in 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
Esempio di utilizzo di CLI:
Per ulteriori opzioni personalizzabili durante la convalida, consulta la sezione Esempio di convalida con argomenti.
How do I save validation results to a JSON file in YOLO11?
Per salvare i risultati della convalida in un file JSON, puoi impostare il parametro save_json
argomento a True
quando si esegue la convalida. Questo può essere fatto sia nell'API di Python che in CLI.
Esempio in Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt")
# Save validation results to JSON
metrics = model.val(save_json=True)
Esempio di utilizzo di CLI:
Questa funzionalità è particolarmente utile per ulteriori analisi o per l'integrazione con altri strumenti. Per maggiori dettagli, consulta gli Argomenti per la convalida del modello di YOLO .