Studenti : Ilaria Fedeli Francesco Rulli Federico Tozzi

22
Studenti : Ilaria Fedeli Francesco Rulli Federico Tozzi Tesina del corso di Visione e Percezione Progetto Parte I: Riconoscimento di Facce Obiettivo: data un’immagine con diverse persone riconoscere i volti delle pe Prof.ssa Fiora Pirri Tutor Stefano Marra, Matia Pizzoli Anno Accademico 2007/2008

description

Tesina del corso di Visione e Percezione Progetto Parte I: Riconoscimento di Facce. Prof.ssa Fiora Pirri Tutor Stefano Marra, Matia Pizzoli Anno Accademico 2007/2008. Obiettivo: data un’immagine con diverse persone presenti, riconoscere i volti delle persone. - PowerPoint PPT Presentation

Transcript of Studenti : Ilaria Fedeli Francesco Rulli Federico Tozzi

Page 1: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Studenti: Ilaria Fedeli Francesco Rulli Federico Tozzi

Tesina del corso di Visione e Percezione

Progetto Parte I: Riconoscimento di Facce

Obiettivo: data un’immagine con diverse persone presenti, riconoscere i volti delle persone.

Prof.ssa Fiora PirriTutor Stefano Marra, Matia Pizzoli

Anno Accademico 2007/2008

Page 2: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Il Metodo di Viola-Jones

Features di Haar Immagine Integrale

Classificatore AdaBoost Cascata di Classificatori

Page 3: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Architettura dell’Applicazione (1)

SKIN DETECTION

CLEANING FILTER

FACES FIRSTEXTRACTION

FIRST DETECTION

ADABOOSTFACES SECOND EXTRACTION

SECOND DETECTION

IMAGE

Page 4: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Architettura dell’Applicazione (2)

1. L’immagine viene introdotta in un modulo di skin-detection. Il risultato è l’immagine segmentata in due cluster, in cui i pixel considerati come pelle sono lasciati al loro valore originale mentre i pixel considerati come altro da pelle sono posti a zero.

2. L’immagine clusterizzata entra nel modulo First Detection. Dapprima viene eseguito il cleaning filter sull’immagine ed in seguito viene effettuata una suddivisione dell’immagine in diverse regioni in cui vi sono le possibili facce.

3. Le regioni in uscita dal modulo First Detection vengono immesse nel modulo Second Detection. A questo punto il classificatore AdaBoost viene applicato ad esse per individuare le facce. Infine avviene l’ultima e definitiva estrazione di facce con l’eliminazione dei rilevamenti multipli.

Page 5: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Scelte Implementative (1)La prima scelta implementativa è stata quella di introdurre il modulo First Detection all’uscita del modulo Skin-Detection. Questo perché la Skin-Detection lascia inalterati eventuali effetti di occlusione sull’immagine. L’elaborazione dell’immagine è stata effettuata con l’ausilio del modulo cleaning filter costituito dalla seguente cascata di filtri:

• rgb2gray• imfill• strel• medfilt2• imdilate• imopen• im2bw• bwlabel

Page 6: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Scelte Implementative (2)

output skin-detection output imfill

output medfilt2 output imdilate

Page 7: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Scelte Implementative (3)

output imopen output im2bw

output bwlabel output first detection

Page 8: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Scelte Implementative (4)Se avessimo applicato l’estrazione delle regioni, su cui poi effettuare la Second Detection, direttamente sull’immagine della Skin-Detection avremmo avuto questo risultato, a cui non si sarebbe potuto applicare AdaBoost:

Page 9: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Scelte Implementative (5)Altre scelte implementative sono state:

1. L’estrazione delle features è stata suddivisa in due modalità: quella riguardante la fase di training e quella relativa alla vera e propria detection. Infatti nella fase di training abbiamo avuto bisogno di calcolare tutti e quattro i possibili tipi di features mentre nella fase di detection è sufficiente estrarre solo le features che compongono il classificatore forte.

2. Il nostro classificatore forte è stato rappresentato con una struttura denominata adaboost_train. Essa contiene tre campi: weak_learners; acc; alphas.

