mozzicone Come funziona la classificazione delle immagini? - Unite.AI
Seguici sui social
Corso di perfezionamento sull'intelligenza artificiale:

AI 101

Come funziona la classificazione delle immagini?

mm
aggiornato on

In che modo il tuo telefono può determinare cos'è un oggetto semplicemente scattandogli una foto? In che modo i siti Web di social media taggano automaticamente le persone nelle foto? Ciò si ottiene attraverso il riconoscimento e la classificazione delle immagini basati sull'intelligenza artificiale.

Il riconoscimento e la classificazione delle immagini è ciò che consente molte delle più impressionanti realizzazioni dell'intelligenza artificiale. Ma come imparano i computer a rilevare e classificare le immagini? In questo articolo, tratteremo i metodi generali utilizzati dai computer per interpretare e rilevare le immagini e quindi dare un'occhiata ad alcuni dei metodi più popolari per classificare tali immagini.

Classificazione a livello di pixel vs. basata su oggetti

Le tecniche di classificazione delle immagini possono essere suddivise principalmente in due diverse categorie: classificazione basata sui pixel e classificazione basata sugli oggetti.

I pixel sono le unità di base di un'immagine e l'analisi dei pixel è il modo principale in cui viene eseguita la classificazione delle immagini. 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 sui pixel utilizzano solo le informazioni spettrali (l'intensità di un pixel), mentre i metodi di classificazione basati sugli oggetti tengono conto sia delle informazioni spettrali dei pixel che delle informazioni spaziali.

Esistono diverse tecniche di classificazione utilizzate per la classificazione basata sui pixel. Questi 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 operano tutti esaminando la "distanza" tra le medie delle classi ei pixel di destinazione.

I metodi di classificazione basati sui pixel sono limitati dal fatto che non possono utilizzare le informazioni di altri pixel vicini. Al contrario, i metodi di classificazione basati su oggetti possono includere altri pixel e quindi utilizzano anche informazioni spaziali per classificare gli elementi. Si noti che "oggetto" si riferisce solo a regioni contigue di pixel e non se c'è o meno un oggetto di destinazione all'interno di quella regione di pixel.

Preelaborazione dei dati dell'immagine per il rilevamento degli 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 delle immagini devono essere preparati in modi specifici. Gli oggetti/regioni devono essere selezionati e preelaborati.

Prima che un'immagine e gli oggetti/regioni al suo interno possano essere classificati, i dati che compongono l'immagine devono essere interpretati dal computer. Le immagini devono essere preelaborate e preparate per l'inserimento nell'algoritmo di classificazione, e ciò avviene attraverso il rilevamento degli oggetti. Questa è una parte fondamentale della preparazione dei dati e della preparazione delle immagini per addestrare il classificatore di machine learning.

Il rilevamento degli oggetti viene eseguito con una varietà di metodi e tecniche. Per cominciare, la presenza o meno di più oggetti di interesse o di un singolo oggetto di interesse influisce sul modo in cui viene gestita la pre-elaborazione dell'immagine. Se c'è un solo 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 tonalità corretti. Attorno all'oggetto di interesse viene disegnato un oggetto noto come riquadro di delimitazione, che aiuta il computer a sapere quale parte dell'immagine è importante e quali valori di pixel definiscono l'oggetto. Se nell'immagine sono presenti più oggetti di interesse, viene utilizzata una tecnica chiamata rilevamento di oggetti per applicare questi riquadri di delimitazione 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 preelaborazione è la segmentazione delle immagini. La segmentazione dell'immagine funziona dividendo l'intera immagine in segmenti basati su caratteristiche simili. Diverse regioni dell'immagine avranno valori di pixel simili rispetto ad altre regioni dell'immagine, quindi questi pixel sono raggruppati in maschere di immagine che corrispondono alla forma e ai limiti 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 fanno i riquadri di delimitazione, ma forniscono etichette a livello di pixel molto più accurate.

Dopo che il rilevamento dell'oggetto o la segmentazione dell'immagine è stata completata, le etichette vengono applicate alle regioni in questione. Queste etichette vengono inserite, insieme ai valori dei pixel che compongono l'oggetto, negli algoritmi di apprendimento automatico che apprenderanno i modelli associati alle diverse etichette.

Algoritmi di machine learning

Una volta che i dati sono stati preparati ed etichettati, i dati vengono inseriti in un algoritmo di apprendimento automatico, che si addestra sui dati. Tratteremo alcuni dei tipi più comuni di machine learning algoritmi di classificazione delle immagini qua sotto.

K-vicini più vicini

K-Nearest Neighbors è un algoritmo di classificazione che esamina gli esempi di addestramento più vicini e guarda le loro etichette per accertare l'etichetta più probabile per un dato esempio di test. Quando si tratta di classificare le immagini utilizzando KNN, i vettori delle caratteristiche e le etichette delle immagini di addestramento vengono memorizzate e solo il vettore delle caratteristiche viene passato all'algoritmo durante il test. I vettori delle funzionalità di addestramento e test vengono quindi confrontati l'uno con l'altro per verificarne la somiglianza.

Gli algoritmi di classificazione basati su KNN sono estremamente semplici e gestiscono abbastanza facilmente più classi. Tuttavia, KNN calcola la somiglianza in base a tutte le caratteristiche allo stesso modo. Ciò significa che può essere soggetto a classificazione errata se fornito con immagini in cui solo un sottoinsieme delle caratteristiche è importante per la classificazione dell'immagine.

Supporto di macchine vettoriali

Le Support Vector Machines sono un metodo di classificazione che posiziona punti nello spazio e quindi traccia linee di divisione tra i punti, posizionando gli oggetti in classi diverse a seconda del lato del piano di divisione su cui cadono i punti. Le macchine vettoriali di supporto sono in grado di eseguire una classificazione non lineare attraverso l'uso di una tecnica nota come trucco del kernel. Sebbene i classificatori SVM siano spesso molto accurati, uno svantaggio sostanziale dei classificatori SVM è che tendono ad essere limitati sia dalle dimensioni che dalla velocità, con la velocità che ne risente all'aumentare delle dimensioni.

Percettroni multistrato (reti neurali)

I percettroni multistrato, chiamati anche modelli di rete neurale, sono algoritmi di apprendimento automatico ispirati al cervello umano. I percettroni multistrato sono composti da vari strati che sono uniti tra loro, proprio come i neuroni nel cervello umano sono collegati tra loro. Le reti neurali formulano ipotesi su come le funzionalità di input sono correlate alle classi dei dati e queste ipotesi vengono adattate nel corso dell'addestramento. Semplici modelli di reti neurali come il percettrone multistrato 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 convesse.

Algoritmi di Deep Learning (CNN)

Foto: Aphex34 tramite 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 negli ultimi tempi è la rete neurale convoluzionale (CNN). Le CNN sono versioni personalizzate di 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 scoprire, generare e apprendere automaticamente le caratteristiche delle immagini. Ciò riduce notevolmente la necessità di etichettare e segmentare manualmente le immagini per prepararle agli algoritmi di apprendimento automatico. Hanno anche un vantaggio rispetto alle reti MLP perché possono gestire funzioni di perdita non convesse.

Le reti neurali convoluzionali prendono il nome dal fatto che creano "convoluzioni". Le CNN operano prendendo un filtro e facendolo scorrere su un'immagine. Puoi pensare a questo come visualizzare sezioni di un paesaggio attraverso una finestra mobile, concentrandoti solo sulle caratteristiche che sono visibili attraverso la finestra in qualsiasi momento. Il filtro contiene valori numerici che vengono moltiplicati per i valori dei pixel stessi. Il risultato è una nuova cornice, o matrice, piena di numeri che rappresentano l'immagine originale. Questo processo viene ripetuto per un numero prescelto di filtri, quindi i fotogrammi vengono uniti in una nuova immagine 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 gli strati convoluzionali estraggano alla fine solo le parti più salienti dell'immagine che aiuteranno la rete neurale a riconoscere gli oggetti nell'immagine.

Reti neurali involutive sono composti da due parti diverse. Gli strati convoluzionali sono ciò che estrae le caratteristiche dell'immagine e le converte in un formato che gli strati della rete neurale possono interpretare e da cui imparare. I primi strati convoluzionali sono responsabili dell'estrazione degli elementi più basilari dell'immagine, come linee e confini semplici. Gli strati convoluzionali centrali iniziano a catturare forme più complesse, come semplici curve e angoli. Gli strati convoluzionali successivi e più profondi estraggono le caratteristiche di alto livello dell'immagine, che sono ciò che viene passato nella porzione di rete neurale della CNN e sono ciò che il classificatore apprende.

Blogger e programmatore con specialità in machine Learning ed Deep Learning temi. Daniel spera di aiutare gli altri a usare il potere dell'intelligenza artificiale per il bene sociale.