Vai al contenuto

Approfondimento sulle metriche delle prestazioni

Introduzione

Le metriche delle prestazioni sono strumenti fondamentali per valutare l'accuratezza e l'efficienza dei modelli di rilevamento degli oggetti. Fanno luce sull'efficacia di un modello nell'identificare e localizzare gli oggetti all'interno delle immagini. Inoltre, aiutano a capire come il modello gestisce i falsi positivi e i falsi negativi. Queste informazioni sono fondamentali per valutare e migliorare le prestazioni del modello. In questa guida esploreremo le varie metriche di performance associate a YOLOv8, il loro significato e come interpretarle.



Guarda: Ultralytics YOLOv8 Metriche di performance | MAP, F1 Score, Precisione, IOU e Accuratezza

Metriche di rilevamento degli oggetti

Cominciamo a parlare di alcune metriche che non sono importanti solo per YOLOv8 , ma sono ampiamente applicabili a diversi modelli di rilevamento degli oggetti.

  • Intersezione su Unione (IoU): L'IoU è una misura che quantifica la sovrapposizione tra un riquadro di delimitazione previsto e un riquadro di delimitazione della verità a terra. Svolge un ruolo fondamentale nella valutazione dell'accuratezza della localizzazione degli oggetti.

  • Precisione media (AP): AP calcola l'area sotto la curva precisione-richiamo, fornendo un unico valore che racchiude le prestazioni di precisione e richiamo del modello.

  • Precisione media (mAP): la mAP estende il concetto di AP calcolando i valori medi di AP su più classi di oggetti. È utile negli scenari di rilevamento di oggetti multiclasse per fornire una valutazione completa delle prestazioni del modello.

  • Precisione e richiamo: La precisione quantifica la percentuale di veri positivi tra tutte le previsioni positive, valutando la capacità del modello di evitare i falsi positivi. D'altro canto, il richiamo calcola la percentuale di veri positivi tra tutti i positivi effettivi, misurando la capacità del modello di rilevare tutte le istanze di una classe.

  • Punteggio F1: Il punteggio F1 è la media armonica di precisione e richiamo, che fornisce una valutazione equilibrata delle prestazioni di un modello tenendo conto sia dei falsi positivi che dei falsi negativi.

Come calcolare le metriche per il modello YOLOv8

Ora possiamo esplorare la modalità di validazione diYOLOv8 che può essere utilizzata per calcolare le metriche di valutazione sopra descritte.

Utilizzare la modalità di convalida è semplice. Una volta che hai un modello addestrato, puoi invocare la funzione model.val(). Questa funzione elaborerà il dataset di validazione e restituirà una serie di parametri di performance. Ma cosa significano queste metriche? E come devi interpretarle?

Interpretare l'output

Scomponiamo l'output della funzione model.val() e comprendiamo ogni segmento dell'output.

Metriche per classe

Una delle sezioni dell'output è la suddivisione per classi delle metriche di performance. Queste informazioni granulari sono utili quando si cerca di capire quanto il modello si stia comportando bene per ogni classe specifica, soprattutto in dataset con una vasta gamma di categorie di oggetti. Per ogni classe del set di dati vengono fornite le seguenti informazioni:

  • Classe: Indica il nome della classe dell'oggetto, ad esempio "persona", "auto" o "cane".

  • Immagini: Questa metrica indica il numero di immagini nel set di convalida che contengono la classe dell'oggetto.

  • Istanze: Fornisce il conteggio di quante volte la classe appare in tutte le immagini del set di validazione.

  • Box(P, R, mAP50, mAP50-95): Questa metrica fornisce indicazioni sulle prestazioni del modello nel rilevare gli oggetti:

    • P (precisione): L'accuratezza degli oggetti rilevati, che indica quanti rilevamenti sono stati corretti.

    • R (Recall): La capacità del modello di identificare tutte le istanze di oggetti nelle immagini.

    • mAP50: precisione media calcolata con una soglia di intersection over union (IoU) di 0,50. È una misura dell'accuratezza del modello considerando solo i rilevamenti "facili".

    • mAP50-95: la media della precisione media calcolata con soglie di IoU diverse, che vanno da 0,50 a 0,95. Fornisce una visione completa delle prestazioni del modello a diversi livelli di difficoltà di rilevamento.

