Funzione di Loss in YOLO
YOLO (You Only Look Once) è uno dei modelli di deep learning più popolari per il rilevamento degli oggetti, grazie alla sua velocità e accuratezza, per avere un infarinatura generale è consigliato di leggere l’articolo precedente. Alla base del suo funzionamento c’è una funzione di loss ben strutturata, che guida il modello nell’apprendimento della posizione, dimensione e classificazione degli oggetti nelle immagini.
In questo articolo, esploreremo in dettaglio la funzione di loss di YOLO, un concetto fondamentale nel machine learning e nelle reti neurali. In parole semplici, è una misura di quanto il modello sta sbagliando nelle sue previsioni.
Quando un modello come YOLO analizza un’immagine e cerca di rilevare oggetti, genera delle previsioni su:
-
Dove si trovano gli oggetti (coordinate del bounding box).
-
Se un oggetto è presente in una determinata area (confidenza).
-
A quale categoria appartiene l’oggetto rilevato (classificazione).
La funzione di loss confronta queste previsioni con le risposte corrette (dati di training) e calcola un errore. L’obiettivo del modello durante l’addestramento è ridurre al minimo questo errore, migliorando così la qualità delle sue previsioni.
Più la loss è bassa, più il modello sta imparando correttamente a riconoscere e classificare gli oggetti. Se la loss è alta, significa che il modello sta facendo molti errori e deve continuare ad allenarsi.
Nel caso di YOLO, la funzione di loss è composta da diverse parti, ognuna delle quali serve a migliorare un aspetto specifico del rilevamento. Nei prossimi paragrafi analizzeremo queste componenti nel dettaglio.
-
Loss di Coordinate, responsabile dell’accuratezza nella previsione della posizione degli oggetti.
-
Loss di Confidenza, che determina quanto il modello è sicuro della presenza di un oggetto in una determinata area.
-
Loss di Classe, che aiuta a classificare correttamente gli oggetti individuati.
-
Funzione di Loss Totale, che combina tutte queste componenti per addestrare il modello in modo efficace.
Se vuoi approfondire il funzionamento di YOLO e capire come la sua funzione di loss incide sulla qualità del rilevamento, sei nel posto giusto!
1. Loss di Coordinate Lcoord
:
Penalizza la differenza tra le coordinate predette per il centro del box e quelle effettive. Viene applicato un errore quadratico medio (MSE) solo per le celle che contengono un oggetto.
La formula per la loss di coordinate è:
Dove:
sono le coordinate reali e le dimensioni del box.
sono le coordinate e le dimensioni predette dal modello.
è un fattore di scala per pesare l’importanza del termine.
2. Loss di Confidenza Lconf
:
Penalizza la previsione di confidenza per ogni box. Se un box è vuoto (cioè non contiene un oggetto), il modello dovrebbe predire una confidenza bassa. Se invece contiene un oggetto, la confidenza dovrebbe essere alta.
La formula per la loss di confidenza è:
Dove:
è la confidenza reale (1 se l’oggetto è presente, 0 se non lo è).
è la confidenza predetta.
3. Loss di Classe Lclass
:
Penalizza la previsione errata della classe di un oggetto. Se l’oggetto è presente, la rete deve essere in grado di prevedere la classe corretta.
La formula per la loss di classe è:
Dove:
è la probabilità della classe corretta.
è la probabilità predetta per quella classe.
Dopo aver esaminato le singole componenti della funzione di loss di YOLO—Loss di Coordinate, Loss di Confidenza e Loss di Classe—è importante capire il significato del valore finale della Funzione di Loss Totale e come interpretarlo.
4. Funzione di Loss Totale di YOLO
La funzione di loss totale è la somma dei tre componenti, ognuno pesato da un fattore di scala. In generale, la funzione di loss finale è:
La funzione di loss totale è la somma ponderata di tutte queste componenti e rappresenta quanto il modello sta sbagliando complessivamente. Vediamo cosa significano i possibili valori che può assumere:
-
Loss Totale Alta
-
Se il valore della loss è molto alto, significa che il modello sta facendo errori significativi.
-
Potrebbe indicare che le coordinate dei bounding box sono imprecise, che il modello non è sicuro della presenza degli oggetti o che sta confondendo le classi.
-
In questo caso, potrebbe essere necessario migliorare il dataset di training (ad esempio, con più immagini o annotazioni più precise) o modificare l’architettura e i parametri del modello.
-
-
Loss Totale Media
-
Un valore intermedio della loss indica che il modello sta imparando, ma ha ancora margini di miglioramento.
-
Se la loss diminuisce gradualmente durante l’addestramento, è un buon segno: significa che il modello sta migliorando le sue previsioni.
-
Tuttavia, se rimane bloccata su un valore medio per troppo tempo, potrebbe essere necessario aggiustare l’ottimizzatore o i tassi di apprendimento.
-
-
Loss Totale Bassa
-
Se il valore della loss è basso, significa che il modello sta facendo previsioni molto accurate.
-
Le coordinate dei bounding box sono precise, la confidenza è ben calibrata e la classificazione è corretta nella maggior parte dei casi.
-
Questo è l’obiettivo ideale, ma attenzione: una loss troppo vicina a zero potrebbe significare overfitting, ovvero che il modello ha memorizzato i dati di training senza generalizzare bene su nuove immagini.
-
Dare un Senso ai Calcoli della Loss Totale
-
Durante l’addestramento, bisogna monitorare l’andamento della loss nel tempo: una perdita che diminuisce progressivamente è un buon segnale.
-
È utile confrontare le singole componenti della loss: ad esempio, se la Loss di Coordinate è alta, significa che il modello fatica a prevedere la posizione degli oggetti. Se la Loss di Confidenza è alta, potrebbe esserci un problema con i falsi positivi o negativi…
-
Il valore finale della loss non ha un’unità di misura assoluta, ma va interpretato relativamente al dataset e al modello: ciò che conta è come cambia e come influenza le prestazioni reali del modello.
Vantaggi di YOLO
- Velocità: YOLO è estremamente veloce e può essere eseguito in tempo reale su hardware moderno.
- Accuratezza: Nonostante la velocità, YOLO è in grado di rilevare oggetti con un buon livello di accuratezza.
- Unico passaggio di rilevamento: La combinazione della classificazione e della localizzazione in un solo passaggio rende il processo molto più efficiente rispetto ad altri metodi che richiedono più passaggi.
Versioni di YOLO
YOLO è stato continuamente migliorato con l’introduzione di nuove versioni. Le principali versioni includono:
- YOLOv1: La versione originale, introdotta da Joseph Redmon nel 2015.
- YOLOv2: (Darknet-19): Una versione migliorata con migliori capacità di rilevamento.
- YOLOv3: Introduce ulteriori miglioramenti in termini di accuratezza e supporta il rilevamento di oggetti di dimensioni diverse.
- YOLOv4: Un’ulteriore evoluzione che migliora la velocità e l’accuratezza su diverse piattaforme.
- YOLOv5: Una versione non ufficiale che continua ad essere molto popolare nella comunità.
- YOLOv6
- Sviluppato da Meituan nel 2022 per applicazioni industriali.
- Ottimizzato per essere efficiente su dispositivi edge e robot autonomi.
- YOLOv7
- Pubblicato nel 2022 dagli autori di YOLOv4.
- Introduce il “trainable bag of freebies”, un insieme di miglioramenti architetturali per aumentare la precisione senza sacrificare la velocità.
- YOLOv8
- Ultima versione ufficiale sviluppata da Ultralytics.
- Aggiunge nuove funzionalità come:
- Segmentazione di istanze.
- Stima delle pose e punti chiave.
- Classificazione degli oggetti.
- YOLOv9, YOLOv10 e YOLOv11
- Versioni sperimentali con ulteriori ottimizzazioni in velocità e accuratezza.
- YOLOv9 implementa il Programmable Gradient Information (PGI) per migliorare l’apprendimento.
Applicazioni di YOLO
YOLO viene utilizzato in molteplici campi, tra cui:
- Videosorveglianza: Rilevamento in tempo reale per la sicurezza.
- Veicoli autonomi: Riconoscimento di pedoni, veicoli e segnali stradali.
- Robotica: Navigazione e interazione con gli oggetti.
- Agricoltura di precisione: Monitoraggio delle colture tramite droni.
- Medicina: Identificazione di anomalie nelle immagini diagnostiche.
YOLO inoltre si integra bene con strumenti di annotazione come Label Studio, facilitando la creazione di dataset annotati per l’addestramento di modelli di rilevamento e classificazione.
Licenze e Open-Source
- Alcune versioni di YOLO sono open-source, mentre altre potrebbero avere restrizioni per l’uso commerciale.
- YOLOv8 e versioni successive potrebbero richiedere una licenza per l’uso in progetti commerciali.
Risorse Utili
- Documentazione ufficiale: [docs.ultralytics.com]
- YOLO Spiegato: [YouTube]
- YOLOv11 vs YOLOv10 vs YOLOv9 vs YOLOv8 (Video): [YouTube]
- YOLOSHOW (GUI per YOLO): [GitHub]
- Discussioni su Reddit: [YOLO licensing]