Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
N° d’ordre : 01 / RS / TCO Année Universitaire : 2015 / 2016
UNIVERSITE D’ANTANANARIVO ----------------------
ECOLE SUPERIEURE POLYTECHNIQUE -----------------------
MENTION TELECOMMUNICATION
MEMOIRE
en vue de l’obtention
du DIPLOME de Licence
Domaine : Sciences de l’Ingénieur Mention : Télécommunication
Parcours : Réseaux et Systèmes
par : ANDRIAMIARANARIVO Mahery
CONCEPTION ET REALISATION D’UN SYSTEME BIOMETRIQUE BASE SUR LA RECONNAISSANCE
DU VISAGE PAR RESEAUX DE NEURONES ARTIFICIEL
Soutenu le vendredi 31 mars 2017 devant la Commission d’Examen composée de :
Président : M. RAKOTONDRAINA Tahina Ezéchiel
Examinateurs :
M. RADONAMANDIMBY Edmond Jean Pierre
M. BOTO ANDRIANANDRASANA Jean Espérant
M. RANDRIAMITANTSOA Andry Auguste
Directeur de mémoire : M. RAVONIMANANTSOA Ndaohialy Danà
i
REMERCIEMENTS
Je rends grâce à Dieu pour sa bonté, de m’avoir donné la force et la santé durant la réalisation de ce
mémoire.
Je remercie Monsieur RAMANOELINA Panja Armand René, Professeur Titulaire, Président de
l’Université d’Antananarivo.
J’adresse mes sincères remerciements à Monsieur ANDRIANAHARISON Yvon Dieudonné,
Professeur Titulaire, Responsable du domaine sciences de l’ingénieur, de m’avoir donné la
permission d’effectuer mes études au sein de l’école.
Je tiens à exprimer mes profondes reconnaissances à Monsieur RAKOTOMALALA Mamy Alain,
Maître de Conférences, Enseignant et Responsable de la mention Télécommunication, pour ma
formation au sein du département.
J’exprime mes profondes gratitudes à Monsieur RAVONIMANANTSOA Ndaohialy Danà,
Assistant d’Enseignement et de Recherche, pour m’avoir dirigé tout au long de ce travail, et qui n’a
cessé de me prodiguer de précieux conseils malgré ses occupations.
Je tiens aussi à remercier Monsieur RAKOTONDRAINA Tahina Ezéchiel, Maître de Conférences,
qui nous a fait l’honneur de présider les membres du Jury de ce mémoire.
Je témoigne toute ma reconnaissance aux autres membres du jury qui ont voulu examiner ce travail :
Monsieur RADONAMANDIMBY Edmond Jean Pierre, Assistant d’Enseignement et de
Recherche.
Monsieur BOTO ANDRIANANDRASANA Jean Espérant, Assistant d’Enseignement et de
Recherche.
Monsieur RANDRIAMITANTSOA Andry Auguste, Maître de Conférences.
J'adresse tous mes remerciements à tous les Enseignants de l’Ecole Supérieure Polytechnique, en
particulier ceux du département télécommunication, qui nous ont formés durant ces études
universitaires.
J'exprime ma profonde gratitude aux membres de ma famille, pour leurs soutiens durant mes
études. Je les remercie d'avoir appuyé mes choix et d'avoir toujours su m'encourager. Enfin, je ne
saurai oublier toutes les personnes qui m’ont aidées de près ou de loin dans l’élaboration du présent
mémoire, je vous en suis très reconnaissant et que la Grâce de Dieu vous inonde.
ii
TABLE DES MATIERES
REMERCIEMENTS ........................................................................................................................ i
TABLES DES MATIERES…………………………………. ....................................................... ii
NOTATIONS ................................................................................................................................. vii
INTRODUCTION GENERALE ................................................................................................... 1
CHAPITRE 1 : LA BIOMETRIE .................................................................................................. 2
1.1 Introduction ........................................................................................................................... 2
1.2 Le marché mondial de la biométrie ..................................................................................... 2
1.3 Les parts de marché par technologie ................................................................................... 3
1.4 Les différentes techniques biométriques ............................................................................. 4
1.4.1 L’analyse morphologique................................................................................................ 4
1.4.2 L’analyse comportementale ............................................................................................ 4
1.5 Architecture d’un système biométrique .............................................................................. 4
1.5.1 Module d’apprentissage .................................................................................................. 4
1.5.2 Module de reconnaissance .............................................................................................. 5
1.5.3 Module d’adaptation ....................................................................................................... 5
1.6 Evaluation de performance .................................................................................................. 6
1.7 Quelques technologies biométriques .................................................................................... 6
1.7.1 Les empreintes digitales .................................................................................................. 7
1.7.2 L’empreinte palmaire ...................................................................................................... 8
1.7.3 La voix .............................................................................................................................. 9
1.7.4 L’iris ................................................................................................................................. 9
1.7.5 La rétine ......................................................................................................................... 10
1.7.6 La signature ................................................................................................................... 11
1.7.7 Le visage ........................................................................................................................ 11
1.8 Conclusion ............................................................................................................................ 12
CHAPITRE 2 : LES TECHNIQUES DE DETECTION ET DE RECONNAISSANCE DU
VISAGE .......................................................................................................................................... 13
iii
2.1 Introduction ......................................................................................................................... 13
2.2 Approche de la détection du visage ................................................................................... 13
2.2.1 Approches basées sur l’apparence ................................................................................ 13
2.2.2 Approches basées sur les connaissances acquises ....................................................... 14
2.2.3 Approches basées sur la Template matching ............................................................... 14
2.2.4 Approches basées sur des caractéristiques invariantes................................................ 15
2.2.4.1 Les méthodes basées sur les caractéristiques du visage .......................................... 15
2.2.4.2 Les méthodes basées sur la couleur de la peau ....................................................... 15
2.3 Le prétraitement .................................................................................................................. 16
2.3.1 Normalisation photométrique ....................................................................................... 16
2.3.2 La normalisation géométrique ...................................................................................... 16
2.4 Les principales difficultés de la reconnaissance du visage .............................................. 17
2.4.1 Changement d’illumination .......................................................................................... 17
2.4.2 Variation de pose ........................................................................................................... 17
2.4.3 Expressions faciales ...................................................................................................... 18
2.4.4 Présence ou absence des composantes structurels ....................................................... 18
2.4.5 Occultations partielles ................................................................................................... 19
2.5 Les algorithmes de reconnaissance du visage ................................................................... 19
2.5.1 Dimensionnalités de l’espace visage ............................................................................. 19
2.5.2 Analyse en Composantes Principales ........................................................................... 19
2.5.3 Analyse discriminante linéaire ..................................................................................... 20
2.5.4 Direct Fractional-step Linear Discriminative Analysis ............................................... 20
2.5.5 Analyse en composantes indépendantes ....................................................................... 21
2.5.6 Le réseau de neurones ................................................................................................... 21
2.5.7 Machine à vecteur de support ....................................................................................... 21
2.5.8 Modèle de Markov caché .............................................................................................. 22
iv
2.5.9 Méthode basée sur l’apparence locale .......................................................................... 22
2.5.10 Template matching ...................................................................................................... 23
2.6 Conclusion ............................................................................................................................ 23
CHAPITRE 3 : LES RESEAUX DE NEURONES ARTIFICIELS ......................................... 24
3.1 Introduction ......................................................................................................................... 24
3.2 Définitions ............................................................................................................................ 24
3.3 Principes ............................................................................................................................... 24
3.4 Modélisation d’un neurone formel .................................................................................... 25
3.5 Architecture ......................................................................................................................... 27
3.6 Apprentissage des réseaux de neurones ............................................................................ 28
3.6.1 Apprentissage supervisé et renforcement ..................................................................... 28
3.6.2 Apprentissage non supervisé ou auto-organisationnel ................................................ 29
3.6.3 Apprentissage mode hybride ......................................................................................... 29
3.6.4 Règles d’apprentissages ................................................................................................ 30
3.6.4.1 Loi de Hebb ............................................................................................................. 30
3.6.4.2 Règle de Widrow-Hoff ............................................................................................ 31
3.6.4.3 Règle de correction d’erreurs .................................................................................. 32
3.6.4.4 Règle d’apprentissage par compétitions .................................................................. 33
3.7 Différents types de réseau de neurones artificiel .............................................................. 33
3.7.1 Réseaux feedforward ..................................................................................................... 33
3.7.1.1 Perceptron simple .................................................................................................... 33
3.7.1.2 Adaline .................................................................................................................... 35
3.7.1.3 Le Perceptron multicouches ou Multi-Layer Perceptron (MLP) ............................ 36
3.7.2 Réseaux récurrents ........................................................................................................ 37
3.7.2.1 Réseau de Kohonen ................................................................................................. 37
3.7.2.2 Réseau de Hopfield ................................................................................................. 37
v
3.7.2.3 Les réseaux Adaptive Resonance Theory ............................................................... 38
3.8 Propriétés des réseaux de neurones ................................................................................... 38
3.9 Conclusion ............................................................................................................................ 39
CHAPITRE 4 : CONCEPTION ET REALISATION ............................................................... 40
4.1 Description de projet ........................................................................................................... 40
4.1.1 Présentation du projet ................................................................................................... 40
4.1.2 Spécification des besoins fonctionnels ......................................................................... 41
4.1.3 Spécification des besoins non fonctionnels .................................................................. 41
4.1.4 Objectifs du projet ......................................................................................................... 41
4.2 Outils de travail ................................................................................................................... 42
4.2.1 Matériel .......................................................................................................................... 42
4.2.2 Logiciels ......................................................................................................................... 42
4.2.2.1 EDI Netbeans .......................................................................................................... 42
4.2.2.2 JMerise .................................................................................................................... 43
4.2.2.3 MySQL .................................................................................................................... 43
4.2.3 Langage informatique ................................................................................................... 43
4.2.3.1 Java .......................................................................................................................... 43
4.2.3.2 SQL ......................................................................................................................... 43
4.2.4 Framework et Librairie ................................................................................................. 44
4.2.4.1 OpenCV ................................................................................................................... 44
4.2.4.2 JavaCV .................................................................................................................... 44
4.3 Conception ........................................................................................................................... 44
4.3.1 Algorithme de détection du visage ................................................................................ 44
4.3.2 Normalisations............................................................................................................... 45
4.3.3 Les réseaux de neurones artificiels dans la reconnaissance du visage ....................... 45
4.3.3.1 Prétraitement ........................................................................................................... 45
vi
4.3.3.2 Architecture ............................................................................................................. 46
4.3.3.3 Fonction de transfert ................................................................................................ 49
4.3.3.4 Fonctionnement ....................................................................................................... 49
4.3.3.5 Apprentissage .......................................................................................................... 50
4.3.4 Présentation de MERISE .............................................................................................. 50
4.3.4.1 Modèle conceptuel de données ............................................................................... 51
4.3.4.2 Modèle logique de données ..................................................................................... 52
4.3.4.3 Modèle physique de donnée .................................................................................... 53
4.4 Réalisation ............................................................................................................................ 53
4.4.1 Présentation général de l’application ........................................................................... 54
4.4.2 Fonctionnalité de base .................................................................................................. 56
4.4.3 Fonctionnalité supplémentaire ..................................................................................... 61
4.5 Conclusion ............................................................................................................................ 64
CONCLUSION GENERALE ...................................................................................................... 65
ANNEXE 1 : NEURONE BIOLOGIQUE .................................................................................. 66
ANNEXE 2 : SCRIPT SQL POUR LA CREATION DE LA BASE DE DONNEES ............. 67
ANNEXE 3 : CONFIGURATION DE NETBEANS AVEC L’OPENCV ............................... 70
ANNEXE 4 : CONFIGURATION DU SERVEUR MYSQL SOUS CENTOS 7 .................... 71
BIBLIOGRAPHIE ........................................................................................................................ 72
FICHE DE RENSEIGNEMENTS ................................................................................................. 74
vii
NOTATIONS
1. Minuscules latines
ai Valeur d’activation de neurone Ni
aj Valeur d’activation de neurone Nj
ek(t) Ecart
en Entrée du réseau
F Fonction d'activation
f(x) Fonction de transfert
H Hauteur de l’image en pixels
l Largeur de l'image en pixels
R Constante positive qui présente la force d’apprentissage
w1 Poids de connexions entre le neurone de la couche compétition et
celle de classification
w2 Poids de connexions entre le neurone de la couche classification
et celle de la sortie
wij Intensités des connexions entre la i-ième cellule d’entrée et la j-
ième cellule de sortie
wk Poids à l’instant k
xk Valeur de l’entrée avec laquelle le poids w st associé à l’instant k
2. Minuscules grecques
α facteur d’apprentissage
3. Majuscules grecques
Δwij Coefficient synaptique
∆_w R ̃_adaline (w) Approximation du gradient
Є(t) Pas du gradient
Θ Seuil
4. Abréviations
3D Trois Dimensions
ACP Analyse en Composantes Principales
viii
ADALINE Adaptive Linear Element
ADN Acide Désoxyribonucléique
API Application Programming Interface
ART Adaptive Resonance Theory
CD-ROM Compact Disk Read Only Memory
CPU Central Procesor Unit
DF-LPA Direct Fractional-Step Linear Discriminative Analysis
FAR False Acceptance Rate
FLD Fisher Discriminating Linear
FRR False Rejection Rate
HMM Hidden Markov Model
HSL Hue-Saturation-Luminance
IBG International Biometric Group
ICA Independent Components Analysis
IHM Interface Homme Machine
JDK Java Development Kit
JPEG Joint Photographic Experts Group.
JVM Java Virtual Machine
LDA Linear Discriminative Analysis
MCD Modèle Conceptuel De Données
MERISE Méthode d’Etude et de Réalisation Informatique pour les
Systèmes d’Entreprise
MLD Modèle Logique De Données
MLP Multi-Layer Perceptron
MPD Modèle Physique De Données
OpenCV Open Computer Vision
OS Operating System
PCA Principal Components Analysis
pixel Picture Element
RAM Random Acces Memory
RGB Red-Green-Blue
RVB Rouge-Vert-Bleu
ix
SGBDR Système de Gestion de Bases de Données Relationnelles
SVM Support Vector Machine
TSL Teinte-Saturation-Luminance
VQ Vector Quantifization
5. Notations spéciales
maxLoc Matrice maximale
minLoc Matrice minimale
maxval Matrice maximale de maxLoc
minval Matrice minimale de maxLoc
1
INTRODUCTION GENERALE
Actuellement, l’informatisation est en pleine essor dans notre pays. On parle de plus en plus de la
numérisation dans les différents domaines. La mise en place des systèmes répondant à cette tendance
est en cours surtout dans les départements administratifs et stratégiques afin de diminuer le taux de
corruption et l’insécurité. Ces applications apparaissent dans notre vie quotidienne comme
l’utilisation de la carte puce, distributeur automatique de billet de banque. De plus, la conversion
de notre permis de conduire en biométrique est une réalité.
Le développement de système biométrique est une des recherches en essor dans le monde. La
progression de technologie numérique nous invite à réaliser un système capable d’identifier une
personne à partir de son propre aspect. Ces caractéristiques biométriques peuvent être les empreintes
digitales, empreintes palmaires, voix, rétine, iris, visage, signature.
Nous avons choisi la reconnaissance des visages comme moyen d’identification étant donné qu’elle
ne demande pas d’équipement d’acquisition très complexe. Ainsi, si nous rencontrons une personne,
notre cerveau va chercher dans notre mémoire et va vérifier si cette personne est répertoriée ou non.
En utilisant le réseau de neurone artificiel et l’algorithme « machine Learning », on doit réaliser un
système intelligent assimilable à ce mécanisme nerveux.
Ce mémoire s’intitule « Conception et réalisation d’un système biométrique basé sur la
reconnaissance du visage par réseaux de neurones artificiel ». Il est divisé en quatre parties.
Le premier chapitre se focalise sur la biométrie. Il illustre notamment sur ses généralités, marché
éventuelle, et ses aspects techniques.
Le second chapitre sera consacré aux techniques de détection et reconnaissance du visage, où seront
abordés la représentation des différentes approches pour la détection du visage, puis les phases de
prétraitement. Ensuite, les principales difficultés qu’on peut rencontrer lors de traitement. Enfin,
nous allons détaillées les différents algorithmes les utilisées pour reconnaître le visage.
Le troisième chapitre consiste à développer les réseaux de neurones artificiels, en commençant par
leur description pour passer à leurs différents types d’apprentissages. Puis, nous allons détailler ses
différents types en terminant leurs propriétés.
Le dernier chapitre concernera la conception et la réalisation d’une application permettant la
reconnaissance du visage.
2
CHAPITRE 1
LA BIOMETRIE
1.1 Introduction
Depuis quelques années, les systèmes de biométries sont de plus en plus utilisés. On peut définir
la biométrie comme une technique d’identification d’un individu au moyen de ses caractéristiques
morphologiques [1]. Les caractéristiques sont choisies pour varier peu au cours de la vie de
l’individu et être différents d’un individu à un autre (même pour des jumeaux). Elle consiste en
l’analyse mathématique des caractéristiques biologiques d’une personne et a pour objectif de
déterminer son identité de manière irréfutable [2]. Grace à l’utilisation de l’ordinateur étant donné
sa capacité de traiter et de stocker des données, il nous est permis de créer des systèmes de
biométries informatisées. Le but de ce chapitre est de présenter le marché mondial de la biométrie
ainsi que les parts de marché par technologie, les différentes techniques biométriques puis son
architecture ainsi que ses différentes technologies.
1.2 Le marché mondial de la biométrie
A l’échelle mondiale, « International Biometric Group » (IBG) établie un rapport sur le marché de
la biométrie. Il analyse complètement des chiffres d’affaires, des tendances de croissance, et des
développements industriels pour le marché de la biométrie actuel et futur.
Il est essentiel de lire ce rapport pour des établissements déployant la technologie biométrique, les
investisseurs dans les entreprises biométriques, ou les développeurs de solutions biométriques. Le
chiffre d’affaires de l’industrie biométrique incluant les applications judiciaires et celles du secteur
public, se développe rapidement. On attribue une grande partie de la croissance au contrôle d’accès
aux systèmes d’information (Ordinateur/réseau) et au commerce électronique, même si les
applications du secteur public continuent à être une partie essentielle de l’industrie.
On prévoit que le chiffre d’affaires des marchés émergents (accès aux systèmes d’information,
téléphonie, accès physique, commerce électronique et surveillance) dépasse le chiffre d’affaires des
secteurs plus matures (identification criminelle et identification des citoyens) [3].
3
Figure 1.01 : Evolution du marché international de la biométrie
1.3 Les parts de marché par technologie
La principale technologie biométrique en termes de part de marché est les empreintes digitales : près
de 50% du chiffre d’affaires total (hors applications judiciaires). Ainsi, la reconnaissance du visage,
avec 12 % du marché (hors applications judiciaires), dépasse les empreintes palmaires, qui avaient
avant la deuxième place en termes de source de revenus après les empreintes digitales [4].
Figure 1.02 : Parts de marché des différentes méthodes biométriques
4
1.4 Les différentes techniques biométriques
Dans les applications et secteurs, il existe plusieurs techniques biométriques utilisées, mais on peut
en distinguer en deux catégories :
L’analyse morphologique
L’analyse comportementale
1.4.1 L’analyse morphologique
Elle est basée sur l’identification de traits physiques particuliers qui, pour toute personne, sont
uniques et permanents. Elle regroupe l’iris de l’œil, le réseau veineux de la rétine, les empreintes
digitales, les empreintes palmaires, les traits du visage, etc…
1.4.2 L’analyse comportementale
Elle se base sur l’analyse de certains comportements d’une personne. Elle regroupe la
reconnaissance vocale, la dynamique de frappe au clavier, la dynamique de la signature, etc…Par
ailleurs, il existe une autre catégorie qui est l’étude des traces biologiques telles que : l’ADN, le
sang, l’urine, la salive, etc...
1.5 Architecture d’un système biométrique
Dans un système biométrique, il existe toujours au moins deux modules :
Le module d’apprentissage
Le module de reconnaissance
Ainsi, le troisième module est le module d’adaptation. Pendant l’apprentissage, le système va
acquérir une ou plusieurs mesures biométriques afin de construire un modèle de l’individu. De ce
fait, ce modèle de référence servira de point de comparaison lors de la reconnaissance. Grace au
module d’adaptation, le modèle pourra être réévalué après chaque utilisation [5].
1.5.1 Module d’apprentissage
Au cours de l’apprentissage, plusieurs campagnes d’acquisitions de données peuvent être réalisées
afin d’assurer une certaine robustesse au système de reconnaissance aux variations temporelles des
données. De ce fait, les caractéristiques biométriques des individus sont saisies par un capteur
biométrique, puis représentées sous forme numérique (signature). En effet, ce modèle permet de
faciliter la phase de reconnaissance, et de diminuer la quantité de données à stocker.
5
Les performances du système sont grandement influencées par la qualité du capteur. Pour remédier
à ces problèmes, il est nécessaire d’effectuer un prétraitement afin d’extraire les paramètres du
signal. Cependant, les capteurs de qualité sont en général coûteux et leur utilisation est donc limitée
à des applications de haute sécurité pour un public restreint.
1.5.2 Module de reconnaissance
Au cours de la reconnaissance, on mesure la caractéristique biométrique puis on extraire un
ensemble de paramètres comme lors de l’apprentissage. En effet, on utilise un capteur qui possède
des propriétés aussi proches que du capteur utilisé durant la phase d’apprentissage. De ce fait, il
faut appliquer une série de prétraitement pour limiter la dégradation des performances. Ainsi, on
distingue deux modes opératoires pour la suite de la reconnaissance :
En mode identification : l’identité de la personne est devinée par le système. De ce fait, il
répond donc à une question de type : « Qui suis-je ? ». Ainsi, le système compare le signal
mesuré avec les différents modelés contenus dans la base des données. En effet, on parle de
l’identification alors qu’on suppose que toute la personne qui l’utilise possède un modèle
dans la base de données [6].
En mode vérification : le système doit répondre à une question de type : « Suis-je bien la
personne que je prétends être ? ». Le système doit vérifier que l’identité de l’individu est
bien celle proposée par l’utilisateur. En effet, il suffit alors de comparer le signal avec un
seul des modèles présents dans la base de données. Ainsi, on suppose qu’un individu qui n’a
pas de modèle dans la base de données (imposteur) peut chercher à être reconnu si bien
qu’on parle de problème de système ouvert.
1.5.3 Module d’adaptation
Pendant la phase de l’apprentissage, on ne capture que quelques instances d’un même attribut pour
limiter la gêne pour l’utilisateur. En effet, il est difficile de construire un modèle assez général
capable de décrire toutes les variations possibles de cet attribut. Ainsi, les caractéristiques de cette
biométrie ainsi que ses conditions d’acquisition peuvent varier. Alors, il est nécessaire déployer
l’adaptation pour maintenir voire améliorer la performance du système utilisation après utilisation.
De plus, l’adaptation peut se faire en deux modes : en mode supervisé ou non-supervisé. De ce fait,
il est préférable d’utiliser le mode supervisé puisque le second mode est de loin de plus utile en
pratique.
6
Si le module de reconnaissance identifie un utilisateur, les paramètres extraits du signal serviront
alors à ré-estimer son modèle. En plus, le taux d’adaptation dépend de performance du module de
reconnaissance dans l’identité de l’utilisateur.
Il faut bien noter que l’adaptation est quasi indispensable pour les caractéristiques non permanentes
comme la voix [6].
1.6 Evaluation de performance
Principalement, on peut mesurer la performance d’un système d’identification à l’aide de trois
critères : sa précision, son efficacité (temps de réponse), et le volume de données qui doit être stocké
pour chaque locuteur. Comme nous l’avons vu précédemment, l’identification et la vérification sont
des modes opératoires différents. Alors, elles nécessitent des mesures de précision différentes qu’on
va développer ci-dessous :
Evaluation de l’identification : le plus souvent, on utilise le taux d’identification pour la
mesure même s’il n’est pas toujours suffisant. Effet, en cas d’erreur, il peut être utile de
savoir si le bon choix se trouve dans les N premiers puis on trace le score cumulé qui
représente la probabilité que le bon choix se trouve parmi les N premiers. Ainsi, dans le cas
où il existe plusieurs modèles pour chaque individu dans la base de données, on peut utiliser
les mesures classiques des systèmes de recherche dans la base de données. De plus, la
précision est le rapport entre le nombre de modèles correctement retrouvés par le système
dans la base de données et le nombre total de modèles retrouvés. Tandis que, le rappel est le
rapport entre le nombre de modèles correctement retrouvé dans la base de données et le
nombre total de modèles qui auraient dû être retrouvées.
Evaluation de la vérification : on y peut rencontrer deux types d’erreurs : il peut rejeter un
utilisateur légitime c’est le faux rejet ; par contre, il peut aussi accepter un imposteur c’est
la fausse acceptation. Alors, la performance d’un système se mesure à son taux de faux rejet
(False Rejection Rate ou FRR) et à son taux de fausse acceptation (False Acceptance Rate
ou FAR) [7].
1.7 Quelques technologies biométriques
Il n’existe plus de biométrie unique qui pouvait répondre efficacement aux besoins de toutes les
applications. Ainsi, on propose, analyse et évalue un certain nombre de techniques biométriques.
De plus, chaque biométrie à ses avantages et ses limites si bien que chaque biométrie est utilisée
7
dans une application particulière. Alors, pour les caractéristiques physiques, on utilise la
reconnaissance du visage, les empreintes digitales, les empreintes palmaires, la rétine et l’iris. Et
puis, pour les caractéristiques comportementales, on utilise les biométries basées sur la voix et la
signature.
Par ailleurs, il existe d’autres biométriques basées sur les veines de la main, l’ADN, l’odeur
corporelle, la forme de l’oreille, la forme des lèvres, le rythme de frappe sur un clavier, la démarche,
qui ne sera pas développées dans ce chapitre.
1.7.1 Les empreintes digitales
Les empreintes digitales sont les caractéristiques biométriques les plus communément utilisées pour
la reconnaissance de criminels. Le premier système automatique d'authentification utilisant les
empreintes digitales a été commercialisé au début des années soixante.
Elles sont composées de lignes localement parallèles présentant des points singuliers (minuties) et
constituent un motif unique, universel et permanent. Pour obtenir une image de l’empreinte d’un
doigt, les avancées technologiques ont permis d’automatiser la tâche au moyen de capteurs intégrés,
mais on remplace par l’encre et du papier pour l’utilisation pratique. Selon différents mécanismes
de mesure (pression, champ électrique, température), ces capteurs permettent de mesurer
l’empreinte d’un doigt fixe positionné sur ce dernier (capteur matriciel) ou en mouvement (capteurs
à balayage) [8].
A l’aide d’un lecteur d’empreinte digitale, on capture l’image d’empreinte d’un individu et puis, on
extraire les caractéristiques de l’image puis un modèle est créé. Si on suive des précautions
appropriées, on obtiendra un résultat moyen très précis d’authentification.
On peut classer en deux catégories les techniques d’apparient des empreintes digitales :
Les techniques basées sur la détection locale des minuties : ils consistent à trouver les points
de minuties puis trace leurs emplacements sur l’image du doigt. Cependant, il y a quelques
difficultés avec cette approche lorsque l’image d’empreinte digitale est d’une qualité
médiocre étant donné que l’extraction précise des points de minutie est difficile. Cette
méthode ne tient pas compte la structure globale de crêtes et de sillons.
Les techniques basées sur la corrélation : Elles sont capables de surmonter les problèmes de
l’approche fondée sur les minuties. On y utilise la structure globale de l’empreinte, mais les
résultats sont moins précis qu’avec les minuties. De plus, Elles sont affectées par la
translation et rotation de l’image de l’empreinte.
8
En général, on combine les deux approches pour augmenter les performances du système.
Figure 1.03 : Le processus pour la reconnaissance par empreinte digitale.
1.7.2 L’empreinte palmaire
L’empreinte palmaire est une technologie biométrique récente. Elle consiste à capturer une image
en 3D de la main afin d’en extraire plusieurs dizaines de points prenant en compte la largeur, la
longueur, la forme des doigts, etc…
Ce sont généralement des capteurs infrarouges qui sont utilisés et qui photographiquement sous
deux angles différents afin d’obtenir une image en trois dimensions (3D). Les mesures effectuées
sont peu encombrantes et le contrôle peut se faire sans contact.
Malgré sa bonne acceptation générale, elle présente quelques inconvénients : elle est moins
discriminante que les techniques précédentes et la forme de la main évolue avec le temps ou
certaines maladies.
Les capteurs sont plus encombrants que les empreintes digitales. Pour sécuriser encore le processus
d’authentification, cette technique peut être couplée avec la capture du réseau veineux de la main
qui peut être cartographié à l’aide d’une caméra infrarouge [9].
Figure 1.04 : Scanneur pour l’empreinte palmaire
9
1.7.3 La voix
De tous les traits humains dans la biométrie, la voix est celle que les humains apprennent à
reconnaître dès le plus jeune âge. On peut classer en deux catégories les systèmes de reconnaissance
de locuteur :
Les systèmes dépendant du texte prononcé : l’utilisateur est tenu d’utiliser un texte (mot ou
une phrase) fixe prédéterminé au cours des séances d’apprentissage et de reconnaissance.
Les systèmes indépendants du texte : ils sont le plus difficile puisque le locuteur parle
librement sans texte prédéfini mais elles sont utiles dans le cas où l’on a besoin de
reconnaître un locuteur sans sa coopération.
La recherche sur la reconnaissance de locuteur est en pleine croissance étant donné qu’elle ne
nécessite pas de matériel cher, puisque la plupart des ordinateurs personnels de nos jours sont déjà
équipés d’un microphone. Toutefois, le bruit doit être influencé la vérification et par suite réduire
son utilisation dans les systèmes biométriques.
Dans un système de reconnaissance de locuteur, on mesure premièrement le signal puis on le
décompose en en plusieurs canaux de fréquences passe-bande. Ensuite, on extraire les
caractéristiques importantes du signal vocal de chaque bande. Parmi ses différentes caractéristiques,
on utilise les coefficients Cepstraux. Ils sont obtenus par le logarithme de la transformée de Fourier
du signal vocal dans chaque bande. De plus, la mise en correspondance des coefficients Cepstraux
permet de reconnaître la voix. En général, on fait appel à des approches fondées sur les modèles de
Markov cachés, la quantification vectorielle, ou la déformation temps dynamique [10].
1.7.4 L’iris
L’utilisation de l’iris comme caractéristique biométrique unique de l’homme a donné lieu à une
technologie d’identification fiable et extrêmement précise. L’iris est la région, sous forme d’anneau,
située entre la pupille et le blanc de l’œil, il est unique. Il a une structure extraordinaire et offre de
nombreuses caractéristiques de texture qui ont uniques pour chaque individu.
De ce fait, les algorithmes utilisés dans la reconnaissance de l’iris sont si précis même si la planète
toute entière pourrait être inscrite dans une base de données de l’iris avec peu d’erreurs
d’identifications.
En général, on capture ‘image de l’iris à l’aide d’une caméra standard. En effet, cette étape de
capture implique une coopération de l’individu. En plus, on connait plusieurs contraintes liées à
l’utilisation de cette technologie comme la distance entre l’individu et le capteur [11].
10
Figure 1.05 : Une photo d’iris
1.7.5 La rétine
La rétine est la pellicule photosensible située au fond de l’œil. Cette technique utilise les dessins
formés par les vaisseaux sanguins de la rétine unique pour chaque individu et assez stable durant la
vie de la personne. Cette mesure biométrique est plus ancienne que celle utilisant l'iris, mais elle a
été moins bien acceptée par le public et les utilisateurs, sans doute à cause de son caractère trop
contraignant : la mesure doit s'effectuer à très faible distance du capteur (quelques centimètres), qui
effectue ensuite un balayage de la rétine. Il est physiquement impossible d'effectuer une mesure
rétinienne à une distance de 30 cm ou plus sur un sujet mobile. Cette méthode requiert des sujets
coopératifs et entrainés.
Pourtant cette technique semble être tout aussi fiable que celle de l’iris ; elle se base sur le fait que
le schéma et le dessin formé par les vaisseaux sanguins de la rétine (la paroi interne et opposée de
l'œil) est unique pour chaque individu, différent entre jumeaux et assez stable durant la vie de la
personne. La mesure peut ainsi fournir jusqu'à 400 points caractéristique du sujet, que l'on peut
comparer aux 30 à 40 points fournis par une empreinte digitale. Puis, la mesure rétinienne est la
plus difficile à utiliser, mais également la plus dure à contrefaire [4].
Figure 1.06 : Photographies des deux rétines d’un individu
11
1.7.6 La signature
Le plus souvent, on utilise la signature pour vérifier ou identifier quelqu’un. Ainsi, la vérification
de la signature analyse la façon dont un utilisateur signe son nom. En effet, les plus importantes sont
les caractéristiques dynamiques de la signature comme la vitesse et la pression par rapport à sa
forme géométrique.
Il existe deux approches pour vérifier la signature statique et dynamique :
Dans la vérification de signature statique : on utilise seulement sa forme géométrique pour
authentifier une personne. Ainsi, la signature et normalisée à la taille connue puis
décomposée en éléments simples.
Dans la vérification de signature dynamique : elle utilise, en plus de la forme géométrique,
les caractéristiques dynamiques telles que l’accélération, la vitesse et les profils de trajectoire
de la signature.
Il est à noter que la signature est une biométrie comportementale, elle évolue dans le temps et
est influencée par les conditions physiques et émotionnelles de la personne [12].
1.7.7 Le visage
Nos visages sont des objets complexes avec des traits qui peuvent varier dans le temps. De plus, les
humains ont une capacité naturelle à reconnaître les visages ainsi que d’identifier les personnes.
Cependant, cette aptitude naturelle n’existe pas dans les ordinateurs. C’est ainsi qu’est né le besoin
de simuler artificiellement la reconnaissance pour créer des systèmes intelligents autonomes. Tout
au long de notre vie, de nombreux visages sont vus et conservés dans nos mémoires en forment une
sorte de base de données.
La reconnaissance du visage par ordinateur nécessite une base de données qui est habituellement
construite en utilisant des images du visage ou parfois des images différentes d’une même personne
pour tenir comptent des variations dans les traits du visage. Actuellement, les systèmes de
reconnaissance du visage sont composés d’un module d’acquisition d’images avec une caméra.
Ainsi, on procède à une détection du visage dans l’image acquise. Ensuite, on normalise l’image du
visage détectée pour être transmise au module de reconnaissance qui va la traiter en utilisant des
algorithmes afin d’extraire une signature du visage.
A l’aide d’un classificateur, on compare cette signature avec les signatures déjà existantes dans une
base de données locale afin d’identifier l’individu en question. Durant la dernière décennie de
recherche, la performance des systèmes de reconnaissance du visage s’est grandement améliorée ;
12
par contre, les résultats sont encore loin d’être parfaits. Ces systèmes sont très sensibles aux
variations d’illumination et de pose.
1.8 Conclusion
Ceux qui précèdent consistent à faire une représentation de la biométrie qui est une technique
d’identification d’un individu au moyen de ses caractéristiques morphologiques. Ainsi, on a pu aussi
voir les différentes techniques biométriques. Puis on a vu l’architecture de base d’un système
biométrique, puis quelques technologies biométriques le plus connus. En particulier, les systèmes
biométriques basées sur la reconnaissance du visage nécessitent des différentes étapes. Dans ce qui
suit nous allons détailler les techniques de détection et la reconnaissance du visage.
13
CHAPITRE 2
LES TECHNIQUES DE DETECTION ET DE RECONNAISSANCE DU VISAGE
2.1 Introduction
Les systèmes biométriques basés sur la reconnaissance du visage, se décomposent en trois sous-
systèmes : détection, extraction des caractéristiques et reconnaissance. Ainsi, Sa mise en œuvre ne
pourrait jamais devenir intégralement automatique s’il n’a pas été précédé par une étape de
détection efficace. En effet, la détection du visage dans les images est un traitement indispensable
et crucial avant la phase de reconnaissance. Nous allons détailler quelques techniques de détections
du visage puis les difficultés rencontrés lors de la reconnaissance du visage ainsi que des algorithmes
différents.
2.2 Approche de la détection du visage
La détection du visage est la première étape dans le processus de reconnaissance du visage. En effet,
son efficacité a une influence directe sur les performances du système. De ce fait, il existe plusieurs
méthodes pour la détection du visage comme : la couleur de la peau, la forme de la tête, l’apparence
faciale.
On peut subdiviser en quatre catégories ces méthodes [13] :
Approches basées sur l’apparence
Approches basées sur des reconnaissances acquises
Approches basées sur la template matching
Approches basées sur des caractéristiques invariantes
Approches basées sur l’analyse de la couleur de la peau
2.2.1 Approches basées sur l’apparence
Généralement, ces approches appliquent des techniques d’apprentissage automatique. Ainsi, c’est à
partir d’un ensemble d’images représentatives de la variabilité de l’aspect facial qu’on apprit les
modèles. En effet, on emploie ces modèles pour la détection. De ce fait, on considère que son
problème est celle de la classification (visage, non-visage). Et puis, une des approches le plus connue
est l’Eigenface. Elle consiste à projeter l’image dans un espace et à calculer la distance euclidienne
entre l’image et sa projection. En effet, en codant l’image dans un espace, on dégrade l’information
contenue dans l’image, puis on calcule la perte d’information entre l’image et sa projection. Si cette
14
perte d’information est grande, l’image n’est pas correctement représentée dans l’espace : elle ne
contient pas du visage.
Cette méthode donne des résultats assez encourageants, même si le temps de calcul est très
important.
2.2.2 Approches basées sur les connaissances acquises
Ils s’intéressent aux caractéristiques du visage comme le nez, la bouche et les yeux. Elle est conçue
principalement pour la localisation du visage. On utilise une méthode à base des règles. Ainsi, les
caractéristiques du visage sont localisées à l’aide de la méthode de projection proposée par Kanade
afin de détecter le contour d’un visage [14]. Soit I(x,y) l’intensité de la luminance du pixel (x,y) de
l’image de dimension ℎ × �, les projection horizontale et verticale de cette image sont définies par
l’équation suivante :
HI(x) = � I(x, y)�
��� (2.01)
VI(x) = � I(x, y)�
��� (2.02)
On calcule en premier le profil horizontal de l’image originale. Ainsi, on détermine les deux
minimas locaux qui correspondent aux bords gauche et droit du visage. Ensuite, le profil vertical est
à son tour calculé. Les minimas locaux de ce profil vertical correspondent aux positions de la
bouche, du nez et des yeux. Son inconvénient est qu’elle n’arrive pas à détecter le visage lorsque ce
dernier se trouve sur un arrière-plan complexe.
2.2.3 Approches basées sur la Template matching
On peut définir les templates soit manuellement, soit paramétrés à l’aide de fonctions. Elles
consistent à calculer la corrélation entre l’image candidate et le template. On y rencontre encore
quelques problèmes de robustesse liés aux variations de lumière, d’échelle. On utilise un ensemble
d’invariants décrivant un modèle du visage afin de déterminer les invariants aux changements de
luminosité. Ainsi, son algorithme consiste à calculer les rapports de luminance ente les régions du
visage et retient les directions de ces rapports. Certes, pour détecter les caractéristiques faciales, on
utilise, pour chaque région extraite, un détecteur approprié Brunelli [15]. En effet, il s’inspire à la
méthode de Kanade, décrite dans le paragraphe 2.2.2.
Certes, la recherche est une fois encore limitée à la fenêtre d’intérêt, juste au-dessus des yeux. Puis,
les sourcils sont trouvés en utilisant la carte du gradient vertical. Le détecteur du sourcil cherche les
pairs de pics du gradient ayant des directions opposées.
15
2.2.4 Approches basées sur des caractéristiques invariantes
Bien que la pose, le point de vue ou la condition d’éclairage changent, les algorithmes développés
visent à trouver les caractéristiques structurales existantes. Ainsi, ils emploient ces caractéristiques
invariables afin de localiser le visage.
On peut citer deux familles de méthodes appartenant à cette approche :
Les méthodes basées sur les caractéristiques du visage
Les méthodes basées sur la couleur de la peau
2.2.4.1 Les méthodes basées sur les caractéristiques du visage
Ces algorithmes utilisent généralement une hypothèse sur la position du haut du visage ainsi que
l’algorithme de recherche parcourt le visage de haut en bas afin de trouver l’axe des yeux caractérisé
par une augmentation soudaine de la densité de contours (mesurée par le rapport noir/blanc le long
des plans horizontaux). Alors, on utilise la longueur entre le haut du visage et le plan de l’œil comme
une longueur de référence afin de construire un « template » facial flexible.
Cependant, ils n’arrivent pas à détecter correctement ces caractéristiques si l’image du visage
contient des lunettes ou bien si les cheveux couvrent le front même si ces algorithmes réussissent à
détecter les caractéristiques d’ethnies différentes étant donné qu’ils ne se basent pas sur les
informations de niveaux de gris et de couleur [16].
2.2.4.2 Les méthodes basées sur la couleur de la peau
Elles sont des méthodes efficaces et rapides. De plus, elles réduisent l’espace de recherche de la
région visage dans l’image. Et puis, la couleur de la peau est une information robuste face aux
rotations, aux changements d’échelle et aux occultations partielles. Pour détecter les pixels qui ont
la couleur de la peau dans l’image, plusieurs espaces couleur peuvent être utilisés. De ce fait,
l’efficacité de la détection dépend essentiellement de l’espace couleur choisi.
Cependant, les espaces couleur les plus utilisées sont :
L’espace RGB (Red-Green-Bleu) : Il consiste à représenter l’espace des couleurs à partir de
trois rayonnements monochromatiques de couleurs : Rouge-Vert-Bleu (RVB).
L’espace HSL (Hue, Saturation, luminance), appelé aussi TSL (Teinte, Saturation,
luminance) en Français. Il est proche de la perception physiologique de la couleur par l’œil
humain.
16
2.3 Le prétraitement
Après la phase de détection, on poursuit à la phase de prétraitement. Cependant, on prépare l’image
du visage de telle sorte qu’on exploite dans la phase d’enrôlement. En effet, on l’appelle aussi phase
de normalisation puisqu’elle ramène à un format prédéfini toutes les images extraites de l’image
brute. En générale, elle consiste en un centrage du visage dans l’image et une élimination des zones
non informatives.
Il est important que toutes les images soient de taille identique, à la même échelle et au même format
concernant les couleurs afin de garantir la bonne performance du système. Par conséquent, la qualité
de fonctionnement de l’étape d’extraction de signature est incontestablement améliorée.
Elle est constituée de deux processus :
Normalisation photométrique.
Normalisation géométrique.
2.3.1 Normalisation photométrique
Dans le système de reconnaissance du visage, on y présente un certain nombre de méthodes de
normalisation de l’illumination. Ainsi, on peut classer ces méthodes en deux grandes catégories :
Les méthodes basées sur la modification de la dynamique.
Les méthodes basées sur l’estimation de la réflectance de l’image.
Ensuite, on présente ci-dessous quatre normalisations les plus utilisées dans la reconnaissance du
visage qui font partie de ces deux catégories cité ci-dessus. Il s’agit de [7] :
L’égalisation d’histogramme : elle consiste à répartir uniformément les niveaux de gris de
l’image afin d’améliorer son contraste.
La correction Gamma : elle permet de réduire l’écart entre les zones sombres et claires du
visage par une transformation non linéaire de niveaux de gris.
Le MultiScale-Retinex : il permet d’estimer la partie luminance de l’image afin de réduire
la réflectance.
Le lissage : il estime aussi la luminance de l’image bien qu’en se basant sur l’anisotropie de
reconnaissance.
2.3.2 La normalisation géométrique
La normalisation géométrique des images du visage est un point non négligeable, il utilise un
algorithme de reconnaissance basée sur la réduction de l’espace. Elle consiste à extraire la zone du
17
visage de l’image originale, ensuite une rotation du visage est effectuée afin d’aligner l’axe des yeux
avec l’axe horizontale. Et puis, une réduction proportionnelle à la distance entre les centres des deux
yeux est appliquée. Enfin, on obtient une image du visage dont la distance entre les centres des yeux
est fixe. Cependant, les dimensions de l’image du visage sont calculées à partir de la distance à
obtenir entre les centres des deux yeux.
2.4 Les principales difficultés de la reconnaissance du visage
Etant humain, le processus de la reconnaissance du visage est une tâche visuelle de haut niveau.
Ainsi, construire un système automatique qui accomplit de telles tâches représente un sérieux défi
même si les êtres humains puissent détecter et identifier des visages. De plus, si les conditions
d’acquisition des images sont très variables, ce défi est d’autant plus grand.
Ensuite, on peut distinguer deux types de variations associées aux images du visage :
Variation inter-sujet : elle est limitée à cause de la ressemblance physique entre les
individus.
Variation intra-sujet : elle est plus vaste et peut être attribuée à plusieurs facteurs que nous
allons développer ci-dessous.
2.4.1 Changement d’illumination
L’apparence d’un visage dans une image varie en fonction de l’illumination de la scène lors de la
prise de vue. De plus, les variations d’éclairage compliquent la tâche de reconnaissance du visage.
En effet, le changement d’apparence d’un visage dû à l’illumination, se relève parfois plus critique
que la différence physique entre les individus, et peut entraîner une mauvaise classification des
images d’entrée.
Figure 2.01 : Exemple de variation d’éclairage.
2.4.2 Variation de pose
Quand elles sont présentes dans les images, le taux de reconnaissance du visage baisse
considérablement. Ainsi, elle est considérée comme un problème majeur pour les systèmes de
18
reconnaissance faciale. Cependant, il peut être normalisé en détectant au moins deux traits faciaux
quand le visage est de profil dans le plan image (orientation est inférieure à 30°). De ce fait, la
normalisation géométrique n’est plus possible si la rotation est supérieure à 30°.
Figure 2.02 : Exemple de variation de pose.
2.4.3 Expressions faciales
On localise principalement sur la partie inférieure du visage, la déformation du visage due aux
expressions faciales. Ainsi, l’information faciale se situant dans la partie supérieure du visage reste
quasi invariable. En général, elle est suffisante pour effectuer une identification. Toutefois, elle
entraîne forcément une diminution du taux de reconnaissance étant donné que l’expression faciale
modifie l’aspect du visage. Avec l’expression faciale, l’identification du visage est un problème
difficile qui reste non résolu. Pour résoudre ce problème, on peut utiliser l’information temporelle
qui fournit une connaissance additionnelle significative [17].
Figure 2.03 : Exemple de variation d’expressions faciales
2.4.4 Présence ou absence des composantes structurels
La présence des composants structurels telle que la barbe, la moustache, ou bien les lunettes peut
modifier énormément les caractéristiques faciales telles que la forme, la couleur, ou la taille du
visage. De plus, ces composants peuvent cacher les caractéristiques faciales de base causant ainsi
une défaillance du système de reconnaissance. Par exemple, des lunettes opaques ne permettent pas
de bien distinguer la forme et la couleur des yeux, et une moustache ou une barbe modifie la forme
du visage.
19
2.4.5 Occultations partielles
Le visage peut être partiellement masqué par des objets dans la scène, ou par le port d’accessoire
tels que lunettes, écharpe... Dans le contexte de la biométrie, les systèmes proposés doivent être non
intrusifs c’est-à-dire qu’on ne doit pas compter sur une coopération active du sujet. En effet, il est
important de savoir reconnaître des visages partiellement occultés.
2.5 Les algorithmes de reconnaissance du visage
Dans un système biométrique basé sur la reconnaissance du visage, la phase le plus important, c’est
la phase de la reconnaissance. En effet, il existe plusieurs variantes d’algorithmes pour la
reconnaissance du visage :
2.5.1 Dimensionnalités de l’espace visage
Une image du visage est un signal à deux dimension, acquis par un capteur digital (caméra,
numérique, scanner…). La couleur ou l’intensité des différents points de l’image est codé par ce
capteur dans une matrice de pixels à deux dimensions. Après une normalisation, l’image du visage
peut être considérée comme un vecteur dans un espace multidimensionnel. On met les éléments de
la matrice des pixels dans un ordre fixe puis on obtient ce vecteur. En effet, on doit spécifier une
valeur pour chaque pixel de cette image afin de définir une image (ou un point) dans l’espace des
images. Par conséquent, le nombre de points constituant cet espace devient rapidement très grand,
même pour les images de petite dimension.
Le visage est formé par des surfaces lisses et une texture régulière. Il possède une forte symétrie et
il est formé à partir de mêmes objets (yeux, nez et bouche), qui ont les mêmes positions pour tous
les visages. Cependant, on peut déduire que les visages forment une classe particulière dans l’espace
des images. Alors, l’ensemble des images du visage forment un sous-espace de l’espace des images.
2.5.2 Analyse en Composantes Principales
L’Analyse en Composantes Principales (ACP) ou Principal Components Analysis (PCA) en
Anglais, est une méthode mathématique qui peut être utilisée pour simplifier un ensemble de
données, en réduisant sa dimension.
Elle est utilisée pour représenter efficacement les images du visage, qui peuvent être
approximativement reconstruites à partir d’un petit ensemble de poids et d’une image du visage
standard. Ainsi, ces poids sont obtenus en projetant l’image dans un espace du visage engendré par
les visages propres. De plus, on stocke un vecteur de taille inférieure ou égale au nombre d’image
20
d’apprentissage. Puis, la résolution d’une vectrice image est très grande par rapport à ce dernier.
Dans l’approche ACP, la normalisation d’éclairage est toujours indispensable. Les visages propres
sont des images de la même taille que les images d’apprentissage et qui montrent des visages ayant
un aspect fantomatique. Mathématiquement, elles sont les composantes principales de la distribution
des visages, ou les vecteurs propres de la matrice de covariance de l’ensemble des images du visage.
Chaque image du visage de l’ensemble d’apprentissage peut être exactement représentée en termes
de combinaison linéaire des Eigenfaces et du visage moyen.
2.5.3 Analyse discriminante linéaire
L’analyse discriminante linéaire ou « Linear Discriminative Analysis » (LDA) en Anglais et les
discriminants linéaires de Fisher relatifs ou « Fisher Discriminating Linear » (FLD) en Anglais, sont
utilisés pour trouver la combinaison linéaire des caractéristiques qui séparent le mieux les classes
d’objet ou d’événement.
Les combinaisons résultantes peuvent être employées comme classificateur linéaire, ou
généralement dans la réduction de caractéristiques avant la classification postérieure.
LDA est étroitement lié à l’ACP (que l’on a été développé dans le paragraphe ci-dessus), du fait que
tous les deux recherchent des combinaisons linéaires des variables qui représentent aux mieux les
données. LDA essaye explicitement de modeler la différence entre les classes des données. Tandis
que le PCA ne tient pas compte des différences entre les classes.
Ensuite, chaque visage, qui se compose d’un grand nombre de pixel, est réduit à un plus petit
ensemble de combinaisons linéaires avant la classification. Puis, chacune des nouvelles dimensions
est une combinaison linéaire des valeurs de pixel, qui forment un Template. Les combinaisons
linéaires obtenues en utilisant FLD s’appellent les Fisherfaces, en analogie avec les Eigenfaces. De
plus, LDA est une technique qui cherche les directions qui sont efficaces pour la discrimination
entre les données.
2.5.4 Direct Fractional-step Linear Discriminative Analysis
Il est conçu pour résoudre les différentes imperfections de LPA. Ainsi, l’algorithme Direct
Fractional-step Linear Discriminative Analysis ou DF-LPA offre des performances supérieures à
celles des techniques de reconnaissance du visage classique.
Pour le DF-LPA, la phase de reconnaissance se déroule comme le suivant. Tout d’abord, on procède
à l’acquisition et la lecture des images d’apprentissage. Puis, on normaliser les images afin de
calculer le visage moyen ainsi que pour toutes les classes. Ensuite, on soustrait les visages
21
d’apprentissage pour construire les scatter matrices (une matrice par classe). Finalement, il s’agit de
calculer la within-class scatter matrix et la weighted between-class scatter matrix
2.5.5 Analyse en composantes indépendantes
L’analyse en composantes indépendantes ou « Independent Components Analysis » (ICA) en
Anglais, est une généralisation de PCA qui utilise en plus des statistiques d’ordre 2, les statistiques
d’ordre plus supérieur, ce qui peut produire une représentation de données plus puissante.
Il permet de trouver des vecteurs de base (images de base) localisés dans l’espace et qui sont
statistiquement indépendants, en réduisant au minimum la dépendance statistique.
Cependant, on considère ces images de base comme un ensemble de caractéristiques faciales
statistiquement indépendantes, où les valeurs des pixels de chaque image caractéristique sont
statistiquement indépendantes des valeurs des pixels des autres images caractéristiques [18].
De plus, on choisit pour ces combinaisons linéaires un sous ensemble formé des premières
composantes principales de la matrice de donnée. Ainsi, il existe deux architectures d’ICA :
Dans la première architecture : les images de base sont statistiquement indépendantes, bien
que les coefficients ne le soient pas.
Dans la deuxième architecture : les coefficients sont statistiquement indépendants, en
séparant les pixels en un ensemble de variables indépendantes codant les images.
2.5.6 Le réseau de neurones
Un réseau de neurones est un système de traitement de l’information qui a été développé comme
généralisations des modèles mathématiques assortissant la connaissance humaine. Ainsi, ils se
composent d’un grand nombre d’unités de traitement hautement reliées appelées neurones,
travaillant ensemble pour exécuter une tâche classification donnée.
L’application des réseaux de neurones artificiels dans la reconnaissance du visage a visé plusieurs
problèmes : la classification Homme Femme, la reconnaissance du visage et la classification des
expressions faciales [19].
2.5.7 Machine à vecteur de support
Une machine à vecteur de support ou Support Vector Machine (SVM) en Anglais est une technique
de discrimination, c’est une méthode d’apprentissage supervisé utilisée pour la classification et la
régression. Elle consiste à séparer deux ou plusieurs ensembles de points par un hyperplan. Selon
les cas et la configuration des points, la performance de la machine à vecteurs de support pu être
supérieure à celle d’un réseau de neurones ou d’un modèle de mixture gaussienne. Le principe de
22
SVM est basé sur l’utilisation de fonctions noyau (kernel), qui permet une séparation optimale des
points du plan en différentes catégories. La méthode fait appel à un ensemble de données
d’apprentissage, qui permet d’établir un hyperplan séparant au mieux les points. Ensuite,
l’algorithme original de l’hyperplan optimal est un classificateur linéaire, et pour avoir un
classificateur non linéaire puis on applique le kernel trick à l’hyperplan à marge maximum bien que
chaque produit scalaire est remplacé par une fonction noyau non linéaire.
2.5.8 Modèle de Markov caché
En général, on utilise les modèles de Markov cachés HMM en reconnaissance de formes, en
intelligence artificielle ou encore en traitement automatique du langage naturel. On les emploie pour
la modélisation statistique de séries de vecteur de temps non stationnaire.
Pour la reconnaissance du visage, on considère l’information du visage comme étant une séquence
variable dans le temps [19]. De plus, les caractéristiques faciales se présentent dans un ordre naturel
de haut en bas, même dans le cas où il y a des petites rotations. En effet, on modélise l’image du
visage en utilisant un HMM unidimensionnels en assignant à chacune de ces régions un état. Ainsi,
le HMM classifie une caractéristique par la propriété de la chaîne de Markov. Ensuite, une séquence
des valeurs des pixels forme une chaîne de Markov. En exploitant cette chaîne de Markov, on
emploie ce résultat pour faire la comparaison entre deux visages.
Pour une image du visage d’une personne donnée de l’ensemble d’apprentissage, il s’agit
d’optimiser les paramètres pour mieux décrire l’observation. Ensuite, la reconnaissance est
effectuée en assortissant l’image de test contre chaque modèle d’apprentissage puis l’image est
convertie en une séquence d’observation et probabilité est calculée pour chaque modèle enregistré.
Le modèle avec la probabilité la plus élevée indique l’identité de la personne inconnue. Cependant,
on obtient une performance satisfaisante même s’il nécessite des calculs intenses ce qui augmente
les temps d’exécution.
2.5.9 Méthode basée sur l’apparence locale
On utilise ces techniques de manière modulaire pour les différentes régions faciales. Alors, on
définit un modèle global à partir de la combinaison des différents modèles locaux. Ainsi, les
différentes régions faciales ne seront plus affectées de la même manière par les différentes sources
de variabilité.
On utilise deux paramètres pour définir les régions locales du visage : la forme (rectangle, ellipse)
et la taille. Puis on détermine les caractéristiques des régions locales à partir d’une analyse des
23
valeurs de niveau gris. Pour l’extraction de caractéristiques, on utilise des techniques telles que les
Ondelettes de Gabor ou de Harr et l’analyse fractale. De plus, les caractéristiques de Gabor sont
plus robustes face aux changements d’illumination et aux transformations géométriques. Tandis
que, les caractéristiques à base de valeurs de gris préservent l’information de texture [16].
2.5.10 Template matching
Le template matching est une technique globale de reconnaissance du visage. En général, la
corrélation est exploitée afin de mesurer la similitude entre un template (masque) stocké et l’image
à reconnaître. Cependant, l’échelle et la rotation devraient également être soigneusement
considérées afin d’accélérer le processus.
De prime abord, on passe à l’acquisition, la lecture et la normalisation des images d’apprentissage.
Puis, on calcule le visage moyen de chaque de personne (les templates). Ainsi, il s’agit de calculer
les différences entre l’image de vérification et les templates (les différences sont des images) et les
sommes de ces différences (somme des pixels de l’image différence). La somme minimale va
référencer la classe auquel appartient l’image de vérification.
2.6 Conclusion
La détection du visage est une tâche cruciale dans un système basé sur la reconnaissance du visage.
Ainsi, ces différentes approches nous ont permis d’améliorer la performance du système malgré ses
inconvénients. Bien qu’on ait plusieurs algorithmes pour la reconnaissance automatique du visage,
on connait encore des difficultés et insatisfactions. Dans le chapitre suivant, nous allons détailler le
choix de l’application des réseaux de neurones artificiels dans la reconnaissance du visage.
24
CHAPITRE 3
LES RESEAUX DE NEURONES ARTIFICIELS
3.1 Introduction
Les réseaux de neurones artificiels ont connu leurs débuts en 1943 grâce aux travaux de Warren Mc
Culloch et Walter Pitt sur le « neurone formel ». Ainsi, D. Hebb travaillait sur la règle
d’apprentissage dans son ouvrage « The Organization of Behavior » en 1949. Il est à présent
communément admis que le perceptron, comme classifieur linéaire, est le réseau de neurones le plus
simple. A partir de ce moment, la recherche sur les réseaux de neurones connaît un essor fulgurant
et les applications commerciales de ce succès académique suivent au cours des années 90. Ils sont
utilisés réellement dans la reconnaissance de motif ou de caractères, pour l’approximation de
fonction inconnue et dans de nombreuses applications. Les réseaux de neurones sont une des
composantes importantes du domaine de l’intelligence artificielle.
3.2 Définitions
Un réseau de neurones artificiels, ou réseau neuronal artificiel, est un ensemble d’algorithmes dont
la conception est à l’origine très schématiquement inspirée du fonctionnement des neurones
biologiques, et qui par la suite s’est rapproché des méthodes statistiques. De plus, Les réseaux de
neurones artificiels sont des réseaux fortement connectés de processeurs élémentaires fonctionnant
en parallèle. Chaque processeur élémentaire calcule une sortie unique sur la base des informations
qu'il reçoit. Toute structure hiérarchique de réseaux est évidemment un réseau. Ainsi, il est
l’association, en graphe plus ou moins complexe, d’objets élémentaires, les neurones formels. Mais,
Aujourd’hui de nombreux termes sont utilisés dans la littérature pour désigner le domaine des
réseaux de neurones artificiels, comme connexionnisme ou neuromimétique [20].
3.3 Principes
Les réseaux de neurones sont une modélisation des comportements naturels à partir d’une
abstraction biologique c’est-à-dire les neurones biologiques (voir ANNEXE 1). Ils sont des
modélisations mathématiques du cerveau humain. Ainsi, les réseaux de neurones formels sont des
réseaux d’unités de calcul élémentaire interconnectées. Puis ils nous permettent certaines fonctions
du cerveau humain telles que la reconnaissance de formes, la mémorisation associative, la
reconnaissance faciale, etc….
25
A l’aide des règles de calcul simple, les principes de fonctionnement de ce neurone formel sont
fondés sur l’idée de :
Pas de notion temporelle
Déterminer le coefficient synaptique (coefficient réel)
Obtenir une sortie après application d’une fonction de transfert à partir de plusieurs entrées.
Sommation des signaux arrivant au neurone (valeur)
Comparaison de cette valeur par rapport au seuil
En effet, on doit relier chaque neurone à d’autres à l’aide des connexions.
3.4 Modélisation d’un neurone formel
Selon le principe biologique, il s’agit de modéliser un système de réseaux neuronaux sous un aspect
artificiel. Ainsi, on va montrer dans le tableau ci-contre leur correspondance.
Neurone biologique Neurone artificiel Corps cellulaire Fonction d’activation
Dendrites Entrées Axone Sortie
Synapses Poids de connexion
Tableau 3.01: La correspondance entre le neurone biologique et artificiel.
Ainsi, un neurone formel (artificiel) comprend :
Les entrées : ils sont des valeurs destinées qu’on peut être analysé et à apprendre au neurone,
représentées par ei. Puis, ils sont généralement nombreux dont les valeurs ne sont pas
forcément identiques. De plus, Son valeur peut être booléenne, binaire (0,1) ou bipolaire (-
1, +1) ou réelle.
Les poids : pour un neurone, on peut modifier l’importance de chaque connexion d’où
certaines sont plus importantes que d’autres. Puis, pendant l’apprentissage, on modifie les
poids (noté w) qu’on doit affecter à chaque connexion. Ainsi, le poids est proportionnel à
l’importance de la connexion.
La fonction d’activation : elle opère une transformation d’une combinaison affine des
signaux d’entrée afin de donner un résultat. Ainsi, on détermine cette combinaison affine
par un vecteur de poids associé à chaque neurone. Cependant, les valeurs sont estimées dans
la phase d’apprentissage. De plus, on distingue les différents types de neurones par la nature
f de leur fonction d’activation.
26
Les principaux types sont :
Linéaire
f(x)=x (3.01)
Sigmoïde :
f(x) =�
(����) (3.02)
Seuil :
f(x)=1[0, + ∞[(x), (3.03)
Radial :
f(x) = ��
�� �� ��
�
(3.04)
Stochastiques :
f(x)=1 (3.05)
Avec la probabilité soit :
P(x)=�
���� ��
(3.06)
Elle est égale à 0 si non (H intervient comme une température dans un
algorithme de recuit simulé).
La sortie : elle est constituée par la valeur calculée par le neurone. Sa valeur peut être binaire
ou bipolaire ou réelle. Ensuite, elle devient une valeur d’entrée pour tous les neurones avec
lesquels notre neurone de référence est connecté.
La connectivité : elle est une manière où les neurones sont connectés entre eux. En effet, on
distingue deux types de connectivité :
Totale : les neurones sont connectés entre eux,
Organisée par couche : les neurones d’une couche ne sont connectés qu’à
la couche précédente en entrée et à la couche suivante en sortie.
27
Figure 3.01 : Neurone artificiel
3.5 Architecture
La structure d’un réseau de neurones artificiel est en fait copiée à celle du biologiques. Comme son
nom l’indique, un réseau de neurones est un ensemble de neurones en réseau, de sorte que les
signaux sortant (outputs) des neurones deviennent des signaux entrant (inputs) dans d’autres
neurones. En général, l’architecture des réseaux de neurones consiste à présenter les neurones en
couches (layers) successives : la première représente la couche intrants (input layer), ainsi la
deuxième étant la couche de sortie (output layer), puis les couches intermédiaires étant les couches
cachées (hidden layers).
En effet, on parle de couche cachée car de l’extérieur du réseau, puis leur fonctionnement ne peut
être analysé clairement.
Figure 3.02 : Architecture d’un réseau de neurone
28
3.6 Apprentissage des réseaux de neurones
Après le choix d’une architecture d’un réseau, il est évident d’effectuer un apprentissage afin de
modifier les caractéristiques du réseau jusqu’à ce que le comportement désiré soit obtenu.
Cependant, l’apprentissage consiste d’optimiser l’ensemble des poids. Puis, on ajoute souvent à la
description du modèle de l’algorithme d’apprentissage. Il est souvent impossible de décider à priori
des valeurs des poids des connexions d’un réseau pour une application donnée. Suivant le problème
à résoudre, on sait à peine choisir la structure et les paramètres qui conviennent le mieux. Pour ce
faire, on doit calculer la sortie avec une entrée quelconque étant bruitée ou incomplète puis on peut
alors évaluer la performance du réseau.
Cette adaptation suit des règles ainsi des méthodes.
3.6.1 Apprentissage supervisé et renforcement
On parle de l’apprentissage supervisé quand le réseau est affecté avec la bonne réponse pour les
exemples d’entrées donnés. Ainsi, on ajuste les paramètres du réseau par un comportement de
référence précis. Puis le réseau de neurones est entraîné de façon à reproduire le plus fidèlement
possible les réponses désirées à un certain nombre de vecteurs d’entrée d’apprentissage.
L’algorithme se présent comme suit [21] :
Etape 1 : Propager vers l’avant les entrées jusqu’à obtenir une sortie calculée par le réseau,
Etape 2 : Comparer la sortie calculée à la sortie réelle connue,
Etape 3 : Modifier les poids de telle sorte qu’à la prochaine itération
Etape 4 : Calculer l’erreur commise entre la sortie puis la minimiser.
Etape 5 : Pour les couches cachées, rétropropager l’erreur commise vers l’arrière jusqu’à la
couche d’entrée tout en modifiant la pondération.
Etape 6 : On répète ce processus sur tous les exemples jusqu’à ce que l’on obtienne une
erreur de sortie considérée comme négligeable. Puis, les poids optimaux seront appliqués
sur le test afin de vérifier la justesse et la précision des calculs : initialiser aléatoirement les
poids.
On parle de renforcement, le réseau doit apprendre la corrélation entrée /sortie par une méthode
d’estimation d’erreur dont on établit un rapport échec/succès. En effet, l’index de performance du
réseau doit tendre à maximiser. Cependant, le système est capable de savoir si la réponse soit
correcte ou non même s’il ne connait pas la bonne réponse. D’ailleurs, le renforcement est classé
dans la catégorie des modes supervisés.
29
Figure 3.03 : Schéma d’un apprentissage supervisé
3.6.2 Apprentissage non supervisé ou auto-organisationnel
Dans cette catégorie, la réponse désirée est inconnue. En effet, on suppose que le réseau puisse
découvrir la meilleure représentation de l’information fournie. Puis, on ne dispose pas de base
d’apprentissage. Les coefficients synaptiques sont déterminés par rapport à des critères de
conformité c’est-à-dire spécifications générales. De plus, le réseau décide lui-même quelles sont les
bonnes sorties. Cette décision est guidée par un but interne au réseau qui exprime une configuration
idéale à atteindre par rapport aux exemples introduits.
Figure 3.04 : Schéma d’un apprentissage non supervisé
3.6.3 Apprentissage mode hybride
Etant en mode hybride, on combine les deux approches précédentes dans un même système : on
détermine une partie du réseau de neurone par apprentissage supervisé tandis que l’autre partie par
apprentissage non supervisé. Ces réseaux ne tiennent compte que d’une évaluation partielle ou
qualitative des sorties d’où on les appelle les réseaux à apprentissage semi-supervisé. Alors, on doit
bénéficier les avantages des deux types précédents [22].
30
3.6.4 Règles d’apprentissages
3.6.4.1 Loi de Hebb
C’est la première règle d’apprentissage élaborée en 1949. Le principe de cette règle s’exprime
comme suit : « Il y a renforcement d’une connexion lorsque les deux neurones qu’elle relie sont
simultanément excités » [23]. Par hypothèse, lorsqu’un neurone Ni est excité par un neurone Nj de
manière répétitive ou persistante, le poids de l’axone reliant ces deux neurones devrait être
augmenté.
Figure 3.05 : Connexion de neurone
Si deux unités connectées sont actives simultanément, le poids de leur connexion est augmenté ou
diminué. Ainsi, la loi de Hebb s’écrit comme suit :
∆w ��= r . a� .a� (3.07)
Avec :
∆� �� : coefficient synaptique
� : constante positive qui présente la force d’apprentissage
�� et �� : les valeurs d’activation des neurones Nj et Ni respectivement.
Voici son algorithme [24] :
µ est une constante positive.
Initialiser aléatoirement les coefficients wi
Répéter
Prendre un exemple (e, c) dans S
Calculer la sortie o du réseau pour l’entrée e
Si c ≠o
Modification des poids w ij:
� �� = � ��× μ × (�� × ��) (3.08)
Fin Pour
Fin Si
31
Fin Répéter
3.6.4.2 Règle de Widrow-Hoff
La loi de Widrow-Hoff est la règle d’apprentissage du perceptron la plus connue. Elle est une règle
qui permet d’ajuster les poids d’un réseau de neurones afin de diminuer à chaque étape l’erreur
commise par le réseau de neurones à condition que le facteur d’apprentissage soit bien choisi. Puis,
Chaque cellule de sortie apprend indépendamment des autres.
On modifie un poids par la formule suivante :
� ��� = � � + (α × �� × ��) (3.09)
Avec :
wk : le poids à l’instant k,
wk+1 : le poids à l’instant k+1,
α : le facteur d’apprentissage, Il faut bien noter que α :
α bien choisi, suffisamment petit,
Si α trop grand d’où il y a risque d’oscillation autour du minimum,
Si α trop petit : nombre élevé d’itérations,
En pratique, on diminue graduellement α au fur et à mesure des
itérations.
δk : caractérise la différence entre la sortie attendue et la sortie effective du neurone
à l’instant k, d’où :
δ� = T − S (3.09)
, où T : la sortie souhaitée, S : la sortie calculée par l’erreur du perceptron.
xk : la valeur de l’entrée avec laquelle le poids w st associé à l’instant k.
Ainsi, si δk et xk sont positifs tous les deux, alors le poids doit être augmenté. La grandeur du
changement dépend avant tout de la grandeur de δk mais aussi de celle de xk. Le coefficient α sert à
diminuer les changements pour éviter qu'ils deviennent trop grands, ce qui peut entraîner des
oscillations du poids.
L’algorithme de l’apprentissage se déroule de la façon suivante :
- Etape 1 : On présente au perceptron (dans un ordre arbitraire) les couples (image sur la rétine,
réponse).
- Etape 2 : s’il y a des erreurs les poids sont corrigés selon la règle du Widrow-Hoff et on
retourne en 1, sinon le perceptron a appris.
32
On note D la base d’apprentissage. D est composé de couples (x, T). Où x est le vecteur associé à
l’entrée (x0, x1, …, xn), T est la sortie correspondante souhaitée.
On procède à cet algorithme suivant pour déterminer les coefficients (w0, w1, …, wn) :
Initialiser aléatoirement les coefficients wk
Répéter :
Prendre un exemple (x, T) dans D
Calculer la sortie S du réseau pour l’entrés x
Mettre à jour les poids :
Pour i de 0 à n :
� � = � � + � × (� − �) × �� (3.11)
Fin pour
Fin répéter
3.6.4.3 Règle de correction d’erreurs
Cette règle est l’une des règles les plus utilisées. Elle est basée sur la Rétropropagation du gradient,
développée par Widrow et Hoff en 1960 afin de résoudre des problèmes de traitement adaptatifs du
signal pour les réseaux multicouches.
Dans cette méthode, Le réseau est ignorant et dépourvu d'expérience : pour une entrée donnée, il ne
fournit pas la sortie qu'on souhaiterait obtenir. Pour rendre le réseau performant, on doit faire
apprendre le réseau à s’adapter en comparant le résultat en sortie en fonction des entrées fournies.
Cependant, les poids des liens entre ses neurones se sont modifiés jusqu’à ce qu’il trouve la sortie
souhaitée.
Comme le réseau s’entraîne à associer à chaque entrée, la sortie souhaitée, on est en mode supervisé
afin de fournir au processus d’apprentissage une estimation de l’erreur commise pour minimiser
‘erreur quadratique de sortie.
L’algorithme de la Rétropropagation est comme suit :
- Etape 1 : Appliquer un vecteur d’entrée aux nœuds d’entrées puis initialiser les poids du
réseau.
- Etape 2 : Exécuter l’échantillon d’apprentissage à travers le réseau,
- Etape 3 : Calculer les termes d’erreur de signal de la couche de sortie et les couches
cachées,
- Etape 4 : Mettre à jour les poids de la couche de sortie et couches cachées,
33
- Etape 5 : Répéter ce processus jusqu’à ce que l’erreur soit admissible.
3.6.4.4 Règle d’apprentissage par compétitions
Elle s’agit à regrouper les données en catégories. Ainsi, cet apprentissage ne s’applique qu’à un seul
neurone. Cependant, elle consiste à arranger les neurones similaires dans une même classe en un
seul neurone, en utilisant les corrélations des données. Puis chaque neurone de sortie (connexions
inhibitrices) est connecté à la fois aux neurones de la couche d’entrée, aux autres cellules de la
couche de sortie ainsi à elle-même (connexion excitatrice). En effet, la sortie va dépendre de la
compétition entre les connexions inhibitrices et excitatrices [22].
3.7 Différents types de réseau de neurones artificiel
Comme son nom l’indique, les neurones sont associés entre eux afin d’obtenir un réseau. Ainsi, on
peut distinguer deux types courants de réseaux de neurones artificiels [25] :
Réseaux feedforward ou non bouclé.
Réseaux feedback ou récurent.
3.7.1 Réseaux feedforward
Réseaux feedforward : ils consistent à organiser des neurones en couches successives. De plus, Les
réseaux non bouclés sont des réseaux à couches car il n’y a pas d’interconnexion entre les neurones
d’une même couche.
Ainsi, Ce type de réseau est dans la famille générale des réseaux à « propagation vers l’avant »,
c’est-à-dire qu’en mode normal d’utilisation, l’information se propage dans un sens unique, des
entrées vers les sorties sans aucune rétroaction.
3.7.1.1 Perceptron simple
En 1957, le modèle du Perceptron est développé par F. Rosenblatt. Ainsi, c’est le premier neuro-
ordinateur de ce jour en appliquant dans le domaine de la reconnaissance de formes. II s’agit d’une
seule couche de neurones d’entré et une couche de sortie. Ainsi, on doit relier tous les neurones de
la couche d’entrée à ceux de la couche de sortie. Puis la fonction d’activation utilisée dans ce réseau
est de type tout ou rien c’est-à-dire de valeur binaire (0, 1), fonction non-linéaire [26].
Son architecture se compose comme suit :
Une couche à I cellules, appelée à l’origine la rétine,
34
Une couche à J cellules, qui donne la réponse du perceptron.
Figure 3.06 : Perceptron simple (monocouche)
Il fonctionne comme suit : comme le perceptron est un réseau binaire, la sortie soit oui (1) ou
non (0). En fonction de la réponse de l’i-ième cellule de la rétine xi et des intensités des
connexions entre i-ième cellule d’entrée et la j-ième cellule de sortie wij, elles évaluent leur degré
d’activation de la j-ième cellule de sortie aj :
a� = ∑ x�.w �,��� (3.11)
Ensuite, lorsque leur degré d’activation dépasse un seuil θj, les cellules de sortie deviennent
actives. Puis la réponse en sortie s’obtient par l’équation suivante :
f(x)=�0, si a� ≤ θ�
10, si a� > θ� (3.13)
Les plus souvent, θj=0, alors :
f(x)=�0, si a� ≤ 0
10, si a� > 0 (3.14)
Pour apprendre, l’apprentissage est en mode supervisé si bien que le perceptron doit savoir qu’il
a commis une erreur. En effet, en avance, il doit connaître la réponse souhaitée. Cependant,
lorsqu‘il a commis une erreur, la cellule va modifier l’intensité de ses connexions. Cette
modification se déroule comme suit : si la cellule de sortie est active quand elle devrait être
inactive, elle diminue l’intensité des connexions correspondant aux celles de la rétine qui sont
déjà actives. En effet, la cellule augmente l’intensité des connexions correspondant aux cellules
de la rétine qui sont actives pour qu’elle doive active. Puis seuls les poids des liaisons entre la
35
couche d’association et la couche finale peuvent être modifiés en appliquant la règle de Widrow-
Hoff (voir paragraphe 3.7.1.2).
Son algorithme d’apprentissage se procède comme suit :
- Etape 1 : Présentation d’un exemple : on stimule le réseau par l’environnement (entrée dans
un ordre arbitraire), le perceptron apprend.
- Etape 2 : S’il y a des erreurs, le réseau subit des changements en réponse à cette stimulation
ainsi une représentation d’exemple dans un nouvel ordre. En effet, il apprend de nouveau.
- Etape 3 : Revenir à (étape 2) jusqu’à ce qu’on obtient toutes les réponses souhaitées.
3.7.1.2 Adaline
Le modèle Adaline est développé par Bernard Widrow en 1960. Adaline est une abréviation de
« Adaptive Linear Element ». Ce modèle est une extension du perceptron simple étant donné que sa
structure se compose d’un perceptron linéaire sans couche cachée dont à un seul neurone. Ainsi,
l’idée est de remplacer la fonction seuil sur les cellules de sortie par la fonction identité (f(x)=x).
Cependant, l’apprentissage est en mode supervisé afin de minimiser l’erreur quadratique du
système.
Figure 3.07 : Architecture d’un modèle Adaline
Son fonctionnement est comme suit : on donne à l’ADALINE un signal d’entrée puis les poids du
réseau seront ajustés en comparant la valeur du signal de sortie avec celle désirés. Ensuite,
l’apprentissage s’effectue jusqu’à ce que le taux d’erreur soit admissible en ajustant les poids.
Ainsi, son algorithme d’apprentissage se procède comme le suivant [27] :
Etape 1 : Tirer au hasard w0
Etape 2 : Présenter une forme (xk , d k )
Etape 3 : Déterminer la valeur de l’écart :
��(�) = (�� − (� × ��)) (3.15)
36
Etape 4 : Calculer une approximation du gradient :
∆� ���������(� ) = − 2��(�)�� (3.16)
Etape 5 : Adapter les poids : w(t) tel que :
� (�+ 1) = � (�) − ℰ(�)∆� ���������(� ) (3.17)
Où ℰ(�) est le pas du gradient.
Etape 6 : Répéter de 2 à 4 jusqu’à l’erreur soit admissible.
3.7.1.3 Le Perceptron multicouches ou Multi-Layer Perceptron (MLP)
En 1969, il est développé par Minsky et Papert. Il est une amélioration du perceptron comprenant
une ou plusieurs couches intermédiaires dites : couches cachées ou « Hidden layer ». De plus, il
permet de palier l’inaptitude de son prédécesseur à traiter de problèmes non linéairement séparables
comme la porte logique complexe XOR étant donné qu’il adopte un « hidden layer » ou couche
caché non vide.
Du point de vu architecture, chaque neurone n'est relié qu'aux neurones des couches directement
précédente et suivante, mais tous les neurones de ces couches.
Il utilise un algorithme de Rétropropagation du gradient (voir paragraphe 3.7.1.3) pour la
modification de leurs poids en respectant la règle de Widrow-Hoff que nous allons voir
ultérieurement. Ainsi, on propage la modification des poids de la couche de sortie jusqu’à la couche
d’entrée.
Contrairement à son prédécesseur, il peut utiliser des fonctions d’activations telles que la sigmoïde,
si bien qu’il n’est plus exclusivement binaire.
Comme il agit comme un séparateur non linéaire, on peut l’utiliser pour la classification, le
traitement de l’image ou l’aide à la décision.
Figure 3.08 : Réseau perceptron multicouches
37
3.7.2 Réseaux récurrents
Dans ce type, les neurones peuvent transmettre des informations entre eux. Il existe au moins une
boucle de rétroaction au niveau des neurones ou entre les couches. Puis on prend en compte de
l’aspect temporel du phénomène, mémoire. En effet, son mise en œuvre est plus dure. 3.7.2.1 Réseau de Kohonen
En 1982, T. Kohonen développait le premier réseau de type feedback. Il s’agit d’un établissement
d’une carte discrète, ordonné topologiquement, en fonction de patterns d’entrée. Ainsi, le réseau
forme une sorte de treillis où chaque nœud est un neurone associé à un vecteur de poids. Puis pour
chaque entrée, on calcule la correspondance entre chaque vecteur de poids. Ensuite, il modifie le
vecteur de poids ayant la meilleure corrélation ainsi que certains de ses voisins afin d’augmenter
encore cette corrélation.
Figure 3.09 : Réseau de Kohonen
Il consiste à prendre les valeurs binaires comme réelles si bien qu’il peut utiliser une sigmoïde
comme fonction d’activation. Puis, l’apprentissage est en mode supervisé auto-organisationnel (voir
paragraphe 3.6.1). On l’utilise dans l’analyse et la classification automatique de données [28].
3.7.2.2 Réseau de Hopfield
Développé par Hopfield en 1982, il est basé sur les principes de la physique statistique.
Fondamentalement, il est une mémoire adressable par son contenu. Ainsi, il est un réseau avec des
sorties binaires où les neurones sont interconnectés avec des poids symétriques dont le poids du
38
neurone Ni au neurone Nj est égal au poids du neurone Nj au neurone Ni. De plus, les poids sont
donnés par l’utilisateur.
Figure 3.10 : Réseau de Hopfield
Typiquement, il est utilisé pour résoudre le problème du voyageur de commerce. De plus,
L'application principale des réseaux de Hopfield est l'entrepôt de connaissances mais aussi la
résolution de problèmes d’optimisation [29].
3.7.2.3 Les réseaux Adaptive Resonance Theory
En 1987, Carpenter et Grossberg travaillait sur l’architecture évolutive d’un réseau de neurone en
développant les réseaux ART ou « Adaptive Resonance Theory ». Ainsi, l’apprentissage est en
mode compétition afin d’assurer la stabilité. Spécifiquement, les ART ont été inventés pour
contourner le problème de stabilité et de plasticité.
Dans ce type, les vecteurs de poids ne seront adaptés que si l’entrée fournie est suffisamment proche
d’un prototype déjà connu par le réseau. Donc, on parlera de résonance. A l’inverse, lorsque l’entrée
s’éloigne trop des prototypes excitants, une nouvelle catégorie va alors se créer pour prototype,
l’entrée qui a engendrée sa création. Puis, la phase d’apprentissage et la phase d’exécution se
réalisent en même temps. Il est à noter qu'il existe deux principaux types de réseaux ART : les ART-
1 pour des entrées binaires et les ART-2 pour des entrées continues.
3.8 Propriétés des réseaux de neurones
En générale, les réseaux de neurones à couches ont la propriété d’être des approximateurs universels
parcimonieux.
39
Les réseaux de neurones présentent les propriétés suivantes :
La propriété d’approximation universelle : il est capable de résoudre des problèmes simples ou
complexes.
La propriété parcimonieuse : Lorsque l’on cherche à modéliser un processus à partir des
données, on s’efforce toujours d’obtenir les résultats les plus satisfaisants possibles avec un
nombre minimum de paramètres ajustables.
Ils se comportent plus d'une façon adaptative que programmée
Ils sont capables de fonctionner même en présence d'une information partielle ou d'une
information brouillée
Ils fonctionnent comme une machine de classification qui extrait les traits caractéristiques des
objets présentés lors de l'apprentissage, pour réorganiser sa connaissance en conséquence.
3.9 Conclusion
Un réseau de neurones est une interconnexion de neurones formels. Ainsi, cette interconnexion qui
rend l’ensemble très complexe bien que le fonctionnement d’un neurone est très simple. Du point
de vu architecture, un réseau de neurones présente la même structure. Il doit obtenir une sortie après
l’application d’une fonction de transfert à partir de plusieurs entrées. Pour cela, on doit faire
apprendre le réseau de neurone dont il consiste d’optimiser l’ensemble des poids suivant des
différentes règles d’apprentissage. Il peut être utilisé pour résoudre des problèmes complexes dans
des différents domaines. C’est ainsi, on doit utiliser le réseau de neurones dans la reconnaissance
du visage. Dans le prochain chapitre suivant, on va voir la phase de conception et la réalisation de
ce projet.
40
CHAPITRE 4
CONCEPTION ET REALISATION
4.1 Description de projet
4.1.1 Présentation du projet
Aujourd’hui, la mise en place du système de biométrie est en pleine évolution à Madagascar. Cette
nouvelle démarche devra permettre la reconnaissance des personnes à partir leurs caractéristiques
morphologiques en utilisant des moyens à base de l’informatique, électronique et de
télécommunication.
Ce projet permettra d’identifier l’individu à partir de son image complète ou une partie de son
visage. Il consiste à diminuer quelques difficultés de système basé sur la reconnaissance du visage
comme : la présence des lunettes opaques, une moustache ou une barbe, changement de forme des
yeux.
Figure 4.01 : Aperçu du système
41
4.1.2 Spécification des besoins fonctionnels
Les besoins fonctionnels servent à présenter les actions que doit effectuer le système en réponse à
une demande présentée par un utilisateur. Le système doit permettre à ce dernier de :
S’authentifier
Créer et modifier un compte utilisateur
Ajouter l’identité d’une personne à partir d’une saisie puis ses images.
Afficher, rechercher à partir d’une saisie ou d’une image et supprimer l’identité d’une
personne stockée dans la base de données
Se connecter à une base de données à distant
Voir l’historique des événements
Imprimer l’identité d’une personne
Imprimer la liste des personnes
Consulter l’identité d’une personne stockée dans la base de données
Consulter le volume de données
Consulter la propriété de l’ordinateur
Supprimer une image
Consulter des statistiques
Consulter une aide en ligne
Envoyer des messages
4.1.3 Spécification des besoins non fonctionnels
Les besoins non fonctionnels présentent les exigences internes pour le système et cachées vis-à-vis
des utilisateurs.
Compatibilité avec plusieurs systèmes d’exploitation tout en étant facile à manipuler
La sécurité des données doit être prise en compte : sécuriser les données revient à appliquer
une stratégie d’identification et d’authentification accrue au sein du système
L’accès à la base de données doit être rapide
Temps de réponse minimale
4.1.4 Objectifs du projet
En considérant ces besoins, l’objectif est de réaliser un système biométrique permettant de gérer
l’identité d’une personne à partir de son visage. Principalement, il est conçu pour déterminer
42
l’identité de personne de manière irréfutable à partir des images de son visage récupéré par des
capteurs ou scanneur.
Ainsi, l’application de ce système au bureau locaux administratifs, nous permet de vérifier l’intégrité
entre la photo d’identité de la carte comme la carte d’identité nationale, permis de conduire, carte
d’étudiant, carte d’accès, même si la photo était flou. Ensuite, il est capable de vérifier la sécurité
d’un système de caméras de surveillance en cas de camouflage des individus si on trouve quelque
partie du visage.
4.2 Outils de travail
4.2.1 Matériel
Durant la réalisation de ce projet, on utilise un ordinateur doté d’un système d’exploitation
Windows, qui sert à la fois la station de développement et serveur de base de données, héberger et
exécuter l’application.
Sa caractéristique est détaillée dans le tableau ci-dessous :
OS Windows 7 edition integral Processeur Intel(R) Core(TM) i3-3110M CPU @
2.40GHz RAM 6.00 Go
Disque dure 120 Go
Tableau 4.01: Caractéristiques techniques de PC utilisé lors de ce projet
4.2.2 Logiciels
4.2.2.1 EDI Netbeans
Pour la programmation nous allons décider d’utiliser EDI Netbeans 8.0.2. L’application qui fait
office d’IHM (Interface Homme Machine), sera développée en Java.
Il est un logiciel de développement open source pour développer des programmes sur Java, C, C++,
PHP, JavaScript, etc. Ainsi, Il est disponible sous Windows, Linux, Mac OS X ou sous une version
indépendante des systèmes d’exploitation requérant une machine virtuelle Java, développé en Java.
Les outils nécessaires y sont déjà présents pour créer des applications d’internet professionnelles,
de bureau, mobile, etc. Pour les développements en java, un JDK (Java Development Kit) est requis.
43
4.2.2.2 JMerise
Pour la modélisation des modèles conceptuels de données, on a utilisé le JMerise pour Merise. Il est
capable de générer automatiquement le modèle physique des données et les scripts SQL pour les
différents systèmes de gestion de base de données.
4.2.2.3 MySQL
MySQL est un logiciel qui permet de gérer des bases de données ainsi que de grosses quantités
d’informations, en utilisant le langage SQL. Il est l’un des SGBDR (Système de Gestion de Bases
de Données Relationnelles) les plus utilisés.
4.2.3 Langage informatique
4.2.3.1 Java
James et Patrick Naughton, employés de Sun Microsystems, avec l’aide de Bill Joy (cofondateur
de Sun Microsystems) créaient le langage Java qui est un langage de programmation informatique
orienté objet, présenté officiellement le 23 mai 1995 au SunWorld.
Il est un ensemble de classes et d’interfaces défini par Sun et les acteurs du domaine des bases de
données. Au départ, son objectif est de développer un langage avec lequel on puisse développer les
logiciels pour l’électronique grand public comme lecteurs CD-ROM, etc.
On a choisi java en vue de ses multiples avantages :
La simplicité : Java est un langage simple.
La compatibilité : Java est disponible sur de multiples plateformes.
La gratuité : la machine virtuelle Java ou JVM (Java Virtual Machine) est gratuite ainsi que
de multitudes API (Application Programming Interface).
L’orienté objet : il est très utile pour le développement d’une application étant donné qu’il
nous permet la réutilisation des objets entre les différents services [29].
4.2.3.2 SQL
Il est un langage normalisé afin d’exploiter des bases de données relationnels. En effet, on le
manipule pour la recherche, ajout, modification, suppression des données dans les bases de données.
44
4.2.4 Framework et Librairie
4.2.4.1 OpenCV
OpenCV est un acronyme de « Open Computer Vision ». C’est une bibliothèque de traitement
d’image créée par Intel, maintenu par Willow Garage. Il est gratuit puis multiplateforme disponible
sous Windows, Linux, Mac OS X, disponible pour C, C++, python, java.
Il est un Framework très puissant pour la vision artificielle ainsi une compilation d’algorithmes
intéressants pour la vision et faciles à utiliser.
4.2.4.2 JavaCV
JavaCV est une extension Java de OpenCV. Ils nous apportent une façon simple de travailler avec
ce dernier. La combinaison de JavaCV et OpenCV nous offre plus d’avantages.
4.3 Conception
4.3.1 Algorithme de détection du visage
Pour détecter le visage présent dans une photo, on utilise la découverte de l'objet tel que « Haar
classifieurs » développée par Paul Viola et Michael Jones. C'est une « Machine Learning », basé
dans l’approche dont une fonction de cascade.
Ici, nous travaillerons avec découverte du visage. Initialement, l'algorithme a besoin de beaucoup
d'images positives (images du visage) et images négatives (images sans visages) pour former le
classifieur. Alors nous devons extraire des traits du visage.
Son algorithme se présente comme suit :
En premier, un classifieur est formé avec quelques centaines de vues de l'échantillon d'un
visage appelé des exemples positifs avec la dimension 20 x 20 pixels.
Après qu'un classifieur soit formé, il peut être appliqué à une région d'intérêt dans une image
de l'entrée. Les productions du classifieur un "1" si la région montre le visage, et "0" si
autrement.
Pour chercher le visage entier, on déplace la fenêtre de la recherche à travers l'image et
vérifie chaque emplacement qui utilise le classifieur. Le classifieur est conçu afin qu'il puisse
être redimensionné facilement pour être capable de trouver le visage d'intérêt à dimensions
différentes qui sont plus effectives que redimensionner l'image elle-même.
45
Figure 4.02 : Organigramme de détection du visage
4.3.2 Normalisations
Après la détection du visage, il est nécessaire d’effectuer une opération de normalisation. En effet,
on doit éliminer les zones non informatives si bien qu’elle consiste en un centrage du visage dans
l’image. Pour garantir la bonne performance du système, Il est important que toutes les images
soient de taille identique à 100x100 pixels, à la même échelle et au même format JPEG.
4.3.3 Les réseaux de neurones artificiels dans la reconnaissance du visage
4.3.3.1 Prétraitement
Pour fournir les entrées aux réseaux, on procède à une phase de prétraitement crucial. Son
algorithme se présente comme suit :
Soient : h la hauteur de l’image en pixels et l celle de largeur en pixels.
46
Figure 4.03 : Organigramme de prétraitement
4.3.3.2 Architecture
Dans ce projet, on utilise le réseau du type Kohonen. Il s’agit de « Vector Quantifization » (VQ) en
Anglais, il désigne le fait de remplacer un vecteur dont les composantes peuvent être quelconques,
par un vecteur d’un ensemble discret. Il est en mode non-supervisé. En effet, parmi tous ses types,
le type VQ est le type le plus adapté à l’application de reconnaissance du visage, étant donné qu’au
contraire des autres types qui donnent de performances basses. Le VQ réalise de hautes
performances de classification.
Il est à 4 couches :
Couche entrée : le nombre de nœuds soit 25 au maximum suivant l’algorithme du
prétraitement, noté en.
47
Couche cachée : on a deux couches dont une couche de compétition pour la détermination
du neurone vainqueur et une couche de neurones linéaires pour la classification. Ainsi, La
deuxième couche comporte un neurone par classe, la première comporte un neurone par
sous-classe. Le nombre de neurones de la première couche soit équivaut au nombre d’images
dans la base de données tandis que celle de la deuxième soit au nombre de personne y
présent.
Couche de sortie : elle n’a qu’un seul neurone et son sortie est notée S.
Soient :
en : l’entrée de réseau
w1 : le poids de connexions entre le neurone de la couche compétition et celle de
classification.
w2 : le poids de connexions entre le neurone de la couche classification et celle de la sortie.
ϴ : seuil.
S : la sortie de réseau.
f : fonction de transfert
48
Figure 4.04 : Architecture du réseau
θ
49
4.3.3.3 Fonction de transfert
Pour activer les neurones de la couche compétition, on utilise la fonction qui permet de calculer la
corrélation entre deux images, c’est le CV_TM_CCORR_NORMED de l’OpenCV tel que :
R(x, y) =∑ (����,���� ������,�����)�
��,��
� ∑ �(��,��)�.�(����,����)���,��
(4.01)
Soient : T et I : deux matrices telles que T la représentation matricielle de l’image comparée à celle
de I.
R(x,y) retourne en deux matrices, ce sont : minLoc et maxLoc. Pour obtenir le maximum de
corrélation on utilise la fonction minMaxLoc de l’OpenCV en fonction de minLoc et maxLoc.
Elle retourne en deux matrices à 2x2 chacun, l’un est la valeur minimale et l’autre le maximum que
l’on note respectivement min_val, max_val.
Ainsi, on récupère le maximum de max_val que l’on note
f. En effet, f varie de -1 à 1 d’où f se comporte comme le sigmoïde.
Ainsi, pour la deuxième couche cachée, on utilise la fonction seuil que l’on note
s(n)=α (4.02)
Tel que on fixe θ=0.998 dont :
�α = 0, n < θα = 1, n ≥ θ
(4.03)
4.3.3.4 Fonctionnement
L’algorithme de base VQ se présente comme suit :
- Application d’une entrée.
- Recherche du neurone vainqueur : Sélectionner le neurone dont le vecteur poids est le plus
proche du vecteur d’entrée.
Les entrées de réseau contiennent entre 2 et 25 nœuds c’est-à-dire un bloc de 20 x 20 pixels ou 10
x10 pixels suivant l’algorithme de prétraitement présenté dans le paragraphe 4.3.2.1. Ainsi, Sa
première couche compétitive permet de modéliser l’espace des entrées, alors que la seconde linéaire
permet de prendre des décisions.
Chaque neurone de la première couche est associé a priori à une classe, généralement, avec plusieurs
neurones par classe. Puis, pour le neurone caché de la couche compétition, on active le réseau par f
(qu’on a développé dans le paragraphe 4.3.3.3).
50
De plus, dans le neurone de la deuxième couche, on classifie le neurone de chaque sous classe
suivant une classe bien déterminée c’est-à-dire on regroupe chaque neurone suivant les individus
présents dans la base. Le poids de connexions entre le neurone de la couche de compétitions et celle
de la classification est donnée par :
� ��� = ∑ �(��)����
��� (4.03)
Ensuite, pour activer le neurone de la couche de sortie, le poids de connexions entre le neurone de
la couche de classification et celle de sortie, se modélise comme :
� ��� = ∑ � �
��× �(� ���)
������� (4.04)
A la sortie, on sélectionne le neurone dont le vecteur poids est le plus proche du vecteur d’entrée,
c’est le neurone qui a le maximum de corrélation du neurone de la deuxième couche de la couche
cachée. Alors S donne la classe de neurone sélectionnée.
4.3.3.5 Apprentissage
L’apprentissage est en mode non-supervisé, c’est à dire que l’information d’appartenance des
vecteurs d’exemple à une classe n’est pas utilisée pendant l’apprentissage, sauf pour ceux qui sont
utilisés pour initialiser l’algorithme.
Ici, pour entrainer le réseau, on ajoute 25 personnes avec 1 image chacun dans la base de donnée.
On utilise un à un de ces images à l’entrée de réseaux. Après chaque apprentissage, on recueillit les
valeurs de poids de connexions par classe afin de diminuer le taux de FRR.
Puis, on apprend au réseau 25 images hors classe afin de chercher le seuil minimal au neurone, pour
éliminer le FAR.
Cependant, on ajuste les poids de connexion et la valeur seuil que nous utiliserons dans le réseau en
détectant le neurone vainqueur.
4.3.4 Présentation de MERISE
On utilise le Méthode d’Etude et de Réalisation Informatique pour les Systèmes d’Entreprise ou
MERISE pour la méthode de conception, de développement et de réalisation de ce projet. Elle
consiste à concevoir un système d’information, basé sur le principe de séparation des données et des
traitements [31].
Pour ce faire, on suit une succession d’étapes qu’on l’appelle cycle d’abstraction tel que
conceptuelle, logique et physique puis chacune correspondant à une modélisation des données et
des traitements.
51
4.3.4.1 Modèle conceptuel de données
On aboutit au modèle conceptuel de données (MCD) afin d’identifier et de décrire les données
utilisées par le SI en définissant les relations entre ces données. Pour sa construction, il est évident
de connaître les différents détails au système envisagé.
En effet, il est nécessaire de déterminer :
Les différentes entités entrant
Les relations entre ces entités
Les cardinalités associées
Les propriétés de chaque entité
Ainsi, le MCD établi pour notre base de données comme suit :
Figure 4.05 : Modèle MCD
52
Une base de données est constituée par un ensemble de tables tandis que le MCD ne connaît pas la
notion de table. En effet, on utilise le Modèle Logique des Données (MLD), qui utilise le formalisme
des tables logiques.
4.3.4.2 Modèle logique de données
Il consiste à représenter les informations du MCD en adaptant aux structures d’une base de données.
Pour cela, on suit les règles suivant :
les entités deviennent des tables.
l’identifiant d’une entité devient la clé primaire de la table associée à cette entité.
les propriétés d’une entité deviennent des attributs de la table.
pour l’association :
(0,1) ou (1,1) à (0, n) ou (1, n) :
L’entité qui est du côté de la cardinalité (0,1) ou (1,1) reçoit comme attribut
l’identifiant de l’autre entité.
Les propriétés de l’association deviennent des attributs de l’entité qui est du
côté de la cardinalité (0,1) ou (1,1).
(0,n) ou (1,n) à (0,n) ou (1,n) :
L’association devient une table
Les identifiants des entités participants à l’association forment ensemble la
clé de la table issue de l’association.
Les propriétés de l’association deviennent les attributs de la table issue de
l’association.
En appliquant cette règle, on obtient le MLD suivant :
53
Figure 4.06 : Modèle MLD
4.3.4.3 Modèle physique de donnée
Le Modèle Physique de Données (MPD) consiste à traduire le MLD dans la structure de données
spécifique au système de gestion de bases de données utilisé. En général, on utilise le langage SQL
alors il s’agit la traduction du MLD en script SQL.
4.4 Réalisation
Dans cette partie, on parle la réalisation de l’application et la représentation des différentes
fonctionnalités qui ont été développées et testées.
54
4.4.1 Présentation général de l’application
Notre application porte le nom « i-max » ou « Identity Max » (Reconnaissance du visage
intelligente). Elle constitue un système de biométrie basée sur la reconnaissance du visage. Elle est
développée en java afin d’avoir la portabilité dont elle s’adapte aux différents systèmes
d’exploitation autre que Windows qui supporte la machine virtuelle java.
Elle tient son nom du fait que l’identification de personne à partir de l’image visage générés soit
intelligente : elle utilise la stratégie de réseau de neurone. Le visage est détecté automatiquement
sans intervention de l’utilisateur.
L’application est conçue pour identifier la personne en utilisant une partie ou l’image du visage
entier en ajoutant l’identité de l’individu avec un ou plusieurs images. Ainsi, l’information
collectées est traitée et organisée suivant le MCD que nous avons établi : l’ensemble des
informations est stocké dans une base de donnée unique, assurant ainsi la centralisation des données.
Après l’exécution de l’application, la fenêtre de chargement est la première interface vue par
l’utilisateur.
Figure 4.07 : Fenêtre de chargement de l’application
Après la terminaison du chargement, on passe à la fenêtre d’authentification. Ce dernier sert à
restreindre l’accès à l’application.
La figure ci-dessous présente cette fenêtre. On demande de saisir le nom de l’utilisateur et le mot
de passe pour accéder à l’application.
55
Figure 4.08 : Fenêtre d’authentification de l’application.
Après l’authentification, on accède directement à la fenêtre principale dans l’onglet accueil : elle est
composée d’une barre de menus, d’une barre d’outils, une étiquette désignant le nom de l’utilisateur
avec son photo et d’une horloge.
Figure 4.09 : Fenêtre principale de l’application.
56
4.4.2 Fonctionnalité de base
D’après la figure 4.09, i-max offre plusieurs options de base :
Accueil : présente les différentes options fournis par i-max dans l’interface présenté sur la figure
4.0.9.
Ajout : il permet d’enregistrer l’identité de personne.
Figure 4.10 : Fenêtre Ajout de l’application.
On complète tous les champs:
57
Figure 4.11 : Exemple d’ajout de personne dans l’application
Après avoir remplir tous les champs, en cliquant sur le bouton en bleu d’icone flèche ou appuyant
la touche ENTER, on accède à l’interface pour ajouter les images suivantes :
Figure 4.12 : Exemple d’ajout d’image dans l’application
Liste : il permet aux utilisateurs de gérer toutes les personnes présentes dans la base de données.
Figure 4.13 : Fenêtre liste de personne ajoutée de l’application
58
Cette interface offre plusieurs services à l’utilisateur :
Consulter tous les individus présents dans la base de données
Gérer la liste de personne présente dans la base de données telle suppression,
modification, ajout d’image.
Effectuer une impression du tableau contenant la liste
Création de document au format PDF
Rechercher rapide
Les documents PDF peuvent être stockés dans le disque dur.
Figure 4.14 : Exemple d’un document PDF fournis par l’application
59
Recherche : il offre plusieurs options de recherche : par image ou par saisie. Sa fenêtre est la
suivante :
Figure 4.15 : Fenêtre Recherche de l’application
Après le choix de l’image à reconnaitre, un bouton de recherche apparait. En le cliquant, on obtient
l’interface suivante.
Figure 4.16 : L’interface l’hors d’une recherche.
60
Dès que la recherche soit terminée, on obtient les renseignements de l’individu dans le cas où la
recherche est réussie; si non, on n’affiche aucun résultat.
Figure 4.17 : Exemple d’un résultat de recherche
Paramètres : il permet de configurer les comptes d’utilisateur tel modifier le nom de compte et
mot de passe, changer la photo. Etant administrateur, il permet de créer un nouvel compte ainsi
que supprimer les comptes existants.
Figure 4.18 : Fenêtre de paramètres pour l’application.
61
Historique : un historique est mis à la disposition afin d’assurer une meilleure traçabilité des
activités de l’utilisateur. Il affiche en vue détaillée des différentes actions effectuées par
l’utilisateur.
Figure 4.19 : Historique des actions
4.4.3 Fonctionnalité supplémentaire
Pour faciliter l’utilisation de l’application, on fournit aux utilisateurs une aide détaillée. Pour cela,
on clique sur le sous-menu « En ligne » en redirigeant vers un site web pour encore avoir plus de
détails.
Figure 4.20 : Sous-menu « En ligne »
62
Figure 4.21 : Site web pour aide en ligne
Ainsi, une autre fonctionnalité est ajoutée à l’application : informations. Elle permet de voir le
volume de donnée, le nombre d’images, le nombre de personne. Puis elle intègre un outil statistique
permettant de représenter les données plus facilement sous forme graphique pour le sexe et la
nationalité, la profession.
Figure 4.22 : Statistiques fournis par l’application.
63
De plus, en cliquant sur le « propriétés du système », on peut consulter toutes les propriétés de
l’ordinateur.
Figure 4.23 : Fenêtre « propriétés système »
Pour se dialoguer, en entrant le curseur sur l’icône « message » (bleu-vert), on peut envoyer des
messages publiques ou privés.
Figure 4.24 : Exemple d’envoie et réception de message pour l’application
64
4.5 Conclusion
Ce dernier chapitre est consacré sur la réalisation de notre projet. C’est une partie d’études et de
conception de l’application. Nous avons décrit en premier lieu les différents besoins auxquels
l’application devra répondre ainsi que l’objectif du projet. Puis, les différents outils matériels et
logiciels ainsi que les langages utilisés pour le développement ont été détaillés. Ainsi, on a passé à
la conception de la base de données en terminant par une présentation de quelques interfaces
décrivant les fonctionnalités conçues de l’application.
65
CONCLUSION GENERALE
Dans ce mémoire, on s’intéresse à la reconnaissance du visage, en utilisant le réseau de neurones
artificiel VQ. L’objectif de ce mémoire étant de développer une application permettant d’identifier
la personne à partir de son portrait, soit complet ou non. Nous avons privilégié deux aspects clés
intervenants dans le système biométrique : apprentissage et reconnaissance.
Ainsi, nous avons présenté l’aspect du système biométrique qui domine actuellement en termes
d’indentification et d’authentification de personnes. Son architecture est bien organisée avec une
performance excellente. Elle présente des multitudes de technologies différentes.
Ensuite, nous avons présenté en revue les méthodes les plus connues de la détection du visage en
focalisant sur les principaux algorithmes de la reconnaissance du visage, qui se divisent en trois
catégories à savoir les méthodes globales, locales et hybrides. Nous avons décrit leurs avantages et
leurs inconvénients afin de dégager les problèmes liés à leur application dans un environnement
réel. De ce fait, un système de reconnaissance du visage est efficace au cas où les images seraient
bien cadrées et prises dans de bonnes conditions de luminosité. Si non, sa performance se dégrade.
On utilise le réseau de neurones artificiel afin de résoudre ce problème si bien que les neurones
travaillent ensemble. A l’aide des coefficients de connectivité, on relie chaque neurone entre eux.
Cette liaison représente la force de ses connexions. Grâces aux algorithmes d’apprentissage, on
obtient un réseau fonctionnant selon l’application que l’on désire.
Enfin, nous avons abordé la phase de conception et de réalisation de l’application en commençant
par l’identification des différents besoins requis et recensé, pour passer à la phase de conception.
Il se focalise sur la description de l’algorithme de type « machine Learning » afin de détecter le
visage. Ainsi, on a choisi le réseau VQ ou « Vector Quantifization » de type Kohonen dans ce projet
entant donné sa capacité de classification. On passe ensuite à la création de la base de données
utilisée pour l’application. Puis, on entame la programmation de l’interface homme machine (IHM).
On termine par la présentation d’une série de tests effectuée afin de s’assurer du bon fonctionnement
des différentes fonctionnalités conçues de notre application. Celle-ci permettra d’identifier une
personne à partir de son portrait soit complet ou non. De plus, elle nous offre un outil de gestion de
ces identités.
Ainsi, ce travail nous a permis d’exploiter les points forts de diverses technologies de
télécommunications et d’informatique afin de permettre à tout organisme ou organisation de mettre
en place le système biométrique basé sur la reconnaissance du visage.
66
ANNEXE 1 : NEURONE BIOLOGIQUE
Le nombre de neurones biologiques, dans le cerveau humain, est approximativement au nombre de
100 milliards. Le neurone est une cellule vivante, doté d’une capacité de traiter et de transmettre des
informations sous formes de signaux électriques entre eux à l’aide de ses différentes connexions que
l’on appelle synapse. De ce fait, ils reçoivent ces signaux par de extensions très ramifiées de leur
corps cellulaires (dendrites) et envoient l’information par de longs prolongements (les axones) afin
d’obtenir un résultat. On compare ce dernier à un seuil puis le neurone devient actif si ce seuil est
dépassé.
Un neurone typique a plusieurs composants. On peut citer quatre parties distinctes [24] :
le corps cellulaire : il contient le noyau de la cellule nerveuse où l’influx nerveux prend sa
naissance, qui représente l’état d’activé du neurone.
les dendrites : Ils sont des ramifications tubulaires courtes formant une espèce d’arborescence
autour de corps cellulaire. Ils sont des récepteurs principaux du neurone.
l’axone : il est une longue fibre qui se ramifie à son extrémité. Il assure le transport des
signaux émis par le neurone.
la synapse : elle est essentielle dans le fonctionnement du système nerveux. Elle joue le
rôle dans la connexion entre la dendrite et l’axone de deux neurones.
Figure A1.01 : Neurone biologique
67
ANNEXE 2 : SCRIPT SQL POUR LA CREATION DE LA BASE DE DONNEES
#------------------------------------------------------------
# Script MySQL.
#------------------------------------------------------------
#------------------------------------------------------------
# Table: Personne
#------------------------------------------------------------
CREATE TABLE Personne(
idPers int (11) Auto_increment NOT NULL ,
nom Varchar (25) ,
prenom Varchar (25) ,
Date_naissance Date ,
lieu_naissance Varchar (25) ,
numero_cin Varchar (15) ,
date_cin Date ,
adresse Varchar (25) ,
taille Varchar (25) ,
sexe Varchar (25) ,
nationalite Varchar (25) ,
prof Varchar (25) ,
nom_pere Varchar (25) ,
nom_mere Varchar (25) ,
date_ajout Date ,
heure_ajout Time ,
idImg Int ,
PRIMARY KEY (idPers )
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: Utilisateur
#------------------------------------------------------------
68
CREATE TABLE Utilisateur(
id_user int (11) Auto_increment NOT NULL ,
nom_utilisateur Varchar (25) ,
mot_passe Varchar (25) ,
ImAdim Mediumblob ,
type Varchar (25) ,
PRIMARY KEY (id_user )
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: Image_pers
#------------------------------------------------------------
CREATE TABLE Image_pers(
idImg int (11) Auto_increment NOT NULL ,
nom_image Varchar (25) ,
image Mediumblob ,
PRIMARY KEY (idImg )
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: message
#------------------------------------------------------------
CREATE TABLE message(
id_sms int (11) Auto_increment NOT NULL ,
src Varchar (25) ,
dest Varchar (25) ,
sms Text ,
date_sms Date ,
PRIMARY KEY (id_sms )
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: gerer
#------------------------------------------------------------
69
CREATE TABLE gerer(
idPers Int NOT NULL ,
id_user Int NOT NULL ,
PRIMARY KEY (idPers ,id_user )
)ENGINE=InnoDB;
#------------------------------------------------------------
# Table: envoyer
#------------------------------------------------------------
CREATE TABLE envoyer(
id_user Int NOT NULL ,
id_sms Int NOT NULL ,
PRIMARY KEY (id_user ,id_sms )
)ENGINE=InnoDB;
ALTER TABLE Personne ADD CONSTRAINT FK_Personne_idImg FOREIGN KEY (idImg)
REFERENCES Image_pers(idImg);
ALTER TABLE gerer ADD CONSTRAINT FK_gerer_idPers FOREIGN KEY (idPers)
REFERENCES Personne(idPers);
ALTER TABLE gerer ADD CONSTRAINT FK_gerer_id_user FOREIGN KEY (id_user)
REFERENCES Utilisateur(id_user);
ALTER TABLE envoyer ADD CONSTRAINT FK_envoyer_id_user FOREIGN KEY (id_user)
REFERENCES Utilisateur(id_user);
ALTER TABLE envoyer ADD CONSTRAINT FK_envoyer_id_sms FOREIGN KEY (id_sms)
REFERENCES message(id_sms);
70
ANNEXE 3 : CONFIGURATION DE NETBEANS AVEC L’OPENCV
Pour intégrer la librairie de l’OpenCV à un programme en java, il nécessite une configuration à
faire.
Après l’extraction de l’OpenCV.rar, il suffit de suivre la démarche suivante :
- Créer une nouvelle variable d’environnement : il consiste à copier le fichier
opencv_java2413.dll dans C:\opencv\build\java\x86\opencv_java2413.dll vers
C:\Windows\System32\
- Sélectionner le projet java dans Netbeans qu’on veut intégrer le libraire :
Clique droite sur le projet sélectionné puis aller à la « proprities », ensuite « run ».
Il faut mettre « -Djava.library.path="C:\opencv\build\java\x86" » dans le champ
« VM Options ».
Figure A3.01 : Configuration de OpenCV dans Netbeans
71
ANNEXE 4 : CONFIGURATION DU SERVEUR MYSQL SOUS CENTOS 7
CentOS est une distribution Linux de Red Hat. Etant un système d’exploitation Linux, il est libre
alors que l’utilisateur peut le modifier et le redistribuer. La spécification choisie pour le type
d’installation est serveur web de base afin d’installer tous les paquets nécessaires.
Nous allons utiliser la base de données Mariadb pour le serveur MySQL.
Pour avoir accéder à distant au serveur MySQL, les étapes suivantes ont été exécutées :
Démarrage du serveur MySQL : systemctl start mariadb
Création d’utilisateur : Par défaut dans MySQL, « root » est l’utilisateur. Alors il est
évident de créer un nouvel utilisateur avec cette commande :
Grant all privileges on smart.* to ‘user’@’%’ identified by ‘password‘
Ouverture des ports du firewall : Il est nécessaire d’ouvrir le port 3306 depuis toutes
les machines avec la commande :
iptables –a input –i eth0 –p tcp –destination-port 3306 –j accept
72
BIBLIOGRAPHIE
[1] A. Rampsay, « introduction à la biométrie », http://www.ac-poitiers.fr/electronique/IMG/doc/
introduction_a_la_biometrie.doc, Déc. 2016.
[2] J. D. Woodward, J. C. Horn, J. Gatune, A. Thomas, « Biometrics A look at facial Recognition »,
RAND Public Safety and Justice for the Virginia State Crime Commission, 2003.
[3] M. Y. Jung, « Biometric Market and Industry Overview », World Customs Organisation
Brussels : Belgium, 2005.
[4] D. Ichbiah, « les tendances de la biométrie », http://www.futura-sciences.com/magazines/high-
tech/infos/dossiers/d/technologietendances-biometrie-965/, Déc. 2016.
[5] A. K. Jain, L. Hong, S. Pankanti, « Biometrics: Promising Frontiers for Emerging Identification
Market », Communications of the ACM, pp. 91-98, Fév. 2000.
[6] S. Liu, M. Silveman, « A partical Guide to Biometric Security Technology », IEEE Computer
Society, IT Pro-Security, 2006.
[7] D. Blackburn, M. Bone, P. J Phillips, « Face recognition vendor test 2000 ».
http://www.Frvt.org, Janv. 2017.
[8] F. Michel, « Introduction à la biométrie », http://www.infcom.rnu.tn/content/pdf/cours/aline-
saidane/systeme-identification/Cours-biometrie-presentation2.pdf , Jan.2017.
[9] G. F. Maxwell, « Empreinte palmaire : à plein main »,
http://www.futura-sciences.com/tech/dossiers/robotique-bionique-robotique-inspiree-nature-816/,
Jan. 2017.
[10] L. Rabiner and B. Juang, « Hidden Markov Models for Speech Recognition », JSTOR :
Technometrics Volume 33 Number 3, 1991.
[11] J. G. Daugman, « How iris recognition works », IEEE Trans. Circuits Syst.
Video Technol. 21 –30 , 2004.
[12] P. Gellert, « Biométrie écriture », ISIR : Paris, 2014.
[13] M. Yang, D. J. Kriegman, N. Ahuja, « Detecting faces in images: A survey », IEEE Transactions
on Pattern Analysis and Machine Intelligence, vol. 24, pp. 34–58, 2002.
[14] T. Kanade, « Picture Processing by Computer Complex and Recognition of Human Faces »,
PhD thesis, Kyoto Univ., 1973.
[15] R. Brunelli, T. Poggio, « Face recognition : features versus templates », IEEE Trans. Pattern
Anal. Mach. Intell, pp-1042-1062, 1993.
73
[16] L. C. De Silva, K. Aizawa, and M. Hatori, « Detection and tracking of facial features by using
a facial feature model and deformable circular template », IEICE Trans. Inform. Systems E78-D
(9), pp. 1195-1207, 1995.
[17] R. Gross, J. Shi, J. Cohn. « Quo Vadis Face Recognition? ». Third Workshop on Empirical
Evaluation Methods in computer Vision, Déc. 2001.
[18] M. Barlett, H. Lades, T. Sejnowski, « Independent component representations for face
recognition », Spie Press: San Jose, Jan. 1998.
[19] W. Gao, S. Shan, « face Verification for access Control, Biometrics Solutions for
Authetification in an E-Worlf », Kluwer Academic Publishers, pp. 339-376, 2002.
[20] M. Jean-Baptiste, « Evaluation de réseaux de neurones », ISIR (UPMC), Paris, France,
2009.
[21] H. CHAOUI, « Conception et comparaison de lois de commande adaptatif à base de réseaux
de neurones pour une articulation flexible avec non-linéarité dure », Université de QUEBEC A
TROIS-RIVIERES, Déc. 2012.
[22] B. Aîda, R. Alexandre, N.A. Eva, « Exposé les réseaux de neurones » 2004,2005.
[23] C. Marie, « Les réseaux de neurones : historique, méthodes et applications », Université Paris
1- Sorbonne, 2010.
[24] P. jean, « Introduction aux réseaux de neurones »,
https://www.lrde.epita.fr/~sigoure/cours_ReseauxNeurones.pdf. Jan. 2017.
[25] M. Jean-Baptiste, « Evaluation de réseaux de neurones », ISIR : Paris, 2009.
[26] M. Parizeau, « Réseaux neurones gif-21140 et gif-64326 » Automne : Laval, 2004.
[27] Y. Bennani, « Apprentissage par réseaux de neurones artificiels », EPAT : France, 2014.
[28] G. Dreyfus, « Reconnaissance de formes par réseau de neurones »,
http://www.timotheecour.com/papers/vision_system.pdf, Fév. 2017.
[29] J. J. Hopfield. « Neural networks and physical systems with emergent collective computational
abilities », Proceedings of the National Academy of Sciences, pp. 2554-2558, 1982.
[30] L. E. RANDRIARIJAONA, « Programmation orientée objet », Cours I2-TCO, Dép. TCO. -
ESPA., A.U. : 2014-2015
[31] N. M. RAVONIMANANTSOA, « Système d’information et de base de données », Cours I3-
TCO, Dép. TCO. -ESPA., A.U. : 2015-2016
74
FICHE DE RENSEIGNEMENTS
Nom : ANDRIAMIARANARIVO
Prénom : Mahery
Adresse : Antsaramandroso Ambohitompoina 109
(+261)337237413
Titre du mémoire :
CONCEPTION ET REALISATION D’UN SYSTEME BIOMETRIQUE BASE SUR LA
RECONNAISSANCE DU VISAGE PAR RESEAUX DE NEURONES ARTIFICIEL
Nombres de pages : 75
Nombres de tableaux : 2
Nombre de figures : 45
Directeur de mémoire : M. RAVONIMANANTSOA Ndaohialy Danà
(+261)341401406
RESUME
La reconnaissance du visage est actuellement en plein essor. Elle peut être de valeur significative
dans la sécurité et les applications de commerce. L’objectif de ce projet est la mise en œuvre d’un
système d’identification de personnes. Pour cela, nous avons utilisé un modèle Biométrique. Cette
identification s’appuie sur l’image soit portrait complet ou non. Cette image est normalisée suivant
l’algorithme de prétraitement afin de fournir les entrées au réseau. Ainsi, le système de
reconnaissance du visage est basé sur l’utilisation de réseau de neurones VQ ou « Vector
Quantifization ». En effet, nous construisons une base de données afin de reconnaître une personne
parmi l’ensemble.
Mots clés : biométrie, reconnaissance, visage, réseau de neurones, Vector Quantifization.
ABSTRACT
The recognition of face is currently in full flight. It can be of meaningful value in the security and
the applications of trade. The objective of this project is to create a system of identification of people.
For it, we used a Biometric model. This identification leans on the picture complete portrait or no.
This picture is normalized according to the algorithm of post-treatment in order to provide the
entries to the network. Then, the system of face recognition is based by use of neural network VQ
or « Vector Quantifization ». Indeed, we construct a data base in order to recognize a person among
the whole.
Key words: biometry, recognition, face, network of neurons, Vector Quantifization.