Fondamenti di IA
Come Funziona la Classificazione delle Immagini?
Come fa il tuo telefono a determinare cosa sia un oggetto semplicemente scattando una foto? Come i siti web di social media etichettano automaticamente le persone nelle foto? Ciò è reso possibile attraverso il riconoscimento e la classificazione delle immagini basati sull’intelligenza artificiale.
Il riconoscimento e la classificazione delle immagini sono ciò che consente molti dei risultati più impressionanti dell’intelligenza artificiale. Eppure, come fanno i computer a imparare a rilevare e classificare le immagini? In questo articolo, esamineremo i metodi generali che i computer utilizzano per interpretare e rilevare le immagini e poi daremo uno sguardo ad alcuni dei metodi più popolari per classificare quelle immagini.
Classificazione a Livello di Pixel vs. Classificazione Basata su Oggetti
Le tecniche di classificazione delle immagini possono essere principalmente divise in due categorie diverse: classificazione basata su pixel e classificazione basata su oggetti.
I pixel sono le unità base di un’immagine e l’analisi dei pixel è il modo principale in cui la classificazione delle immagini viene eseguita. Tuttavia, gli algoritmi di classificazione possono utilizzare solo le informazioni spettrali all’interno dei singoli pixel per classificare un’immagine o esaminare le informazioni spaziali (pixel vicini) insieme alle informazioni spettrali. I metodi di classificazione basati su pixel utilizzano solo le informazioni spettrali (l’intensità di un pixel), mentre i metodi di classificazione basati su oggetti prendono in considerazione sia le informazioni spettrali dei pixel che le informazioni spaziali.
Esistono diverse tecniche di classificazione utilizzate per la classificazione basata su pixel. Queste includono la distanza minima dalla media, la massima verosimiglianza e la distanza minima di Mahalanobis. Questi metodi richiedono che le medie e le varianze delle classi siano note e funzionano esaminando la “distanza” tra le medie delle classi e i pixel di destinazione.
I metodi di classificazione basati su pixel sono limitati dal fatto che non possono utilizzare le informazioni provenienti da altri pixel vicini. Al contrario, i metodi di classificazione basati su oggetti possono includere altri pixel e quindi utilizzano anche le informazioni spaziali per classificare gli oggetti. Nota che “oggetto” si riferisce semplicemente a regioni contigue di pixel e non al fatto che ci sia o meno un oggetto di destinazione all’interno di quella regione di pixel.
Pre-elaborazione dei Dati di Immagine per la Rilevazione di Oggetti
I sistemi di classificazione delle immagini più recenti e affidabili utilizzano principalmente schemi di classificazione a livello di oggetto e, per questi approcci, i dati dell’immagine devono essere preparati in modi specifici. Gli oggetti/regioni devono essere selezionati e pre-elaborati.
Prima che un’immagine e gli oggetti/regioni all’interno di quell’immagine possano essere classificati, i dati che compongono quell’immagine devono essere interpretati dal computer. Le immagini devono essere pre-elaborate e rese pronte per l’input nell’algoritmo di classificazione e ciò avviene attraverso la rilevazione di oggetti. Questa è una parte critica della preparazione dei dati e della preparazione delle immagini per addestrare il classificatore di apprendimento automatico.
La rilevazione di oggetti viene eseguita con una varietà di metodi e tecniche. In primo luogo, se ci sono più oggetti di interesse o un singolo oggetto di interesse, ciò influisce su come la pre-elaborazione dell’immagine viene gestita. Se c’è solo un oggetto di interesse, l’immagine subisce la localizzazione dell’immagine. I pixel che compongono l’immagine hanno valori numerici che vengono interpretati dal computer e utilizzati per visualizzare i colori e le sfumature appropriati. Un oggetto noto come bounding box viene disegnato intorno all’oggetto di interesse, il che aiuta il computer a sapere quale parte dell’immagine è importante e quali valori di pixel definiscono l’oggetto. Se ci sono più oggetti di interesse nell’immagine, una tecnica chiamata rilevazione di oggetti viene utilizzata per applicare queste bounding box a tutti gli oggetti all’interno dell’immagine.

