39
Giuseppe Attilio Laudani Damiano Tomasello Ing. Microelettronica Illusioni ottiche: algoritmi CNN in MATLAB Corso di "Sistemi complessi adattativi“ - A. A. 2008-2009

CNNs_and_Image_Processing_in_MATLAB (in Italian)

Embed Size (px)

Citation preview

Page 1: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Giuseppe Attilio LaudaniDamiano Tomasello

Ing. Microelettronica

Illusioni ottiche: algoritmi CNN in MATLAB

Corso di "Sistemi complessi adattativi“ - A. A. 2008-2009

Page 2: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Sommario CNN: generalità, equazioni, applicazioni Equazione CNN e metodo di Eulero CNN & Image Processing in MATLAB Illusioni ottiche: applicazioni CNN in MATLAB

Ehrenstein illusion Neon color spreading illusion Shifted edges illusion Hybrid image illusion Glare effect illusion Hering illusion Ponzo illusion

Page 3: CNNs_and_Image_Processing_in_MATLAB (in Italian)

CNN: generalità, equazioni, applicazioni

Page 4: CNNs_and_Image_Processing_in_MATLAB (in Italian)

GeneralitàLe CNN (Cellular Nonlinear/Neural Networks) sono un paradigma computazionale ideato da Chua e Yang (1988).Una CNN standard 2D è definita da una matrice rettangolare di M x N celle C(i,j).Ogni cella C(i,j) è definita matematicamente da:

L’architettura di una CNN è costituita da una matrice rettangolare M X N di celle C(i,j)

,, , , ,

, , , ; , , ; ,

1 , 1

r r

kl k l ijC k l S i j C k l S i j

x i j x i j A i j k l y B i j k l u z

i M j N

Sfera di influenza di raggio 1 (S1)

Sfera di influenza di raggio 2 (S2)

Page 5: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Equazioni

Page 6: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Condizioni al contorno Per risolvere l’equazione differenziale

ordinaria relativa alla cella C(i,j) è necessario specificare le condizioni iniziali e le condizioni al contorno.

È possibile assegnare tre diversi tipi di condizioni al contorno.

Page 7: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Condizioni di Dirichlet (Fixed) Condizioni al

contorno di tipo Dirichlet (valore costante celle al contorno)per una struttura MxN:

10, iy 10, iu Mi ,.....,2,1

21, Niy 21, Niu

3,0 jy 3,0 ju

4,1 jMy4,1 jMu

Mi ,.....,2,1

Nj ,.....,2,1

Nj ,.....,2,1

Page 8: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Condizioni di Neumann (Zero flux) Condizioni al

contorno di tipo Neumann (a flusso nullo) per una struttura MxN:

1,0, ii yy 1,0, ii uu

NiNi uu ,1,

jj uu ,1,0

jMjM uu ,,1

NiNi yy ,1,

jj yy ,1,0

jMjM yy ,,1

Mi ,.....,2,1

Mi ,.....,2,1

Nj ,.....,2,1

Nj ,.....,2,1

Page 9: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Condizioni di tipo toroidale Condizioni al

contorno di tipo periodiche (toroidali) per una struttura MxN:

Nii yy ,0,

1,1, iNi yy

jMj yy ,,0

jjM yy ,1,1

Nii uu ,0,

1,1, iNi uu

jMj uu ,,0

jjM uu ,1,1

Mi ,.....,2,1

Mi ,.....,2,1

Nj ,.....,2,1

Nj ,.....,2,1

Page 10: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Applicazioni Image,video and

signal processing Machine and robotic

vision Autowaves generation 3D surface analysis Modelling biological

vision and other sensory-motor organs

Solving partial differential equations

Quantitative and automated estimation of blood around the follicle in the ovary

Page 11: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Metodo di Eulero ed equazione CNN

Page 12: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Risoluzione dell’equazione CNN col metodo di EuleroIl metodo di Eulero per risolvere l’equazione differenziale:

consiste nel sostituire col quoziente di Newton, cosicché la (1) diventa:

con un semplice arrangiamento, otteniamo :

Supponiamo di voler integrare (1)nell’intervallo . Dividiamo l’intervalloin m passi di lunghezza h, si ha:

Se definiamo , dove allora dunque sostituendo in (2) abbiamo lo schema iterativo

, 1dy f x ydx

dydx

,y x h y x

f x yh

, (2)y x h y x h f x y

,x a b

m b a h

i iy y x 1ix i h 1iy y x h

1 ( , )i i i iy y h f x y

Page 13: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Metodo di Eulero in MATLABImplementazione del metodo di Eulero in MATLAB

Page 14: CNNs_and_Image_Processing_in_MATLAB (in Italian)

CNN & Image Processing in MATLAB

