Vai al contenuto

Convalida del modello con Ultralytics YOLO

Ultralytics YOLO ecosistema e integrazioni

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 o model('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
yolo detect val model=yolov8n.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 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 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 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 Trueutilizza il modulo OpenCV DNN per l'inferenza del modello ONNX , offrendo un'alternativa ai metodi di inferenza PyTorch .
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 False 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, 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

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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=yolov8n.pt data=coco8.yaml imgsz=640 batch=16 conf=0.25 iou=0.6 device=0


Creato 2023-11-12, Aggiornato 2024-04-18
Autori: glenn-jocher (9), Burhan-Q (1), RizwanMunawar (1)

Commenti