Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

92
Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato

Transcript of Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Page 1: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Visione Artificiale per applicazioni multimodali

27 – Novembre– 2006

Ing. C. Spampinato

Page 2: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Overview

Image Processing Occhio umano Discretizzazione Immagini binarie Enhancement Spazi di Colori

Strumenti Applicazioni multimodali

Page 3: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

La Percezione Visiva

Produce informazioni su: Ciò che esiste nel mondo circostante Dove gli oggetti sono localizzati Come tali oggetti cambiano nel tempo

Grazie a tale informazione, un sistema biologico o automatico può conoscere il mondo esterno ed interagire con esso

Page 4: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Occhio Umano

La cornea è un tessuto spesso e trasparente che ricopre la superficie anteriore dell'occhio e serve a far convergere la luce in esso incidente sul cristallino.  

La sclera, in continuazione della cornea,è una membrana opaca che ricopre il bulbo oculare nella sua parte interna.  

La coroide contiene un insieme di vasi sanguigni che portano la maggior parte del nutrimento all'occhio

La retina contenente i recettori fotosensibili

Page 5: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Occhio Umano

Ai suoi estremi anteriori la coroide si divide in due parti: il corpo ciliare l’iride

Il cristallino (o lente) ha la funzione: schermare dalle onde nello schermo

dell’infrarosso e dell’ultravioletto che possono danneggiare l’occhio

mettere a fuoco l’immagine sulla retina

Page 6: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Occhio Umano

La retina costituisce la membrana più interna dell'occhio e misura circa 5cm x 5cm, ed è l'elemento base su cui si fonda la visione;

