25/11/2019

AISeries - Machine Vision 2

In questo secondo articolo andremo ad analizzare come l’immagine viene rappresentata all’interno dei computer. Questo passaggio risulta essere fondamentale per capire al meglio come le reti neurali analizzano le immagini.

Rappresentazione digitale dell’immagine

Una immagine, all’interno di un computer, non è altro che una matrice di numeri. Ogni “quadrato” della matrice di numeri è un pixel (crasi di picture element) e sulla base di come viene rappresentato va a definire una serie di proprietà dell’immagine.

Ad esempio, in Figura 1, possiamo vedere un’immagine in bianco e nero. La sua rappresentazione viene fatta con una matrice 4x4 in cui il bianco viene rappresentato con l’1 e il nero con lo 0. La sua profondità di colore è quindi rappresentata da 1 solo bit, mentre la sua risoluzione è data dal numero di pixel presenti, quindi 16. Inoltre, utilizzando solo il bianco e nero, in questo caso abbiamo solamente un canale colore. In Figura 2 invece possiamo vedere un’immagine in scala di grigi, che rispetto alla Figura 1 presenta una profondità colore di 8 bit, che quindi permette di rappresentare 255 colori, rispetto ai 2 (bianco e nero) rappresentabili prima.

Figura 1: Sulla sinistra l'immagine originale, sulla destra la sua rappresentazione digitale. Risoluzione 4x4, 16 pixel, profondità di colore 1 bit, Canali colore 1
Figura 1: Sulla sinistra l'immagine originale, sulla destra la sua rappresentazione digitale. Risoluzione 4x4, 16 pixel, profondità di colore 1 bit, Canali colore 1
Figura 2: Sulla sinistra l'immagine originale, sulla destra la sua rappresentazione digitale. Risoluzione 4x4, 16 pixel, profondità di colore 8 bit, Canali colore 1
Figura 2: Sulla sinistra l'immagine originale, sulla destra la sua rappresentazione digitale. Risoluzione 4x4, 16 pixel, profondità di colore 8 bit, Canali colore 1

Per poter inserire i colori nelle immagini, bisogna associare, ad ogni matrice, un canale colore (che dipende dallo spazio colore, di cui parleremo più avanti) . In figura 3 ad esempio, abbiamo due canali colore, uno rosso ed uno blu.

Figura 3: Sulla sinistra l'immagine originale, al centro la scomposizione sui due canali (rosso in alto e blu in basso); sulla destra la rappresentazione numerica. Questa immagine ha risoluzione 4x4, 16 pixel, profondità di color 8 bit e 2 Canali colore
Figura 3: Sulla sinistra l'immagine originale, al centro la scomposizione sui due canali (rosso in alto e blu in basso); sulla destra la rappresentazione numerica. Questa immagine ha risoluzione 4x4, 16 pixel, profondità di color 8 bit e 2 Canali colore

Una immagine acquisita con una camera moderna ha qualche milione di pixel (i famosi MegaPixel), una profondità colore di almeno 16/24 bit e 3 canali colore (solitamente RGB - Red Green Blue). Ad esempio possiamo vedere la Figura 4, contenente più di 6 milioni di pixel, che verrà rappresentata da 3 matrici 2453x2453.

Figura 4: Immagine 2453x2453, 6MPixel (6.017.209 per la precisione), 3 canali colore, profondità di colore 24 bit (16.8 milioni di colore)
Figura 4: Immagine 2453x2453, 6MPixel (6.017.209 per la precisione), 3 canali colore, profondità di colore 24 bit (16.8 milioni di colore)

Per completare la descrizione delle modalità di rappresentazione di una immagine è necessario parlare degli spazi colore. Lo spazio colore “è un modello matematico astratto che descrive un modo per rappresentare i colori come combinazioni di numeri, tipicamente come tre o quattro valori detti componenti colore” [Wikipedia].

Nella figura 3 abbiamo usato uno spazio colore formato da R e G, mentre nella figura 4 abbiamo utilizzato lo spazio colore RGB. Possiamo elencare 3 spazi colore tra i più interessanti:

  • RGB: uno degli spazi colore più utilizzati. È uno spazio additivo in cui i tre componenti vengono sommati. Nei computer moderni in realtà si utilizza uno spazio RGB ridotto, come l’sRGB o l’AdobeRGB.
  • HSB: i tre canali in questo caso sono Hue (tonalità, tinta), Saturation and Brightness e vanno a creare un cilindro di colori. I colori di ogni tonalità sono posizionati in una fetta radiale, che si allontana da un asse centrale di colori neutrali che varia dal nero (in basso) al bianco (in alto).
  • CIE XYZ: spazio colore definito dalla Commissione Internazionale sull’illuminazione nel 1931. Si propone come lo spazio colore che meglio rappresenta i colori per come li vede il nostro occhio.

Per maggiori dettagli sugli spazi colore vi rimandiamo a https://www.opticallimits.com/colorimetric-systems-and-color-models

Nel prossimo articolo inizieremo invece a parlare di Image Processing vero e proprio, parlando di binarizzazione e dei kernel per applicare filtri alle immagini.