Page 15: CNNs_and_Image_Processing_in_MATLAB (in Italian)

CNN & Image Processing in MATLAB

Edge detection

Page 16: CNNs_and_Image_Processing_in_MATLAB (in Italian)

CNN & Image Processing in MATLABPrincipali template utilizzate per il processamento delle immagini

Erosion Dilation Edge detection Marker Negative image Shift motion Shift translation Watershed

segmentation

Page 17: CNNs_and_Image_Processing_in_MATLAB (in Italian)

CNN & Image Processing in MATLAB

Erosion Dilation

Page 18: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Edge detection Marker

CNN & Image Processing in MATLAB

Page 19: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Negative image Shift motion

CNN & Image Processing in MATLAB

Page 20: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Shift translation Watershed segmentation

CNN & Image Processing in MATLAB

Page 21: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Script matlab

Page 22: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Script matlab

Page 23: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Illusioni ottiche: applicazioni CNN in MATLAB

Page 24: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Illusioni ottiche Si definisce illusione ottica un’erronea

percezione delle immagini da parte del cervello. Dopo che i nostri occhi hanno convertito gli stimoli luminosi in informazioni neurali, il nostro cervello deve codificare queste informazioni per ricostruire interamente l’immagine acquisita ed interpretarla al fine di estrarne rappresentazioni utili del mondo che ci circonda

Page 25: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Illusioni ottiche Le illusioni ottiche si dividono in tre grandi

categorie: illusioni ottiche, dovute a fenomeni di

natura ottica e non connesse alla fisiologia umana;

illusioni percettive, dovute alla fisiologia dell’occhio umano;

illusioni cognitive, dovute all’errata interpretazione che il cervello dà delle immagini.

Page 26: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Illusioni ottiche

La ricerca su illusioni ottiche può portare a dei risultati sullo studio del meccanismo celebrale della percezione e della cognizione

Page 27: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Ehrenstein illusionL’illusione di Ehrestein è un illusione ottica studiata per la prima volta dallo psicologo tedesco Walter Ehrenstein. Per imitare l’illusione di Ehrenstein si utilizzano in sequenza le template Watershed segmentation, Negative image e Marker

Page 28: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Ehrenstein illusion

Una serie di linee radiali i cui punti finali interni creano un cerchio illusorio che appare essere più lucente dello sfondo

Immagine in ingresso

Stato iniziale

Watershed segmentation Negative image

Marker

Page 29: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Neon color spreading illusion

Un disco illusorio è generato usando la watershed segmentation CNN

Page 30: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Neon color spreading illusion

Tramite l’utilizzo della template “Painting CNN” viene creato un disco di colore rosso scuro su fondo nero

Page 31: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Neon color spreading illusion

Un anello rosso scuro è aggiunto all’immagine illusoria tramite l’uso della Marker CNN

Page 32: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Shifted edges illusion

L’illusione shifted edge è un fenomeno dove ogni riga appare inclininarsi sebbene i rettangoli traslati sono orizzontalmente allineati

Page 33: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Shifted edges illusion

Nell’immagine è riportato un esempio di imitazione della “Shifted edges illusion” realizzata tramite CNN. Le linee orizzontali e verticali estratte dall’immagine originale tramite la trasformata di Hough sono state sovrapposte all’immagine centrale tramite l’uso della “Marker CNN”

Page 34: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Shifted edges illusion

Un’altro esempio di imitazione della “Shifted edges illusion” realizzata tramite CNN. Le linee orizzontali e verticali estratte dall’immagine originale tramite la trasformata di Hough sono state sovrapposte all’immagine centrale tramite l’uso della “Marker CNN”

Page 35: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Hybrid image illusion

L’interpretazione di un’immagine ibrida cambia in fuzione della distanza di visualizzazione.

Le CNN sono in grado di imitare un’immagine ibrida usando la “Thresholding CNN”

Page 36: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Hybrid image illusion

La Thresholding CNN per z=0.15 e z=-0.3 può estrarre una motocicletta e una bicicletta da un’immagine ibrida

Page 37: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Glare effect illusion

Imitazione dell’ illusione “Glare effect” tramite l’utilizzo della Shift motion CNN template; Il fiore sembra espandersi

Page 38: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Hering illusion

Le linee orizzontali, sembra che siano curve, ma in realtà sono perfettamente rette. La distorsione apparente si produce per il disegno radiale del fondo, che stimola la prospettiva e genera un'impressione falsa di profondità.

Page 39: CNNs_and_Image_Processing_in_MATLAB (in Italian)

Ponzo illusion

Il segmento più in alto sembra avere una lunghezza maggiore di quello più in basso, in realtà sono congruenti. Anche questa illusione è facilmente realizzata con l’uso della “Marker CNN”