Blog.

Image Segmentation | Segmentazione semantica e delle istanze


Autore
Andrea Provino
Data
Tempo di lettura
5 minuti
Categoria
AI

image-segmentaion-semantic-segmentaion-instance-segmentaion-machine-learning-data-science-guida-italiano

Cos’è l’Image segmentation? La segmentazione di immagini è il processo applicato alle immagini per la classificazione di ogni pixel in una specifica classe, o label.

Ecco a te un semplice esempio.

Consideriamo un’immagine con due Ferrari verde, sullo sfondo delle autunnali colline toscane.

La segmentazione semantica classificherà allora ogni pixel di entrambe le auto come appartenenti alla medesima classe, lo stesso per l’aquila reale in picchiata sulla preda, nell’angolo in alto a destra della foto.

In questo caso avremo solo una classe differente.

Ora dimmi: in quali altri blog di machine learning e data science puoi trovare delle descrizioni così vivide?

Tra i problemi più annosi da affrontare nella computer vision troviamo:

  • image classification, la classificazione delle immagini vecchio stile perché interessati alla sola classe degli elementi in esse contenuti.
  • object detection, l’identificazione degli oggetti in un’immagine con l’aggiunta di rettangoli di selezione (bounding box) che ne individuano la posizione
  • object segmentation, la distinzione degli oggetti dallo sfondo tramite l’identificazione dei loro bordi. Questa categoria si suddivide ulteriormente in Semantic Segmentation e Instance Segmentation

Ecco un’immagine riassuntiva:

Questi task, riportati in ordine, dal meno al più complesso, sono oggi completati dalle reti neurali profonde, che funzionano così, molte delle quali impiegano reti neurali convoluzionali.

Vedi, questi tre problemi hanno delle sottili differenze che è fondamentale conoscere.

Al di là di questo, oggi esaminiamo alcune operazioni più sottili e raffinate.

Seguimi: ti spiegherò cos’è la segmentazione semantica e delle istanze, senza troppe parole complicate.

Continua a leggere…

Image Segmentation | Segmentazione semantica e delle istanze

Devo spiegarti un concetto in realtà banale, e lo faccio collegandomi a un’informazione che certamente possiedi.

Ricorderai che fino a pochi anni fa, quando acquistavi uno smartphone era caccia al modello con il sensore fotografico dalla più alta risoluzione, misurata in un’unità di misura nota come MegaPixel.

Una sensore ottico da 12 MP è capace di catturare immagini aventi al massimo 12 milioni di pixel.

Un pixel è banalmente un piccolo punto colorato.

Lasciando tecnicismi da parte, devi sapere una sola cosa.

Per le immagini a colori, un pixel è digitalmente codificato da un terna di valori, uno per ciascun colore primario: rosso, verde e blu.

Il fatto che un’immagine si riduca a numeri è il concetto, spesso sottinteso, per mezzo del quale le reti neurali possono essere usare nella computer vision.

L’Image segmentation è allora il processo di classificazione di ciascun pixel dell’immagine a una classe.

Ora, devi sapere che esistono due grandi tecniche di segmentazione:

  1. Semantic Segmentation, o segmentazione semantica
  2. Instance Segmentation, o segmentazione delle istanze

Esploriamole una alla volta!

Semantic Segmentation

Cos’è la Semantic Segmentation (segmentazione semantica)?

La semantic segmentation è il processo di classificare ciascun pixel determinandone l’appartenenza a una specifica label.

Questo processo non distingue diverse istanze dello stesso oggetto.

Rileggi l’ultima frase: è la chiave per distinguere le due tipologie di image segmentation.

Possiamo allora dire che, considerando l’immagine di due ricci africani, la semantic segmentation assegnerà la stessa label (i.e. Hedgehog) a tutti i pixel di entrambi gli animali.

La semantica è per definizione quella parte della linguistica che studia il significato delle parole.

Per cui due ricci, sono semplicemente due ricci.

La segmentazione delle istanze opera a un livello più profondo.

Instance Segmentation

Cos’è l’instance segmentation (segmentazione delle istanze)?

L’instance segmentation differisce dalla semantic segmentation perché conferisce una label unica a ciascuna istanza di un particolare oggetto nell’immagine.

