YOLO Vision 2026:

Approfondimenti sulla valutazione e il fine-tuning dei modelli#

Dopo aver effettuato il training di un modello YOLO, il passo successivo consiste nel misurarne le prestazioni e nel perfezionarlo per colmare le lacune. La valutazione utilizza metriche come mAP e IoU per quantificare l'accuratezza, mentre il fine-tuning regola i parametri di addestramento per rafforzare i punti deboli in modo che il modello soddisfi l'obiettivo del tuo progetto. Questa guida spiega le metriche di valutazione chiave, come leggerle e come agire in base a ciò che mostrano.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

La valutazione e l'ottimizzazione si collocano verso la fine del flusso di lavoro del progetto di computer vision, una volta avviato l'addestramento e quando è necessario verificare che il modello sia accurato, efficiente e pronto per il deployment.

Metriche di valutazione chiave#

Varie metriche misurano l'efficacia delle prestazioni di un modello. Queste metriche di prestazione forniscono approfondimenti numerici chiari che guidano i miglioramenti per garantire che il modello raggiunga gli obiettivi prefissati.

Punteggio di confidenza#

Il punteggio di confidenza rappresenta la certezza del modello che un oggetto rilevato appartenga a una determinata classe. Varia da 0 a 1, dove punteggi più alti indicano una maggiore confidenza. Il punteggio di confidenza aiuta a filtrare le previsioni; solo i rilevamenti con punteggi superiori a una soglia specifica vengono considerati validi.

Non vedi alcuna predizione?

Quando esegui l'inferenza, se non vedi alcuna predizione e hai già controllato tutto il resto, prova ad abbassare la soglia di confidenza. A volte la soglia è troppo alta, il che porta il modello a ignorare predizioni valide. Abbassandola, permetti al modello di considerare più possibilità. Potrebbe non soddisfare i tuoi obiettivi finali, ma è un ottimo modo per vedere cosa sa fare il modello e decidere come procedere con il fine-tuning.

Intersection over Union#

L'Intersection over Union (IoU) è una metrica nel rilevamento di oggetti che misura quanto bene il bounding box previsto si sovrapponga a quello di verità (ground truth). I valori di IoU vanno da 0 a 1, dove uno rappresenta una corrispondenza perfetta. L'IoU è essenziale perché misura quanto i confini previsti corrispondano ai confini effettivi dell'oggetto.

Intersection over Union Overview

Mean Average Precision (Precisione media)#

Mean Average Precision (mAP) misura le prestazioni complessive di un modello di rilevamento di oggetti. Analizza la precisione del rilevamento di ciascuna classe di oggetti, calcola la media di questi punteggi e restituisce un unico numero che mostra con quale precisione il modello è in grado di identificare e classificare gli oggetti.

Due metriche mAP sono le più comunemente riportate:

  • mAP@.5: Misura la precisione media a una singola soglia IoU di 0,5. Questa metrica verifica se il modello è in grado di trovare correttamente gli oggetti con un requisito di precisione meno rigoroso. Si concentra sul fatto che l'oggetto sia approssimativamente nella posizione corretta, senza necessitare di un posizionamento perfetto, e aiuta a capire se il modello è generalmente bravo a individuare gli oggetti.
  • mAP@.5:.95: Calcola la media dei valori mAP calcolati a diverse soglie IoU, da 0.5 a 0.95 con incrementi di 0.05. Questa metrica è più dettagliata e rigorosa. Fornisce un quadro più completo di quanto accuratamente il modello possa trovare oggetti a diversi livelli di rigore ed è particolarmente utile per applicazioni che richiedono un rilevamento preciso degli oggetti.

Altre metriche mAP includono mAP@0.75, che utilizza una soglia IoU più rigorosa di 0.75, e mAP@small, medium e large, che valutano la precisione su oggetti di dimensioni diverse.

Mean average precision mAP metric

Valutazione di un modello YOLO26#

Puoi valutare un modello YOLO26 addestrato con la modalità di validazione. Per un'analisi più approfondita di come ciascuna metrica viene calcolata e interpretata, consulta la guida alle metriche di prestazione di YOLO26.

Gestione di dimensioni immagine variabili#

Valutare il tuo modello su immagini di diverse dimensioni ti aiuta a comprendere le sue prestazioni su dataset diversi. Il parametro di validazione rect=true raggruppa le immagini per rapporto d'aspetto e applica un padding a ciascun batch fino alla forma più piccola che lo contiene, in modo che le immagini rettangolari vengano valutate senza essere forzate in un formato quadrato.

Il parametro imgsz imposta la dimensione dell'immagine utilizzata durante la validazione, applicata come un quadrato. Se non lo imposti esplicitamente, YOLO26 riutilizza il valore salvato nelle impostazioni del modello (640 per i modelli preaddestrati ufficiali, o qualsiasi dimensione con cui sia stato addestrato un checkpoint personalizzato). Con rect=true, YOLO26 vincola il lato più lungo a imgsz e applica un padding al lato più corto in base a un multiplo del passo (stride), preservando il rapporto d'aspetto. Regola imgsz in base alle dimensioni del tuo dataset e alla memoria GPU disponibile.

Accesso alle metriche di YOLO26#

Per comprendere in dettaglio le prestazioni del tuo modello, puoi accedere a specifiche metriche di valutazione con poche righe di Python. Lo snippet qui sotto carica un modello, esegue la validazione e stampa le metriche più utili.

Utilizzo
from ultralytics import YOLO

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

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

