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 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 precisione.
  • 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 COCO128. 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.

Chiave Valore predefinito Descrizione
data None Il percorso del file di configurazione del dataset (ad es, coco128.yaml). Questo file specifica la struttura del dataset, compresi i percorsi delle classi, del treno e del set di validazione.
imgsz 640 La dimensione dell'immagine di input come numero intero. Questa dimensione viene utilizzata per ridimensionare le immagini durante la convalida, influenzando l'accuratezza del rilevamento e la velocità di inferenza.
batch 16 Il numero di immagini elaborate in ogni lotto. Un numero maggiore di batch può accelerare la convalida ma richiede più memoria. Utilizza -1 affinché AutoBatch si regoli automaticamente in base alla memoria disponibile.
save_json False Se impostato su True, i risultati della convalida vengono salvati in un formato JSON, utile per ulteriori analisi o per l'invio ai server di valutazione.
save_hybrid False Quando Truesalva una versione ibrida delle etichette che combina la verità a terra con le previsioni del modello. Questo può essere utile per visualizzare le prestazioni del modello o per migliorare la formazione.
conf 0.001 La soglia minima di fiducia per considerare i rilevamenti. L'aumento di questo valore può ridurre i falsi positivi, ma potrebbe anche perdere i rilevamenti meno sicuri.
iou 0.6 La soglia di Intersection Over Union (IoU) per la soppressione non massima (NMS). Valori più alti comportano un minor numero di rilevamenti eliminando un maggior numero di caselle sovrapposte.
max_det 300 Il numero massimo di rilevamenti consentiti per immagine. Utile per limitare i risultati in immagini con molti oggetti.
half True Consente la mezza precisione (FP16) per accelerare la convalida su hardware compatibile senza influire significativamente sulla precisione.
device None Specifica il dispositivo di calcolo, ad esempio una GPU specifica (cuda:0) o della CPU (cpu). Questa impostazione consente di convalidare il modello su diverse configurazioni hardware.
dnn False Se Trueutilizza il modulo DNN di OpenCV per l'inferenza del modello ONNX . Questa opzione può essere utile in ambienti in cui CUDA non è disponibile.
plots False Consente di generare grafici e immagini salvate durante la convalida, fornendo informazioni visive sulle prestazioni del modello.
rect False Applica l'inferenza rettangolare, minimizzando il padding elaborando le immagini nel loro rapporto d'aspetto originale. Questo può migliorare l'accuratezza e la velocità, ma può richiedere più memoria.
split val Definisce la suddivisione del dataset da utilizzare per la convalida (ad esempio, "val", "test", "train"). Questo permette una validazione flessibile su diverse parti del dataset.

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-02-17
Autori: glenn-jocher (7), chr043416@gmail.com (1)

Commenti