Reconnaissance de visages

Documents pareils
Projet Matlab : un logiciel de cryptage

Condition inf-sup pour l Elément Fini de Taylor-Hood È ¾ -iso-è ½

= constante et cette constante est a.

Introduction à MATLAB R

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Chapitre 2 : Caractéristiques du mouvement d un solide

Transmission d informations sur le réseau électrique

Reconnaissance de visages 2.5D par fusion des indices de texture et de profondeur ICI 12/12/12

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Cours Informatique Master STEP

Utiliser Freemind à l'école

STATUTS DE L ASSOCIATION. Association régie par par la Loi du 1 er juillet 1901

Traitement bas-niveau

URECA Initiation Matlab 2 Laurent Ott. Initiation Matlab 2

MÉTHODES NUMERIQUES. Cours. Licence de Physique Année Universitaire : Licence Chimie, parcours Physique. Semestre S3

Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

Algorithmique et structures de données I

R-ICP : une nouvelle approche d appariement 3D orientée régions pour la reconnaissance faciale

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Projet de Traitement du Signal Segmentation d images SAR

TPs Architecture des ordinateurs DUT Informatique - M4104c SUJETS. R. Raffin Aix-Marseille Université romain.raffin-at-univ-amu.fr

TD : Codage des images

Programmation C. Apprendre à développer des programmes simples dans le langage C


Structure du format BMP, sa lecture, sa construction et son écriture

PHP. PHP et bases de données

TP 1. Prise en main du langage Python

Hiver 2013 IMN 259. Introduction à l analyse d images. Par Pierre-Marc Jodoin

TP Contraintes - Triggers

I- Définitions des signaux.

TP SIN Traitement d image

Tâche complexe produite par l académie de Clermont-Ferrand. Mai 2012 LE TIR A L ARC. (d après une idée du collège des Portes du Midi de Maurs)

Cours 1 : Qu est-ce que la programmation?

Les deux points les plus proches

Conception de circuits numériques et architecture des ordinateurs

TP DNS Utilisation de BIND sous LINUX

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

TP Bases de données réparties

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Les bases de données

Optimisation, traitement d image et éclipse de Soleil

Les escaliers nécessitent quelques particularités pour assurer la sécurité de tous.

//////////////////////////////////////////////////////////////////// Administration bases de données


Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Deux disques dans un carré

Recherche d'images par le contenu Application au monitoring Télévisuel à l'institut national de l'audiovisuel

L exclusion mutuelle distribuée

La dernière base de données de Teradata franchit le cap du big data grâce à sa technologie avancée

Consignes pour les travaux d actualité Premier quadrimestre

La visio-conférence holographique : Pourquoi? Comment?

ANNEXE RELATIVE AUX CONDITIONS GENERALES D UTILISATION DES FICHIERS GEOGRAPHIQUES

Analyseur d émotions à partir d expressions faciales

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

Introduction à l algorithmique et à la programmation (Info 2)

Google Adresses. Validez la fiche de votre entreprise ou organisation sur Google Maps

Table des matières L INTEGRATION DE SAS AVEC JMP. Les échanges de données entre SAS et JMP, en mode déconnecté. Dans JMP

Reconnaissance et suivi de visages et implémentation en robotique temps-réel

ASR1 TD7 : Un microprocesseur RISC 16 bits

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Cours de Mécanique du point matériel

AWS avancé. Surveiller votre utilisation d EC2

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Algorithmes récursifs

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

Rappels sur les suites - Algorithme

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Introduction à la B.I. Avec SQL Server 2008

Etudier l influence de différents paramètres sur un phénomène physique Communiquer et argumenter en utilisant un vocabulaire scientifique adapté

2015 kmeans. September 3, 2015

Python - introduction à la programmation et calcul scientifique

LICENCE SNCF OPEN DATA


Etat de l art de la Reconnaissance de Visage.

Rappel sur les bases de données

IUT BREST UN LOGICIEL SCADA : PC VUE 2010 DEP.GMP

Tutoriels Concours FPF.odt Fait par Henri Peudennier le 26/01/2014 1/12

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Compétences Business Objects

1 Introduction au codage

LOSLIER Mathieu. Filière Informatique et Réseau 1 ère année. TP DNS. Responsable : LOHIER Stephane. Chargé de TD : QUIDELLEUR Aurélie

