1 / 22

Studenti : Ilaria Fedeli Francesco Rulli Federico Tozzi

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.

demi
Download Presentation

Studenti : Ilaria Fedeli Francesco Rulli Federico Tozzi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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. Studenti: Ilaria Fedeli Francesco Rulli Federico Tozzi

  2. Il Metodo di Viola-Jones Features di Haar Immagine Integrale Classificatore AdaBoost Cascata di Classificatori

  3. Architettura dell’Applicazione (1)

  4. Architettura dell’Applicazione (2) • 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. • 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. • 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.

  5. 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

  6. Scelte Implementative (2) output skin-detection output imfill output medfilt2 output imdilate

  7. Scelte Implementative (3) output imopen output im2bw output bwlabel output first detection

  8. 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:

  9. Scelte Implementative (5) • Altre scelte implementative sono state: • 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. • Il nostro classificatore forte è stato rappresentato con una struttura denominata adaboost_train. Essa contiene tre campi: weak_learners; acc; alphas. • Abbiamo implementato il generico weak learner come un percettrone e abbiamo calcolato la soglia  come risultato dell’algoritmo di apprendimento del percettrone di Rosenblatt. • 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.

  10. Software matlab Albero delle chiamate Implementazione del sistema Face_Detection.m A - GUI DI AVVIO Detections.m skin_detection.m B – SKIN DETECTION faces_firstExtraction.m faces_secondExtraction.m C – FIRST DETECTION for i=1:regioni trovate D – SECOND DETECTION find_faces.m delete_multiple_detections.m

  11. 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.

  12. I passaggi del nostro sistema

  13. 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.

  14. 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

  15. 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:

  16. Risultati Positivi (1)

  17. Risultati Positivi (2)

  18. Risultati positivi (3)

  19. Risultati positivi (4)

  20. Risultati negativi (1)

  21. Risultati negativi (2)

  22. 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.

More Related