Foto: Adrian Rosebrock via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Intersection_over_Union_-_object_detection_bounding_boxes.jpg)
Un altro metodo di pre-elaborazione è la segmentazione dell’immagine. La segmentazione dell’immagine funziona dividendo l’intera immagine in segmenti in base a caratteristiche simili. Diverse regioni dell’immagine avranno valori di pixel simili in confronto ad altre regioni dell’immagine, quindi questi pixel vengono raggruppati insieme in maschere di immagine che corrispondono alla forma e ai confini degli oggetti rilevanti all’interno dell’immagine. La segmentazione dell’immagine aiuta il computer a isolare le caratteristiche dell’immagine che lo aiuteranno a classificare un oggetto, proprio come le bounding box, ma forniscono etichette a livello di pixel più accurate.
Dopo che la rilevazione di oggetti o la segmentazione dell’immagine è stata completata, vengono applicate etichette alle regioni in questione. Queste etichette vengono fornite, insieme ai valori dei pixel che compongono l’oggetto, negli algoritmi di apprendimento automatico che apprenderanno i modelli associati alle diverse etichette.
Algoritmi di Apprendimento Automatico
Una volta preparati i dati, i dati vengono inseriti in un algoritmo di apprendimento automatico, che si addestra sui dati. Esamineremo alcuni dei tipi più comuni di algoritmi di classificazione delle immagini basati sull’apprendimento automatico di seguito.
K-Nearest Neighbors
K-Nearest Neighbors è un algoritmo di classificazione che esamina gli esempi di addestramento più vicini e guarda le loro etichette per determinare l’etichetta più probabile per un esempio di test. Quando si tratta di classificazione delle immagini utilizzando KNN, i vettori di caratteristiche e le etichette delle immagini di addestramento vengono archiviati e solo il vettore di caratteristiche viene passato nell’algoritmo durante il test. I vettori di caratteristiche di addestramento e di test vengono quindi confrontati l’uno con l’altro per similarità.
Gli algoritmi di classificazione basati su KNN sono estremamente semplici e gestiscono facilmente più classi. Tuttavia, KNN calcola la similarità in base a tutte le caratteristiche in modo uguale. Ciò significa che può essere incline alla classificazione errata quando viene fornito con immagini in cui solo un subset delle caratteristiche è importante per la classificazione dell’immagine.
Support Vector Machines
Support Vector Machines sono un metodo di classificazione che colloca punti nello spazio e quindi disegna linee divisorie tra i punti, collocando gli oggetti in classi diverse a seconda di quale lato del piano divisore i punti cadono. Support Vector Machines sono in grado di eseguire la classificazione non lineare attraverso l’utilizzo di una tecnica nota come trucco del kernel. Mentre i classificatori SVM sono spesso molto precisi, un sostanziale svantaggio dei classificatori SVM è che tendono a essere limitati sia per dimensione che per velocità, con la velocità che soffre man mano che la dimensione aumenta.
Multi-Layer Perceptrons (Neural Nets)
I multi-layer perceptrons, noti anche come modelli di rete neurale, sono algoritmi di apprendimento automatico ispirati al cervello umano. I multi-layer perceptrons sono composti da diversi strati che sono collegati l’uno all’altro, proprio come i neuroni nel cervello umano sono collegati tra loro. Le reti neurali fanno supposizioni su come le caratteristiche di input sono correlate alle classi dei dati e queste supposizioni vengono aggiustate nel corso dell’addestramento. I modelli di rete neurale semplici come il multi-layer perceptron sono in grado di apprendere relazioni non lineari e, di conseguenza, possono essere molto più precisi di altri modelli. Tuttavia, i modelli MLP soffrono di alcuni problemi notevoli come la presenza di funzioni di perdita non convessi.
Algoritmi di Apprendimento Profondo (CNN)

Foto: APhex34 via Wikimedia Commons, CC BY SA 4.0 (https://commons.wikimedia.org/wiki/File:Typical_cnn.png)
L’algoritmo di classificazione delle immagini più comunemente utilizzato di recente è la Convolutional Neural Network (CNN). Le CNN sono versioni personalizzate delle reti neurali che combinano le reti neurali multistrato con strati specializzati in grado di estrarre le caratteristiche più importanti e rilevanti per la classificazione di un oggetto. Le CNN possono automaticamente scoprire, generare e apprendere le caratteristiche delle immagini. Ciò riduce notevolmente la necessità di etichettare e segmentare manualmente le immagini per prepararle per gli algoritmi di apprendimento automatico. Hanno anche un vantaggio rispetto ai modelli MLP perché possono gestire le funzioni di perdita non convessi.
Le Convolutional Neural Networks prendono il nome dal fatto che creano “convoluzioni”. Le CNN operano prendendo un filtro e facendolo scorrere su un’immagine. Puoi pensare a ciò come guardare sezioni di un paesaggio attraverso una finestra mobile, concentrandoti solo sulle caratteristiche che sono visibili attraverso la finestra in un determinato momento. Il filtro contiene valori numerici che vengono moltiplicati con i valori dei pixel stessi. Il risultato è un nuovo frame, o matrice, piena di numeri che rappresentano l’immagine originale. Questo processo viene ripetuto per un numero scelto di filtri e quindi i frame vengono uniti in una nuova immagine che è leggermente più piccola e meno complessa dell’immagine originale. Una tecnica chiamata pooling viene utilizzata per selezionare solo i valori più importanti all’interno dell’immagine e l’obiettivo è che i livelli convoluzionali estraggano alla fine solo le parti più salienti dell’immagine che aiuteranno la rete neurale a riconoscere gli oggetti nell’immagine.
Le Convolutional Neural Networks sono composte da due parti diverse. I livelli convoluzionali sono ciò che estrae le caratteristiche dell’immagine e le converte in un formato che i livelli della rete neurale possono interpretare e apprendere. I primi livelli convoluzionali sono responsabili dell’estrazione degli elementi più basilari dell’immagine, come linee e confini semplici. I livelli convoluzionali intermedi iniziano a catturare forme più complesse, come curve e angoli semplici. I livelli convoluzionali più profondi estraggono le caratteristiche di alto livello dell’immagine, che sono quelle che vengono passate nella parte della rete neurale della CNN e sono quelle che il classificatore apprende.












