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