Vai al contenuto

Approfondimenti sulla valutazione e la messa a punto del modello

Introduzione

Una volta addestrato il modello di computer vision, è essenziale valutarlo e perfezionarlo per ottenere prestazioni ottimali. Il solo addestramento del modello non è sufficiente. Devi assicurarti che il tuo modello sia accurato, efficiente e che raggiunga l'obiettivo del tuo progetto di computer vision. Valutando e perfezionando il tuo modello, puoi identificare i punti deboli, migliorarne l'accuratezza e aumentare le prestazioni complessive.

In questa guida, condivideremo le informazioni sulla valutazione e la messa a punto del modello che renderanno questa fase del progetto di computer vision più accessibile. Parleremo di come comprendere le metriche di valutazione e implementare le tecniche di messa a punto, fornendoti le conoscenze necessarie per migliorare le capacità del tuo modello.

Valutazione delle prestazioni del modello tramite le metriche

Valutare le prestazioni di un modello ci aiuta a capire quanto sia efficace il suo funzionamento. Per misurare le prestazioni vengono utilizzate diverse metriche. Queste metriche forniscono informazioni chiare e numeriche che possono guidare i miglioramenti per garantire che il modello raggiunga gli obiettivi prefissati. Diamo un'occhiata più da vicino ad alcune metriche chiave.

Punteggio di confidenza

Il punteggio di attendibilità rappresenta la certezza del modello che un oggetto rilevato appartenga a una determinata classe. Va da 0 a 1, con punteggi più alti che indicano una maggiore sicurezza. Il punteggio di attendibilità consente di filtrare le previsioni; Solo i rilevamenti con punteggi di attendibilità superiori a una soglia specificata sono considerati validi.

Suggerimento rapido: Quando esegui le inferenze, se non vedi alcuna previsione e hai controllato tutto il resto, prova a diminuire il punteggio di confidenza. A volte la soglia è troppo alta e il modello ignora le previsioni valide. Abbassare il punteggio permette al modello di considerare più possibilità. Questo potrebbe non soddisfare gli obiettivi del tuo progetto, ma è un buon modo per vedere cosa può fare il modello e decidere come perfezionarlo.

Intersezione sopra l'Unione

Intersection over Union (IoU) è una metrica nel rilevamento degli oggetti che misura il grado di sovrapposizione del riquadro di delimitazione previsto con il riquadro di delimitazione della verità di base. I valori di IoU vanno da 0 a 1, dove uno sta per una corrispondenza perfetta. L'IoU è essenziale perché misura quanto i limiti previsti corrispondano ai limiti effettivi dell'oggetto.

Intersezione con Union Panoramica

Precisione media media

La precisione media media (mAP) è un modo per misurare le prestazioni di un modello di rilevamento degli oggetti. Esamina la precisione del rilevamento di ogni classe di oggetti, calcola la media di questi punteggi e fornisce un numero complessivo che mostra l'accuratezza con cui il modello è in grado di identificare e classificare gli oggetti.

Concentriamoci su due metriche mAP specifiche:

  • mAP@.5: misura la precisione media a una singola soglia IoU (Intersection over Union) di 0,5. Questa metrica verifica se il modello è in grado di trovare correttamente gli oggetti con un requisito di precisione più basso. Si concentra sul fatto che l'oggetto si trovi approssimativamente nel posto giusto, senza bisogno di un posizionamento perfetto. Aiuta a capire se il modello è generalmente bravo a individuare gli oggetti.
  • mAP@.5:.95: Calcola la media dei valori di mAP calcolati a diverse soglie IoU, da 0,5 a 0,95 in incrementi di 0,05. Questa metrica è più dettagliata e rigorosa. Fornisce un quadro più completo dell'accuratezza con cui il modello è in grado di trovare gli oggetti a diversi livelli di severità ed è particolarmente utile per le applicazioni che richiedono un rilevamento preciso degli oggetti.

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

Media Media Precisione Panoramica

Valutazione YOLOv8 Prestazioni del modello

Per quanto riguarda YOLOv8, puoi utilizzare la modalità di convalida per valutare il modello. Inoltre, ti consigliamo di dare un'occhiata alla nostra guida che approfondisce le metriche delle prestazioni diYOLOv8 e la loro interpretazione.

