Convalida del modello con Ultralytics YOLO
Introduzione
La convalida è una fase cruciale della pipeline di apprendimento automatico, che consente di valutare la qualità dei modelli addestrati. La modalità Val di Ultralytics YOLO11 fornisce una robusta suite di strumenti e metriche per valutare le prestazioni dei modelli di rilevamento degli oggetti. Questa guida è una risorsa completa per capire come utilizzare efficacemente la modalità Val per garantire che i modelli siano accurati e affidabili.
Guarda: Ultralytics Tutorial sui modi: Convalida
Perché convalidare con Ultralytics YOLO ?
Ecco perché utilizzare la modalità Val di YOLO11 è vantaggioso:
- Precisione: Ottenete metriche precise come mAP50, mAP75 e mAP50-95 per valutare in modo completo il vostro modello.
- Convenienza: Utilizzate funzioni integrate che ricordano le impostazioni di formazione, semplificando il processo di convalida.
- Flessibilità: Convalidate il vostro modello con lo stesso set di dati o con immagini di dimensioni diverse.
- Regolazione degli iperparametri: Utilizzare le metriche di convalida per mettere a punto il modello per ottenere prestazioni migliori.
Caratteristiche principali della modalità Val
Queste sono le principali funzionalità offerte dalla modalità Val di YOLO11:
- Impostazioni automatiche: I modelli ricordano le configurazioni di addestramento per una convalida immediata.
- Supporto multimetrico: Valutare il modello in base a una serie di parametri di precisione.
- CLI e Python API: Scegliere l'interfaccia a riga di comando o l'API Python in base alle proprie preferenze di convalida.
- Compatibilità dei dati: Funziona perfettamente con i set di dati utilizzati durante la fase di addestramento e con i set di dati personalizzati.
Suggerimento
- YOLO11 I modelli ricordano automaticamente le impostazioni di addestramento, per cui è possibile convalidare un modello con le stesse dimensioni dell'immagine e sul set di dati originale con la semplice
yolo val model=yolo11n.pt
omodel('yolo11n.pt').val()
Esempi di utilizzo
Convalida del modello YOLO11n addestrato precisione sul set di dati COCO8. Non sono necessari argomenti in quanto l'opzione model
mantiene la sua formazione data
e gli argomenti come attributi del modello. Per un elenco completo degli argomenti di esportazione, vedere 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 quali la dimensione dell'immagine di input, l'elaborazione in batch e le soglie di prestazione. Di seguito è riportata una descrizione dettagliata di ciascun argomento per aiutare a personalizzare le impostazioni di convalida in modo efficace.
Argomento | Tipo | Predefinito | Descrizione |
---|---|---|---|
data |
str |
None |
Specifica il percorso del file di configurazione del set di dati (ad esempio, coco8.yaml ). Questo file include i percorsi per dati di convalida, nomi delle classi e 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. Utilizzare -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 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 doppi. |
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 OpenCV Modulo DNN per l'inferenza del modello ONNX , che offre un'alternativa a PyTorch metodi di inferenza. |
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 |
True |
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 , o train ). Permette una certa flessibilità nella scelta del segmento di dati per la valutazione delle prestazioni. |
project |
str |
None |
Nome della directory del progetto in cui vengono salvati i risultati della convalida. |
name |
str |
None |
Nome dell'esecuzione di convalida. Utilizzato per creare una sottocartella all'interno della cartella del progetto, dove vengono memorizzati i log e gli output della convalida. |
Ognuna di queste impostazioni svolge un ruolo fondamentale nel processo di validazione, consentendo una valutazione personalizzabile ed efficiente dei modelli YOLO . Regolare questi parametri in base alle proprie esigenze e risorse specifiche può aiutare 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
FAQ
Come posso convalidare il mio modello YOLO11 con Ultralytics?
Per convalidare il modello YOLO11 , si può usare la modalità Val fornita da Ultralytics. Ad esempio, utilizzando l'API di Python , è possibile caricare un modello ed eseguire la convalida con:
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, è possibile utilizzare l'interfaccia a riga di comando (CLI):
Per un'ulteriore personalizzazione, è possibile regolare vari argomenti, come ad esempio imgsz
, batch
, e conf
sia in modalità Python che CLI . Controllare il Argomenti per la convalida del modello YOLO per l'elenco completo dei parametri.
Quali metriche si possono ottenere dalla convalida del modello YOLO11 ?
YOLO11 La convalida del modello fornisce diverse metriche chiave per valutare le prestazioni del modello. Questi includono:
- mAP50 (precisione media alla soglia IoU 0,5)
- mAP75 (precisione media alla soglia IoU 0,75)
- mAP50-95 (precisione media su più soglie IoU da 0,5 a 0,95)
Utilizzando l'API Python , è possibile 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, consultare le Caratteristiche principali della modalità Val.
Quali sono i vantaggi dell'utilizzo di Ultralytics YOLO per la validazione?
L'utilizzo di Ultralytics YOLO per la convalida offre diversi vantaggi:
- Precisione: YOLO11 offre metriche di prestazione accurate, tra cui mAP50, mAP75 e mAP50-95.
- Convenienza: I modelli ricordano le impostazioni di addestramento, rendendo semplice la convalida.
- Flessibilità: È possibile 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 assicurano che i modelli siano valutati in modo approfondito e possano essere ottimizzati per ottenere risultati superiori. Per saperne di più su questi vantaggi, consultate la sezione Perché convalidare con Ultralytics YOLO .
Posso convalidare il mio modello YOLO11 utilizzando un set di dati personalizzato?
Sì, è possibile convalidare il modello YOLO11 utilizzando un file di tipo set di dati personalizzato. Specificare il data
con il percorso del file di configurazione del dataset. Questo file deve includere i percorsi dei file dati di convalida, i nomi delle classi e altri dettagli rilevanti.
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 con CLI:
Per ulteriori opzioni personalizzabili durante la convalida, vedere la sezione Esempio di convalida con argomenti.
Come si salvano i risultati della convalida in un file JSON in YOLO11?
Per salvare i risultati della validazione in un file JSON, si può impostare il parametro save_json
argomento a True
quando si esegue la convalida. Questo può essere fatto sia nell'API 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 con CLI:
Questa funzionalità è particolarmente utile per ulteriori analisi o per l'integrazione con altri strumenti. Per maggiori dettagli, consultare gli Argomenti per la convalida del modello YOLO .