Il che equivale a dire, considerando la stessa immagine fittizia di cui sopra, l’instance segmentation riconosce i due ricci come entità differenti.

Ottimo.

Ecco allora un’immagine riassuntive delle due tecniche a confronto:

Solo una cosa potrebbe sfuggirci: quando?

Quando usare la semantic segmentation e l’instance segmentation?

Facciamo degli esempi di Image Segmentation.

Use-Cases of Image Segmentation

Oggi, la segmentazione di immagini è usata in molti ambiti.

Ecco gli use-cases of image segmentation (image segmentation examples):

  1. Riconoscimento scrittura (handwritten recognition), in questo articolo accademico è stato dimostrato come sia possibile estrarre parole e frasi da documenti scritti a mano attraverso la segmentazione semantica.
  2. Sfocatura sfondo (blurred background), l’AI in uno smarpthone? Sì, una rete neurale che separa i soggetti in primo piano dallo sfondo, sfocandolo per ottenere un effetto denominato Bokeh che di norma richiede costose ottiche (i.e. obiettivi della fotocamera). Lo usano pressoché tutte le aziende produttrici di smartphone. Ed è AI.
  3. Sostituzione sfondo (background customization), una tecnica che in questo periodo è divenuta nota grazie alla diffusione dei sistemi di teleconferenza e che si basa sullo stesso principio di cui sopra.
  4. Realtà aumentata (augmented reality), con applicazioni concrete nei flussi di acquisto di e-commerce. Per esempio Virtual Make-up con l’applicazione del rossetto sulle labbra dei clienti o Virtual try-on, per la prova virtuale dei vestiti grazie all’image segmentation.
  5. Auto a guida autonoma (self-driving cars) devono poter comprendere l’ambiente che le circonda. Per questo usando la segmentazione di imamgini per identificare linee, strade e altre informazioni essenziali.

Con quest’ultimo caso, concludiamo la lista di image segmentation use cases.

A questo link puoi invece trovare una moltitudine di risorse sulla segmentazione di immagini.

Per il momento è tutto.

Per aspera, ad astra.

Un caldo abbraccio, Andrea

Taggedcomputer visiondeep learningmachine learning


Ultimi post

Patricia Merkle Trie

Il Practical Algorithm To Retrieve Information Coded In Alphanumeric Merkle Trie, o Patricia Merkle Trie è una struttura dati chiave-valore usatada Ethereum e particolarmente efficiente per il salvataggio e la verifica dell’integrità dell’informazione. In questo post ne studieremo le caratteristiche. Prima di procedere, ci conviene ripassare l’introduzione al Merkle Tree nella quale abbiamo chiarito il […]

Andrea Provino
ethereum-patricia-merkle-tree
Tree Data Structure: cos’è un Merkle Tree

Un Merkle Tree è una struttura dati efficiente per verificare che un dato appartenga a un insieme esteso di elementi. È comunemente impiegato nelle Peer to Peer network in cui la generazione efficiente di prove (proof) contribuisce alla scalabilità della rete. Capire i vantaggi di questa struttura ci tornerà utile nel nostro percorso di esplorazione […]

Andrea Provino
merkle-tree-cover
UTXO: come funziona il modello Unspent Transaction Outputs

Per tenere traccia dei bilanci utente, la blockchain di Bitcoin sfrutta un modello di contabilità definito UTXO o Unspent Transaction Outputs. In questo articolo ne esaminiamo le caratteristiche. Ogni blockchain è dotata di un sistema di contabilità, un meccanismo attraverso cui tenere traccia dei bilanci di ciascun utente. I due grandi modelli di riferimento nel […]

Andrea Provino
bitcoin-utxo
Cos’è Ethereum

Possiamo definire Ethereum come una macchina a stati distribuita che traccia le transizioni di un archivio dati general-purpose (i.e. una memoria in grado di registrare qualsiasi dato esprimibile come coppia di chiave e valore o key-value) all’interno della Ethereum Blockchain. È arrivato il momento di esplorare uno dei progetti tecnologici più innovativi e interessanti degli […]

Andrea Provino
ethereum