PROJET BIGDATART DOSSIER DE PRESENTATION

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

L informatique en BCPST

Licence Sciences et Technologies Examen janvier 2010

Cours IV Mise en orbite

Cahier des charges Remontée des ventes

Commande Prédictive. J. P. Corriou. LSGC-ENSIC-CNRS, Nancy. corriou@ensic.inpl-nancy.fr

Opérations de base sur ImageJ

Laboratoire 4 Développement d un système intelligent

TP : Gestion d une image au format PGM

Déploiement de SAS Foundation

Guide du/de la candidat/e pour l élaboration du dossier ciblé

Transcription:

Reconnaissance de visages La reconnaissance de visages est de plus en plus utilisée de nos jours, notamment pour des aspects sécuritaires. Cette reconnaissance peut être effectuée par des attributs décrivant la forme, la couleur et/ou la texture. Dans ce TP, nous proposons de mettre en place une approche permettant de reconnaître les visages, ainsi que leur expression. Nous construirons notre propre base d images mais utiliserons également des bases d images de référence afin de valider la méthode proposée. La base d images "ORL Database of Faces" mise à disposition par l université de Cambridge illustre bien le challenge à relever. La figure 1 illustre une partie de cette base d images. Figure 1 Base d image "ORL Database of Faces". TP de vision 1

1 Création des bases de données image Dans ce TP, nous proposons de créer 2 bases d images de visage. Une première base d images sera utilisée pour la reconnaissance de visages, tandis que la seconde servira à effectuer de la reconnaissance d expression. Pour cela nous mettons à contribution l ensemble des étudiants présents dans le groupe de TP. Pour chaque étudiant, 14 images vont être acquises : 7 images où le visage aura une expression neutre mais une orientation différente (cf. figure 2), Figure 2 Les différentes orientations possibles du visage. 7 images où le visage sera cette fois-ci bien face à la caméra mais où il exprimera différents sentiments (cf. figure 3). Dégoût Peur Colère Tristesse Joie Surprise Neutre Figure 3 Les différentes expressions du visage à reconnaître. La première base sera donc composée de C classes, C étant le nombre d étudiants présents dans le groupe de TP, et de 7 images par classes. La seconde base sera quant à elle composée de 7 classes d expression, avec C images par classe. TP de vision 2

1) A l aide du banc d acquisition à votre disposition, acquérir pour chacun des étudiants les 14 images demandées ci-dessus. Veillez à ce que les conditions d acquisition (fond, éclairage) soient identiques pour tous. Enregistrer les images au format.png dans 2 dossiers différents en suivant les incrémentations suivantes : Base de reconnaissance de visages : de 001.png à 007.png pour le premier étudiant pris sous différentes orientations, de 008.png à 014.png pour le deuxième étudiant pris sous différentes orientations, etc Base de reconnaissance d expression : de 001.png à 0{C}.png pour la première expression acquise pour les C étudiants, de 0{C+1}.png à 0{2C}.png pour la deuxième expression acquise pour les C étudiants, etc Nous allons travailler ici dans un contexte supervisé. Cela nécessite de disposer d une sous-base d apprentissage et d une sous-base de test. Pour chacune des 2 bases considérées, nous choisissons une décomposition de type Holdout 1/2-1/2. Cela signifie que la moitié des images sera utilisée pour construire la sous-base d apprentissage, les images restantes étant utilisées afin de tester la pertinence de la caractérisation. 2 Caractérisation : extraction des attributs de texture Afin de classer nos images, il est nécessaire de les caractériser grâce à des attributs. Nous proposons dans ce TP de caractériser les visages de nos 2 bases par des attributs de texture : les motifs locaux binaires (LBP : Local Binary Pattern). 2.1 Motifs locaux binaires La fonction Ð Ô permet de calculer les motifs locaux binaires d une image monochrome avec différents paramètres : La définition d une texture doit impliquer un voisinage spatial. La taille de ce voisinage dépend du type de texture ou de la surface occupée par le motif définissant cette dernière. Dans la fonction Ð Ô, le voisinage est défini par 2 paramètres : N, le nombre de voisins à analyser et R, le rayon du cercle sur lequel ces voisins se situent. La figure 4 illustre deux voisinages, avec différentes valeurs de N et R. N=8, R=1 N=16, R=4 Figure 4 Exemples de voisinages utilisés pour le calcul des LBP. TP de vision 3