Domande comuni della community

Quando si valuta il proprio YOLOv8 modello, potresti incorrere in qualche intoppo. Sulla base delle domande comuni della community, ecco alcuni suggerimenti per aiutarti a ottenere il massimo dal tuo YOLOv8 modello:

Gestione di immagini di dimensioni variabili

Valutare il tuo YOLOv8 Il modello con immagini di dimensioni diverse può aiutare a comprenderne le prestazioni su set di dati diversi. L'utilizzo del comando rect=true parametro di convalida, YOLOv8 Regola l'avanzamento della rete per ogni batch in base alle dimensioni dell'immagine, consentendo al modello di gestire immagini rettangolari senza forzarle a un'unica dimensione.

Il imgsz Il parametro di convalida imposta la dimensione massima per il ridimensionamento dell'immagine, che è 640 per impostazione predefinita. Puoi regolare questo valore in base alle dimensioni massime del tuo set di dati e alla memoria disponibile su GPU . Anche con imgsz mettere rect=true Consente al modello di gestire in modo efficace le diverse dimensioni dell'immagine regolando dinamicamente la falcata.

Accedere YOLOv8 Metriche

Se vuoi ottenere una comprensione più profonda del tuo YOLOv8 prestazioni del modello, è possibile accedere facilmente a metriche di valutazione specifiche con poche righe di Python codice. Il frammento di codice riportato di seguito consente di caricare il modello, eseguire una valutazione e stampare varie metriche che mostrano l'andamento del modello.

