Vai al contenuto

Convalida del modello con Ultralytics YOLO

Ultralytics YOLO ecosistema e integrazioni

Introduzione

Validation is a critical step in the machine learning pipeline, allowing you to assess the quality of your trained models. Val mode in Ultralytics YOLO11 provides a robust suite of tools and metrics for evaluating the performance of your object detection models. This guide serves as a complete resource for understanding how to effectively use the Val mode to ensure that your models are both accurate and reliable.



Guarda: Ultralytics Tutorial sulle modalità: Convalida

Perché convalidare con Ultralytics YOLO ?

Here's why using YOLO11's Val mode is advantageous:

  • 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.
  • Hyperparameter Tuning: Use validation metrics to fine-tune your model for better performance.

Caratteristiche principali della modalità Val

These are the notable functionalities offered by YOLO11's Val mode:

  • 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

  • YOLO11 models automatically remember their training settings, so you can validate a model at the same image size and on the original dataset easily with just yolo val model=yolo11n.pt o model('yolo11n.pt').val()

Esempi di utilizzo

Validate trained YOLO11n model accuracy on the COCO8 dataset. No arguments are needed as the 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("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 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). This file includes paths to validation data, class names, and number of classes.
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 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 Sets the Intersection Over Union (IoU) threshold for Non-Maximum Suppression (NMS). Helps in reducing duplicate detections.
max_det int 300 Limita il numero massimo di rilevamenti per immagine. Utile in scene dense per evitare rilevamenti eccessivi.
half bool True Enables half-precision (FP16) computation, reducing memory usage and potentially increasing speed with minimal impact on accuracy.
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, uses the OpenCV DNN module for ONNX model inference, offering an alternative to PyTorch inference methods.
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("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

DOMANDE FREQUENTI

How do I validate my YOLO11 model with Ultralytics?

To validate your YOLO11 model, you can use the Val mode provided by Ultralytics. For example, using the Python API, you can load a model and run validation with:

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, puoi utilizzare l'interfaccia a riga di comando (CLI):

yolo val model=yolo11n.pt

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.

What metrics can I get from YOLO11 model validation?

YOLO11 model validation provides several key metrics to assess model performance. These include:

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

  • Precision: YOLO11 offers accurate performance metrics including mAP50, mAP75, and 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 .

Can I validate my YOLO11 model using a custom dataset?

Yes, you can validate your YOLO11 model using a custom dataset. Specify the data argument with the path to your dataset configuration file. This file should include paths to the validation data, class names, and other relevant details.

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 di utilizzo di CLI:

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

Per ulteriori opzioni personalizzabili durante la convalida, consulta la sezione Esempio di convalida con argomenti.

How do I save validation results to a JSON file in YOLO11?

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("yolo11n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

Esempio di utilizzo di 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, consulta gli Argomenti per la convalida del modello di YOLO .


📅 Created 11 months ago ✏️ Updated 11 days ago

Commenti