La Image Classification è un task fondamentale nell’ambito della Computer Vision, di cui abbiamo parlato in questo articolo.
L’obiettivo della IC è quello di analizzare e assegnare una determinata classe ad un’immagine.
A tal proposito, le applicazioni di image classification attuali si basano sempre su modelli di Deep Learning(DL) per generare dei modelli che, in una frazione di secondo, riescono a dirci cosa c’è in quella particolare immagine.
Come funzionano questi modelli ?
I modelli di image classification prevedono un input, ovvero un’immagine, ed un output, cioè la classe che la rete ha predetto come più probabile per quell’immagine.
Facciamo un esempio!
Immaginiamo che un’applicazione sia in grado di classificare tra razze di cani differenti ed immaginiamo di dare in input l’immagine seguente:

La rete darà come output una certa probabilità del tipo: sono sicura al 99% che sia un Labrador, sono sicura che all’1% è un bassotto e così via.
Il modello non potrà classificare tutte le possibile razze di cani, ma sarà in grado di discriminare solo sulla base delle label su cui è addestrata.
Quindi se lo sviluppatore ha addestrato a riconoscere tra Labrador e Bassotti, la rete non sarà in grado di riconoscere altre razze eccetto queste due.
E’ bene sottolineare che si parla di Image Classification quando nell’immagine analizzata è presente un solo oggetto, in questo caso un solo cane. Esistono dei task più complessi che si basano sulla image classification ma che estendono le funzionalità a più oggetti contemporaneamente, come ad esempio la Object Detection.
Come si costruisce un modello di Image Classification ?
Nel corso degli anni i modelli basati su Machine Learning e Deep Learning hanno permesso di raggiungere livelli di precisione incredibili per quanto riguarda il task della image classification. Questi modelli sono man mano diventati sempre più complessi e quindi meno alla portata di tutti.
Tipicamente, le aziende o chi vuole usufruire di tali servizi può percorrere diverse strade: la più comoda e veloce è sicuramente quella di affidarsi ad aziende che forniscono questo determinato servizio, come ad esempio Deduce Data Solution.
Un’altra via possibile è quella di utilizzare dei modelli già addestrati ed “aggiornarli” sui propri dati che si vogliono classificare. Questa pratica è chiamata Transfer Learning; l’ultima strada prevede di implementare da zero un classificatore.
Sebbene non sia impossibile, è risaputo che addestrare tali modelli richiede una quantità di dati notevole e delle risorse computazionali che non tutti possono permettersi, quindi la terza strada la lasciamo ai nerd della situazione.