Le paramètre mapping permet quant à lui d avoir accès aux variantes des motifs locaux binaires grâce à la fonction ØÑ ÔÔ Ò : 0 : LBP classique, u2 : LBP dits "uniformes", qui sont une version réduite des LBP classiques, ri : LBP invariants en rotation, riu2 : LBPuniformes invariants en rotation. Le dernier paramètre est le mode : h ou hist : pour obtenir l histogramme des LBP, nh : pour obtenir l histogramme normalisé des LBP, l image des LBP est retournée lorsque le paramètre n est pas renseigné. 2) Écrire un script Matlab permettant d ouvrir et afficher une image, de la convertir en image en niveaux de gris et de calculer l histogramme des LBP correspondant. 3 Classification Maintenant qu il est possible de calculer un vecteur d attributs à partir d une image, nous allons mettre en place la procédure de classification. Cette procédure va nous permettre d analyser la pertinence de nos attributs en mesurant le taux d images bien classées. Le processus de classification est divisé en deux étapes successives : 1. L apprentissage : l objectif est de "construire" des classes à partir de l ensemble d images d apprentissage. Pour cela, les visages présents dans les images d apprentissage sont décrits par un ensemble d attributs. 2. La classification : durant cette seconde phase, nous utiliserons la méthode du plus proche voisin qui consiste à assigner chaque image requête à la classe de l image d apprentissage la plus similaire. Cette similarité entre images est mesurée en comparant les vecteurs d attributs. 3.1 Apprentissage L apprentissage consiste à ouvrir chacune des images de la base d apprentissage, calculer et enregistrer dans une variable le vecteur d attributs de chaque image d apprentissage ainsi que la classe correspondante. Pour cela, nous allons utiliser une boucle répétitive telle que présentée sur la page suivante. 3) Compléter le programme ci-dessus en intégrant l extraction des attributs de texture et réaliser l apprentissage du processus de classification pour la première base d images (reconnaissance de visages). 3.2 Décision Nous allons maintenant mettre en place la procédure permettant de classer une image requête de la base test, l objectif étant de reconnaître l étudiant correspondant à l image analysée. Le classifieur utilisé pour cela sera le classifieur 1-ppv (algorithme du plus proche voisin). Cet algorithme nécessite de mesurer la distance entre le vecteur d attributs de l image requête avec chacun des vecteurs d attributs des images de la base d apprentissage. La mesure utilisée sera ici l intersection d histogrammes. Plus les images sont similaires, plus l intersection est importante. L image d apprentissage pour laquelle la distance est maximale est alors l image la plus ressemblante à l image requête et sa classe indique la classe de l image requête. TP de vision 4

