Approfondimenti sulla valutazione e sul fine-tuning dei modelli

Introduzione

Una volta addestrato il tuo modello di computer vision, è essenziale valutarlo e perfezionarlo per ottenere prestazioni ottimali. Il solo addestramento del modello non basta. Devi assicurarti che il tuo modello sia accurato, efficiente e che soddisfi l'obiettivo del tuo progetto di computer vision. Valutando e applicando il fine-tuning al tuo modello, puoi identificarne i punti deboli, migliorarne l'accuratezza e incrementare le prestazioni complessive.



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

In questa guida condividiamo approfondimenti sulla valutazione e sul fine-tuning dei modelli per rendere questa fase di un progetto di computer vision più accessibile. Discutiamo di come comprendere le metriche di valutazione e implementare tecniche di fine-tuning, fornendoti le conoscenze necessarie per elevare le capacità del tuo modello.

Valutazione delle prestazioni del modello tramite metriche

Valutare le prestazioni di un modello ci aiuta a capire quanto lavora efficacemente. Vengono utilizzate diverse metriche per misurare le prestazioni. Queste metriche di prestazione forniscono approfondimenti chiari e numerici che possono guidare i miglioramenti, assicurando che il modello soddisfi gli obiettivi prefissati. Analizziamo più da vicino alcune metriche chiave.

Punteggio di confidenza

Il punteggio di confidenza rappresenta la certezza del modello che un oggetto rilevato appartenga a una particolare classe. Varia da 0 a 1, con punteggi più alti che indicano una maggiore confidenza. Il punteggio di confidenza aiuta a filtrare le previsioni; solo le rilevazioni con punteggi di confidenza superiori a una soglia specificata vengono considerate valide.

Consiglio rapido: Quando esegui inferenze, se non vedi alcuna previsione e hai già controllato tutto il resto, prova ad abbassare il punteggio di confidenza. A volte, la soglia è troppo alta e fa sì che il modello ignori previsioni valide. Abbassare il punteggio permette al modello di considerare più possibilità. Questo potrebbe non soddisfare gli obiettivi del tuo progetto, ma è un ottimo modo per vedere cosa può fare il modello e decidere come applicare il fine-tuning.

Intersection over Union

L'Intersection over Union (IoU) è una metrica nel rilevamento oggetti che misura quanto bene il riquadro di delimitazione (bounding box) predetto si sovrappone a quello di riferimento (ground truth). I valori IoU variano da 0 a 1, dove uno rappresenta una corrispondenza perfetta. L'IoU è essenziale perché misura quanto i confini predetti corrispondano a quelli reali dell'oggetto.

Intersection over Union Overview

Mean Average Precision

La Mean Average Precision (mAP) è un modo per misurare le prestazioni di un modello di rilevamento oggetti. Analizza la precisione nel rilevare ogni classe di oggetti, ne calcola la media e fornisce un numero complessivo che indica quanto accuratamente il modello riesca a identificare e classificare gli oggetti.

Concentriamoci su due specifiche metriche mAP:

  • mAP@.5: Misura la precisione media a una singola soglia IoU (Intersection over Union) di 0,5. Questa metrica verifica se il modello riesce a trovare correttamente gli oggetti con un requisito di accuratezza meno rigoroso. Si concentra sul fatto che l'oggetto sia posizionato approssimativamente nel posto giusto, senza richiedere un posizionamento perfetto. Aiuta a capire se il modello è generalmente bravo a individuare gli oggetti.
  • mAP@.5:.95: Calcola la media dei valori mAP calcolati a molteplici soglie IoU, da 0,5 a 0,95 con incrementi di 0,05. Questa metrica è più dettagliata e rigorosa. Offre un quadro più completo di quanto accuratamente il modello sia in grado di trovare oggetti a diversi livelli di rigore ed è particolarmente utile per le applicazioni che richiedono un rilevamento oggetti preciso.

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 diverse dimensioni.

Mean average precision mAP metric

Valutazione delle prestazioni del modello YOLO26

Per quanto riguarda YOLO26, puoi utilizzare la modalità di validazione per valutare il modello. Inoltre, assicurati di dare un'occhiata alla nostra guida che approfondisce le metriche di prestazione YOLO26 e come queste possano essere interpretate.

Domande comuni della community

Quando valuti il tuo modello YOLO26, potresti riscontrare qualche intoppo. Basandoci sulle domande comuni della community, ecco alcuni suggerimenti per aiutarti a ottenere il massimo dal tuo modello YOLO26:

Gestione di dimensioni variabili delle immagini