3. Abbiamo implementato il generico weak learner come un percettrone e abbiamo calcolato la soglia come risultato dell’algoritmo di apprendimento del percettrone di Rosenblatt.

4. All’interno di una regione, per individuare le possibili facce presenti, effettuiamo uno scanning della regione stessa mediante una finestrella di scala e posizione differenti fino a coprire l’intera regione.

Page 10: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Implementazione del sistema

Software matlab

Albero delle chiamate

A - GUI DI AVVIO

B – SKIN DETECTION

C – FIRST DETECTION

D – SECOND DETECTION

Face_Detection.m

Detections.m

faces_firstExtraction.m

faces_secondExtraction.m

find_faces.mdelete_multiple_detections.m

for i=1:regioni trovate

skin_detection.m

Page 11: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Integrazione della Detenzione Multipla

• Inizialmente dato che attraverso la Skin-Detection riuscivamo ad isolare le persone abbiamo scelto una tecnica di integrazione dei rilevamenti multipli elementare: veniva selezionato il riquadro più grande. Tale metodo risulta essere affetto da due criticità: non riesce a considerare più facce all’interno di una regione e non elimina i falsi positivi.

• Per ovviare a ciò abbiamo scelto la seguente tecnica di integrazione dei rilevamenti multipli: tutti i riquadri all’interno di una regione sono stati clusterizzati. La clusterizzazione è stata effettuata mediante una misura di distanza. Due riquadri sono accorpati nello stesso cluster se la distanza tra i due punti, appartenenti ai due riquadri, in alto a sinistra è minore di una certa soglia. In seguito per ciascun cluster viene selezionato il riquadro più grande. Inoltre se un cluster è formato da un solo elemento, ovvero riquadro, questo viene considerato come un falso positivo e quindi scartato.

Page 12: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

I passaggi del nostro sistema

Page 13: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati (1)Durante lo sviluppo del progetto sono stati addestrati diversi classificatori forti, ognuno caratterizzato da un certo numero di features, weak learner e immagini test. Per valutare le perfomance dei nostri classificatori abbiamo adottato, come misura d’errore, l’accuratezza di seguito così definita:

dove N è il numero di esempi positivi e negativi, xi è l’i-esimo esempio, yi è l’etichetta dell’i-esimo esempio, H è il risultato del classificatore forte.

N

iii yxHN

Naccuracy

1

1

Page 14: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati (2)Di seguito le curve test dell’accuracy e dei quattro classificatori addestrati:

strong classifier con 10 iterazioni, weak learners, 9000 features e 200 immagini

strong classifier con 40 iterazioni, weak learners, 9000 features e 600 immagini

strong classifier con 60 iterazioni, weak learners, 9000 features e 2000 immagini

strong classifier con 80 iterazioni, weak learners, 9000 features e 3000 immagini

Page 15: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati (3)Di seguito il grafico dei parametri alpha in funzione delle features selezionate ad ogni passo, e il grafico dell’errore di classificazione di ciascuna features:

Page 16: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati Positivi (1)

Page 17: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati Positivi (2)

Page 18: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati positivi (3)

Page 19: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati positivi (4)

Page 20: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati negativi (1)

Page 21: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Risultati negativi (2)

Page 22: Studenti : Ilaria Fedeli                   Francesco Rulli                  Federico Tozzi

Riferimenti

[1] Paul Viola e Michael J. Jones, Robust Real-Time Face Detection. [2] per adaboost sono state riprese e modificate le funzioni sul sito http://www.ics.uci.edu/~smyth/courses/cs175/projectcode/[3] per la skin detection è stata ripresa l’implementazione sul sito http://www.dis.uniroma1.it/~visiope/Tesine2005.htm Maurizio Conventi, Mauro Manzo, Simone Antonio Gaetani.[4] per la costruzione del cleaning filter ci siamo ispirati al sito http://webeng.cs.ait.ac.th/cvwiki/matlab:tutorial:detectface e a Roberto Aloi, Face Detection Techniques based on k-means clustering and image filtering.

[5] Julien Meynet, Fast Face Detection Using AdaBoost.