Relatore Prof. Marco Maggini Candidato Duccio Picinotti Correlatore Dott. Lorenzo Sarti A.A. 2007/2008 Introduzione Sistemi biometrici per il riconoscimento automatico 1. impronte digitali 2. iride 3. firma autografa 4. faccia Obiettivi 1. maggior livello di sicurezza 2. maggior comodità per gli utenti 3. abbassamento costi di gestione Riconoscimento facciale Pro 1. metodo meno invasivo 2. ha molti più campi applicativi Contro 1. variabilità maggiore a parità di soggetto: il volto di una singola persona può cambiare molto al variare delle espressioni o dell’angolo di ripresa 2. necessita di modelli più complessi e pesanti Applicazioni pratiche Applicazioni pratiche del riconoscimento facciale automatico 1. in parallelo ad altre misure biometriche per il riconoscimento sicuro di un individuo 2. apparati di identificazione biometrica al posto di Bancomat e Smartcard 3. eliminazione delle password (rimarrebbero solo in caso di problemi di identificazione) 4. eliminazione delle chiavi di casa o dell’auto (rimarrebbero solo in caso di malfunzionamenti) 5. controllo degli accessi in edifici che necessitano sicurezza 6. riconoscimento criminali/terroristi in luoghi pubblici come stazioni ed aeroporti (usato al Super Bowl) 7. nelle investigazioni scientifiche per riconoscimento di criminali schedati 8. alle votazioni per evitare voti multipli 9. uso di apparati più generali di riconoscimento oggetti per robot Sistemi commerciali di riconoscimento Sono in grado di riconoscere i volti anche variando (robustezza): 1. variazione posa: angolazione e distanza dalla videocamera 2. variazione dell’intensità e distribuzione dell’illuminazione 3. cambiamenti intrinseci del volto: espressioni, capigliatura, invecchiamento, occhi chiusi, presenza o meno di occhiali…. 4. occlusioni parziali del volto Applicazioni commerciali (eseguono sia autenticazione one-toone sia identificazione one-to-many) TrueFace di Miros: buona efficienza e modesta richiesta di risorse 1. TrueFace Network: per controlli di accesso via protocolli di rete 2. TrueFace ID: specifico per scopi di sorveglianza 3. TrueFace Engine: personalizzabile in base ad esigenze specifiche FaceIt di Visionic: diffuso in ambito governativo e bancario 1. FaceIt Sentinel: prodotto entry-level a basso costo 2. FaceIt Survillance: per la sorveglianza Obiettivi della tesi face recognition e non face detection (si è usato OpenCV per questo) obiettivo principale: implementare più algoritmi di riconoscimento per valutarne l’accuratezza, la velocità, vantaggi e svantaggi uso del dataset di foto di volti XM2VTS multi-modale (Centre for Vision, Speech an Signal Processing, CVSSP, University of Surrey, Sussex UK): 1. 295 soggetti 2. 8 differenti posizioni per ogni individuo 3. 720 x 576 pixel ogni immagine suddivisione dataset 6 foto per ogni individuo (75%) -> Training-set 2 foto per ogni individuo (25%) -> Test-set Error rate % come stima della probabilità d’errore e quindi dell’accuratezza dell’algoritmo di classificazione script Matlab© per l’estrazione features e la classificazione Aspetti problematici Aspetti problematici del riconoscimento facciale automatico 1. estrazione delle features: attributi necessari per eseguire la classificazione 2. trovare un compromesso fra compressione dei dati in ingresso, per diminuire carico computazionale, e l’efficacia del classificatore Metodologie di riduzione della dimensionalità Lineari 1. Principal Component Analysis (PCA) 2. Linear Discriminat Analysis o di Fisher (LDA) 3. Singular Value Decomposition (SVD) Non Lineari 1. Kernel PCA 2. Radial Basis Function (RBF) 3. Self-Organizing Map o Mappe di Kohonen (SOM) Tecniche di classificazione Una volta calcolate le features si usano i classificatori automatici: 1. classificatore bayesiano con assunzione gaussiana o con mistura di gaussiane 2. classificatore K-NN con distanza euclidea 3. classificatore K-NN con distanza auto-appresa con SNN 4. classificatore K-NN con distanza dal centroide di ogni soggetto Classificatore bayesiano Classificatore bayesiano (T. di Bayes) ω1,…, ωc classi x € Rn features come variabile aleatoria P(ωi|x) probabilità a posteriori (posterior probability) di ωi data l’osservazione x P(x|ωi) verosomiglianza (likelihood o class conditional) di x data ωi-> da stimare P(ωi) probabilità a priori di ωi (prior probability) P(x,ωi) probabilità congiunta (joint probability) di x e ωi p(x) fattore di normalizzazione chiamato “evidenza” (può essere tolto poiché indipendente da classe ωi) Discriminante della classe: si massimizza la posterior probability Stima parametrica supervisionata Stima parametrica supervisionata della verosomiglianza “dati n campioni appartenenti ad una data classe Y={y1, .., yn}, distribuiti i.i.d. secondo una certa funzione di forma nota p(y, θ), stimare un vettore di p-parametri θ=(θ1, .., θp)” stima a massima verosomiglianza, si massimizza: se si assume p(yk| θ) gaussiana multivariata poi si sostituisce la verosomiglianza nel T. di Bayes e si trova la posterior probability e quindi il discriminante Stima non-parametrica supervisionata Stima non-parametrica supervisionata non si fanno assunzioni su forma della distribuzioni di probabilità n campioni i.i.d. x1, .., xn Parzen Window: stima mediante combinazione lineare di funzioni finestra (kernel), simmetriche rispetto al loro baricentro e volumetricamente normalizzate, mediate negli n campioni a disposizione (si sostituisce verosomiglianza nel T. Bayes) funzione finestra ipercubica (ipercubo centrato in x0 e di lato hn) Classificatore K-NN classificatore K-Nearest Neighbor (K-NN) sia Yn = {x1, x2, …, xn} il campione di training etichettato con le classi di appartenenza e x0 il pattern da classificare regola di decisione K-NN considera i K pattern di Yn più vicini al punto x0, a minima distanza euclidea, e assegna x0 alla classe ωi se e solo se è quella avente frequenza più alta rispetto a tutte le altre in questo sotto-campione di K osservazioni K=1 -> classificatore Nearest Neighbor K elevati -> stima troppo “mediata” della posterior probability (si allontana troppo da punto x0) Reti Neurali di Similarità (SNN) 1/2 MLP con coppie (x, y) in input e output fSNN(x, y) € {0,1} simile/dissimile, usato al posto della distanza euclidea in K-NN Reti Neurali di Similarità (SNN) 2/2 Proprietà delle SNN, dato il set di pesi e soglie θ 1. 2. fSNN(x, y, θ) ≥ 0 (non negatività, data da funzione attivazione sigmoidale nell’output layer) fSNN(x, y, θ) = fSNN(y, x, θ) (simmetria, data dall’architettura doppia e a pesi condivisi della slide precedente) La distanza in uscita non è una metrica, cioè non valgono 1. 2. fSNN(x, y, θ) ≤ fSNN(x, z, θ) + fSNN(z, y, θ) (disug. triangolare) fSNN(x, x, θ) = 0 (autosimilarità, può comunque essere appresa dai dati) Estrattori di features 1/2 aspetto più delicato del riconoscimento facciale servono a ridurre la dimensionalità di un problema computazionalmente oneroso -> estrarre dai dati in input, con poche perdite, informazione rilevante ai fini della classificazione metodologie di riduzione della dimensionalità standard lineari/non lineari PCA , LDA, SVD Kernel PCA, SOM, RBF Estrattori di features 2/2 Estrattori di features utilizzati: 1. Active Shape Model (ASM) sfrutta solo i parametri di “forma” del volto: lineamenti facciali come ovale, bocca, naso, occhi e sopraccigli 2. Active Appearance Model (AAM) sfrutta solo la texture dell’immagine cioè l’intera informazione presente nei pixel. Considera solo l’ellisse del volto (usa ground-truth) 3. Eigenfaces trasforma le immagini in un piccolo set di features chiamato eigenfaces, usate come componenti principali per il training-set. Riconoscimento proiettando nuove immagini nel sotto-spazio degli eigenfaces (chiamato face-space) e comparando la posizione con quella delle facce del training-set Active Shape Model (ASM) 1/3 Active Shape Model (ASM): modello di forma “attivo”, usato software scritto da Ilaria Castelli n=68 landmark di riferimento ognuno con due coordinate (xi,yi): occhi, bocca, naso, sopraccigli e ovale calcolo automatico dei landmark nel nuovo volto e successiva classificazione contorno medio calcolato sul trainingset partendo da ground-truth 1a fase: posizionamento shape media considerando il centro del boundingbox trovato con OpenCV 2a fase: allineamento iterativo shape, spostamento punti in modo da minimizzare le somme delle distanze dalla shape media convergenza quando c’e’ poca differenza fra shape di 2 iterazioni successive Active Shape Model (ASM) 2/3 problema: individuare le nuove posizioni in cui spostare i landmark edge detection: tecniche per individuare brusche variazioni dei livelli di illuminazione (si trovano i contorni degli oggetti): si basano su calcolo derivate prime e seconde dei livelli di grigio ricerca edge “principali” problema: rumore -> soluzione: filtri vari (Gabor, ..) di solito ci si sposta lungo la normale alla shape passante per il punto in esame nel lavoro di Ilaria Castelli si usano delle reti neurali addestrate per spostarsi all’interno di una sezione ellittica nell’intorno del punto considerato nella direzione più verosimile Active Shape Model (ASM) 3/3 una volta calcolati i landmark si esegue riduzione di dimensionalità con PCA 1. calcolo shape media dal training-set allineato (s=numero soggetti del training-set) 2. calcolo matrice covarianza S dei dati (2n x 2n) 3. individuare i t modi di variazione in grado di spiegare la maggior parte dell’intera varianza λT, ottenuta come somma degli autovalori di S (in ordine crescente) 4. vogliamo che venga spiegata una certa percentuale f (99%) della varianza e si sceglie t in modo che 5. ogni shape appartenente al training-set può essere approssimata combinando la shape media con una somma pesata dei primi t autovettori dove φ=(φ1|..|φt) è una matrice 2n x t costituita dai primi t autovettori di S e b è un vettore t-dimensionale contenente i coefficienti di pesatura degli autovettori 6. il vettore b che contiene i parametri del modello deformabile, usato poi per la classificazione, viene calcolato come Active Appearance Model (AAM) 1/4 Active Appearance Model (AAM): modello di apparenza “attivo”, usato software scritto da Stefano Melacci 1. ricerca landmark con ASM 2. ritaglio del volto tramite i landmark: vengono tolti sfondo, capelli e orecchie 3. normalizzazione alla shape media 4. viene usato approccio statistico simile agli Eigenfaces ridimensionamento immagini a causa di problemi di memoria Active Appearance Model (AAM) 2/4 si campiona l’intensità dei livelli di grigio dell’immagine normalizzata e ritagliata per formare un vettore delle texture gim per limitare l’effetto di una variazione globale di luce si applica una offset β e un fattore di scala α g=(gim- βI)/α α e β sono scelti in modo da far combaciare gim con quello della media dei dati normalizzati, cioè dove n è il numero degli elementi del vettore di texture gim applicando la PCA ai dati normalizzati si ottiene un modello lineare del tipo dove Pg è un insieme di modi di variazione ortogonali e bg è un gruppo di parametri dei livelli di grigio nuove texture dell’immagine possono essere ricavate variando i parametri bg ,α e β (processo iterativo) i parametri bg (modi) vengono usati direttamente per la classificazione Active Appearance Model (AAM) 3/4 iterazioni dell’algoritmo AAM: posa della texture media e modifica iterativa della texture fino a ricalcare la texture del nuovo volto aspetto più critico: posizionamento iniziale texture media sul centro degli occhi Active Appearance Model (AAM) 4/4 fino ad ora si è usata la sola Texture ma si può estendere il modello usando l’Appearance (Texture + Shape ASM) considerando oltre ai modi bg anche quelli bs dell’ASM si mette tutto in un’unico vettore costruendo la parte dovuta agli ASM nello stesso modo di AAM dove Ws è una matrice diagonale con i pesi da applicare ad ogni parametro di forma (di solito Ws=rI, con r2 rapporto fra variazione totale nella texture e la variazione totale nella shape normalizzata) si applica la PCA al vettore combinato b e si arriva al modello dove Pc sono gli autovettori e c è un vettore con i parametri di appearance (usati per la classificazione) Eigenfaces 1/4 Eigenfaces : “auto-facce”, usato mio script Matlab© immagine come vettore bidimensionale di livelli di grigio NxN o come un punto in uno spazio N2: le immagini del volto non saranno distribuite in maniera casuale in questo grande spazio -> potrebbero essere rappresentate anche in un sottospazio, chiamato “face-space”, accoppiando le correlazioni fra immagini mediante PCA ogni vettore che rappresenta un volto viene considerato come combinazione lineare dell’immagine del volto originale i vettori della PCA (che sono gli autovettori della matrice di covarianza) vengono chiamati “eigenfaces” Eigenfaces 2/4 1. 2. 3. sia Γ1, .., ΓM il training-set dei volti definiamo la faccia media ogni volto differisce da quello medio del vettore 4. la matrice di covarianza C, N2xN2 è, determina N2 autovettori ed autovalori, troppo elevato 5. se il numero di immagini è minore della dimensione dello spazio di ogni singola figura (M<<N2) allora ci saranno solamente M-1 autovettori invece dei precedenti N2 (i rimanenti saranno associati all’autovalore 0 ) -> si trovano M autovettori della matrice, MxM, L=ATA le immagini degli eigenface calcolate dagli autovettori di L formano una base mediante la quale descrivere tutte le immagini dei volti dato che non è richiesta una ricostruzione accurata del volto per la classificazione si usa un valore M’<M di autovettori (i più significativi, con autovalore associato più grande) 6. 7. Eigenfaces 3/4 8. una volta calcolati gli autovettori una nuova immagine viene trasformata nelle sue componenti eigenfaces (proiettandola nel “face-space”) mediante l’operazione descrive la proiezione delle immagini nel sottospazio definito dagli autovettori principali uk 9. i pesi ωk trovati per la nuova immagine Γ formano un vettore ΩT=[ω1, .., ωM’] che descrive il contributo di ogni “eigenface” nel rappresentare la nuova immagine, trattando gli “eigenfaces” come una base per tutte le immagini di volti 10. ΩT viene usato come features per la classificazione: per trovare il volto più simile alla nuova faccia si trova la classe k che minimizza la distanza euclidea (Ωk è il vettore che descrive la kma classe) Eigenfaces 4/4 si possono presentare 4 casi per il vettore Ω 1. vicino sia al face-space sia ad una classe di volti del training-set: 2. 3. 4. individuo riconosciuto ed identificato vicino al face-space ma non ad una classe di volti del training-set: individuo sconosciuto lontano dal face-space ma vicino ad una classe di volti del trainingset: falso positivo, scartato in quanto l’immagine non rappresenta un volto poiché molto distante dallo spazio in cui ci si aspetterebbe fosse un volto lontano sia dal face-space sia da tutte le classi di volti del trainingset: immagine senza nessun volto Mistura di esperti 1/2 1 ipotesi per esperto Mistura di esperti 2/2 2 ipotesi per esperto Risultati sperimentali – Considerazioni 1/4 Inquadrature con parti nascoste o mosse Utilizzate comunque anche se mai riconosciute Risultati sperimentali – Considerazioni 2/4 Localizzazioni ASM errate Uso dei punti di ground-truth Risultati sperimentali – Considerazioni 3/4 Problema in caso di un volto nuovo non presente nel dataset si risolve apprendendo una distanza di soglia (fra features) al di sopra della quale considerare i volti come sconosciuti -> se troppo bassa ho troppi rigetti, se troppo alta potrebbe condurre a riconoscere anche soggetti che non sono presenti nel dataset uso di un’ulteriore soglia per controllare inizialmente se nell’immagine sia presente effettivamente un volto Problemi maggiori quando il soggetto in esame risulta completamente diverso dai volti della stessa persona appresi nel training-set Risultati sperimentali – Considerazioni 4/4 Esperimenti con K-NN al variare di K (da 1 a 1770) andamenti dell’Error rate % molto simili: diminuzione fino a minimo assoluto, fluttuazioni in aumento per poi ridiminuire allo stesso valore di K=1 per K=1770. se K=1770 ritorno allo stesso Error rate % del caso K=1 alcune volte saranno riportate solamente le prove per K fino a 10 o 20 perchè in questo range si hanno i risultati migliori Variante del classificatore K-NN con distanza dal centroide invece che da tutti i soggetti (indipendente da K) risultati migliori eccetto che per gli Eigenfaces Variante normalizzando le features -> risultati identici poichè rapporto fra feature massima e minima di soli 2,5 Dove non specificato tutte le prove sono state eseguite solo sui livelli di grigio (conversione da RGB) Risultati sperimentali ASM 1/3 uso 36 parametri b estratti con ASM vedi tabella dell’ Hit @ n %: percentuale di volti identificati se si considera riconosciuto un individuo quando compare fra le n classi più probabili scelte dal classificatore n Hit @ n % n Hit @ n % 1 18,0 11 43,1 2 24,6 12 44,1 3 28,6 13 45,1 4 30,8 14 46,6 5 33,6 15 48,0 6 34,9 16 48,5 7 36,6 17 49,2 8 38,1 18 50,3 9 39,2 19 50,8 10 40,2 20 51,7 Classificatore parametrico gaussiano con ASM risultati scadenti anche aumentando n -> features b insufficienti e molto “confuse” fra soggetto e soggetto, anche con i ground-truth Risultati sperimentali ASM 2/3 uso le 68 coordinate dei ground-truth vedi tabella dell’ Error rate %: si variano gli elementi usati occhi meno rappresentativi della bocca naso è meno rappresentativo della bocca ma più degli occhi sopraccigli con varianza troppo alta servono poco ovale molto importante Features Elementi non usati n Error rate % 1 100,0 2 100,0 occhi sopraccigli 1 69,0 2 61,5 bocca sopraccigli 1 70,5 2 58,9 1 63,7 2 55,6 n Error rate % ovale occhi 1 67,6 2 58,6 ovale naso 1 66,3 2 56,6 ovale bocca 1 63,9 2 54,2 nessuno coordinate sopraccigli Features b + coordinate Elementi usati Classificatore parametrico gaussiano con ASM risultati leggermente migliori rispetto ai parametri b Risultati sperimentali ASM 3/3 parametri da stimare mixing parameters soluzione iterativa Classificatore parametrico con mistura di gaussiane multivariate e ASM Prove con c=2 e c=6 problemi di inversione delle matrici di covarianza Anche se il metodo è più generale i risultati sono comparabili con quelli precedenti Risultati sperimentali K-NN con ASM 1/3 K Error rate % K Error rate % 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 81,7 81,7 81,7 81,7 81,2 81,5 81,0 80,5 81,2 81,4 80,3 80,5 80,7 81,0 81,0 81,2 81,0 80,5 80,5 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000 1770 81,4 80,7 82,5 82,4 82,7 82,5 82,9 83,4 83,1 86,4 86,4 85,6 84,9 85,4 85,8 84,9 84,1 84,1 81,7 Classificatore K-NN e ASM risultati comparabili a quelli del classificatore gaussiano -> parametri b insufficienti versione con distanza da centroide: Error rate 76,6 % Risultati sperimentali K-NN con ASM 2/3 Error rate % K coordinate b + coordinate Elementi non usati Elementi usati occhi sopraccigli bocca sopraccigli sopraccigli ovale occhi ovale naso ovale bocca 1 64,6 69,3 60,5 72,0 67,3 65,9 Classificatore K-NN e ASM 2 64,6 69,3 60,5 72,0 67,3 65,9 variando le features 3 63,7 68,1 59,7 71,5 66,8 64,7 4 62,5 68,1 59,8 70,3 66,6 64,0 5 62,9 67,8 60,7 71,0 66,4 64,4 6 63,7 67,4 61,3 71,2 65,8 64,1 7 63,4 67,8 61,5 72,2 66,1 64,2 8 64,0 68,1 62,5 71,5 66,3 63,9 9 64,6 67,6 63,6 70,5 66,8 64,6 10 65,6 66,7 63,6 72,2 67,6 64,1 risultati leggermente migliori Risultati sperimentali K-NN con ASM 3/3 Error rate % coordinate Classificatore K-NN e ASM b + coordinate variando le features Elementi non usati occhi sopraccigli 62,0 bocca sopraccigli 65,6 Elementi usati sopraccigli 58,6 ovale occhi 69,5 ovale naso 64,9 (distanza da centroide) ovale bocca 65,2 risultati leggermente migliori Risultati sperimentali K-NN con AAM 1/5 mh=192 vc=0,97 Texture 775 modi – Appearance 26 modi K-NN K Texture Centroide Appearance Texture Appearance Error rate % 1 13,4 52,9 7,6 49,2 2 13,4 52,9 “ “ 3 15,8 52,9 “ “ 4 17,6 52,5 “ “ 5 20,7 52,4 “ “ 6 21,9 53,4 “ “ 7 24,0 55,1 “ “ 8 26,1 54,4 “ “ 9 26,4 54,4 “ “ 10 27,8 54,6 “ “ Classificatore K-NN e AAM risultati molto buoni Risultati sperimentali K-NN con AAM 2/5 mh=96 vc=0,97 Texture 733 modi – Appearance 26 modi K-NN K Texture Centroide Appearance Texture Appearance Error rate % 1 13,9 52,9 7,1 49,2 2 13,9 52,9 “ “ 3 16,1 52,9 “ “ 4 18,0 52,5 “ “ 5 20,7 52,4 “ “ 6 22,4 53,4 “ “ 7 24,7 55,1 “ “ 8 26,1 54,4 “ “ 9 26,9 54,4 “ “ 10 28,0 54,6 “ “ Classificatore K-NN e AAM vc=cost mh dimezzato Error rate % praticamente inalterato con tempi di calcolo però migliori Risultati sperimentali K-NN con AAM 3/5 mh=96 vc=0,93 Texture 443 modi – Appearance 17 modi K-NN K Texture Centroide Appearance Texture Appearance Error rate % 1 11,5 58,8 8,0 56,8 2 11,5 58,8 “ “ 3 14,2 57,6 “ “ 4 15,1 58,6 “ “ 5 17,8 58,3 “ “ 6 19,0 59,7 “ “ 7 20,3 60,2 “ “ 8 22,4 60,5 “ “ 9 24,2 60,5 “ “ 10 24,7 60,8 “ “ Classificatore K-NN e AAM vc diminuito mh=cost Error rate % migliora nel K-NN standard e peggiora di poco col centroide Risultati sperimentali K-NN con AAM 4/5 mh=48 vc=0,97 Texture 523 modi – Appearance 26 modi K-NN K Texture Centroide Appearance Texture Appearance Error rate % 1 14,6 52,9 8,0 49,3 2 14,6 52,9 “ “ 3 17,1 52,9 “ “ 4 19,0 52,4 “ “ 5 21,4 52,4 “ “ 6 22,9 53,4 “ “ 7 24,6 55,1 “ “ 8 25,8 53,9 “ “ 9 26,8 54,2 “ “ 10 27,8 54,4 “ “ Classificatore K-NN e AAM vc=cost mh dimezzato Error rate % , nonostante i parametri di texture siano diminuiti, peggiora nel K-NN standard e peggiora di poco col centroide Risultati sperimentali K-NN con AAM 5/5 Considerazioni generali a parità di vc, cambiando le dimensioni dell’immagine, i risultati usando l’appearance sono rimasti identici, dato che anche il numero di modi su cui fare la classificazione rimangono costanti nel caso dell’uso dell’appearance si è visto anche come l’accuratezza, a causa dei pochi parametri a disposizione, è sempre risultata molto bassa diminuendo la dimensione dell’immagine, adoperando le texture con il centroide, si sono avuti dei risultati all’incirca identici (7÷8 %), ma col vantaggio di una grossa riduzione nel tempo di calcolo in tutti i test eseguiti si può notare come l’errore sia molto minore, praticamente dimezzato in certi casi, usando il classificatore basato sui centroidi, che fra l’altro risulta molto più veloce di quello standard Classificatore K-NN e AAM Risultati sperimentali K-NN con Eigenfaces 1/2 usato il 100 % dei modi su tutta l’immagine K coordinate senza sopraccigli + YCbCr Eigenfaces Eigenfaces b + Eigenfaces 1 33,2 33,2 33,2 24,7 2 33,2 33,2 33,2 24,7 3 40,3 40,3 40,3 24,7 4 47,3 47,5 47,5 26,4 5 53,7 53,7 53,7 28,3 6 59,1 59,1 59,1 28,5 7 62,7 62,7 62,7 28,6 8 66,4 66,4 66,4 30,7 9 67,6 67,6 67,6 32,0 10 69,7 69,8 69,8 31,9 Classificatore K-NN e Eigenfaces Error rate % aumenta continuamente all’aumentare di K Usando tutti i canali di colore risultati leggermente migliori Eigenfaces migliore di ASM ma peggiore di AAM Risultati sperimentali K-NN con Eigenfaces 2/2 usato il 100 % dei modi -> risultati migliori ritagliando l’ovale sull’ovale ritagliato K Eigenfaces b + Eigenfaces coordinate senza sopraccigli YCbCr 1 28,6 28,6 28,6 20,2 2 28,6 28,6 28,6 20,2 3 31,7 31,7 31,7 20,2 4 34,2 34,4 34,4 21,9 5 37,1 37,1 37,1 23,8 6 39,5 39,5 39,5 24,0 7 41,2 41,2 41,2 24,1 8 43,6 43,6 43,6 26,2 9 44,7 44,7 44,7 27,5 10 45,3 45,4 45,4 27,4 Classificatore K-NN e Eigenfaces Error rate % aumenta continuamente all’aumentare di K Usando tutti i canali di colore risultati leggermente migliori Eigenfaces migliore di ASM ma peggiore di AAM Risultati sperimentali K-NN con SNN 1/2 si sono usati i parametri b calcolati con ASM uso distanza calcolata con SNN al posto di quella euclidea dentro il classificatore K-NN addestramento SNN variando numero di neuroni nel layer nascosto, numero di epoche e con o senza validation-set (per evitare overfitting) è stata usata la rete neurale che aveva dato risultati d’apprendimento migliori No Validazione K K-NN standard Classificatore K-NN e SNN Validazione Centroide K-NN standard Centroide Error rate % disastroso Error rate % 1 95,7 91,3 90,7 86,4 2 95,7 “ 90,7 “ 3 96,1 “ 91,0 “ 4 96,3 “ 91,4 “ Migliori risultati usando il centroide, comparabili a quelli del classificatore parametrico gaussiano Risultati sperimentali K-NN con SNN 2/2 variante che sfrutta sia la distanza auto-appresa con SNN sia quella euclidea solo norma solo SNN norma+SNN norma*SNN Tipo norma (K = 1) Classificatore K-NN e SNN Error rate % 1 68,5 90,0 68,5 89,0 2 65,0 90,0 65,0 89,0 ∞ 76,0 90,0 76,5 89,5 Frobenius 65,0 90,0 65,0 89,0 Error rate % rimane disastroso Risultati comunque peggiori di quando viene usata la sola norma euclidea Risultati sperimentali K-NN con Mistura di esperti 1/2 1 ipotesi per esperto classificatore con distanza dal centroide non si hanno grandi miglioramenti rispetto al solo metodo AAM Classificatore a mistura di esperti AAM e Eigenfaces Centroide Classificatore mh = 192 vc = 0,97 mh = 96 vc = 0,97 mh = 48 vc = 0,97 Error rate % AAM + Eigenfaces su YCbCr e Gray 15,6 15,3 16,3 AAM + Eigenfaces su YCbCr 11,7 11,2 12,4 AAM + Eigenfaces su YCb 7,1 6,8 7,8 Risultati sperimentali K-NN con Mistura di esperti 2/2 2 ipotesi per esperto classificatore con distanza dal centroide si hanno dei lievi miglioramenti rispetto al solo metodo AAM Classificatore a mistura di esperti AAM e Eigenfaces Centroide Classificatore mh = 192 vc = 0,97 mh = 96 vc = 0,97 mh = 48 vc = 0,97 Error rate % AAM + Eigenfaces su Gray 6,3 6,8 6,9 AAM + Eigenfaces su RGB 3,2 3,2 3,2 AAM + Eigenfaces su RG 3,4 3,4 3,2 AAM + Eigenfaces su R 3,9 3,9 4,1 AAM + Eigenfaces su Y 3,9 3,9 4,1 AAM + Eigenfaces su Cb 8,5 8,5 8,6 AAM + Eigenfaces su Cr 7,5 6,9 7,8 AAM + Eigenfaces su YCr 2,2 2,2 2,5 AAM + Eigenfaces su CbCr 8,8 8,8 9,0 Riepilogo test con ASM Classificatore Gaussiano standard Features Error rate % b 82,0 coordinate 63,7 b + coordinate 63,9 b 80,3 K = 11 coordinate 59,7 K=3 b + coordinate 63,9 K=8 b 80,3 coordinate 59,7 b + coordinate 63,9 K-NN centroide Note n=1 Riepilogo test con AAM Classificatore Features Error rate % mh = 192 vc = 0,97 mh = 96 vc = 0,97 standard mh = 96 vc = 0,93 mh = 96 vc = 0,90 mh = 48 vc = 0,97 K-NN mh = 192 vc = 0,97 mh = 96 vc = 0,97 centroide mh = 96 vc = 0,93 mh = 96 vc = 0,90 mh = 48 vc = 0,97 Note Classificatore Features AAM Texture 13,4 K=1 AAM Appearance 52,9 K=1 AAM Texture 13,9 K=1 AAM Appearance 52,9 K=1 AAM Texture 11,5 K=1 AAM Appearance 57,6 K=3 AAM Texture 10,7 K=1 AAM Appearance 65,4 K=5 AAM Texture 14,6 K=1 AAM Appearance 52,4 K=5 AAM Texture 7,6 AAM Appearance 49,2 AAM Texture 7,1 AAM Appearance 49,2 AAM Texture 8,0 AAM Appearance 56,8 AAM Texture 7,8 AAM Appearance 62,9 AAM Texture 8,0 AAM Appearance 49,3 Riepilogo test con Eigenface e SNN Classificatore Features non cropped Error rate % Note Classificatore Eigenfaces 33,2 K=1 Eigenfaces + b 33,2 K=1 Eigenfaces + coordinate 33,2 K=1 Eigenfaces + RGB 24,9 K=1 Eigenfaces + YCbCr 24,7 K=1 Eigenfaces 28,6 K=1 Eigenfaces + b 28,6 K=1 Eigenfaces + coordinate 28,6 K=1 SNN 90,7 SNN+distanza euclidea 65,0 K-NN cropped K-NN centroide Conclusioni Metodi singoli su livelli di grigio (Error rate %) ASM scadenti sia con classificatore gaussiano che con K-NN-> features insufficienti, anche con ground-truth (59 %) Eigenfaces cropped migliore ma ancora deludenti (33 %) AAM e appearance migliore di ASM ma ancora scadente (49 %) AAM e texture migliore come metodo singolo (7 %) SNN risultati pessimi (90 %) Metodi con mistura di esperti, usati spesso nei sistemi commerciali di riconoscimento (Error rate %) AAM su livelli di grigio + Eigenfaces su RGB risultati migliori in assoluto (3 %) -> contro: complessità computazionale e velocità di riconoscimento Risultati soddisfacenti e tali da poter già provare ad implementare il metodo in un sistema reale Sviluppi futuri Miglioramento dell’errore commesso dai classificatori usare altre misure di distanze: DistBoost, MPDK, RCA e Xing uso di autoassociatori per la compressione dati (senza usare PCA o LDA) Velocizzare gli algoritmi: training, riconoscimento vero e proprio, ri-training (quando deve essere riconosciuto un nuovo soggetto) uso di logiche digitali parallele in applicazioni reali Provare altre misture di esperti mettere dei “pesi” ai singoli metodi usati nella mistura usare tutti e 3 i canali di colore, oltre a quello del grigio, per tutti i metodi usati nella mistura Provare tutti i classificatori su altri dataset come FERET, etc… per vedere se le considerazioni fatte continuano a valere