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 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("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 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 |
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 di CPU o 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
DOMANDE FREQUENTI
Come posso convalidare il mio modello YOLOv8 con Ultralytics?
Per convalidare il tuo modello YOLOv8 , puoi utilizzare la modalità Val fornita da Ultralytics. Ad esempio, utilizzando l'API di Python , puoi caricare un modello ed eseguire la convalida con:
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.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.
Quali metriche posso ottenere dalla convalida del modello YOLOv8 ?
YOLOv8 La convalida del modello fornisce diverse metriche chiave per valutare le prestazioni del modello. Questi includono:
- 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:
- Precisione: YOLOv8 offre metriche precise sulle prestazioni, tra cui mAP50, mAP75 e 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 .
Posso convalidare il mio modello YOLOv8 utilizzando un set di dati personalizzato?
Sì, puoi convalidare il tuo modello YOLOv8 utilizzando un set di dati personalizzato. Specifica il nome data
con il percorso del tuo file di configurazione del dataset. Questo file deve includere i percorsi dei dati di convalida, i nomi delle classi e altri dettagli rilevanti.
Esempio in Python:
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.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.
Come faccio a salvare i risultati della convalida in un file JSON in YOLOv8?
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("yolov8n.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 .