Metriche di velocità

La velocità di inferenza può essere fondamentale quanto l'accuratezza, soprattutto negli scenari di rilevamento di oggetti in tempo reale. Questa sezione analizza il tempo impiegato per le varie fasi del processo di validazione, dalla pre-elaborazione alla post-elaborazione.

Valutazione delle metriche COCO

Per gli utenti che convalidano il dataset COCO, vengono calcolate altre metriche utilizzando lo script di valutazione COCO. Queste metriche forniscono informazioni sulla precisione e sul richiamo a diverse soglie di IoU e per oggetti di diverse dimensioni.

Output visivi

La funzione model.val(), oltre a produrre metriche numeriche, produce anche output visivi che possono fornire una comprensione più intuitiva delle prestazioni del modello. Ecco una panoramica degli output visivi che puoi aspettarti:

  • Curva del punteggio F1 (F1_curve.png): Questa curva rappresenta il punteggio F1 in base a varie soglie. L'interpretazione di questa curva può offrire indicazioni sul bilanciamento del modello tra falsi positivi e falsi negativi in base alle diverse soglie.

  • Curva di precisione-richiamo (PR_curve.png): Una visualizzazione integrale per qualsiasi problema di classificazione, questa curva mostra i compromessi tra precisione e richiamo a varie soglie. Diventa particolarmente significativa quando si ha a che fare con classi sbilanciate.

  • Curva di precisione (P_curve.png): Una rappresentazione grafica dei valori di precisione a diverse soglie. Questa curva aiuta a capire come varia la precisione al variare della soglia.

  • Curva di richiamo (R_curve.png): Di conseguenza, questo grafico illustra come cambiano i valori di richiamo in base alle diverse soglie.

  • Matrice di confusione (confusion_matrix.png): La matrice di confusione fornisce una visione dettagliata dei risultati, mostrando il numero di veri positivi, veri negativi, falsi positivi e falsi negativi per ogni classe.

  • Matrice di confusione normalizzata (confusion_matrix_normalized.png): Questa visualizzazione è una versione normalizzata della matrice di confusione. Rappresenta i dati in proporzioni piuttosto che in conteggi grezzi. Questo formato rende più semplice il confronto delle prestazioni tra le varie classi.

  • Etichette dei lotti di convalida (val_batchX_labels.jpg): Queste immagini rappresentano le etichette della verità di base per i diversi lotti del set di dati di convalida. Forniscono un'immagine chiara degli oggetti e delle loro rispettive posizioni in base al set di dati.

  • Previsioni del lotto di convalida (val_batchX_pred.jpg): In contrasto con le immagini delle etichette, queste immagini mostrano le previsioni fatte dal modello YOLOv8 per i rispettivi lotti. Confrontando queste immagini con quelle delle etichette, puoi valutare facilmente l'efficacia del modello nel rilevare e classificare visivamente gli oggetti.

Risultati Stoccaggio

Per un riferimento futuro, i risultati vengono salvati in una directory, in genere chiamata runs/detect/val.

Scegliere le giuste metriche

La scelta delle metriche giuste da valutare dipende spesso dall'applicazione specifica.

  • mAP: Adatto per un'ampia valutazione delle prestazioni del modello.

  • IoU: essenziale quando la localizzazione precisa dell'oggetto è fondamentale.

  • Precisione: Importante quando la priorità è ridurre al minimo i falsi rilevamenti.

  • Richiamo: È fondamentale quando è importante rilevare ogni istanza di un oggetto.

  • Punteggio F1: Utile quando è necessario un equilibrio tra precisione e richiamo.

Per le applicazioni in tempo reale, le metriche di velocità come i FPS (Frames Per Second) e la latenza sono fondamentali per garantire risultati tempestivi.

Interpretazione dei risultati

