MATLAB_Lezione VII

Transcript

MATLAB_Lezione VII
Introduzione a Matlab
Skin Detection
&
Iris Normalization
Fondamenti di
Visione Artificiale
a.a. 2015/2016
12/05/16
Estrazione dei Contorni
1
Skin Detection - Introduzione
• Il processo di skin detection consiste nel
localizzare, all’interno di una immagine,
regioni che corrispondono a pelle.
• Gli algoritmi che si basano sull’approccio
cromatico necessitano di una prima fase di
training per poter creare un modello
probabilistico per la distribuzione del colore
della pelle.
12/05/16
2
Skin Detection – Jones&Rehg
• Un modello realistico può essere realizzato
mediante il database creato da Jones e Rehg
in [Jones M.J. and Rehg J.M, 1999]
• La particolarità di questo database è che è
formato da immagini scaricate da internet in
modo del tutto casuale, il che lo rende
ideale per ottenere un modello quanto più
vicino possibile alla realtà.
12/05/16
3
Skin Detection – Jones&Rehg
• Questo database è formato da immagini
scaricate da internet in modo del tutto
casuale e presenta per ogni immagine due
matrici che classificano ogni pixel come
pelle o meno.
12/05/16
4
Skin Detection – Training
• L’algoritmo prevede una fase di training in cui per ciascun
pixel p∈(RGB) si stima la probabilità che possa
rappresentare pelle P(p|skin) o meno P(p|~skin), dove:
s[ p ]
P ( p | skin ) =
Ts
e
P( p | ¬skin ) =
n[ p]
Tn
con s[p] il numero di occorrenze del colore p in regioni
classificate come pelle, n[p] il numero di occorrenze in
regioni non appartenenti alla pelle, Ts e Tns il numero totale
di pixel classificati come pelle e non.
12/05/16
5
Skin Detection – Tabelle
• Al fine di ridurre lo spazio in memoria occupato
dalle mappe, si utilizza un campionamento di 32
intervalli colore, che permette di ridurre gli intervalli
totali a (32)3 =32768 (dai 16 milioni originari
derivanti dall’usare 8 bit colore)
12/05/16
6
Skin Detection – Testing
• Ogni pixel è riconosciuto come pelle se e solo se il seguente
test dà esito positivo:
P( p | skin)
≥θ ,
P( p | ¬skin)
• che rappresenta il rapporto a favore del colore p di essere
osservato come pelle e θ rappresenta un soglia predefinita.
P( skin | p)
≥k
P(¬skin | p)
• Tale regola ha la stessa validità di usare
in quanto può essere ricavata da questa usando la formula di
Bayes.
12/05/16
7
Skin Detection – Esempi
• Alcuni esempi di operazioni di skin detection:
Se la soglia θ è troppo
bassa, vengono rilevate
anche regioni che non sono
pelle.
Se la soglia θ è troppo alta,
la maschera estratta per la
pelle può presentare dei
buchi.
12/05/16
8
Skin Detection – Implementazione
• L’operazione di skin detection viene effettuata mediante la funzione:
[skin] = skinSegmentation(src, skin_p, nskin_p, bins, th, maskMode)
•
INPUT:
– img = Matrice (rgb) dell'immagine da cui estrarre la pelle
– skin_p = matrice di tipo BINS by BINS by 3 con gli intervalli colore e le relative probabilità che
quel determinato intervallo sia pelle
– nskin_p = come skin_p ma con le probabilità che un determinato intervallo colore non sia pelle
– bins = numero di intervalli colore in cui sono suddivise le matrici con le probalità
– th = soglia al di sotto della quale un pixel non è considerato come pelle
– maskMode = modalità del mascheramento, se 1 allora i pixel vengono mascherati con il colore
bianco, altrimenti se 0 con il colore nero
•
OUTPUT:
– skin = img con tutti i pixel non riconosciuti come pelle messi a 0
L’implementazione è stata realizzata dal dott. Russo Luigi
12/05/16
9
Iris normalization – Introduzione
• Una delle prime fasi di qualunque sistema di identificazione basato
sull'iride è sicuramente rappresentata dalla localizzazione e dalla
segmentazione di quest'ultimo.
• Nella competition NICE II si fornisce a priori una mask image di
segmentazione precalcolata mediante l'algoritmo proposto in [1].
[1] Tieniu Tan, Zhaofeng Hea and Zhenan Sun, Segmentation of Visible Wavelength Iris Images Captured At-a-distance and On-the-move,
Image and Vision Computing, vol. 28, no. 2, pp. 223—230, 2010.
12/05/16
10
Iris normalization – Introduzione
• Innanzitutto, è necessario approssimare l'iris ed il pupil boundary con
dei cerchi (centro e raggio) con la massima accuratezza possibile, così
da permettere il passaggio dallo spazio cartesiano dell'immagine allo
spazio polare della regione dell'iride.
L'ellipse fitting è troppo sensibile alle
discontinuità. Le curve che scaturiscono
dall'approssimazione del contorno
tendono a deformarsi completamente pur
di aderire in maniera precisa alla
porzione di boundary disponibile.
(a)
12/05/16
(b)
(c)
11
Iris normalization – Iris Location
• Il processo di segmentazione inizia con l'individuare prima il
contorno della pupilla, per poi procedere con la separazione della
pupilla.
• La mask image viene scandita riga per riga dall'alto verso il basso.
• Ciascuna riga viene scandita dalla prima all'ultima colonna,
marcando il primo e l'ultimo pixel nero.
• I pixel così marcati rappresentano la frontiera dell'iride. Ai punti di
frontiera viene applicato l'algoritmo proposto da Taubin in [2].
[2] Gabriel Taubin, Estimation of Planar Curves, Surfaces, and Nonplanar Space Curves Defined by Implicit Equations with Applications to
Edge and Range Image Segmentation, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 13, no. 11, pp. 115—1138, 1991.
12/05/16
12
Iris normalization – Pupil Location
• Una volta noti il centro ed il raggio del cerchio
che rappresenta l'iride, si considera un cerchio
concentrico ad esso interno e con raggio pari ad
1/5 del raggio dell'iride.
• Tutti i pixel esterni a tale cerchio vengono
cancellati, ed il procedimento di circle fitting
viene ripetuto su questa nuova immagine per
determinare il centro ed il raggio del cerchio
approssimante la pupilla.
12/05/16
13
Iris normalization – Polarization
• Calcolati i punti corrispondenti sulla pupilla e sull’iride
vengono prelevati i pixel del segmento che li unisce e
distribuiti verticalmente nel rettangolo nella posizione
dell’angolo trattato.
12/05/16
14