Valutare il tuo modello YOLO26 con immagini di diverse dimensioni può aiutarti a comprendere le sue prestazioni su set di dati eterogenei. Utilizzando il parametro di validazione rect=true, YOLO26 regola lo stride della rete per ogni batch in base alle dimensioni delle immagini, consentendo al modello di gestire immagini rettangolari senza doverle forzare a una dimensione singola.

Il parametro di validazione imgsz imposta la dimensione massima per il ridimensionamento delle immagini, che è 640 per impostazione predefinita. Puoi regolarlo in base alle dimensioni massime del tuo set di dati e alla memoria GPU disponibile. Anche con imgsz impostato, rect=true permette al modello di gestire efficacemente dimensioni variabili delle immagini regolando dinamicamente lo stride.

Accesso alle metriche YOLO26

Se desideri approfondire la comprensione delle prestazioni del tuo modello YOLO26, puoi accedere facilmente a metriche di valutazione specifiche con poche righe di codice Python. Il frammento di codice qui sotto ti permetterà di caricare il tuo modello, eseguire una valutazione e stampare varie metriche che mostrano quanto sta lavorando bene il tuo modello.

Utilizzo
from ultralytics import YOLO

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

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Average precision:", results.box.ap)
print("Average precision at IoU=0.50:", results.box.ap50)
print("Class indices for average precision:", results.box.ap_class_index)
print("Class-specific results:", results.box.class_result)
print("F1 score:", results.box.f1)
print("F1 score curve:", results.box.f1_curve)
print("Overall fitness score:", results.box.fitness)
print("Mean average precision:", results.box.map)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.75:", results.box.map75)
print("Mean average precision for different IoU thresholds:", results.box.maps)
print("Mean results for different metrics:", results.box.mean_results)
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Per-image metrics:", results.box.image_metrics)
print("Precision:", results.box.p)
print("Precision curve:", results.box.p_curve)
print("Precision values:", results.box.prec_values)
print("Specific precision metrics:", results.box.px)
print("Recall:", results.box.r)
print("Recall curve:", results.box.r_curve)

L'oggetto dei risultati include anche image_metrics, un dizionario per ogni immagine indicizzato per nome file, con precision, recall, f1, tp, fp e fn, oltre a metriche di velocità come il tempo di pre-elaborazione, tempo di inferenza, loss e tempo di post-elaborazione. Analizzando queste metriche, puoi affinare e ottimizzare il tuo modello YOLO26 per ottenere prestazioni migliori, rendendolo più efficace per il tuo caso d'uso specifico.

Come funziona il fine-tuning?

Il fine-tuning prevede di prendere un modello pre-addestrato e regolare i suoi parametri per migliorare le prestazioni su un compito o un set di dati specifico. Il processo, noto anche come ri-addestramento del modello, consente al modello di comprendere e prevedere meglio i risultati per i dati specifici che incontrerà nelle applicazioni del mondo reale. Puoi ri-addestrare il tuo modello sulla base della sua valutazione per ottenere risultati ottimali.

Suggerimenti per il fine-tuning del tuo modello

Il fine-tuning di un modello significa prestare molta attenzione a diversi parametri e tecniche vitali per ottenere prestazioni ottimali. Ecco alcuni consigli essenziali per guidarti attraverso il processo.

Iniziare con un learning rate più elevato

Solitamente, durante le epoche di addestramento iniziali, il learning rate parte basso e aumenta gradualmente per stabilizzare il processo di addestramento. Tuttavia, poiché il tuo modello ha già appreso alcune caratteristiche dal set di dati precedente, iniziare subito con un learning rate più elevato può essere più vantaggioso.

Quando valuti il tuo modello YOLO26, puoi impostare il parametro di validazione warmup_epochs su warmup_epochs=0 per evitare che il learning rate parta troppo basso. Seguendo questo processo, l'addestramento continuerà dai pesi forniti, adattandosi alle sfumature dei tuoi nuovi dati.

Tassellatura delle immagini per piccoli oggetti

La tassellatura delle immagini può migliorare l'accuratezza di rilevamento per piccoli oggetti. Suddividendo immagini più grandi in segmenti più piccoli, ad esempio dividendo immagini 1280x1280 in molteplici segmenti 640x640, mantieni la risoluzione originale e il modello può imparare da frammenti ad alta risoluzione. Quando usi YOLO26, assicurati di regolare correttamente le tue etichette per questi nuovi segmenti.

Interagisci con la community

Condividere le tue idee e domande con altri appassionati di computer vision può ispirare soluzioni creative a blocchi nei tuoi progetti. Ecco alcuni modi eccellenti per imparare, risolvere problemi e connetterti.

