Python Deep Learning riconoscimento immagini
Scritto da: Andrea Gobbetti in data 23/09/2024
Il Deep Learning è una branca dell'intelligenza artificiale in cui vengono
allenati modelli con i dati.
Ogni cosa può essere convertito in dati e numeri e pertanto questi algoritmi
possono testarsi su centinaia di migliaia di dati per imparare a riconoscere trend e creare previsioni.
E' possibile pertanto creare ed istruire un proprio modello e fornirgli i dati per farlo apprendere,
configurandone i propri parametri e mettendolo alla prova con vari task per calcolarne la sua precisione
Cifas10 - Keras
Keras è un potente modulo di Deep Learning per Python. Esso nasce principalmente per il più noto Tensorflow, ma lo distingue la sua relativa semplicità di apprendimento.Al suo interno sono presenti diversi dataset, tra cui Cifas10 che è una raccolta di 60mila immagini da utilizzare per il riconoscimento.
Come funziona?
Il modello (di Deep Learning con Python Keras) viene predisposto per essere letteralmente allenato con tutte queste immagini.Nello specifico gli viene chiesto di ripetere centinaia di migliaia di volte queste fasi di allenamento per comprendere le relazioni che esistono tra le varie immagini e imparare a catalogarle correttamente.
Al suo interno vengono configurati degli algoritmi che fanno variare il peso delle sue risposte finché non trova il legame tra l'immagine e il risultato atteso.
Il mio modello..
Al termine della sua "fase di allenamento" (per farla semplice, per i non esperti, si trattava di 736 round da ripetere 26 volte), il modello è pronto per provare a catalogare le immagini fornite.Ci sono 9 possibili tipi di immagini; dalle macchine agli aeroplani, ai cervi, ai cani e gatti o volatili.
E il primo test si è rivelato un enorme successo, riuscendo a prevedere toccando punte del 88% di precisione!
In realtà la precisione effettiva è leggermente minore (attorno 80%), per il semplice fatto che sono modelli talmente potenti da riuscire ad "imparare a memoria" ogni singolo dettaglio e pertanto diventano precissimi solo sulle immagini di allenamento.
Tuttavia, una precisione del 80% è più che sufficiente per indovinare la maggior parte delle immagini e, come si può vedere nella foto seguente, in una prova composta da 25 immagini ne ha indovinate 21 e sbagliate solo 4! NB: Qua sono scritti solo i numeri della previsione (ovvero aereo è il numero 0, l'auto il numero 1, ecc) ma appunto per ogni numero è associato il rispettivo nome.
Sei un programmatore? Puoi vedere il mio Repository GitHub!