Reconnaissance faciale

4 948 vues

Publié le

0 commentaire
7 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
4 948
Sur SlideShare
0
Issues des intégrations
0
Intégrations
27
Actions
Partages
0
Téléchargements
337
Commentaires
0
J’aime
7
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Reconnaissance faciale

  1. 1. PROJET DE FIN D’ETUDES POUR OBTENIR LE DIPLOME NATIONAL D’INGENIEUR EN INFORMATIQUE DETECTION ET RECONAISSANCE DE VISAGE Réalisé par : Encadré par : Mohamed Aymen FODDA Mme. OLFA TRIKI Mr. Izhar MAHJOUB 19 Octobre 2010
  2. 2. Dédicaces Je dédie ce projet de fin d’études A mon père Chedli et ma mère Najoua en témoignage de leur affectation, leurs sacrifices et de leurs précieux conseils qui m’ont conduit à la réussite dans mes études ; A mon frère Badreddine et mes sœurs Narjes et Hela en leurs souhaitant la réussite dans leurs études et dans leurs vies, A ma femme Wafa qui n’a jamais épargné un effort pour m’aider et m’encourager, A mon oncle Salah qui a été toujours près de moi, pour m’écouter et me soutenir, Et à tous ceux que j’aime et qui m’aiment.
  3. 3. Remerciements C’est pour moi un plaisir autant qu’un devoir de remercier toutes les personnes qui ont pu contribuer de près ou de loin à l’’accomplissement de ce projet. Ainsi, j’exprime ma gratitude et je tiens à remercier Mr. Kamel Hamrouni et Mme Olfa Triki, qui m’ont encadré, et qui n’ont épargné aucun effort pour m’orienter afin que je puisse mener à bien ce projet. Mes vifs remerciements vont à Mr. Tahar Ben Lakhdhar, Président fondateur d’Esprit et à Mr. Izhar Mahjoub, Directeur général de la société Narsil Technology. Je saisis aussi l’occasion pour remercier tout le corps professoral et administratif de l’Ecole Supérieure Privée d’Ingénieurs de Tunis « Esprit ». Enfin, je remercie affectueusement tous ceux qui m’ont soutenu dans mes études.
  4. 4. Résumé L’analyse du contenu des images et la reconnaissance de formes sont des domaines d’application en pleine expansion de nos jours, notamment grâce à l’efficacité accrue offerte par la puissance des machines. La reconnaissance du visage est l’une des techniques les plus étudiées. En effet, elle correspond à ce que les humains utilisent par l'interaction visuelle. Le projet dans lequel s’inscrit ce travail consiste à la réalisation d’un module de reconnaissance faciale. Il devra être intégré à un système de gestion de licences destiné aux fédérations de football. Mot clés : biométrie, détection de visage, descripteur de Haar, reconnaissance de visage, AdaBoost, viola-jones. ABSTRACT Content analyses of images and forms recognition are application domains in full expansion nowadays, notably thanks to the increased efficiency offered by the power of machines. Face recognition is one of the most studied techniques, since it corresponds to what Humans use by visual interaction. This work is part of a project which aim is realize a facial recognition module. It is aimed to be integrated within a license management system for football federations. Keywords: biometrics, face detection, Haar descriptor, face recognition, AdaBoost, viola-jones.
  5. 5. Sommaire Chapitre 1 - Contexte de projet.................................................................................................. 3 1. Introduction ........................................................................................................................... 4 2. Présentation de « Narsil Technology »................................................................................. 4 2.1. Services de « Narsil Technology »................................................................................. 4 2.2. Département de Recherche et Développement............................................................... 5 3. Description détaillée du projet............................................................................................... 6 3.1. Introduction .................................................................................................................... 6 3.2. Limites............................................................................................................................ 7 3.3. Travail demandé et objectifs .......................................................................................... 8 4. Conclusion............................................................................................................................. 9 Chapitre 2 - Etat de l’art .......................................................................................................... 10 1. Introduction ......................................................................................................................... 11 2. Détection de visage.............................................................................................................. 11 2.1 Approche basée sur la reconnaissance........................................................................... 12 2.2 Approche basée sur les caractéristiques invariantes...................................................... 13 2.3 Approche basée sur l’appariement de gabarits (Template matching)........................... 14 2.4 Approche basée sur l’apparence.................................................................................... 14 3. Reconnaissance de visages.................................................................................................. 18 3.1. Méthodes globales........................................................................................................ 18 3.2. Méthodes locales .......................................................................................................... 19 3.3. Méthodes hybrides........................................................................................................ 20 4. Conclusion........................................................................................................................... 21 Chapitre 3 - Analyse des besoins............................................................................................. 22 1. Introduction ......................................................................................................................... 23 2. Besoins fonctionnels............................................................................................................ 23 3. Besoins non fonctionnels..................................................................................................... 24 4. Diagramme des cas d’utilisation ......................................................................................... 24 4.1 Diagramme de cas d’utilisation globale ........................................................................ 25 4.2 Diagramme des cas d’utilisation détaillée..................................................................... 25 5. Diagramme de séquences système ...................................................................................... 26 6. Conclusion........................................................................................................................... 27 Chapitre 4 - Conception........................................................................................................... 28 1. Introduction ......................................................................................................................... 29
  6. 6. 2. Schéma fonctionnel ............................................................................................................. 30 3. Module de prétraitement...................................................................................................... 31 3.1 Etirement d’histogramme (Normalisation des niveaux de gris).................................... 31 3.2 Filtre Médian ................................................................................................................. 31 4. Détection de visage.............................................................................................................. 32 4.1 Fonction de classification.............................................................................................. 32 4.2 Image intégrale.............................................................................................................. 33 4.3 Bloc de décision ............................................................................................................ 33 5. Reconnaissance de visage.................................................................................................... 34 5.1 Détection des composantes faciales .............................................................................. 34 5.2 Extraction des paramètres.............................................................................................. 35 5.3 Signature........................................................................................................................ 38 5.4 Identification.................................................................................................................. 39 6. Diagramme de séquence...................................................................................................... 40 7. Diagramme des classes....................................................................................................... 41 Chapitre 5 - Réalisation........................................................................................................... 43 1. Introduction ......................................................................................................................... 44 2. Présentation de la bibliothèque OpenCV............................................................................. 44 2.1 Classifieur OpenCV....................................................................................................... 44 2.2 Implémentation.............................................................................................................. 44 2.3. Expérience.................................................................................................................... 46 3. Reconnaissance de visage.................................................................................................... 49 3.1. Implémentation............................................................................................................. 49 3.2 Expérience..................................................................................................................... 51 4. Interface utilisateurs ............................................................................................................ 53 4 .1 Introduction .................................................................................................................. 53 4 .2 Fenêtre principale......................................................................................................... 53 4 .3 Apprentissage des photos ............................................................................................. 54 4 .4 Fenêtre résultat ............................................................................................................. 54 5. Résultats .............................................................................................................................. 54 6. Diagramme .......................................................................................................................... 55 7. Conclusion........................................................................................................................... 56 CONCLUSION GENERALE ................................................................................................. 57 Références bibliographiques ................................................................................................... 59
  7. 7. 1 INTRODUCTION GENERALE Savoir déterminer de manière à la fois efficace et exacte l’identité d’un individu est devenu un problème critique car de nos jours l’accès sécurisé et la surveillance constituent un sujet de très grande importance. En effet bien que nous ne nous en rendions pas toujours compte, notre identité est vérifiée quotidiennement par de multiples organisations : lorsque nous accédons à notre lieu de travail, lorsque nous utilisons notre carte bancaire, lorsque nous nous connectons à un réseau informatique, etc. Il existe traditionnellement deux manières d’identifier un individu. La première méthode est fondée sur une clef connue uniquement par l’utilisateur telle qu’un mot de passe utilisé au démarrage d’une application ou un code qui permet d’activer un téléphone portable. La seconde méthode est fondée sur la possession d’un objet tel qu’une pièce d’identité, une clef, ou un badge. Ces deux méthodes peuvent être utilisées de manière complémentaire afin d’obtenir une sécurité accrue. Cependant, elles présentent un double inconvénient ; en effet, l’utilisation d’un mot de passe nécessite sa mémorisation et le fait d’en avoir plusieurs rend la tâche plus difficile, le noter engendre le risque de perte ou de vol. De même, l’utilisation de cartes magnétiques, de clefs ou de badges n’échappe pas au risque de vol par des imposteurs qui sont capables de falsifier leur identité avec une facilité remarquable. Toutes ces difficultés ont donné naissance à l’idée d’utiliser des caractéristiques biométriques comme moyen d’identification. En effet, chaque individu possède des caractéristiques qui lui sont propres : sa voix, ses empreintes digitales, les traits de son visage, la forme de sa main, sa signature et jusqu'à son ADN. Ces données dites « biométriques » peuvent ainsi être utilisées pour l’identifier. Si autrefois ces méthodes étaient surtout utilisées par la police, aujourd’hui un individu a besoin d’être identifié dans nombre de contextes : pour pénétrer dans son immeuble ou ouvrir la porte de son appartement, retirer de l’argent à un distributeur, pénétrer dans des bâtiments et y circuler librement, accéder à son poste de travail, à sa messagerie, à Internet et plus généralement, partout où la sécurité est requise. Différentes techniques d’identification fondées sur les caractéristiques physiques de l’utilisateur on été développées par la recherche scientifique. Ces techniques, généralement appelées méthodes biométriques, ont donné naissance à plusieurs produits commerciaux d’identification que l’on peut trouver actuellement sur le marché. Face à la contrainte de l'authentification par mots de passe et la recherche de l’identité réelle, la biométrie [3] apporte la simplicité et le confort aux utilisateurs. L’avantage principal de ce
  8. 8. 2 que l’on appelle mot de passe biométrique est lié au fait qu’il ne pourrait pas être volé, oublié ou transmis à une autre personne. En effet, chaque membre de la population possède des caractéristiques biométriques qui lui sont propres, et qui sont relativement stables. Par conséquent, il est fort possible que dans un futur relativement proche, le mot de passe biométrique remplace le mot de passe conventionnel dans les applications nécessitant un niveau élevé de sécurité. Le visage est certainement la caractéristique biométrique que les humains utilisent le plus naturellement pour s’identifier entre eux. La reconnaissance de visages est par conséquent devenue l’une des branches de la vision par ordinateur qui remporte un grand succès et qui est en perpétuel développement. Le but d’un système de reconnaissance de visages est de simuler le système de reconnaissance humain par la machine pour automatiser certaines applications telles que : la télésurveillance, le contrôle d’accès à des sites, l’accès à des bâtiments sécurisés, etc. Le projet présenté dans ce rapport consiste à créer une application de détection et de reconnaissance de visage en utilisant la biométrie dans le cadre de l’amélioration du logiciel Licence+ destiné aux fédérations de football. Il s’agit, en réalité, de reconnaître les visages des joueurs afin de contrôler leurs licences. Le présent rapport est constitué de cinq chapitres : Le premier, intitulé « Contexte général du projet », a pour objectif de mettre le projet dans son contexte en présentant l’entreprise d’accueil ainsi que le besoin qui a donné naissance à ce projet. Le deuxième chapitre est l’ « Etat de l’art ». Il vise la présentation des méthodes existantes pour résoudre les différentes problématiques du projet. C’est au niveau de ce chapitre que nous effectuons l’ensemble des prises de décision concernant les méthodes qui vont être effectivement utilisées pour mettre en œuvre notre application. Le troisième chapitre, intitulé « Analyse des besoins », vise à analyser la faisabilité organisationnelle et technique du projet. Le quatrième chapitre, dénommé « conception » présentera la conception globale et détaillée qui sera traitée. Le dernier chapitre présentera les réalisations effectuées tout au long du projet ainsi que l’ensemble des tests d’exécution. Enfin une conclusion générale clôturera le rapport.
  9. 9. 3 Chapitre 1 - Contexte de projet Contexte du projet 1Chapitre
  10. 10. 4 1. Introduction Notre projet de fin d’études, intitulé « Reconnaissance faciale » est proposé par « Narsil Technology », une entreprise Tunisienne spécialiste des solutions d’identification sécurisée et de la personnalisation des cartes plastiques. Deux parties principales constituent ce chapitre : dans la première, nous présenterons l’entreprise d’accueil « Narsil Technology », son organisation, ses services ainsi que le département de recherche et développement dans lequel ce projet a été élaboré. La deuxième sera consacrée à la description du projet. 2. Présentation de « Narsil Technology » Narsil Technology a été créée en février 1999, par une équipe d’ingénieurs de l’information et des télécommunications. Narsil Technology, représentant de La Multinationale Datacard Group en Tunisie, est un fournisseur de solutions à base de cartes à puce, de logiciels et applications incluant les cartes intelligentes, les cartes multi applicatives ainsi que du service allant du conseil à la personnalisation. Son métier est le développement de solutions basées sur la technologie des cartes à puces et la personnalisation des cartes plastiques. Elle exploite ce support en y ajoutant un savoir-faire en matière de développement de bases de données et de systèmes en temps réel pour servir les besoins grandissants des entreprises et des organisations. 2.1. Services de « Narsil Technology » Les services offerts par « Narsil Technology » sont :  La conception et la réalisation de solutions exploitant la carte à puce.  La conception et le déploiement de systèmes de fidélisation de la clientèle à travers des programmes marketing avancés.  La conception et le développement et l’intégration de systèmes d’information utilisant oracle, Microsoft SQL Server/MySQL  La migration de systèmes d’information existants.  La conception et la mise en place de politiques de sécurité réseau à l’aide de systèmes d’authentification par carte.
  11. 11. 5  Gestion administrative  Gestion des ressources humaines  Gestion de l’approvisionnement Directeur Général Assistante de Direction Responsable Qualité Contrôleurs Qualité Responsable Financier Direction Ingénierie Département Technique & Production Département Recherche et Développement Techniciens informaticiens Responsable Commercial Ingénieurs informaticiens Figure 1.1 : Organigramme de la société Narsil Technology 2.2. Département de Recherche et Développement Le Département Recherche et Développement de Narsil Technology est lié directement à la direction ingénierie (Figure 1.1). Il est constitué de 6 ingénieurs informaticiens qui développent des solutions innovantes pour ses propres besoins ainsi que ceux de ses clients partenaires. Les travaux de recherche et développement concernent principalement les thématiques liées à l’exploitation des cartes à puce, aux systèmes de fidélisation de la clientèle, à la conception et au développement de systèmes d’information et enfin à la biométrie. On peut ainsi citer parmi les projets dans lesquels ce département a été fortement impliqué les projets suivants :  Fidel + : est un système de paiement électronique (PME) dont le support est la carte à puce. Cette carte est pré-chargée d’avance d’un montant de crédit
  12. 12. 6 alloué et permet à son détenteur de régler ses achats dans les magasins du groupe émetteur.  Licence + : est un système informatique de gestion et d’exploitation des licences, conçu spécialement pour répondre aux besoins spécifiques des organismes sportifs. 3. Description détaillée du projet 3.1. Introduction En 2009, « Narsil Technology » devient le partenaire privilégié du monde du football en Tunisie et en Afrique dans le cadre du lancement du projet « WIN IN AFRICA WITH AFRICA » par la FIFA. Elle a pris en charge le déploiement du système Licence+ pour toutes les fédérations africaines. Licence+ est une plateforme de communication pour l’administration du football. Elle inclut la gestion administrative (licences, carrière, historique…), la gestion des compétitions, des feuilles de match, des événements, ainsi que la gestion des relations internes sous un même et unique portail. Le système est développé pour répondre aux besoins spécifiques et particuliers du monde sportif. Notons en particulier que la solution doit être capable de suivre les évolutions réglementaires et de s’adapter à de nouvelles fonctionnalités. Licence+ reçoit et centralise les informations provenant de différentes sources (ligues, clubs, Fédérations internationales, DTN…). Toutes ces informations sont traitées, transformées, stockées puis redistribuées en fonction des besoins des utilisateurs et sur différents canaux. Cela permet d’établir des statistiques fiables et pertinentes sur les matchs, les joueurs, les régions… Partager la même vue globale avec des données enfin unifiées, fiables et cohérentes simplifie évidemment la communication entre les différents acteurs du football. Narsil Technology se propose, en plus du déploiement de Licence +, de rajouter quelques modules et améliorations à la version existante (voir figure 1.2).
  13. 13. 7 Notre projet de fin d’études s’inscrit dans ce cadre. En effet, Il prend en charge l’étude et la réalisation d’un module de reconnaissance de visage, afin de renforcer le contrôle des licences à l’aide des photos d’identité des joueurs. 3.2. Limites Par analogie à la carte d’identité nationale pour un individu, la licence d’un joueur est scrupuleusement personnelle et les données qu’elle renferme sont aussi importantes pour le club auquel appartient ce dernier, que pour les organismes gérant les différentes compétitions auxquelles le club est autorisé à participer. Le renforcement de la sécurité de la licence est par conséquent une obligation primordiale. Ainsi, le passage avec Licence+, à des licences numériques, devra-t-il mettre en place des moyens de sécurité informatique afin de garantir la bonne utilisation de cette plateforme. La sécurité informatique, d'une manière générale, consiste à garantir que les ressources matérielles ou logicielles d'une organisation soient uniquement utilisées dans le cadre prévu. Elle a généralement cinq principaux objectifs :  L'intégrité : vérifier si les données n'ont pas été falsifiées  La confidentialité : s’assurer que seules les personnes autorisées auront accès aux ressources échangées.  La disponibilité : garantir l'accès à un service ou à des ressources.  L'authentification : assurer l'identité d'une entité (personne, ordinateur, etc…). La principale limite de Licences+ réside dans l’absence d’une solution de sécurité des données fournies par les clubs. En particulier, on peut facilement contourner les données personnelles d’un joueur en changeant sa photo d’identité. Il est alors possible qu’un joueur puisse avoir plusieurs licences avec différentes photos, ce qui génère des données falsifiées dans la base de données.
  14. 14. 8 Figure 1.2 : Synoptique du système de gestion de licence 3.3. Travail demandé et objectifs Nous proposons donc de développer un mécanisme de reconnaissance du visage pour contrôler l’unicité des licences des joueurs. Le système doit par conséquent effectuer les tâches suivantes :  La détection d’un nouveau fichier de type « JPG » généré pendant la phase du découpage du système Licence+ qui consiste à scanner la licence du joueur afin de la découper en 5 photos, dans notre cas nous intéressons à la photo qui contient le visage du joueur.  La localisation automatique du visage dans l’image.  La capture de données caractéristiques du visage.  La recherche de visages similaires existants dans la base de données. Système de reconnaissance faciale
  15. 15. 9 4. Conclusion Ce chapitre a abordé le contexte général de notre projet de fin d’études. La présentation de l’entreprise d’accueil « Narsil Technology » a été suivie d’une description de la problématique et des objectifs du projet proposé ainsi que des fonctionnalités principales autour desquelles il s’articule… Avant d’envisager une solution algorithmique à implémenter, il convient maintenant d’étudier l’état de l’art en matière de détection et de reconnaissance faciale.
  16. 16. 10 Chapitre 2 - Etat de l’art 2Chapitre Etat de l’art
  17. 17. 11 1. Introduction Ce projet se concentre principalement sur deux tâches : la détection et la reconnaissance de visages. Il existe dans la littérature une multitude de méthodes de détection de visage et d’identification. Nous passerons en revue, dans ce chapitre, les techniques les plus utilisées. Le principal problème dans la détection et la reconnaissance d’un objet est relatif aux différentes représentations possibles de celui-ci. Ainsi la détection et la reconnaissance du visage dépendent de plusieurs facteurs, dont les plus étudiés sont :  La position : sur une image, un visage peut être vu de face, de profil, ou d’un angle quelconque.  L’expression faciale : l’apparence d’un visage dépend aussi de son expression.  La présence d’attributs : une personne peut avoir un chapeau, des lunettes, une moustache, une barbe, une cicatrice….  Les conditions extérieures : la couleur, l’intensité de l’éclairage, la taille, la texture sont différentes sur chaque image.  L’occultation : une partie du visage peut être cachée par un autre objet ou par une autre personne.  La couleur : Les êtres humains ont des couleurs de peau différentes, d’où la différence de la valeur du pixel représentant la peau de chaque personne. 2. Détection de visage La détection du visage sert à reconnaître un objet dans une image comme étant un visage et de le distinguer du reste de l'image. La détection du visage humain est une tâche compliquée vus les facteurs exposés ci-dessus. Les méthodes de détection de visages ont été classifiées par Yang [Yang 2002] en quatre approches, voir (tableau 1) :  Approche basée sur la reconnaissance.  Approche basée sur les caractéristiques invariantes.  Approche basée sur l’appariement de gabarits (Template matching)  Approche basée sur l’apparence
  18. 18. 12 Approach Representative Works Knowledge-based Multiresolution rule-based method Feature invariant - Faciale Feature Grouping of edges - Texture Space Gray-Level Dependence matrix (SGLD) of face pattern - Skin Color Mixture of Gaussiean - Multiple Feature Integration of skin color, size and shape Template matching - Predefined face templates Shape template - Deformable Template Actives Shape Model (ASM) Appearance-based method - Eigenface Eigenvector decomposition and clustering - Distrubtion-based Gaussien distrubution and multilayer perceptron - Neural Network Ensemble of neural network and arbitration schemes - Support Vector Machine (SVM) SVM with polynomial kernel - Naives Bayes Classifier Joint statistics of local appearance and position - Hidden Markov Model (HMM) Higher order statistics with HMM - Information-Theoretical Approch Kullback relative information Tableau 2.1 : Classification des méthodes de détection de visage dans une image [Yang, 2002] 2.1 Approche basée sur la reconnaissance C’est une méthode fondée sur des règles qui représentent les composants principaux et représentatifs des visages humains. Les règles sont généralement constituées à partir de la relation entre les caractéristiques du visage. Par exemple, les visages sur les images ont souvent deux yeux qui sont symétriques, un nez et une bouche. La relation entre ces membres peut être représentée par la distance entre ces derniers et leur position. Un problème se pose avec cette approche, en l’occurrence la difficulté de traduire les connaissances relatives aux visages humains en règles bien définies, ce qui peut provoquer des erreurs de détection et rendre le système peu fiable.
  19. 19. 13 2.2 Approche basée sur les caractéristiques invariantes Cette famille d’algorithme a pour objectif de trouver les caractéristiques structurelles même si le visage est dans différentes positions, conditions lumineuses ou angle de vue. Le problème que rencontre cette approche est que la qualité des images peut être sévèrement diminuée à cause de l’illumination, le bruit ou l’occlusion. Cependant, Il existe plusieurs propriétés ou caractéristiques invariables du visage dont les principales sont les suivantes : 2.2.1 La couleur de peau La couleur de la peau de l’être humain a été utilisée pour la détection des visages et sa pertinence a été prouvée comme caractéristique spécifique au visage. Le principe de cette méthode est basé sur l’information couleur pour la discrimination des pixels de peau ou non-peau. Chaque pixel d’une image couleur est codé dans un espace couleur (par exemple RGB ou YCrCb, ..). Cette méthode se résume en trois étapes : 1) Prétraitement de l’image. 2) Choix d’un espace de couleurs. 3) Seuillage et segmentation de la couleur de peau Figure 2.1: la détection de la couleur de peau. . Cette méthode est caractérisée par la rapidité de traitement et par la simplicité de la décision. En effet le principe est simple et limité à la couleur de peau sans aucune considération des effets d’échelle et de position. Néanmoins, cette méthode affiche des détections des faux positifs et peut créer des conflits avec l’arrière plan.
  20. 20. 14 2.3 Approche basée sur l’appariement de gabarits (Template matching) La détection de visages entiers ou de parties de visage se fait à travers un apprentissage d’exemples standards de visages. La corrélation entre les images d’entrées et les exemples enregistrés est calculée et utilisée pour la décision. 2.3.1 Des Faces prédéfinies de visages Cette technique est utilisée pour classer des objets, elle est très intéressante pour la détection de visage de par sa facilité d’application. Le principe de cette méthode basé sur une comparaison effectuée entre une image quelconque et un modèle prédéfini, dont le but est de calculer la corrélation pour aboutir à une décision par oui/non. La correspondance est faite pixel par pixel. Figure 2.2 : Processus de la mise en correspondance Cette méthode a l’avantage d’être simple mais elle est sensiblement influencée par la variation d’échelle, de pose et de forme. 2.4 Approche basée sur l’apparence Cette approche a pour objectif de déterminer les caractéristiques significatives des visages et des non visages à partir de techniques d’analyse statistique et d’apprentissage organisés par le biais de modèles de distribution ou par une fonction discriminante. La classification visage ou non visage est représentée par une variable aléatoire x (dérivée d’une image ou d’un vecteur caractéristique). Parmi les méthodes utilisées dans ce contexte nous citons : Les réseaux de neurones, les machines à vecteur de support SVM, les modèles cachés de Markov HMM, Viola- Jones… Template image Corrélation I(x, y) O(x, y) x, y Image d’entrée Image de sortie
  21. 21. 15 2.4.1 Réseaux de neurone Les réseaux de neurones sont des outils d’analyse statistique dont l’objectif principal est la classification. Ils sont utilisés dans plusieurs domaines, et représentent un enjeu très important. Nous distinguons les réseaux de neurones les plus répandus et les plus simples : les perceptrons multicouches (PMC). Le réseau de neurone détecte l’existence ou non de visage au moyen d’une fenêtre bien définie (taille des images d’apprentissage). Celle-ci va balayer l’image d’entrée traitée d’une manière multi-échelles Afin de réduire la complexité de calcul, les images d’entrée sont tout d’abord prétraitées. Figure 2.3: diagramme de la méthode de Rowley. Le grand avantage des réseaux de neurones réside dans leur capacité automatique d’apprentissage ce qui permet d’éviter des règles de calcul complexes. Toutefois, est difficile d’interpréter le modèle construit, ou de déterminer la cause en cas d’erreur du système. 2.4.2 Méthode de Viola-Jones La méthode Viola-Jones consiste à utiliser les descripteurs de Haar qui sont constitués de deux rectangles adjacents, l’un noir et l’autre blanc. Ces descripteurs sont superposés aux différentes régions de l’image à la recherche d’une zone de forte corrélation [Viola, 2001]. Visage ou Non-visage Réseau neurone Prétraitement
  22. 22. 16 Figure 2.4: Les descripteurs de Haar. L’algorithme détermine alors la ressemblance d’une zone de l’image aux descripteurs de Haar en soustrayant la moyenne des valeurs des pixels contenus dans la région noire à la moyenne des valeurs des pixels contenus dans la région blanche. La zone est retenue si cette différence est supérieure à un seuil. Le seuil utilisé est déterminé au cours de l’apprentissage par la méthode AdaBoost. Il s’agit de la combinaison de plusieurs classificateurs peu performants (dits faibles), chacun assigné à un poids, pour en créer un beaucoup plus fiable (dit fort). La réponse de chaque classificateur (la région étudiée appartient au visage ou non) est peu fiable mais si le procédé est itératif, la réponse se fait de plus en plus précise au fur et à mesure du processus, d’où le nom de « cascade » de classificateurs. Figure 2 .5 : Cascade de classifieurs visage Région de l’image Non-Face Non-visage Non-visage Non-visage Face Non-visage visage visage FN F3 F2 F1
  23. 23. 17 Pour bien caractériser le visage, les descripteurs rectangles initiaux choisis par Ada- Boost sont significatifs et facilement interprétés. Le choix du premier descripteur est basé sur la propriété que la région des yeux est souvent plus foncée que la région du nez et des joues (voir figure 2.6). Le deuxième descripteur choisi est basé sur le constat que les yeux sont généralement plus foncés que le pont du nez. Figure 2 .6: Les deux premiers descripteurs de Haar sélectionnés dans la méthode Viola-Jones. En conclusion, nous avons déduit que l’approche de reconnaissance est peu fiable en raison de la position variable du visage dans une image. Quant à l’approche basée sur les caractéristiques invariantes, il s’est avéré qu’elle ne répond pas totalement au besoin de détection de visage en raison de sa dépendance à la qualité d’image. En outre l’approche d’appariement de gabarit connue par sa qualité de détection rapide, elle a l’inconvénient d’être limitée par les modèles prédéfinis. Alors que l’approche basée sur l’apparence, quant-à elle, paraît être la plus fiable car elle utilise des techniques d’analyse statistique et d’apprentissage automatique en plus de présenter l’avantage de la robustesse par rapport aux changements de luminosité et d’expression. Nous avons par conséquent opté pour la méthode de Viola et Jones, basée sur l’apparence, que nous avons jugée être la plus appropriée dans le cas de notre problématique. C’est la raison pour laquelle nous avons opté pour cette méthode que nous avons trouvé efficace et réalisable dans les différentes situations.
  24. 24. 18 3. Reconnaissance de visages Pendant ces 30 dernières années, diverses méthodes de reconnaissance de visages ont été développées. Elles se divisent en deux catégories : la reconnaissance à partir d’images fixes et la reconnaissance à partir d’une séquence d’images (vidéo). La reconnaissance de visages basée sur la vidéo est souvent plus performante que celle basée sur des images fixes, puisque l’utilisation synchronique des informations temporelles et spatiales aide dans la reconnaissance. Dans ce projet, nous nous adressons à la reconnaissance basée sur les images fixes, puisque c’est le type de données dont nous disposons. On peut répartir l’ensemble des techniques de reconnaissance de visages basées sur les images fixes, en trois grandes catégories : les méthodes globales, les méthodes locales et les méthodes hybrides [ALEM, 2003]. 3.1. Méthodes globales Les méthodes holistiques appelées aussi méthodes globales, sont des méthodes qui utilisent la région entière du visage comme entrée à l’algorithme de reconnaissance. Ce sont des techniques très réussies et bien étudiées. Ces méthodes offrent de bonnes performances, mais le problème de stockage des informations extraites lors de la phase “apprentissage” reste l’inconvénient majeur. Parmi ses méthodes nous citons: l’analyse en composantes principales (ACP), l’analyse discriminante linéaire (ADL), ou encore les réseaux de neurones. 3.1.1. Analyse en composantes principales (ACP) [4] L’ACP a été proposé par Pentland et Turk [Turk_Pentland, 1991], elle ne requiert aucune connaissance de l’image, Son principe de fonctionnement est la construction d’un sous espace vectoriel ne retenant que les meilleurs vecteur propres, tout en gardant beaucoup d’information utile non redondante. La méthode cherche les axes orthogonaux pour lesquels la variance des images exemples projetées est maximale. Ces axes conviennent particulièrement pour bien représenter les images exemples, mais par contre ils ne permettent pas forcément de bien séparer les images exemples si celles-ci appartiennent à plusieurs classes. L’axe possédant la variance maximale est appelée premier axe principal. Dans tout l’espace des images, il n’existe aucun vecteur de projection avec une variance plus grande que celle du premier axe principal. Le deuxième axe principal est l’axe qui est
  25. 25. 19 perpendiculaire au premier axe principal et qui pointe dans la direction pour laquelle la projection des images exemples possède de nouveau la variance maximale. Les axes principaux suivants possèdent les mêmes propriétés par rapport aux axes principaux précédents que le deuxième axe principal par rapport au premier. Comme les premiers axes principaux possèdent les plus grandes variances, ce sont eux qui permettent de représenter le mieux les images exemples. Le nombre d’axes principaux à utiliser comme descripteurs est choisi de façon à garder environ 85 à 90% de la variance totale. L’ACP est une technique rapide, simple et populaire dans l'identification de modèles de manière générale. Cependant, elle n'est pas optimisée pour la séparabilité (discrimination) de classe. 3.2. Méthodes locales Ce sont des méthodes géométriques, appelées aussi méthodes à traits, à caractéristiques locales, ou analytiques. L'analyse du visage humain est donnée par la description individuelle de ses parties et de leurs relations. Ce modèle correspond à la manière avec laquelle l'être humain perçoit le visage, c'est à dire, à nos notions de traits de visage et de parties caractéristiques comme les yeux, le nez ou la bouche. La plupart des travaux réalisés se sont focalisés sur l'extraction de traits à partir d'une image du visage et sur la définition d'un modèle adéquat pour représenter ce visage. Un certain nombre de stratégies automatiques et semi-automatiques ont modélisé et classé les visages sur la base de distances normalisées d’angles entres points caractéristiques. La stratégie est qualifiée d'automatique ou non selon que la phase d'extraction des points est faite par l'ordinateur ou assistée par un opérateur. Cette phase constitue l'étape clé du processus, car la performance du système entier dépend de la précision avec laquelle les informations utiles sont extraites. L'avantage de ces méthodes réside dans la prise en compte de la particularité du visage en tant que forme naturelle à reconnaître, en exploitant les résultats de la recherche en neuropsychologie et psychologie cognitive sur le système visuel humain. La difficulté éprouvée lors de la considération de plusieurs vues du visage, ainsi que le manque de précision dans la phase “extraction” des points, constituent leur inconvénient.
  26. 26. 20 3.2.1 Détecteur de Harris Depuis une vingtaine d’années, plusieurs détecteurs de PI ont été développés. Schmid et Mohr [SCHMID 00] ont comparé les performances de plusieurs d’entre eux. Le détecteur de PI le plus populaire est le détecteur de Harris [HARRIS 88]. Un PI est un point où des changements significatifs apparaissent : on peut citer les coins, les jonctions, des points noirs sur fond blanc ainsi que des endroits où la texture change significativement. Le détecteur de Harris est un détecteur de "coins". Le principe des détecteurs de coins est de chercher un changement rapide de direction du contour et le principe des détecteurs de contour est de chercher un changement rapide de direction des intensités. Pour observer les changements, on utilise la norme du gradient: Donc, le détecteur de Harris est basé sur la recherche de changement rapide de direction des intensités dans une image I. De manière simplifiée, on peut dire que le changement d’intensité dans la direction (u,v) est donné par une formule de type ‘erreur quadratique’ sur un voisinage : 3.3. Méthodes hybrides La robustesse d’un système de reconnaissance peut être augmentée par la fusion de plusieurs méthodes. Cette technique de reconnaissance consiste à combiner plusieurs méthodes pour résoudre le problème d’identification. Le choix d’un outil de reconnaissance robuste n’est pas une tâche triviale, cependant l’utilisation d’une approche multi-classifieur pour l’identification des visages est une solution adéquate à ce problème [ALEM, 2003]. Parmi ces méthodes on cite la DCT-PCA, PCA-LDA, etc. contour = |Gradient( intensité )| coin = |Gradient( Gcontour )| coin = |Gradient( Gradient( intensité ) )| coin = |Gradient-2nd(intensité)|
  27. 27. 21 En conclusion, étant donné qu’on s’adresse à des images provenant généralement de photos d’identité (faible variabilité de pose et de taille…) nous avons choisi la méthode locale qui correspondre à notre cas en raison de sa cohérence et sa simplicité de réalisation. 4. Conclusion L’état de l’art de la détection et reconnaissance de visages est très riche, nous trouvons des multitudes algorithmes qui sont utilisés et développés dans les systèmes commerciaux et dans les projets de recherche. Pour la détection de visage, en prenant en considération un meilleur taux de détection de visage avec un minimum de temps d’exécution pour le traitement d’un seul visage par image et afin d’éviter les règles de calcul complexe pour répondre aux exigences de notre projet nous choisirons la méthode de Viola-Jones qui contient un algorithme de détection d’objet AdaBoost devenu une référence de détection d’objet par ses qualités de rapidité et d’efficacité. Pour la reconnaissance de visage, en nous basant sur l’approche locale nous utiliserons une méthode basée sur quelques points caractéristiques du visage.
  28. 28. 22 Chapitre 3 - Analyse des besoins 3Chapitre Analyse des besoins
  29. 29. 23 1. Introduction Dans ce chapitre, nous passerons à l’analyse des besoins fonctionnels et non fonctionnels du module à développer. Cette analyse sera appuyée par les diagrammes de cas d’utilisation et de séquence système. 2. Besoins fonctionnels Notre application se répartit en deux modules fondamentaux :  Module de détection de visage  Module de reconnaissance de visage Ces modules représentent les fonctionnalités les plus importantes de notre application dont les besoins fonctionnels sont :  La détection de visage Le système doit détecter le visage dans une image. La détection consiste à délimiter une zone rectangulaire contenant la partie de l’image reconnue comme un visage.  La construction d’une base de descripteurs associés aux visages Dans cette étape nous extrairons de l'image les informations qui seront sauvegardées en mémoire pour être utilisées plus tard dans la phase de reconnaissance. Les informations doivent être choisies de manière à être discriminantes et non redondantes.  La reconnaissance de visage La reconnaissance de visage permet de savoir si un nouvel individu est déjà enregistré dans la base ou non. Cette phase est l’aboutissement du processus, elle peut être valorisée par un taux de fiabilité qui est déterminé par le taux de justesse de la décision. Dans le cadre du PFE, cette fonctionnalité sera réduite à retrouver un ensemble de visages les plus proches. La décision finale sera alors effectuée par l’utilisateur.
  30. 30. 24 3. Besoins non fonctionnels  Interface utilisateur : L’application devra être cohérente du point de vue de l’ergonomie. La qualité de l’ergonomie sera un facteur essentiel, étant donné l’utilisation intensive qui sera faite de l’application. Notre projet faisant partie de Licence+, il devra être intégré à la même interface.  Sécurité L’application de détection et reconnaissance de visage devra être intégrée au système de sécurité du logiciel Licence+.  Documentation Une documentation écrite devra accompagner le système de reconnaissance faciale, qui décrit de manière claire et précise son fonctionnement.  Rapidité Le temps d’exécution de l’application ne devra pas dépasser 5 secondes.  Configuration requise par l’application La configuration minimale adoptée est celle du Pentium III 800 Mhz avec 1 Go de RAM. La résolution d’affichage minimale sera de 800x600 en 256 couleurs. Après avoir identifié les besoins fonctionnels et non fonctionnels du module détection et reconnaissance de visages, nous allons identifier les principaux cas d’utilisation du système, afin de bien concevoir notre solution. 4. Diagramme des cas d’utilisation Les cas d’utilisation sont un moyen qui permet de capturer les exigences fonctionnelles d’un système. Ils décrivent les interactions entre les acteurs et le système et constituent une méthode pour recueillir et décrire les besoins des acteurs.
  31. 31. 25 4.1 Diagramme de cas d’utilisation globale Figure 3.1 : Diagramme de cas d’utilisation globale Identification d’un joueur : - Acteur : Agent de fédération - Description : L’agent de fédération doit insérer une nouvelle licence de joueur dans la base de données à travers le système « Licence+ » afin qu’il puisse contrôler l’unicité de cette licence à travers le système de reconnaissance faciale en utilisant la photo d’identité du joueur qu’elle contienne. 4.2 Diagramme des cas d’utilisation détaillée La première étape que l’agent de fédération effectue c’est d’ajouter une photo au système de reconnaissance faciale, une fois celle-ci est chargée, il peut lancer l’identification de ce visage. C’est à ce stade que le module de traitement intervient afin d’aider le système à donner une décision. Enfin une authentification de l’utilisateur est indispensable pour confirmer la reconnaissance ou non du visage (c.-à-d. la détection ou non de sa présence préalable dans la base de données).
  32. 32. 26 Figure 3.2 : Diagramme de cas d’utilisation détaillé 5. Diagramme de séquences système Cette figure représente le diagramme de séquence de système de reconnaissance de visage. Figure 3.3 : Diagramme de séquence de système
  33. 33. 27 6. Conclusion Ce chapitre nous a permis d’analyser la faisabilité de notre système à travers la détermination des principales fonctionnalités. Afin de pouvoir mettre en œuvre notre application, nous devons d’abord présenter notre solution algorithmique de détection et de reconnaissance de visage. Cela nous permettra d’identifier les classes à implémenter et d’achever ainsi la phase de conception que nous détaillerons dans le chapitre suivant.
  34. 34. 28 Chapitre 4 - Conception 4Chapitre Conception
  35. 35. 29 1. Introduction Pour simplifier notre projet, une division en sous-systèmes s’imposait. Ainsi, le projet a été subdivisé en 3 modules (voire figure 4.1): « Module de prétraitement », « Module de détection» et « Module de reconnaissance ». Leurs rôles sont respectivement de normaliser l’image capturée, détecter le visage et l’analyser pour enfin pouvoir le reconnaître. Figure 4.1 : Processus de reconnaissance faciale Photo Prétraitement Détection de visage Reconnaissance de visage
  36. 36. 30 2. Schéma fonctionnel Figure 4.2 : Schéma fonctionnel Décision Reconnaissance faciale Enregistrement dans la base de données Signature Extraction des paramètres Proportion des yeux (Détection des points d’intérêts) Couleur de peau Détection de visage Descripteur de Haar Photo Prétraitement Etirement d’histogramme (Normalisation de niveaux) Filtre médian
  37. 37. 31 3. Module de prétraitement Les images peuvent se présenter avec un éclairage et des ombres différentes ou encore avec des résolutions différentes. Il est donc important que les données soient normalisées et que les variations de contraste soient ainsi représentatives des caractéristiques du visage et non de son environnement. La normalisation des images reçues et détectées s’effectue en deux phases : La première est l’étirement d’histogramme, la seconde consiste en l’application d’un filtre médian. 3.1 Etirement d’histogramme (Normalisation des niveaux de gris) L'étirement d'histogramme (également appelé "linéarisation d'histogramme") consiste à répartir les fréquences d'apparition des pixels sur la largeur de l'histogramme. Ainsi il s'agit d'une opération consistant à modifier l'histogramme de telle manière à répartir au mieux les intensités sur l'échelle des valeurs disponibles. Ceci revient dans la plupart des cas à étendre l'histogramme afin que la valeur d'intensité la plus faible soit à zéro et que la plus haute soit à la valeur maximale. 3.2 Filtre Médian Le filtre médian nous permet d’éliminer un type particulier de bruits, dit « Salt and Pepper noise » qui consiste en des tâches dispersées d’intensité très forte ou très faible. Le principe du filtre est le suivant : il remplace le niveau de gris de chaque pixel par la valeur en la position médiane des niveaux de gris de son voisinage ordonné (voir figure 4.3). Cette méthode est particulièrement pertinente quand la configuration du bruit est forte. Par exemple : Dans un voisinage de 3 X 3 la médiane est le 5ème élément après le tri. Dans un voisinage de 5 X 5 la médiane est le 13ème élément après le tri. Figure 4.3 filtre médian
  38. 38. 32 4. Détection de visage Pour réaliser cette partie, nous avons choisi la méthode de Viola-Jones qui nécessite une phase d’apprentissage à l’issue de laquelle une fonction de classification robuste est formée. En réalité la phase d’apprentissage a déjà été réalisée et les données qui en découlent nous sont proposées par la bibliothèque open source dédiée au traitement d’images « OpenCV » ; sous la forme d’un fichier « xml ». La fonction de classification offerte par cette bibliothèque sera exploitée par l’algorithme de détection pour qu’il puisse réaliser une classification en visages et non-visages. Figure 4.4 : Schéma du système de détection 4.1 Fonction de classification La fonction de classification utilise comme entrée une cascade de classificateurs qui est un arbre de décisions où à chaque étape un classificateur est formé pour détecter presque tous les objets d'intérêt (visages dans notre exemple) et rejeter certaines fractions des objets qui n’appartiennent pas au modèle (voir figure 2.5). Dans [LIENHART 2002], l’algorithme discret d’AdaBoost [FREUND 1996], permet d’éliminer 50% de fausses détections, mais il élimine 0.2% des modèles frontaux de visage.
  39. 39. 33 4.2 Image intégrale Pour déterminer la présence ou l'absence de centaine de descripteurs de Haar à chaque endroit d'image et à plusieurs échelles efficacement, Viola et Jones ont utilisé une technique appelée « Image Intégrante ». En général, "le fait de s'intégrer" veut dire d'ajouter ensemble de petites unités. Dans notre cas, les petites unités sont des valeurs de pixel. La valeur intégrante pour chaque pixel est la somme de tous les pixels au- dessus et à gauche du pixel considéré. En commençant en haut et en traversant vers la droite et le bas, l'image entière peut être intégrée avec quelques opérations par pixel. 4.3 Bloc de décision Les images intégrales et la fonction de classification sont les entrées d’une boucle. A chaque itération, la fenêtre de balayage sera redimensionnée, plus précisément elle sera agrandie d’un facteur d’échelle bien choisi. Par conséquent, les données de la fonction de classification doivent subir une adaptation à ce changement. L’adaptation consiste principalement à redimensionner les descripteurs de Haar proportionnellement à la taille de la fenêtre. La boucle que nous venons de citer, se charge de garantir la détection de visage à toute échelle. Son paramètre principal est le facteur d’échelle. Ce paramètre est généralement entre 1.1 et 1.4. Afin de pouvoir repérer les visages à tout emplacement de l’image, notre fenêtre doit balayer toute l’image en utilisant un algorithme de décision à chaque itération (voir figure 4.5). Figure 4.5 : Exemple de détection de visage
  40. 40. 34 5. Reconnaissance de visage Dans cette partie nous introduisons notre méthode qui va permettre d’identifier un visage. Il est à noter que nous n’avons a priori aucun modèle des différents visages à détecter. Cependant nous utilisons le terme « modèle » pour désigner une représentation de chaque visage par un vecteur qui contient des informations pertinentes et non redondantes afin de bien caractériser ce visage. Nous allons donc décrire dans un premier temps la phase de préparation des modèles. Nous décrirons ensuite la phase d’identification. Le schéma ci-dessous, décrit la méthode de reconnaissance de visage. Figure 4.5.1: Étapes de reconnaissance faciale 5.1 Détection des composantes faciales Cette action se traduit en deux étapes : 5.1.1 Masquage de données : Afin de cibler l’analyse sur l’image, un visage ayant une forme plutôt ovale et verticale, les quatre coins de la fenêtre seront ignorés, ainsi qu’une bande de chaque côté, dans la mesure où ces données représenteront principalement un décor, des habits, ou des cheveux, données très variables et inutiles pour la détection des yeux et du nez. Cette technique amène donc à définir un masque de taille TxT pixels (T a été fixé à 200 pixels) pour cacher des données (Figure 4.4.1). La forme exacte du masque sera déterminée de manière heuristique en effectuant des tests sur la base d’images disponible. Détection des composantes faciales - Masquage de données - Détection des yeux (Viola-Jones) Extraction des paramètres - Détection des points d’intérêt (Détecteur de Harris) - Extraction des coins des yeux (histogramme verticale) - Proportion des yeux (Distance euclidienne) - Détection de la couleur de peauIdentification Signature
  41. 41. 35 Figure 4.5.2: Masque 5.1 .2 Détection des yeux De la même manière que pour la détection de visage, nous utiliserons la méthode de Viola-Jones pour détecter les yeux et ce en utilisant l’image masquée et le classifieur de cascade spécifique aux yeux. Figure 4.5.3 : Détection des yeux 5.2 Extraction des paramètres Après l’extraction de la région qui contient les yeux dans un visage, nous nous servons des informations situées dans ces régions pour générer des modèles de visages. En effet, un modèle de visage est représenté par deux paramètres : - La proportion des yeux qui est calculée après détection des points d’intérêt. - La couleur de peau. 5.2.1 Détection des points d’intérêt Nous pouvons définir un point d’intérêt (PI) comme étant un point dans l’image où des changements significatifs se produisent. Des exemples de PI sont les coins des yeux et les points noirs sur fond blanc. Cette action se traduit par deux étapes : 1- Changement d’espaces couleur L’efficacité de la méthode de détection des points d’intérêt qu’on utilise dépend vigoureusement du choix de l’espace de couleur. Etant donné que cette méthode
  42. 42. 36 est basée sur la recherche de changement rapide de direction des intensités dans une image, le choix d’un espace couleur convenable qui permet de distinguer deux composantes : l’intensité et la chrominance est une étape primordiale. L’espace de couleur le plus populaire est celui de RGB. Il décrit la couleur comme la corrélation de trois couleurs primaires (Rouge-Verte-Bleue), mais il n’est pas convenable dans notre cas puisqu’il mélange les deux composantes indiquées ci- dessus. D’autres espaces de représentation de couleurs peuvent être dérivés par des combinaisons linéaires ou non linéaires des composantes R, G et B. Parmi ces espaces, on cite HSV, HSI, YCrCb, YIQ. Nous constatons que l’espace YCrCb est le plus approprié vu qu’il sépare les deux composantes (voir figure 4.5.4 pour une illustration de la composante luminance dans le cas d’une image d’yeux). Figure 4.5.4 : La composante luminance Y de l’image yeux La détection des points d’intérêt sera effectuée sur la composante Y ainsi extraite Y = 0.299 * R + 0.587 * G + 0.114 * B. Ces PI seront extraits à l’aide du détecteur de Harris. 2- Détecteur de Harris Cette méthode est largement utilisée en matière d’extraction de points d’intérêts, mais reste malgré tout délicat tant le nombre de variantes est large, elle permet d’extraire les coins de contours comme points clés via une méthode différentielle reposant sur la théorie de l’information. Cette méthode se caractérise par son invariance à la translation et au changement de luminosité et d’échelle, d’où son intérêt dans notre cas. Figure 4.5.5 : Détection de points d’intérêts
  43. 43. 37 Afin d’améliorer l’efficacité et la rapidité de détection, nous décidons d’appliquer un masque sur l’image des yeux (voir figure 4.4.8). Figure 4.5.6 : Masque des yeux Les PI étant maintenant extraits, l’étape suivante consiste à en extraire ceux qui représentent les coins des yeux (voir figure 4.5.8). 5.2.2 Extraction des coins des yeux Les points d’intérêts extrait par le détecteur de Harris sont superposés à l’image sous la forme de points de couleur blanche cela a produit quelques difficultés pour les détecter vu que l’image peut contenir d’autres pixels blanc. Pour remédier à ce problème et afin de bien détecter les points intérêts décisifs pour le calcul de la proportion des yeux (les coins, en l’occurrence), nous avons décidé de générer un histogramme vertical de l’image pour représenter la distribution des intensités des pixels. Figure 4. 5.7: Histogramme verticale de l’image Une fois l’histogramme vertical de l’image est généré, nous balayons l’image en termes d’ordonnée dans le but de détecter la première et la dernière distribution minimale des intensités des pixels les plus clairs afin de détecter les points A et B. Pour détecter les points C et D, nous utilisons le même principe pour les moitiés gauche et droite de l’image. Figure 4.5.8: Les quatre coins des yeux (A, B, C, et D). A B C D
  44. 44. 38 5.2.3 Proportion des yeux La proportion des yeux est calculée à travers l’utilisation des distances euclidiennes entre les coins des yeux extérieures « AB » et intérieurs « CD ». En effet, le but est d’avoir la proportion des yeux (CD/AB) afin d’enregistrer les valeurs obtenues dans un vecteur qui représente la signature du visage. 5.2.4 Détection de la couleur de peau La couleur de peau humaine est une caractéristique pour la reconnaissance de visage. Bien que des personnes différentes aient une couleur de peau différente, plusieurs études ont montré que la différence principale se trouve en grande partie entre leurs intensités plutôt que leurs chrominances. Donc pour détecter la couleur de peau, il faut distinguer les deux composantes de chrominance Cr et Cb dans l’espace YCbCr. Dans l’image des yeux détectés, nous avons remarqué que la région qui se trouve entre les deux yeux, représente assez bien la couleur de peau. Pour cela nous avons pris le voisinage de 9x9 pixels de deux composantes de chrominances Cr et Cb. 5.3 Signature Une fois les points d’intérêts et la couleur de peau déterminés, nous commençons à générer la signature de visage en construisant un vecteur qui contient deux caractéristiques, à savoir la proportion entre les coins des yeux et la couleur de peau (voir figure 4.5.9). La précision des paramètres qui constituent la signature de visage, rendre l’étape d’identification efficace. Figure 4.5.9 : Signatures des visages
  45. 45. 39 5.4 Identification Une fois toutes les signatures créées et enregistrées dans la base de données, il s’agit maintenant de comparer un nouvel élément avec ceux déjà présents dans la base de données. Dans notre cas, nous proposons d’afficher les 10 visages qui ressemblent le plus au visage recherché. La comparaison consiste à calculer la distance entre la signature décrivant le nouvel élément candidat et les signatures enregistrées dans la base de données. Cette distance est obtenue en utilisant deux paramètres : - Couleur de peau - Proportions des coins des yeux On calcule la différence en valeur absolu entre ces paramètres et les paramètres des visages enregistrés dans la base de données. Les modèles ayant le plus bas score seront les plus proche de visage recherché, pour cela on fait le tri des modèles à l’ordre croissant vis-à-vis ces paramètre afin d’afficher les 10 premiers. La décision finale sera alors effectuée par l’utilisateur en choisissant ou non un visage parmi les visages donnés par le système. Figure 4.5.10 : Recherche des visages
  46. 46. 40 6. Diagramme de séquence Figure 4.6 : Diagramme de séquence
  47. 47. 41 L’utilisateur choisit une photo issue de la phase de découpage du système de gestion de licence pour la passer au système de reconnaissance faciale. Ensuite on applique un module de prétraitement sur la photo injectée au système dont le but est d’améliorer la qualité de l’image. Puis on lance la détection de visage et par la suite la détection des yeux. A ce stade on calcule la proportion entre les coins des yeux et on détecte la couleur de peau afin de générer une signature de visage, cette dernier sera comparée aux des signatures enregistrées dans la base pour trouver le visage recherché. 7. Diagramme des classes A la suite du traçage des diagrammes de séquences, nous avons obtenu un diagramme global des classes qui est un élément important dans une démarche de conception orientée objet. Il représente les différentes entités (les classes d'objet) intervenant dans le système. Le diagramme de classe ci-dessous est composé de six classes : 1. la classe « ReconnaissanceFacialeMFCDlg.cpp » représente la classe principale du système puisqu’elle contienne les deux fonctions de base :  OnBnClickedApprentissage : Apprendre à reconnaitre quelques visages.  OnBnClickedReconnaissance : Recherche des visages dans la base du système. 2. La classe « Reconnaissance.cpp » contient toutes les fonctions qu’on utilise pour reconnaître les visages, et utilise la classe « Detect.cpp » comme paramètre de détection. 3. La classe « Detect.cpp » est liée à la classe « Reconnaissance.cpp » et contient les fonctions de détection des yeux et de visage dans une image. 4. La classe « Photo.cpp » contient les fonctions de base pour la gestion des photos, et utilise la classe « pretraitement.cpp » comme paramètre de prétraitement des images. 5. La classe « pretraitement.cpp » est liée à la classe « Photo.cpp », et contient les fonctions de prétraitement de l’image (filtre médian, Egalisation histogramme etc..). 6. La classe « Signature.cpp » représente le vecteur caractéristique de visage, et a pour paramètres la proportion des yeux et la couleur de peau.
  48. 48. 42 Figure 4.7 : Diagramme de classe
  49. 49. 43 Chapitre 5 - Réalisation 5Chapitre Réalisation
  50. 50. 44 1. Introduction Dans ce chapitre, nous aborderons les méthodes que nous avons développées, pour la détection et la reconnaissance d’un visage dans une photo d’identité. Nous présenterons aussi les résultats obtenus à la suite des tests effectués, ainsi que nos propositions pour améliorer la méthode proposée. Pour la détection du visage nous avons utilisé des outils existants dans la bibliothèque OpenCV car elle possède plusieurs outils pour le traitement d’image déjà implémentés, dont en particulier la méthode de « Viola-Jones » que nous avons choisie pour la détection de visage. Nous décrivons ici le fonctionnement et les services offerts par OpenCV. 2. Présentation de la bibliothèque OpenCV OpenCV [OPENCV, 2007] (Open source Computer Vision library), est une bibliothèque de traitement d’images et de vision par ordinateur en langage C/C++, optimisée, proposée par Intel pour Windows et Linux. Elle est « Open Source », Elle comprend plusieurs solutions pour le traitement d’image et de l’analyse du mouvement. 2.1 Classifieur OpenCV Nous nous servons, dans nos travaux de détection du visage, du classifieur OpenCV appelé. Il s’applique sur des régions de l’image tout en faisant subir des transformations d’échelle, afin de reconnaître si un objet d’une région rassemble à un visage. 2.2 Implémentation 2.2.1 Installation d’OpenCV sous Windows [1] L’installation sous Windows est un peu plus simple. OpenCV est distribué en tant que package binaire prêt à l’emploi. Nous commençons par télécharger le fichier d’installation d’OpenCV : http://sourceforge.net/projects/opencvlibrary/files/ Puis nous installons le programme dans le chemin qui est proposé par défaut : C:ProgramFilesOpenCV2.1.
  51. 51. 45 2.2.2 Environnement de programmation Pour réaliser notre application nous utiliserons le langage de programmation C++ en se basant sur la bibliothèque OpenCV. Cette bibliothèque se compose de 5 modules :  cxcore : Contient les structures de base et elle fournit de nombreuse fonction de dessin (lignes, cercles, ellipses, arcs, …).  cv : les fonctions principales  cvaux : Contient les fonctions en cours d'implémentation, ou dépréciées  highgui : Contient les fonctions de création d'interfaces utilisateurs (matrices, tableaux, listes, files, graphes, arbres…), ainsi les structures élémentaire (matrices, tableaux, listes, files, graphes, arbres…).  mll (sorti en 2009) : Elle intègre de nombreux algorithmes d'apprentissage automatisé. Le module CV contient les fonctions nécessaires pour notre application, dont les plus importantes sont : 1. cvHaarDetectObjects C’est une fonction pratique pour détecter des objets dans une images. Les paramètres d’entrée sont : o Une image o Base d’apprentissage (fichier XML) o Espace mémoire o Facteur d’échelle 2. cvGoodFeaturesToTrack C’est une fonction pratique pour détecter les points d’intérêts. Les paramètres d’entrée sont : o Une l'image dont on cherche les points d'intérêt, elle doit avoir un seul canal et avoir une profondeur de 8bit ou de 32bits en virgule flottante. o Deux images temporaires utilisées par la fonction, elles sont de type IPL_DEPTH_32F et ont la même hauteur et largeur que le paramètre image, elles ont un seul canal.
  52. 52. 46 o Un vecteur contenant les points d'intérêt, les éléments de ce vecteur sont de type CvPoint2D32f. o Le nombre maximal de points d'intérêt à trouver. Une fois la fonction exécutée, cette variable pointe vers le nombre de points d'intérêts trouvés. o La qualité minimum des points d'intérêt. o La distance (euclidienne) minimum entre deux points. o Un masque représenté par une matrice (de type CvMat) spécifiant les pixels de l'image à traiter représentés par les éléments non-nuls de la matrice. Si la valeur est NULL (valeur par défaut), toute l'image est traitée. o La taille du voisinage (valeur par défaut = 3). o Variable qui indique l’utilisation de l'opérateur Harris (valeur par défaut = 0). o Paramètre pour l'opérateur Harris. 2.3. Expérience 2.3.1. Détection à l’aide des «Classifieurs de Haar» Pour détecter des objets dans une image, OpenCV nous fournis la fonction « cvHaarDetectObjects » qui est basé sur la méthode de Viola et Jones, la nature des objets détectées dépend de classifieur utilisé. OpenCV nous propose des classifieurs prédéfinis pour la détection d’un visage dans une image sous forme des fichiers XML. Ces classifieurs différent par le type d’algorithme de boosting qu’ils utilisent, tels que Discrete Adaboost, Real Adaboost ou encore Gentle Adaboost et position de visage dans l’image. Ci-dessous les fichiers : haarcascade_frontalface_alt.xml haarcascade_frontalface_alt_tree.xml haarcascade_frontalface_alt2.xml haarcascade_frontalface_default.xml haarcascade_profileface.xml Afin de comparer ces différentes cascades de manière objective, nous les avons testées sur une base d’images contenant au total 858 photos de visages. Ces images ont été obtenues pendant la phase de découpage du système Licence+.
  53. 53. 47 Ces images différent par leurs qualité (Conditions d’acquisition, éclairage etc..) et représentent des visages découverts ou masqués par des objets (lunette, moustache etc..), et même en position droite ou inclinée… Voici les résultats obtenus par les cascades de type frontalface (vue de face) : Bonnes détections Mauvaises détections Nombre Pourcentage Nombre Pourcentage frontalface_alt 710 82.75 % 148 17.25 % frontalface_alt2 620 72.30% 238 27.70% frontalface_alt_tree 595 69.35% 263 30.65% frontalface_default 796 92.78% 62 7.22% Tableau 5.1: Résultat des détections de visage Il s’avère que les résultats obtenus par la cascade frontalface_default est le meilleur avec un taux de bonne détection égale à 92.78% et un taux de mauvaise de détection égale à 7.22%. Nous retiendrons donc uniquement le dernier fichier car c’est celui qui offre les meilleures performances pour la détection de visages selon notre expérience. La figure 5-1 présente des échantillons de résultats. Figure 5.1: bonnes détection/mauvaises détections Bonnes détections Mauvaises détection
  54. 54. 48 Nous verrons maintenant comment ces scores peuvent être améliorés, en effet, pour résoudre le souci des fausses détections, nous avons ajouté un module de prétraitement de l’image avant la phase de détection. 2.3.2. Prétraitement Comme nous l’avons déjà décrit dans le chapitre 4 (conception) le module prétraitement nous permettra d’améliorer l’efficacité de détection. Le prétraitement des images s’effectue en deux temps :  Étirement d’histogramme. Cette action nous a permis d’améliorer le taux de bonne détection à 93,70 % avec un nombre d’images égal à 804 qui contient des visages détectés.  Filtre médian L’ajout de filtre médian avec l’action précédente nous a permis d’améliorer le taux de bonne détection à 95,10 % avec un nombre d’images égal à 816 qui contient des visages détectés. Figure 5.2 : Exemple d’image après prétraitement Etirement histogramme Egalisation histogramme + Filtre médiane
  55. 55. 49 Les résultats obtenus sont assez bons, et dans nos tentatives d’amélioration par la création d’un module de prétraitement pour les images, nous nous sommes aperçu que la qualité d’une image est au moins aussi importante que l’algorithme qui l’utilise. Sachant qu’une détection efficace est indispensable pour obtenir de bons résultats de reconnaissance, Nous nous sommes servis d’OpenCV comme d’un outil clé-en-main pour effectuer cette partie. Dans la partie suivante, nous détaillerons la réalisation de la reconnaissance de visage. 3. Reconnaissance de visage A ce niveau du processus, nous sommes en possession d’une image propre, c'est-à- dire libérée du bruit et ne contenant que l’information utile à analyser. 3.1. Implémentation Après la détection de visages, nous avons utilisé une autre fois la fonction « cvHaarDetectObjects » avec une cascade «haarcascade_mcs_eyepair_big.xml» proposée aussi par OpenCV pour détecter les yeux. Nous avons testées cette cascade sur les 858 photos de visages détectés. Voici les résultats obtenus: Bonnes détections Mauvaises détections Nombre Pourcentage Nombre Pourcentage 831 96.85 % 27 3.15 % Tableau 5.2: Résultat des détections des yeux Une fois les yeux détectés, nous pouvons changer l’espace couleur RGB en YCrCb dont le but de détecter la couleur de peau et de déterminer la proportion des yeux, pour cela nous avons utilisés la fonction « cvCvtColor » de la bibliothèque OpenCV.
  56. 56. 50 La détection de couleur de la peau est basée sur les deux composantes de chrominance Cr et Cb par contre la proportion des yeux est calculée en utilisant la composante luminance Y, ce qui nous amène à utiliser la fonction « cvSplit » pour isoler les différents canaux de l’espace couleur YCrCb. La détection des points d'intérêts est primordiale pour calculer la proportion des yeux. La librairie OpenCV nous offre cette fonction « cvGoodFeaturesToTrack » qui est très pratique pour détecter les points d'intérêt. Ces deux caractéristiques (couleur de peau et proportion des yeux) représentent les attributs de la classe « Signature.cpp » qui est utilisé comme modèle comparable par rapport aux autres modèles enregistrées dans la base de données. 3.1.1 Base de données La base de données est définie de la façon suivante. Le répertoire racine contient deux dossiers:  Photos : elles contiennent les photos de la base de données.  Résultat : il contient les images de visage issu après la détection. Un fichier texte :  Base.txt : il contient les vecteurs caractéristiques des visages, chaque vecteur représente des informations exclusives pour, à savoir la proportion des yeux et la couleur de peau, lesquels sont inéluctables pour la phase de décision. Figure 5.3.1 : Fichier « Base.txt »
  57. 57. 51 Figure 5.3.2 : Dossier « Résultat » Figure 5.3.3 : Dossier « Photos » 3.2 Expérience Pour tester le système et notamment l’algorithme de reconnaissance faciale, nous avons utilisé une base de donnée de visage disponible sur internet. Il s’agit de la base offerte par l’université Essex qui se trouve en grande Bretagne [5].
  58. 58. 52 Les caractéristiques de la base sont :  Nombre total des individus : 395  Nombre des images par individu : 20  Nombre total des images : 7900  Genre : Contient des images des males et des femelles  Origine : Contient des images de différentes origines  Age : les images sont principalement des étudiants de première année, de sorte que la majorité des individus sont entre 18-20 ans, mais certaines personnes âgées sont également présentes.  Lunette : oui  Barbe : oui  Format des images : 24 bit couleur  Type des images : JPEG  Caméra utilisé : S-VHS caméscope  Éclairage: artificiel, un mélange de tungstène et fluorescent Nous avons utilisé aussi une base de photos appartenant à la fédération Tunisienne de football (FTF) afin de simuler des cas réels. Nous avons apporté quelques modifications sur certaines photos (histogramme, niveau de gris, rotation, échelle, couleur,...) pour bien tester la reconnaissance. Les tests appliqués à ces bases ont permis de bien configurer la fonction « cvGoodFeaturesToTrack » fournis par la bibliothèque OpenCV afin d’avoir une bonne qualité de reconnaissance. Nous avons bien conclu que le nombre maximal de points d'intérêt à trouver est à égale 100, la qualité minimum des points d’intérêts est égale à 0.09, la distance minimale entre deux points d’intérêt est égale à 4, finalement, la taille de voisinage est égale 3. En ce qui concerne le temps d’exécution, c’est la partie apprentissage qui prend beaucoup de temps (de l’ordre de deux ou trois secondes), la reconnaissance, elle, est rapide, le résultat est quasi immédiat.
  59. 59. 53 4. Interface utilisateurs 4 .1 Introduction A ce niveau, nous nous proposons de compléter notre travail par une interface utilisateur, et constatons que la bibliothèque OpenCV ne fournit pas des outils performants pour la construction des interfaces graphiques. D’où l’idée d’utiliser le langage C#, pour nous l’intérêt majeur d’utiliser ce langage réside dans la simplicité et l’efficacité de créer les interfaces graphiques. 4 .2 Fenêtre principale Figure 5.4 : Menu principale  Bouton : « Démarrer » : Lancer l’apprentissage des photos. « Base » : Permet d’afficher la base de données. « Charger photo » : Charger la photo à rechercher. « Reconnaissance » : Lancer la reconnaissance. « Clear » : Fermer toutes les fenêtres affichées. « Exit » : Quitter l’application.  Group box : « Configuration » : Amélioration de la qualité de reconnaissance. « Photo N° » : Indiquer les photos pour l’apprentissage. « Apprentissage » : Contient une barre de progression pour indiquer le déroulement d’apprentissage des photos.
  60. 60. 54 4 .3 Apprentissage des photos Figure 5.5 : Apprentissage des photos 4 .4 Fenêtre résultat Figure 5.6 : Apprentissage des photos 5. Résultats Les tests réalisés avaient pour but d’observer l’influence des conditions d’illuminations des sujets, de leurs distances par rapport au système de capture d’image et à la position du visage.
  61. 61. 55 En réalité, l’effet du premier cas est minimisé par le prétraitement des images et le second par le détecteur de visage mais il y a une influence sur la qualité du visage extrait. Quant au dernier, le système développé n’est pas adapté à la reconnaissance de profil. Il peut tout de même reconnaître des visages tournés d’un léger angle mais avec un taux d’erreur plus élevé. Base Bonnes détections Mauvaises détection Nombre Pourcentage Nombre Pourcentage FTF (90 visages) 62 68,88% 28 32.22% Essex (100 visages) 58 58% 42 42% Tableau 5.3: Résultat des détections de visage 6. Diagramme Phase 1 : Bibliographie (détection de visage) Phase 2 : Détection de visage Phase 3 : Bibliographie (reconnaissance de visage) Phase 4 : Reconnaissance de visage Phase 5 : Rédaction de rapport Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Mars Avril Mai Juin Juillet Aout Septembre Octobre
  62. 62. 56 7. Conclusion Nous avons tout d’abord abordé le processus de détection de visage à l’aide de la bibliothèque OpenCV, et nous avons essayé d’éliminer les fausses alarmes afin d’améliorer le taux de détection. Ensuite, nous avons traité le processus d’identification du visage en proposant une méthode qui consiste à extraire quelques caractéristiques de visage (proportion des coins des yeux et la couleur de peau).
  63. 63. 57 CONCLUSION GENERALE La reconnaissance d’individus demeure un problème complexe et non parfaitement résolu, malgré tous les travaux réalisés au cours des dernières années. Plusieurs problèmes incombent à cette tâche d’identification et chacun d’eux est non trivial. De nombreuses conditions réelles affectent la performance d’un système, cependant la détection automatique des visages influence énormément la performance du module d’identification. A travers ce projet nous avons mis en œuvre une approche d’identification du visage, et pour aboutir à ce but, il fallait au préalable aborder un travail de détection du visage. Pour cela nous avons détaillé dans le chapitre 4 nos travaux de détection et notre approche pour améliorer le résultat obtenu en ajoutant un module de prétraitement. Bien que notre méthode d’amélioration ait montré de bons résultats, au niveau de l’interpolation de visages non détectés par la librairie OpenCV, elle élimine parfois de vrais visages. Après la phase de détection, nous avons pu aborder la tâche de reconnaissance. Notre apport dans cette tâche délicate, est d’utiliser la notion des points d’intérêt pour reconstruire un modèle de visage. Ce projet ne manque pas de perspectives : pour la tâche de détection, et à partir des visages détectés par la librairie OpenCV, il est intéressant de trouver d’autres méthodes d’élimination des fausses alarmes et de détecter en contre-partie les visages oubliés par la méthode « Viola-Jones ». Nous proposons d’utiliser des approches heuristiques, pour prévoir si une telle détection correspond à un visage ou non, en tenant compte des positions des autres visages. Pour l’identification, nous proposons d’ajouter ou d’améliorer d’autres paramètres aux vecteurs qui caractérisent le visage comme par exemple : la géométrie de la tête et les distances entre les composantes faciale. La reconnaissance des visages fait partie de la biométrie qui est sans doute un domaine d’avenir. Au cours des prochaines décennies, de plus en plus de systèmes verront probablement le jour afin de réaliser une surveillance accrue.
  64. 64. 58 A travers ce PFE, nous avons apporté une modeste contribution dans ce domaine, dont l’intérêt réside dans la mise en place directe de l’application dans le cadre réel, puisqu’elle est destinée à être intégrée dans le système licence+ pour répondre aux besoins spécifiques et particuliers du monde sportif.
  65. 65. 59 Références bibliographiques Articles scientifiques : [Viola, 2001]: P. Viola, M. Jones, Rapid Object Detection using a Boosted Cascade of Simple Features, Conference On Computer Vision And Pattern Recognition 2001. [Yang, 2002]: Yang M H, Kriegman D, Ahuja N. Detecting faces in images: A survey. IEEE Trans Pattern Analysis and Machine Intelligence, 2002, 24(1):34-58. [Freund, 1996] Y. Freund, R.E. Schapire, Experiments with a New Boosting Algorithm, In Proc. 13th Int. Conf. on Machine Learning, 1996, 148.-156. [ALEM, 2003] : A. Lemieux « Systèmes d’identification de personnes par vision numérique » Université Laval, Québec Décembre 2003. [Turk_Pentland, 1991]: M. Turk and A. Pentland, Face recognition using eigenfaces. Proc. IEEE Conference on Computer Vision and Pattern Recognition, 1991, 586–591. [OpenCV, 2007]A Basic Introduction to OpenCV for Image Processing – Discover Lab School of Information - Technology & Engineering - University of Ottawa – January, 2007 [SCHMID, 00] C. Schmid, R. Mohr, and C. Bauckhage. Evaluation of interest point detectors. International Journal of Computer Vision, pages 151–172, 2000. [HARRIS 88] J. Harris and M. Stephens. A combined corner and edge detector. 4th ALVEY Vision Conference, pages 147–151, 1988. Sites Internet [1] http://opencvlibrary.sourceforge.net/ - OpenCV documentation and FAQs - 25 Mai 2010 [2] http://www.siteduzero.com/tutoriel-3-8619-les-operateurs-morphologiques.html - 20 Mai 2010 [3] http://www.biometrie-online.net - 10 Mars 2010 [4] http://www.face-rec.org - 16 Avril 2010 [5] http://cswww.essex.ac.uk/mv/allfaces/index.html - 20 Août 2010
  66. 66. 60 Annexe 1
  67. 67. 61 Annexe 2
  68. 68. 62 Annexe 3
  69. 69. 63
  70. 70. 64

×