SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Downloaden Sie, um offline zu lesen
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
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.
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.
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.
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
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
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
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.
3
Chapitre 1 - Contexte de projet
Contexte du projet
1Chapitre
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.
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
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).
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.
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
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.
10
Chapitre 2 - Etat de l’art
2Chapitre
Etat de l’art
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
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.
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.
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
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
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
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.
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
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.
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é)|
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.
22
Chapitre 3 - Analyse des besoins
3Chapitre
Analyse des besoins
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.
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.
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).
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
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.
28
Chapitre 4 - Conception
4Chapitre
Conception
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
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
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
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.
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
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
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
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
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
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
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
40
6. Diagramme de séquence
Figure 4.6 : Diagramme de séquence
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.
42
Figure 4.7 : Diagramme de classe
43
Chapitre 5 - Réalisation
5Chapitre
Réalisation
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.
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.
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+.
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
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
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.
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 »
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].
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.
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.
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.
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
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).
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.
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.
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
60
Annexe 1
61
Annexe 2
62
Annexe 3
63
64

Weitere ähnliche Inhalte

Was ist angesagt?

Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...Hajer Dahech
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
Rapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben SlimaRapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben SlimaIlef Ben Slima
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...Ramzi Noumairi
 
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)Yasmine Tounsi
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITLina Meddeb
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachAyoub Mkharbach
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESTombariAhmed
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webSalma Gouia
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Riadh K.
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRouâa Ben Hammouda
 
Reconnaissance faciale
Reconnaissance facialeReconnaissance faciale
Reconnaissance facialebgdu49xxx
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueEric Maxime
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Yasmine Lachheb
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développementDonia Hammami
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEOussama Djerba
 

Was ist angesagt? (20)

Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...Rapport  PFE  "Conception et développement d'un Portail web pour le Smart Met...
Rapport PFE "Conception et développement d'un Portail web pour le Smart Met...
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
Rapport de PFE
Rapport de PFERapport de PFE
Rapport de PFE
 
Rapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben SlimaRapport PFE Ilef Ben Slima
Rapport PFE Ilef Ben Slima
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
Projet de fin étude  ( LFIG : Conception et Développement d'une application W...Projet de fin étude  ( LFIG : Conception et Développement d'une application W...
Projet de fin étude ( LFIG : Conception et Développement d'une application W...
 
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)
Rapport Projet ERP - Plateforme Odoo 12 (PFE Licence)
 
RapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRITRapportPFE_IngenieurInformatique_ESPRIT
RapportPFE_IngenieurInformatique_ESPRIT
 
Rapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbachRapport pfe-ayoub mkharbach
Rapport pfe-ayoub mkharbach
 
Rapport pfe
Rapport pfeRapport pfe
Rapport pfe
 
RAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDESRAPPORT DE PROJET DE FIN D’ETUDES
RAPPORT DE PROJET DE FIN D’ETUDES
 
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_webRapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
Rapport final pfe_systeme_de_gestion _de_cabinet_de_formation_mobile_web
 
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
Rapport PFE : Développement D'une application de gestion des cartes de fidéli...
 
Rapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learningRapport- Conception et réalisation d'une plateforme social learning
Rapport- Conception et réalisation d'une plateforme social learning
 
Reconnaissance faciale
Reconnaissance facialeReconnaissance faciale
Reconnaissance faciale
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
 
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
Rapport PFE BIAT Conception et mise en place d’une plate-forme de gestion des...
 
Rapport de projet de conception et de développement
Rapport de projet de conception et de développementRapport de projet de conception et de développement
Rapport de projet de conception et de développement
 
Rapport de stage du fin d'étude
Rapport de stage du fin d'étudeRapport de stage du fin d'étude
Rapport de stage du fin d'étude
 
Pfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEEPfe conception et développement d'une application web GMAO JEE
Pfe conception et développement d'une application web GMAO JEE
 

Ähnlich wie Reconnaissance faciale

Rapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectRapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectAmine MEGDICHE
 
Conception et développement d’un système d’alerte et notification d’une tou...
Conception et développement  d’un système d’alerte et notification  d’une tou...Conception et développement  d’un système d’alerte et notification  d’une tou...
Conception et développement d’un système d’alerte et notification d’une tou...Bilel Khaled ☁
 
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...ElAzzabAbdeSsamad
 
Site web d'une agence de voyage
Site web d'une agence de voyage Site web d'une agence de voyage
Site web d'une agence de voyage WissalWahsousse
 
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L Assayag
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L AssayagOpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L Assayag
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L AssayagDanièle Attias
 
Opportunités et impacts des Widgets "Quelle en est la valeur ajoutée pour la...
Opportunités et impacts des Widgets "Quelle en est la  valeur ajoutée pour la...Opportunités et impacts des Widgets "Quelle en est la  valeur ajoutée pour la...
Opportunités et impacts des Widgets "Quelle en est la valeur ajoutée pour la...lenny assayag
 
Concéption et réalisation d'un processus décisionnel, tableau de bord social.
Concéption et réalisation d'un processus décisionnel, tableau de bord social.Concéption et réalisation d'un processus décisionnel, tableau de bord social.
Concéption et réalisation d'un processus décisionnel, tableau de bord social.Rim ENNOUR
 
rapport MobiResto
rapport MobiResto rapport MobiResto
rapport MobiResto Slim Hammami
 
Rapport_deStage
Rapport_deStageRapport_deStage
Rapport_deStageOmar TRAI
 
Backup & Restore SharePoint 2013 Farm
Backup & Restore SharePoint 2013 FarmBackup & Restore SharePoint 2013 Farm
Backup & Restore SharePoint 2013 FarmYoussef El Idrissi
 
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...FantsouLalaina
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Saadaoui Marwen
 
rapport fin d'etude
rapport fin d'etuderapport fin d'etude
rapport fin d'etudesihem-med
 
Application web de la gestion mabrouki soukayna 3026(1)
Application web de la gestion    mabrouki soukayna 3026(1)Application web de la gestion    mabrouki soukayna 3026(1)
Application web de la gestion mabrouki soukayna 3026(1)Mohamed Tcatvtg
 

Ähnlich wie Reconnaissance faciale (20)

Rapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFERapport Projet Fin d'Études PFE
Rapport Projet Fin d'Études PFE
 
Rapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework KinectRapport PFE réalisation d’un Framework Kinect
Rapport PFE réalisation d’un Framework Kinect
 
Conception et développement d’un système d’alerte et notification d’une tou...
Conception et développement  d’un système d’alerte et notification  d’une tou...Conception et développement  d’un système d’alerte et notification  d’une tou...
Conception et développement d’un système d’alerte et notification d’une tou...
 
cnam.pdf
cnam.pdfcnam.pdf
cnam.pdf
 
GEmploi : Smart school timetable management software using RFID technology
GEmploi : Smart school timetable management software using RFID technologyGEmploi : Smart school timetable management software using RFID technology
GEmploi : Smart school timetable management software using RFID technology
 
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...
392327755-Conception-Et-Realisation-d-Un-Site-Web-Et-Une-Application-Mobile-d...
 
Site web d'une agence de voyage
Site web d'une agence de voyage Site web d'une agence de voyage
Site web d'une agence de voyage
 
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L Assayag
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L AssayagOpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L Assayag
OpportunitéS Et Impacts Des Widgets Mbaebusiness D Attias L Assayag
 
Opportunités et impacts des Widgets "Quelle en est la valeur ajoutée pour la...
Opportunités et impacts des Widgets "Quelle en est la  valeur ajoutée pour la...Opportunités et impacts des Widgets "Quelle en est la  valeur ajoutée pour la...
Opportunités et impacts des Widgets "Quelle en est la valeur ajoutée pour la...
 
Concéption et réalisation d'un processus décisionnel, tableau de bord social.
Concéption et réalisation d'un processus décisionnel, tableau de bord social.Concéption et réalisation d'un processus décisionnel, tableau de bord social.
Concéption et réalisation d'un processus décisionnel, tableau de bord social.
 
rapport MobiResto
rapport MobiResto rapport MobiResto
rapport MobiResto
 
MEMOIRE DE STAGE
MEMOIRE DE STAGEMEMOIRE DE STAGE
MEMOIRE DE STAGE
 
Rapport_deStage
Rapport_deStageRapport_deStage
Rapport_deStage
 
Backup & Restore SharePoint 2013 Farm
Backup & Restore SharePoint 2013 FarmBackup & Restore SharePoint 2013 Farm
Backup & Restore SharePoint 2013 Farm
 
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...
L’implémentation de l’impression 3d en interne, au sein des hôpitaux, quels...
 
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
Rapport PFE ingénieur réseaux marwen SAADAOUI ( Juin 2018 )
 
PUPPET AND ICINGA WEB
PUPPET AND ICINGA WEBPUPPET AND ICINGA WEB
PUPPET AND ICINGA WEB
 
rapport fin d'etude
rapport fin d'etuderapport fin d'etude
rapport fin d'etude
 
Rapport finiale
Rapport finialeRapport finiale
Rapport finiale
 
Application web de la gestion mabrouki soukayna 3026(1)
Application web de la gestion    mabrouki soukayna 3026(1)Application web de la gestion    mabrouki soukayna 3026(1)
Application web de la gestion mabrouki soukayna 3026(1)
 

Reconnaissance faciale

  • 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.
  • 3. 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.
  • 4. 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.
  • 5. 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.
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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.
  • 10. 3 Chapitre 1 - Contexte de projet Contexte du projet 1Chapitre
  • 11. 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.
  • 12. 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
  • 13. 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).
  • 14. 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.
  • 15. 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
  • 16. 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.
  • 17. 10 Chapitre 2 - Etat de l’art 2Chapitre Etat de l’art
  • 18. 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
  • 19. 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.
  • 20. 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.
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. 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.
  • 25. 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
  • 26. 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.
  • 27. 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é)|
  • 28. 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.
  • 29. 22 Chapitre 3 - Analyse des besoins 3Chapitre Analyse des besoins
  • 30. 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.
  • 31. 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.
  • 32. 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).
  • 33. 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
  • 34. 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.
  • 35. 28 Chapitre 4 - Conception 4Chapitre Conception
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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.
  • 40. 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
  • 41. 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
  • 42. 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
  • 43. 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
  • 44. 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
  • 45. 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
  • 46. 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
  • 47. 40 6. Diagramme de séquence Figure 4.6 : Diagramme de séquence
  • 48. 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.
  • 49. 42 Figure 4.7 : Diagramme de classe
  • 50. 43 Chapitre 5 - Réalisation 5Chapitre Réalisation
  • 51. 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.
  • 52. 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.
  • 53. 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+.
  • 54. 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
  • 55. 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
  • 56. 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.
  • 57. 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 »
  • 58. 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].
  • 59. 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.
  • 60. 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.
  • 61. 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.
  • 62. 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
  • 63. 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).
  • 64. 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.
  • 65. 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.
  • 66. 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
  • 70. 63
  • 71. 64