Utilizzo

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.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("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 risultati include anche metriche di velocità come il tempo di pre-elaborazione, il tempo di inferenza, la perdita e il tempo di post-elaborazione. Analizzando queste metriche, puoi mettere a punto e ottimizzare il tuo YOLOv8 modello per prestazioni migliori, rendendolo più efficace per il tuo caso d'uso specifico.

Come funziona la messa a punto?

L'ottimizzazione comporta l'acquisizione di un modello pre-addestrato e la regolazione dei suoi parametri per migliorare le prestazioni su un'attività o un set di dati specifico. Il processo, noto anche come riaddestramento del modello, consente al modello di comprendere e prevedere meglio i risultati per i dati specifici che incontrerà nelle applicazioni del mondo reale. È possibile ripetere il training del modello in base alla valutazione del modello per ottenere risultati ottimali.

Suggerimenti per la messa a punto del modello

Mettere a punto un modello significa prestare molta attenzione a diversi parametri e tecniche vitali per ottenere prestazioni ottimali. Ecco alcuni suggerimenti essenziali per guidarti attraverso il processo.

Iniziare con un tasso di apprendimento più elevato

Di solito, durante le epoche di formazione iniziale, il tasso di apprendimento inizia basso e aumenta gradualmente per stabilizzare il processo di formazione. Tuttavia, poiché il modello ha già appreso alcune funzionalità dal set di dati precedente, iniziare subito con un tasso di apprendimento più elevato può essere più vantaggioso.

Quando si valuta il proprio YOLOv8 modello, è possibile impostare il warmup_epochs parametro di convalida a warmup_epochs=0 per evitare che il tasso di apprendimento inizi troppo alto. Seguendo questo processo, l'allenamento continuerà dai pesi forniti, adattandosi alle sfumature dei tuoi nuovi dati.

Affiancamento di immagini per oggetti di piccole dimensioni

L'affiancamento delle immagini può migliorare la precisione di rilevamento di oggetti di piccole dimensioni. Dividendo le immagini più grandi in segmenti più piccoli, ad esempio suddividendo le immagini 1280x1280 in più segmenti 640x640, si mantiene la risoluzione originale e il modello può apprendere dai frammenti ad alta risoluzione. Quando si utilizza YOLOv8, assicurati di regolare correttamente le etichette per questi nuovi segmenti.

Interagisci con la community

Condividere le tue idee e le tue domande con altri appassionati di visione artificiale può ispirare soluzioni creative agli ostacoli nei tuoi progetti. Ecco alcuni modi eccellenti per imparare, risolvere i problemi e connettersi.

Trovare aiuto e supporto

  • Problemi su GitHub: Esplora il repository GitHub di YOLOv8 e utilizza la scheda Issues per porre domande, segnalare bug e suggerire funzionalità. La comunità e i manutentori sono a disposizione per aiutarti a risolvere qualsiasi problema.
  • Ultralytics Server Discord: Unisciti al server Discord diUltralytics per connetterti con altri utenti e sviluppatori, ricevere supporto, condividere conoscenze e fare brainstorming di idee.

Documentazione ufficiale

  • Ultralytics YOLOv8 Documentazione: Dai un'occhiata alla documentazione ufficiale di YOLOv8 per trovare guide complete e approfondimenti su diversi progetti e attività di computer vision.

Considerazioni finali

La valutazione e l'ottimizzazione del modello di visione artificiale sono passaggi importanti per una corretta distribuzione del modello. Questi passaggi aiutano a garantire che il modello sia accurato, efficiente e adatto all'applicazione complessiva. La chiave per addestrare il miglior modello possibile è la sperimentazione e l'apprendimento continui. Non esitare a modificare i parametri, provare nuove tecniche ed esplorare diversi set di dati. Continua a sperimentare e a spingerti oltre i confini di ciò che è possibile!

DOMANDE FREQUENTI

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

Per valutare le prestazioni del modello YOLOv8 , le metriche più importanti sono il punteggio di confidenza, l'intersezione sull'unione (IoU) e la precisione media (mAP). Il punteggio di confidenza misura la certezza del modello per ogni classe di oggetto rilevata. L'IoU valuta il grado di sovrapposizione del rettangolo di selezione previsto con la verità a terra. La precisione media (mAP) aggrega i punteggi di precisione delle varie classi: mAP@.5 e mAP@.5:.95 sono due tipi comuni per variare le soglie IoU. Per saperne di più su queste metriche, consulta la nostra guida alle metriche delle prestazioni diYOLOv8 .

Come posso mettere a punto un modello preaddestrato di YOLOv8 per il mio set di dati specifico?

La messa a punto di un modello preaddestrato di YOLOv8 comporta la regolazione dei suoi parametri per migliorare le prestazioni su un compito o un set di dati specifico. Inizia a valutare il tuo modello utilizzando le metriche, poi imposta un tasso di apprendimento iniziale più alto regolando il parametro warmup_epochs a 0 per ottenere una stabilità immediata. Usa parametri come rect=true per gestire efficacemente immagini di dimensioni diverse. Per una guida più dettagliata, consulta la nostra sezione su messa a punto dei modelli di YOLOv8.

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

Per gestire le dimensioni variabili delle immagini durante la valutazione, usa l'opzione rect=true in YOLOv8, che regola il passo della rete per ogni lotto in base alle dimensioni delle immagini. Il imgsz imposta la dimensione massima per il ridimensionamento dell'immagine, per default 640. Regola imgsz to suit your dataset and GPU memory. For more details, visit our sezione sulla gestione di immagini di dimensioni variabili.

Quali misure pratiche posso adottare per migliorare la precisione media del mio modello YOLOv8 ?

Migliorare la precisione media (mAP) di un modello YOLOv8 comporta diverse fasi:

  1. Regolazione degli iperparametri: Sperimenta con diversi tassi di apprendimento, dimensioni dei lotti e incrementi delle immagini.
  2. Aumento dei dati: Usa tecniche come Mosaico e MixUp per creare campioni di allenamento diversi.
  3. Tiling dell'immagine: Suddividi le immagini più grandi in tessere più piccole per migliorare l'accuratezza del rilevamento di oggetti di piccole dimensioni. Per strategie specifiche, consulta la nostra guida dettagliata sulla messa a punto del modello.

Come posso accedere alle metriche di valutazione del modello di YOLOv8 in Python?

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

Utilizzo

from ultralytics import YOLO

# Load the model
model = YOLO("yolov8n.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)

L'analisi di queste metriche aiuta a perfezionare e ottimizzare il tuo modello YOLOv8 . Per un approfondimento, consulta la nostra guida sulle metriche diYOLOv8 .



Creato 2024-06-29, Aggiornato 2024-07-05
Autori: glenn-jocher (1), Laughing-q (1), abirami-vina (1)

Commenti