È importante capire le metriche. Ecco cosa suggeriscono alcuni dei punteggi più bassi comunemente osservati:

  • MAP basso: Indica che il modello potrebbe necessitare di perfezionamenti generali.

  • Basso IoU: il modello potrebbe faticare a individuare con precisione gli oggetti. Diversi metodi di bounding box potrebbero essere d'aiuto.

  • Bassa precisione: Il modello potrebbe rilevare troppi oggetti inesistenti. La regolazione delle soglie di fiducia potrebbe ridurre questo problema.

  • Basso richiamo: Il modello potrebbe mancare di oggetti reali. Migliorare l'estrazione delle caratteristiche o utilizzare più dati potrebbe aiutare.

  • Punteggio F1 sbilanciato: C'è una disparità tra precisione e richiamo.

  • AP specifico per la classe: Punteggi bassi in questo caso possono evidenziare le classi in cui il modello ha difficoltà.

Casi di studio

Esempi reali possono aiutare a chiarire il funzionamento pratico di queste metriche.

Caso 1

  • Situazione: la mAP e il punteggio F1 sono subottimali, ma mentre il Richiamo è buono, la Precisione no.

  • Interpretazione e azione: Potrebbero esserci troppi rilevamenti errati. Un inasprimento delle soglie di confidenza potrebbe ridurli, anche se potrebbe diminuire leggermente il richiamo.

Caso 2

  • Situazione: mAP e Recall sono accettabili, ma l'IoU è carente.

  • Interpretazione e azione: Il modello rileva bene gli oggetti ma potrebbe non localizzarli con precisione. Affinare le previsioni dei riquadri di delimitazione potrebbe essere d'aiuto.

Caso 3

  • Situazione: Alcune classi hanno un AP molto più basso di altre, anche con un mAP complessivo decente.

  • Interpretazione e azione: Queste classi potrebbero essere più impegnative per il modello. L'utilizzo di più dati per queste classi o la regolazione dei pesi delle classi durante l'addestramento potrebbero essere utili.

Connettiti e collabora

La possibilità di entrare in una comunità di appassionati ed esperti può amplificare il tuo viaggio con YOLOv8. Ecco alcune strade che possono facilitare l'apprendimento, la risoluzione dei problemi e il networking.

Impegnarsi con una comunità più ampia

  • Problemi su GitHub: Il repository YOLOv8 su GitHub ha una scheda Issues dove puoi fare domande, segnalare bug e suggerire nuove funzionalità. La comunità e i manutentori sono molto attivi ed è un luogo ideale per ricevere aiuto per problemi specifici.

  • Ultralytics Server Discord: Ultralytics ha un server Discord dove puoi interagire con gli altri utenti e con gli sviluppatori.

Documentazione e risorse ufficiali:

  • Ultralytics YOLOv8 Documenti: La documentazione ufficiale fornisce una panoramica completa di YOLOv8, oltre a guide sull'installazione, l'utilizzo e la risoluzione dei problemi.

L'utilizzo di queste risorse non solo ti guiderà nel superamento di eventuali difficoltà, ma ti terrà anche aggiornato sulle ultime tendenze e sulle migliori pratiche della comunità di YOLOv8 .

Conclusione

In questa guida abbiamo analizzato da vicino le metriche di performance essenziali per YOLOv8. Queste metriche sono fondamentali per capire il rendimento di un modello e sono indispensabili per chiunque voglia perfezionare i propri modelli. Offrono gli spunti necessari per migliorare e assicurarsi che il modello funzioni efficacemente nelle situazioni reali.

Ricorda che la comunità di YOLOv8 e Ultralytics è una risorsa preziosa. Il confronto con altri sviluppatori ed esperti può aprire le porte a intuizioni e soluzioni che non si trovano nella documentazione standard. Durante il tuo viaggio nel rilevamento degli oggetti, mantieni vivo lo spirito di apprendimento, sperimenta nuove strategie e condividi le tue scoperte. Così facendo, contribuirai alla saggezza collettiva della comunità e ne garantirai la crescita.

Buon rilevamento di oggetti!



Creato 2023-11-12, Aggiornato 2024-02-10
Autori: chr043416@gmail.com (1), glenn-jocher (3), abirami-vina (1)

Commenti