Nota che fitness() è un metodo e deve essere chiamato con le parentesi, mentre metriche come map, map50 e mp sono proprietà a cui si accede direttamente.

L'attributo results.box.image_metrics è un dizionario per immagine con chiave il nome del file dell'immagine, contenente precision, recall, f1, tp, fp e fn a IoU 0.5 per ciascuna immagine. I tempi di preelaborazione, inferenza, perdita (loss) e post-elaborazione vengono riportati separatamente nel dizionario results.speed. Insieme, questi ti consentono di individuare con precisione le immagini con cui il modello incontra difficoltà e di regolarlo di conseguenza.

Fine-tuning del tuo modello#

Il fine-tuning prende un modello preaddestrato e ne regola i parametri per migliorare le prestazioni su un'attività o un set di dati specifico. Noto anche come riaddestramento del modello, consente al modello di comprendere e prevedere meglio i risultati per i dati che incontrerà in applicazioni reali. Sulla base dei risultati della valutazione, riaddestri il modello sui tuoi dati, regolando gli argomenti di addestramento trattati nella guida al fine-tuning.

Tassellatura dell'immagine (tiling) per oggetti piccoli#

Il tiling delle immagini può migliorare la precisione di rilevamento per oggetti piccoli. Suddividendo immagini più grandi in segmenti più piccoli, come dividere immagini da 1280x1280 in più segmenti da 640x640, preservi la risoluzione originale e consenti al modello di apprendere da frammenti ad alta risoluzione. Ultralytics supporta questa funzionalità in fase di inferenza tramite l'inferenza a riquadri (tiled inference) SAHI. Quando esegui l'addestramento su immagini suddivise in riquadri, assicurati di regolare correttamente le tue etichette per ogni nuovo segmento.

Conclusione#

Valutazione e fine-tuning sono ciò che trasforma un modello addestrato in uno affidabile e distribuibile: metriche come mAP e IoU evidenziano le debolezze, e modifiche mirate dei parametri le risolvono. Inizia con la modalità di validazione per fare il benchmark del tuo modello, quindi riaddestra con gli argomenti trattati nella guida al fine-tuning e continua a iterare con nuovi parametri, tecniche e set di dati. Se sorgono domande lungo il percorso, chiedi alla community nel repository GitHub di Ultralytics o nel server Discord di Ultralytics.

FAQ#

  • Per valutare le prestazioni del modello YOLO26, le metriche importanti includono Confidence Score, Intersection over Union (IoU) e Mean Average Precision (mAP). Il Confidence Score misura la certezza del modello per ciascuna classe di oggetti rilevata. L'IoU valuta quanto bene il bounding box previsto si sovrapponga alla verità di terra (ground truth). Mean Average Precision (mAP) aggrega i punteggi di precisione tra le classi, con mAP@.5 e mAP@.5:.95 che sono due tipi comuni per soglie di IoU variabili. Scopri di più su queste metriche nella nostra guida alle metriche di prestazione di YOLO26.

  • Il fine-tuning di un modello YOLO26 preaddestrato comporta la regolazione dei suoi parametri per migliorare le prestazioni su un'attività o un set di dati specifico. Inizia valutando il tuo modello con le metriche, quindi riaddestra dai pesi preaddestrati sul tuo set di dati. Durante la valutazione, parametri come rect=true aiutano a gestire efficacemente diverse dimensioni delle immagini. Per gli argomenti di addestramento da regolare, consulta la guida al fine-tuning.

  • Per gestire dimensioni di immagine variabili durante la valutazione, usa il parametro rect=true in YOLO26, il quale raggruppa le immagini per rapporto d'aspetto e applica un padding a ciascun batch invece di forzare ogni immagine a un formato quadrato. Il parametro imgsz imposta la dimensione dell'immagine per la validazione; se non lo sovrascrivi, YOLO26 riutilizza il valore salvato del modello (640 per i modelli preaddestrati ufficiali). Regola imgsz per adattarlo al tuo dataset e alla memoria della GPU. Per maggiori dettagli, visita la nostra sezione sulla gestione di dimensioni di immagine variabili.

  • Migliorare la precisione media (mAP) per un modello YOLO26 prevede diversi passaggi:

    1. Ottimizzazione degli iperparametri: Sperimenta con diversi learning rate, batch size e data augmentation delle immagini.
    2. Data Augmentation: Utilizza tecniche come Mosaic e MixUp per creare campioni di addestramento diversificati.
    3. Tiling delle immagini: Dividi immagini più grandi in riquadri più piccoli per migliorare la precisione di rilevamento per oggetti di piccole dimensioni.

    Per gli argomenti di addestramento dietro i passaggi 1 e 2, consulta la guida al fine-tuning; il passaggio 3 è trattato nel tiling delle immagini.

  • Puoi accedere alle metriche di valutazione del modello YOLO26 utilizzando Python dopo aver eseguito la validazione:

    Utilizzo
    from ultralytics import YOLO
    
    # Load a model
    model = YOLO("yolo26n.pt")
    
    # Run validation
    results = model.val(data="coco8.yaml")
    
    # Access key metrics
    print("Mean average precision at IoU=0.50:", results.box.map50)
    print("Mean average precision at IoU=0.50:0.95:", results.box.map)
    print("Mean recall:", results.box.mr)
    print("Class indices evaluated:", results.box.ap_class_index)

    L'analisi di queste metriche ti aiuta a ottimizzare e rifinire il tuo modello YOLO26. Per un approfondimento, dai un'occhiata alla nostra guida sulle metriche di prestazione di YOLO.

Commenti