Il nervo ottico è il collegamento tra lo strumento di acquisizione visiva (l'occhio) e l'elaboratore delle immagini (il cervello),che le interpreta, le processa, le archivia, ecc

Page 7: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Computer Vision

La CV rappresenta la scienza che riproduce su calcolatori elettronici il percorso cognitivo compiuto dall’uomo nell’intepretazione della realtà.

La CV è preposta allo studio di tecniche e tecnologie per analisi di immagini finalizzate ad acquisire informazioni sul mondo esterno.

Le tecniche studiate devono supplire diversi livelli cognitivi caratteristici della visione animale, da quello più basso (acquisizione dell’immagine) a quelli più elevato (interpretazione della scena)

Page 8: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Computer Vision

DIVERSI LIVELLI DI ANALISI

La visione artificiale si articola su tre livelli di astrazione:

LOW LEVEL: Produce una nuova immagine MIDDLE LEVEL: Estrae informazioni di tipo

strutturale HIGH LEVEL: Produce un’interpretazione

della scena

Page 9: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Low Level

Operazioni preliminari:

Image Denoising Regolazione del contrasto Image sharpening

Fine: evidenziare o ridurre alcune caratteristiche

Risultato: immagine a partire da quella di ingresso

Page 10: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Middle Level

Estrazione delle informazioni strutturali dell’immagine di ingresso (ex: edges,contours) Numero degli oggetti presenti nell’immagine Relazione spaziale fra gli oggetti in essa

presenti

Fine: estrazione delle informazioni

Risultato: descrizione della struttura dell’immagine e della forma degli oggetti in essa trovati

Page 11: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

High Level

La visione ad alto livello opera sulle informazioni provenienti dalla visione a medio livello per comporre un modello “semantico” della scena.

Il modello semantico comprende un’interpretazione della scena: ad esempio gli oggetti sono classificati o riconosciuti. Segmentation (partizionare img in regioni o oggetti) Pattern recognition (classificazione di tali oggetti)

In genere fa un largo uso di “conoscenza a priori” Produce una descrizione semantica della scena

Page 12: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Discipline Correlate

Image Processing:

Riguarda le proprietà delle immagini e le trasformazioni a cui possono essere sottoposte (filtraggi, compressione, registrazione 3-D, ecc.)

Pattern Recognition:

Riconoscimento e classificazione di oggetti, che possono essere non solo visuali (es. voice recognition). 

Page 13: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Immagine Digitale

L'immagine è una funzione bidimensionale F(x,y) della intensità luminosa il cui valore o ampiezza ad una determinata coordinata spaziale (x,y) determina l'intensità (cioè la luminosità) dell'immagine in quel punto.

L’immagine è intrinsecamente bidimensionale mentre la scena che riprende è 3D.

F(x,y) non è necessariamente uno scalare: se ad esempio l'immagine è a colori, F(x,y) è una funzione vettoriale:

F(x,y) = [f1(x,y) , f2(x,y) , f3(x,y)]

Page 14: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Immagine Digitale

Le immagini che normalmente percepiamo sono date essenzialmente dalla luce riflessa dagli oggetti, dunque la F(x,y) risulta costituita da due componenti principali: La quantità di luce diretta incidente sulla

scena vista:

Componente di illuminazione i(x,y) La quantità di luce riflessa dagli oggetti

presenti nella scena:

Componente di riflessione r(x,y)

F(x,y) = i(x,y) * r(x,y)

Page 15: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Risoluzione

Risoluzione spaziale Risoluzione spettrale Risoluzione radiometrica Risoluzione temporale

Page 16: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Risoluzione Spaziale

Numero di pixel per unità di area

Diminuendo la risoluzione spaziale otteniamo il tipico effetto "quadrettato" causato dall'aliasing

Page 17: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Risoluzione Spaziale

Page 18: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Risoluzione Spettrale

Diminuendo la banda passante l'immagine diviene più "sfocata"

Page 19: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Risoluzione Radiometrica

Ecco cosa accade se si riduce la profondità di colore :

Page 20: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Tipi di immagine

Un’immagine in toni di grigio è rappresentata dal computer come una matrice di interi da 1 byte o 2 byte;

Un’immagine in bianco e nero è un’immagine i cui punti possono assumere solo i due valori 0 e 1 (img binaria)

Page 21: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

L’uso del colore nell'immagine è motivato da due fattori principali : Il colore è un potente descrittore che spesso

semplifica l’identificazione dell'oggetto e della scena.

Gli uomini possono discernere migliaia di ombre di colore e di intensità, in confronto a solo 20-30 ombre di grigio.

Page 22: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

I colori che gli uomini e alcuni animali percepiscono in un oggetto sono determinati dalla natura della luce riflessa dall’oggetto stesso.

Se la luce è acromatica (colore privo di luce), il suo solo attributo è l’intensità.

La luce cromatica invece si estende lungo la gamma elettromagnetica pprossimativamente dai 400 ai 700 nm.

Page 23: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

Tre principali elementi sono usati per descrivere una fonte di luce cromatica: Radiance: è l’energia totale che fluisce dalla fonte di

luce, ed è misurata in watt (W). Luminance, misurata in lumens (lm), dà una misura

dell’ammontare di energia che un osservatore percepisce da una fonte di luce.

Brightness: è un descrittore soggettivo; incarna la nozione acromatica di intensità.

Approssimativamente il 65% di coni dell’occhio umano è sensibile alla luce rossa, il 33% alla verde, e solo il 2% è sensibile all’azzurro (ma i coni blu sono i più sensibili).

Page 24: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

I colori primari possono essere addizionati per produrre colori secondari di luce : il magenta (blu + rosso), il ciano (blu + verde), e il giallo (verde + rosso).

Mescolando i tre primari, o un secondario col suo colore primario opposto, nelle intensità giuste si produce luce bianca.

Page 25: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

C’è una differenza tra i colori primari di luce e i colori primari di pigmenti (o coloranti).

Nei pigmenti un colore primario è definito come il colore che sottrae o assorbe un colore primario di luce e riflette o emette gli altri due.

Page 26: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

Le caratteristiche che generalmente sono usate per distinguere un colore da un altro sono:

Luminosità; Tonalità, che è un attributo associato con la

lunghezza d'onda dominante in un insieme di onde luminose. La tonalità rappresenta il colore dominante percepito.

Così, quando noi chiamiamo un oggetto rosso, arancione, o giallo, noi stiamo specificando la sua tonalità.

Saturazione assegna la relativa purezza o la quantità di luce bianca mescolata con un colore. I colori puri dello spettro sono pienamente saturi.

Page 27: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore

L’ ammontare di rosso, verde, e blu sono necessari per creare un qualsiasi colore sono chiamati tristimulus.

Un colore è specificato dal suo coefficiente tricromatico:

Page 28: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Spazi di Colore : Diagramma di Cromaticità

Page 29: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Modelli di colore

I modelli più comunemente usati in pratica sono :

RGB (rosso, verde, blu), CMY (ciano, magenta, giallo) e il CMYK che

sono modelli di colore per stampare; HSI (tonalità, saturazione, intensità) modello

che corrisponde da vicino al modo in cui gli uomini descrivono e interpretano il colore.

Page 30: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

RGB

Il sottospazio di colore di interesse è il cubo nel quale i valori di RGB sono tre angoli; ciano, magenta, e giallo sono gli altri tre angoli; il nero è all’ origine; e il bianco è l’angolo opposto all’origine. In questo modello, la scala di grigio (punti di uguali valori RGB) si estende dal nero al bianco .

Page 31: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

CMY(K)

Molte apparecchiature che depositano pigmenti colorati su carta, come stampanti a colori e fotocopiatrici richiedono dati in input CMY o effettuano una conversione da RGB a CMY internamente.

Page 32: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Modello HSI

Hue : descrive la purezza del colore; Saturation : grado di presenza del bianco; Intensity : livello di grigio per rappresentare la

brillantezza;

Page 33: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Modello HSI

Page 34: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Color Processing Matlab

X = imread(’nome_file.jpg’);

Red_Channel = X(:,:,1);

Green_Channel = X(:,:,2);

Blue_Channel = X(:,:,3);

Gray_Image = rgb2gray(X)

Hsi_Image = rgb2hsv(X)

Hue_Channel = Hsi_Image(:,:,1);

Saturation_Channel = Hsi_Image(:,:,1);

Intensity_Channel = Hsi_Image(:,:,1);

Page 35: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Proprietà Topologiche Immagini Binarie Proprietà riferite ad una immagine (o di parte di essa)

che non variano in seguito a certe trasformazioni ( traslazione, rotazione, cambiamento di scala ed elongazione) lungo un qualsiasi asse dell'immagine: Intorno e adiacenza Path Connettività; Connected Components; Foreground,Background e Holes; Bordo, Interno;

Page 36: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Intorno e adiacenza

Dato un pixel p di coordinate (x,y), i quattro vicini (in orizzontale e verticale) hanno coordinate:(x+1, y), (x-1. y), (x, y+1), (x, y-1) e costituiscono l’insieme N4(p) dei di p (Pixel con ul lato in comune).

I quattro vicini diagonali di p hanno coordinate (x+1, y +1), (x+1, y-1), (x-1, y+1), (x-1,y-1) e formano l’insieme ND(p).

L’insieme degli 8-vicinidi p è dato da:

Page 37: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Intorno e adiacenza

Page 38: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Path

Un path da un pixel [i0,j0], al pixel [in,jn] è una sequenza di pixel [i0,j0] , [i1,j1] , ... , [in-1,jn-1] , [in,jn] tale che il pixel  [ik,jk] sia un vicino di [ik+1,jk+1] per ogni K[0,n-1].

Page 39: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Connected Component

Un connected component di una immagine è un insieme di pixel in cui ogni elemento è connesso con tutti gli altri

Appare allora chiaro che, ad esempio, un path è un connected component.

Talvolta è detto “oggetto”

Page 40: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Connected Component

L’insieme S di tutti i pixel di valore non nullo di un’immagine è detto foreground

L’ insieme dei connected components appartenenti ad S (complementare di S) che abbiano punti sul bordo dell'immagine è detto background

L’ insieme di tutti i punti rimanenti (cioè che non sono né di background né di foreground) vengono detti holes

Page 41: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Connected Component

Page 42: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Convex Hull

Definiamo Convex Hull di un oggetto la più piccola regione che contiene quell'oggetto e i cui punti sono unibili con segmenti contenuti nella regione stessa

Page 43: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Proprietà geometriche

Area (size) A = numero di pixel di un oggetto; Perimetro P = numero di pixel del contorno; Posizione  = in genere corrisponde alle coordinate

del centro di massa dell'oggetto, calcolate assegnando ad ogni pixel, come peso, il suo valore:

B(i,j) : peso (cioè valore) del punto di coordinate (i,j) A : Area dell'oggetto.

A

xjiB

x i jj

p

),(

A

yjiB

y i jj

p

),(

Page 44: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Proprietà geometriche

Orientazione = angolo dell'asse principale dell'oggetto rispetto ad un asse di riferimento (tipicamente l'asse orizzontale); è calcolata come l'asse per il quale la somma delle distanze quadratiche perpendicolari rispetto a tutti i punti dell'oggetto è minima:

ri,j : distanza perpendicolare della retta dal punto (i,j)

B[i,j] : valore del pixel nel punto (i,j).

jiBrxi j

ji ,2,

2

Page 45: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Proprietà geometriche

Compattezza = numero di pixel del contorno; è misurata dalla disuguaglianza isoperimetrica:

Più una figura è compatta, minore è il valore del rapporto.La figura che risulta più compatta è il cerchio

Page 46: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Enhancement

L’ image enhancement consiste nell’elaborazione di un’immagine con il fine di migliorarne determinate caratteristiche, ridurne altre, eliminare o ridurre il rumore…

Si mira ad evidenziare alcune caratteristiche che sono utili per passi successivi di processing

Oppure si mira a migliorare l’aspetto visivo dell’immagine

Page 47: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Biondi

Enhancement

I metodi da utilizzare per il miglioramento delle immagini vanno scelti in base al tipo di immagine ed al tipo di elaborazione.

Tali metodi si dividono in due categorie: Metodi nel dominio dello spazio (si basano su una diretta

manipolazione dei pixel); Metodi nel dominio della frequenza (si basano su operazioni

effettuate sulla trasformata di Fourier); Non c’è una teoria generale sull’enhancement dell’immagine, in

quanto la valutazione visiva della qualità dell’immagine è un processo altamente soggettivo.

Page 48: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Biondi

Enhancement on spatial domain

Il termine dominio spaziale è legato al fatto che l’elaborazione si basa direttamente sulla manipolazione dei pixel.

Le principali operazioni che si possono eseguire nel dominio dello spazio sono: Intesity o Gray Level transformation Spatial filtering

Page 49: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

I processi nel dominio dello spazio saranno denotati dall’espressione:

g(x, y) = T[f(x, y)]

dove:

- f(x, y) è l’immagine di input

- g(x, y) è l’immagine processata

- T è un operatore su f, definito sull’intorno di (x, y)

Background

Page 50: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Background

L’approccio principale nella definizione di una vicinanza circa un punto (x, y) è usare una sottoparte quadrata o rettangolare dell’immagine centrata in (x, y), come mostra la figura

L’operatore T è applicato ad ogni punto (x,y) per ottenere l’uscita g in quel punto

Page 51: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

La più semplice forma di T è quando il contorno è di dimensioni 1x1 (cioè un singolo pixel).

g dipende solo dal valore di f in (x, y) T diventa una funzione di trasformazione a livelli di

grigio (spesso chiamata a intensity o a mapping) . In tal caso T dipende solo dall’intesità r e non da (x,y)

quindi si ha: s = T(r)

Dove: - r indica il livello di grigio di f(x, y) - s indica il livello di grigio di g(x, y)

Background

Page 52: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Alcune trasformazioni basilari a livelli di grigio

Ci sono tre tipi base di funzioni usate frequentemente per il miglioramento dell’immagine:

- lineare

- logaritmica

- a legge di potenza

Page 53: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni lineari: Negativo (1/2) La negativa di un’immagine con livelli di grigio nel range [0, L-1]

è ottenuta usando la trasformazione negativa mostrata nella figura precedente con la formula:

s = L – 1 – r

Invertendo i livelli di intensità di un’immagine in questa maniera si produce l’equivalente di una negativa fotografica

Page 54: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni lineari: Negativo (2/2)

Page 55: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni logaritmiche (1/2)

La trasformazione logaritmica assieme al constrast stretching rappresentazione le principali trasformazioni per la manipolazione dinamici dei range di grigio.

La formula generale della trasformazione logaritmica è:

s = c*log(1 + r)

Dove:

- c è una costante

- si assume che r ≥ 0 La funzione log ha l’importante caratteristica di comprimere il

range dinamico nelle immagini con una larga variazione nei valori dei pixel

Page 56: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni logaritmiche (2/2)

Viene usato per comprimere range dinamici. Es. trasformata Fourier: intervalli [0 10^6].

Page 57: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Constrast stretching

Permette di comprimere i livelli di grigio minore di un valore m di un’immagine in un ristretto intervallo di livelli scuri.

Se T(r) ha la forma mostrata nella prima figura l’effetto di questa trasformazione è quello di produrre un’immagine ad alto contrasto rispetto all’originale

Erm

rTs)/(1

1

r rappresenta l’intensità dell’immagine di ingresso. E controlla la forma della funzione.

Page 58: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni a legge di potenza

Le trasformazioni a legge di potenza hanno la forma base:

s = crγ

dove c e γ sono costanti positive

Spesso tale equazione è scritta come:

s = c(r + ε)γ

Page 59: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni a legge di potenza

Page 60: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Tali trasformazioni sono usate per correggere i “difetti” di alcune periferiche usate per la cattura dell’immagine, la stampa, e la visualizzazione

Il processo usato per correggere questi fenomeni di risposta della legge di potenza è chiamato gamma correction

Trasformazioni a legge di potenza

Page 61: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Come si può notare nell’esempio di questa spina dorsale, grazie a tale

trasformazione si possono esaltare zone (le lesioni) che erano quasi “nascoste” nell’immagine originale.

Trasformazioni a legge di potenza

0.6

0.30.

4

Page 62: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Trasformazioni a legge di potenza

3

4 5

Page 63: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Funzioni di trasformazione “piecewise”-lineare

Vantaggi:

- la forma delle funzioni “piecewise” può essere resa arbitrariamente complessa

- un’implementazione pratica di molte importanti trasformazioni può essere formulata solamente come funzioni “piecewise”

Svantaggi:

- la loro specifica richiede considerevolmente più input da parte degli utenti

Page 64: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Constrast strecthingL’idea dietro lo stiramento del contrasto è di aumentare il range dinamico dei livelli di grigio nell’immagine che sta per essere processata.

Gray-level slicing:Con questa tecnica si da rilievo ad uno specifico range di livelli di grigio in un’immagine.

“Divisione del bit-plane:Si suppone che ogni pixel in un’immagine sia rappresentata da 8 bit. Si immagini che l’immagine sia composta da 8 piani da 1 bit, ordinati dal bit-plane 0 (il bit meno signifivìcativo) al bit-plane 7 (il più significativo)

Funzioni di trasformazione “piecewise”-lineare

Page 65: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Constranst Stretching

Una delle “piecewise trasformation” più semplici è la contrast-stretching.

Page 66: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Constranst Stretching (2/2)

Page 67: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Gray-level and Bit-plane slicing

Evidenziare un specifico range di livelli di grigio è spesso desiderabile.

Esistono molti approcci per effettuare lo slicing, ma essenzialmente si possono ricondurre a due.

Può essere molto utile evidenziare il contributo dei singoli bit piuttosto che un intero range di grigio.

Page 68: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Gray-level and Bit-plane slicing

Page 69: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Gray-level and Bit-plane slicing

Page 70: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Histogram Processing

L’istogramma di un’immagine è una curva che fornisce informazioni sulla frequenza con cui ogni livello di grigio è presente nell’immagine.

L’istogramma si determina contando per ogni valore dell’insieme dei valori assumibili dai pixel dell’immagine (detto codominio dell’immagine) il numero di volte che compare nell’immagine stessa.

Page 71: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Histogram Processing

Allora se rk con k=0,…,255 rappresenta i valori di grigio si ha che l’istogramma è:

Dove nk rappresenta il numero di pixel con valore di grigio rk ed N è il numero totale di pixel dell’immagine

N

nrp kk

Page 72: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Histogram Processing

L’istogramma è la base per numerose tecniche di processimento nello spazio.

E’ molto efficiente per l’enhancement. Ma non solo… compressione e

segmentazione!!! E’ possibile effettuare alcune trasformazione

dell’istogramma: Equalizzazione dell’istogramma; Matching dell’istogramma

Page 73: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Histogram Processing

Page 74: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Local Enhancement

L’enhancement è un operazione di miglioramento dell’immagine.

Esistono due tipi di enhancement GLOBALE e LOCALE.

Nelle sezioni precedenti sono elaborazioni globali.

Le procedure precedentemente viste possono essere applicate definendo un quadrato e spostando da pixel a pixel.

Page 75: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Local Enhancement

Le tecniche di processamento di un istogramma sono facilmente adattabili al local enhancement.

La procedura deve definire un’area quadrata o rettangolare e trasportare il centro di questa area da pixel a pixel.

Su ciascuna ubicazione, verrà calcolato l'istogramma dei punti che si trovano vicini in maniera tale da ottenere una delle due seguenti funzioni di trasformazione: histogram equalization o histogram specification

Page 76: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Local Enhancement

Tali funzioni vengono usate per mappare il livello di grigio del pixel concentrato nei dintorni.

Il centro della regione vicina è mosso poi su una locazione del pixel adiacente e la procedura è ripetuta. Ad ogni iterazione ogni nuova riga o colonna dei dintorni cambia durante la traslazione da pixel-a-pixel della regione.

Questo approccio ha vantaggi ovvi in quanto calcola l'istogramma ripetutamente su tutti i pixel nella regione vicina e ogni volta la regione è mossa a un pixel location.

Page 77: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Local Enhancement

Un altro approccio usato qualche volta per ridurre il calcolo è utilizzare regioni non sovrapposte, ma questo metodo di solito produce un indesiderabile effetto checkerboard (quadrettato).

Page 78: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Local Enhancement

A B C

A=immagine originale;

B=Eq.istogramma globale;

C=Eq.istogramma locale;

Page 79: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Use of Histogram Statistics for Image Enhancement

E’ molto utile usare parametri statistici nell’istogramma piuttosto che l’intero istogramma.

Sia r una variabile random discreta che rappresenta un livello di grigio discreto in un range [0, L-1] e p(ri) rappresenta l’istogramma normalizzato e il corrispondente componente all’i-esimo valore di r.

Page 80: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Use of Histogram Statistics for Image Enhancement

Il momento n-esimo di r:

Dove m è il valore medio del livello di grigio:

Page 81: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Use of Histogram Statistics for Image Enhancement Due usi della media e della varianza per scopi di

enhancement. La media e la variazione globale sono misurate su

un'immagine intera e sono utili primariamente per rettifiche sull’ intensità complessiva e sul contrasto.

Enhancement locale: media e la varianza locale sono usate per trasformazioni che dipendono dalle caratteristiche dell'immagine in una determinata regione.

Page 82: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Use of Histogram Statistics for Image Enhancement Siano (x,y) le coordinate di un pixel

nell’immagine, e sia Sxy una sottoimmagine di grandezza specificata, centrata in (x,y). Il valore medio m del pixel in Sxy può essere calcolato usando l’espressione:

Page 83: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

E’ necessario evidenziare un’area e lasciare l’altra inalterata!!!

Enhancement locale capace di evidenziare solo le aree più scure!!!

Page 84: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

Una misura di quando un’area è relativamente chiara o scusa è quella di confrontare media e varianza locale con media e varianza globale.

Un pixel (x,y) sarà candidato per il processamento se:

Un pixel che soddisfa tali condizioni verrà processato moltiplicando per una costante E può essere maggiore 1 o minore di 1 a seconda del tipo di elaborazione.

Page 85: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

Ricapitolando: Sia f(x,y) il valore di un determinato pixel alla coordinata (x,y) e sia g(x,y) il enhanced pixel alla stessa coordinata. Allora:

Page 86: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

Con E=4, K0=0.4, K1=0.02, K2=0.4

A B CA= è stata applicata la media localeB= è stata applicata la deviazione standardC= immagine formata dalla moltiplicazione di tutte le costanti usate per l’enhancement

Page 87: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

Page 88: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

OpenCV

La libreria OpenCV (Open Source Computer Vision) costituisce una collezione di algoritmi ed esempi di computer vision.

Il codice è ottimizzato per la famiglia dei processori Intel ed è compatibile con la precedente libreria free IPL (Image Processing Library).

Page 89: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

OpenCV

OpenCV costituisce un supporto per usi commerciali o di ricerca in settori della computer vision quali human-computer interface, monitoraggio, biometrica, sicurezza, …, fornendo un’infrastruttura free ed open che può essere consolidata e ottimizzata grazie al lavoro dei membri della vision community.

Page 90: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Esempio

IplImage *src;// dichiaro un’IplImage (struttura dati usata per immagini 2D)

char path[]=“C\\colombina.bmp”;

//creo una finestra di nome “window”cvNamedWindow("window",CV_WINDOW_AUTOSIZE);src=cvLoadImage(path); //carico l’immagine

contenuta nel file colombina.bmp in “src” (la memoria per l’immagine è allocata in modo implicito)

cvShowImage("window",src); //mostro nella finestra “window” l’immagine contenuta in “src”

Page 91: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

RGB 2 GRAY

CvSize size_src=cvSize(src->width,src->height);//creo la variabile “size_src” di tipo

//“CvSize” per contenere//larghezza ed altezza dell’immagine

src_gray=cvCreateImage(size_src,src->depth,1);//creo l’immagine src_gray con//le dimensioni fissate da size_src//e con un solo canalecvCvtColor(src,src_gray,RBG2GRAY); //passo “src”

convertita a toni di grigio// nella variabile “src_gray”cvNamedWindow("window color",CV_WINDOW_AUTOSIZE);// la costante “CV_WINDOW_AUTOSIZE” richiede che// la window si adatti alle dimensioni dell’immaginecvShowImage("window color",src);cvNamedWindow("window gray",1);

Page 92: Visione Artificiale per applicazioni multimodali 27 – Novembre– 2006 Ing. C. Spampinato.

Applicazioni Multimodali

Analisi Attentiva Object Recognition:

Face; Gesture;

Tracking Eye; Face;