n b _ c l a s s e = C ; % d é f i n i l e nombre de c l a s s e s nb_image = 7 ; % d é f i n i l e nombre d images par c l a s s e chemin = C : \... \ Database \ ; nb_ima = n b _ c l a s s e * nb_image ; n b _ i m a _ t r a i n = n b _ c l a s s e * ( f l o o r ( nb_image / 2 ) + 1 ) ; % pour chaque c l a s s e, 4 images p a rmis l e s 7 s o n t u t i l i s é e s pour l a p p r e n t i s s a g e A t t r i b u t s = z e r o s ( n b _ i m a _ t r a i n, 2 5 6 ) ; %% A p p r e n t i s a g e f o r i _ t r a i n =1: n b _ i m a _ t r a i n % E n r e g i s t r e m e n t du numéro de l a c l a s s e dans un t a b l e a u n u m _ classe ( i _ t r a i n ) = f l o o r ( ( i _ t r a i n 1 ) / ( n b _ i m a _ t r a i n / n b _ c l a s s e ) ) + 1 ; end % Concaténaion d es c h a î n e s de c a r a c t è r e s % pour c o n s t i t u e r l e chemain d a c c è s au f i c h i e r image i f ( i _ t r a i n / 1 0 < 1 ) f i c h i e r _ t r a i n = [ chemin 00 i n t 2 s t r ( i _ t r a i n ). png ] ; e l s e i f ( i _ t r a i n /100 < 1 ) f i c h i e r _ t r a i n = [ chemin 0 i n t 2 s t r ( i _ t r a i n ). png ] ; e l s e f i c h i e r _ t r a i n = [ chemin i n t 2 s t r ( i _ t r a i n ). png ] ; end end % A f f i c h a g e du numéro de l a c l a s s e disp ( [ f i c h i e r _ t r a i n C l a s s e i n t 2 s t r ( n u m _ classe ( i m a _ l a b e l ) ) ] ) ; % O u v e r t u r e de l image I m a _ t r a i n = imread ( f i c h i e r _ t r a i n ) ; 4) Compléter le programme précédent afin d ouvrir une image de la base test et classer cette image par un algorithme 1-ppv. Le taux de classification correspond au rapport entre la somme des images requêtes bien classées et le nombre total d images requêtes. 5) En vous inspirant du programme permettant l apprentissage, compléter le programme afin de calculer le taux de classification. Un moyen de valider votre programme est de classer les images de la base d apprentissage et de vérifier que vous obtenez bien un taux de 100%. 4 Reconnaissance d expression Nous allons maintenant travailler sur la seconde base d images afin de reconnaître les expressions. 6) Dans un nouveau script, modifier le programme précédent en utilisant la seconde base d images afin de classer les images en fonction du sentiment exprimé. Afin d améliorer l identification des expressions, nous proposons de cibler l analyse en extrayant des TP de vision 5

images originales une région d intérêt centrée sur le visage comme le montre la figure 5. Figure 5 Extraction d une région d intérêt centrée sur le visage. Nous allons pour cela repérer les yeux dans l image et nous servir de leur position afin de définir la région dšintérêt. La fonction ÓÓÖ Ô Ü Ð mise à votre disposition renvoie les coordonnées du pixel pointé par la souris dans une image passée en paramètre. 7) Extraire pour chacune des images de la base de reconnaissance d expression une région d intérêt définie comme le montre la figure 6. Les images réduites porteront le même nom que leur images originales correspondantes mais seront placées dans un dossier différent. 2d d 2d Figure 6 Définition de la région d intérêt centrée sur le visage. 8) Tester votre approche de reconnaissance d expression avec cette nouvelle base ciblée. Afin d améliorer encore la reconnaissance des expressions, nous proposons de diviser l analyse de la région d intérêt en trois parties : les yeux, le nez et la bouche (cf. figure 7). TP de vision 6

Figure 7 Division de la région d intérêt. 9) Pour chacune des 3 parties du visage, extraire un histogramme des LBP. Concaténer au sein d un même vecteur les histogrammes issus des 3 parties et tester votre approche. 5 Utilisation de la couleur Nous proposons de voir si la couleur permet d améliorer la classification. 10) Dans un nouveau script, modifier les programmes précédents afin d extraire les composantes R, G, B des images couleur et de calculer l histogramme des LBP de chacune des 3 images-composante. Concaténer au sein d un même vecteur les histogrammes issus des 3 images-composante R, G et B et tester votre approche. Matlab dispose de quelques fonctions de conversion d espace couleur : Ö ¾ Ú : RGB HSV, Ö ¾ÒØ : RGB YIQ, Ö ¾Ý Ö : RGB YCbCr, Ö ¾ Ö Ý : RGB intensité, ÔÔÐÝ ÓÖÑ : RGB XYZ, Yxy, Luv, Lu v, Lab, Lch, srgb. 11) Transformer l image couleur dans différents espaces couleur et observer les histogrammes des LBP dans chacun de ces espaces. Analyser les résultats de classification obtenus dans ces différents espaces. 12) Écrire deux fonctions permettant les transformations suivantes et tester votre approche avec ces nouveaux espaces : Ö ¾ ½ ¾ : RGB I1I2I3, Ö ¾ÖÒ Ò Ò : RGB RGB normalisé. TP de vision 7

6 Autres essais 13) Poursuivre les essais expérimentaux en utilisant d autres attributs de texture, d autres classifieurs, en essayant de classer d autres objets que ceux utilisés pour construire les bases,... Relever à chaque fois les taux de classification, les temps de traitement, la matrice de confusion,... TP de vision 8