Vai al contenuto

Convalida del modello con Ultralytics YOLO

Ultralytics YOLO ecosistema e integrazioni

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 o model('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
yolo detect val model=yolo11n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

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 Truesalva 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 Truegenera e salva i grafici delle previsioni rispetto alla verità a terra per valutare visivamente le prestazioni del modello.
rect bool True Se Trueutilizza 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

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.pt")

# Customize validation settings
validation_results = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.6, device="0")
yolo val model=yolo11n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0

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):

yolo val model=yolo11n.pt

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:

yolo val model=yolo11n.pt data=path/to/your/custom_dataset.yaml

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:

yolo val model=yolo11n.pt save_json=True

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 .

📅C reato 1 anno fa ✏️ Aggiornato 2 mesi fa

Commenti