Convalida del modello con Ultralytics YOLO
Introduzione
La convalida è un passo fondamentale nella pipeline dell'apprendimento automatico, che ti permette di valutare la qualità dei tuoi modelli addestrati. La modalità Val di Ultralytics YOLOv8 fornisce una robusta suite di strumenti e metriche per valutare le prestazioni dei tuoi modelli di rilevamento degli oggetti. Questa guida è una risorsa completa per capire come utilizzare efficacemente la modalità Val per garantire che i tuoi modelli siano accurati e affidabili.
Guarda: Ultralytics Tutorial sulle modalità : Convalida
Perché convalidare con Ultralytics YOLO ?
Ecco perché utilizzare la modalità Val di YOLOv8 è vantaggioso:
- 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.
- Regolazione degli iperparametri: Usa le metriche di convalida per mettere a punto il tuo modello per ottenere prestazioni migliori.
Caratteristiche principali della modalità Val
Queste sono le principali funzionalità offerte dalla modalità Val di YOLOv8:
- 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
- YOLOv8 I modelli ricordano automaticamente le loro impostazioni di addestramento, quindi puoi convalidare un modello con le stesse dimensioni dell'immagine e sul set di dati originale con la semplice
yolo val model=yolov8n.pt
omodel('yolov8n.pt').val()
Esempi di utilizzo
Convalida l'accuratezza del modello YOLOv8n addestrato sul set di dati COCO8. Non è necessario passare alcun argomento come il parametro model
mantiene la 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('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
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 ). Questo file include i percorsi dei dati di convalida, i nomi delle classi e il numero di classi. |
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 della 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 |
Imposta la soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Aiuta a ridurre i rilevamenti di duplicati. |
max_det |
int |
300 |
Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per evitare rilevamenti eccessivi. |
half |
bool |
True |
Consente il calcolo a mezza precisione (FP16), riducendo l'utilizzo della memoria e aumentando potenzialmente la velocità con un impatto minimo sulla precisione. |
device |
str |
None |
Specifica il dispositivo per la convalida (cpu , cuda:0 , ecc.) Permette di utilizzare in modo flessibile le risorse della CPU o della GPU. |
dnn |
bool |
False |
Se True utilizza il modulo OpenCV DNN per l'inferenza del modello ONNX , offrendo un'alternativa ai metodi di inferenza PyTorch . |
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