Trovare aiuto e supporto

  • GitHub Issues: Esplora il repository GitHub di YOLO26 e usa la scheda Issues per porre domande, segnalare bug e suggerire nuove funzionalità. La community e i manutentori sono disponibili per assisterti con qualsiasi problema tu incontri.
  • Server Discord di Ultralytics: Unisciti al server Discord di Ultralytics per connetterti con altri utenti e sviluppatori, ottenere supporto, condividere conoscenze e fare brainstorming di idee.

Documentazione ufficiale

  • Documentazione Ultralytics YOLO26: Dai un'occhiata alla documentazione ufficiale di YOLO26 per guide complete e preziosi approfondimenti su svariati compiti e progetti di computer vision.

Considerazioni finali

Valutare e applicare il fine-tuning al tuo modello di computer vision sono passi importanti per un deployment del modello di successo. Questi passaggi aiutano ad assicurarsi che il tuo modello sia accurato, efficiente e adatto alla tua applicazione complessiva. La chiave per addestrare il miglior modello possibile è la sperimentazione continua e l'apprendimento. Non esitare a modificare i parametri, provare nuove tecniche ed esplorare set di dati diversi. Continua a sperimentare e a superare i confini di ciò che è possibile!

FAQ

Quali sono le metriche chiave per valutare le prestazioni del modello YOLO26?

Per valutare le prestazioni del modello YOLO26, le metriche importanti includono Punteggio di confidenza, Intersection over Union (IoU) e Mean Average Precision (mAP). Il Punteggio di confidenza misura la certezza del modello per ogni classe di oggetti rilevati. L'IoU valuta quanto bene il riquadro di delimitazione predetto si sovrappone al riferimento (ground truth). La Mean Average Precision (mAP) aggrega i punteggi di precisione tra le classi, con mAP@.5 e mAP@.5:.95 come due tipi comuni per diverse soglie IoU. Scopri di più su queste metriche nella nostra guida alle metriche di prestazione YOLO26.

Come posso applicare il fine-tuning a un modello YOLO26 pre-addestrato per il mio set di dati specifico?

Il fine-tuning di un modello YOLO26 pre-addestrato implica la regolazione dei suoi parametri per migliorare le prestazioni su un compito o un set di dati specifico. Inizia valutando il tuo modello utilizzando le metriche, quindi imposta un learning rate iniziale più elevato regolando il parametro warmup_epochs a 0 per una stabilità immediata. Usa parametri come rect=true per gestire efficacemente dimensioni variabili delle immagini. Per una guida più dettagliata, consulta la nostra sezione sul fine-tuning dei modelli YOLO26.

Come posso gestire le dimensioni variabili delle immagini quando valuto il mio modello YOLO26?

Per gestire dimensioni variabili delle immagini durante la valutazione, usa il parametro rect=true in YOLO26, che regola lo stride della rete per ogni batch in base alle dimensioni delle immagini. Il parametro imgsz imposta la dimensione massima per il ridimensionamento delle immagini, predefinita a 640. Regola imgsz per adattarlo al tuo set di dati e alla memoria GPU. Per ulteriori dettagli, visita la nostra sezione sulla gestione delle dimensioni variabili delle immagini.

Quali passaggi pratici posso intraprendere per migliorare la mean average precision per il mio modello YOLO26?

Migliorare la mean average precision (mAP) per un modello YOLO26 comporta diversi passaggi:

  1. Regolazione degli iperparametri: Sperimenta con diversi learning rate, dimensioni dei batch e aumentazioni delle immagini.
  2. Data Augmentation: Usa tecniche come Mosaic e MixUp per creare campioni di addestramento diversificati.
  3. Tassellatura delle immagini: Dividi immagini più grandi in tasselli più piccoli per migliorare l'accuratezza di rilevamento per piccoli oggetti. Fai riferimento alla nostra guida dettagliata sul fine-tuning del modello per strategie specifiche.

Come accedo alle metriche di valutazione del modello YOLO26 in Python?

Puoi accedere alle metriche di valutazione del modello YOLO26 utilizzando Python con i seguenti passaggi:

Utilizzo
from ultralytics import YOLO

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

# Run the evaluation
results = model.val(data="coco8.yaml")

# Print specific metrics
print("Class indices with average precision:", results.ap_class_index)
print("Average precision for all classes:", results.box.all_ap)
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean recall:", results.box.mr)

Analizzare queste metriche aiuta ad affinare e ottimizzare il tuo modello YOLO26. Per un approfondimento, dai un'occhiata alla nostra guida sulle metriche YOLO26.

Commenti