Reconnaissance du mouvement du visage à partir des données vidéo

Transcription

Reconnaissance du mouvement du visage à partir des données vidéo
UNIVERSITE LIBANAISE
FACULTE DE GENIE
BRANCHE 1
No d'ordre 48/1440/G1-EE/2013
PROJET DE FIN D’ÉTUDES
Reconnaissance du mouvement du visage
à partir des données vidéo
Réalisé par
Rana AL SEDDIK
Pour obtenir le
Diplôme Ingénieur en Électricité et Électronique
Option Informatique Industrielle & Contrôle
Dirigé par :
Dr. Ahmad SHAHIN
Soutenu devant le Jury :
Dr. Youssef DAHER
Dr. Bassam EL ETER
Dr. Mustapha ZIADEH
Session Juillet 2013
Remerciements
En préambule à ce mémoire, je souhaiterais adresser mes remerciements les plus
sincères aux personnes qui m'ont apporté leur aide et qui ont contribué à l'élaboration de
ce mémoire ainsi qu’à la réussite de cette formidable année universitaire.
Je voudrais en tout premier lieu remercier le chef de département du génie
électrique et électronique de la Faculté De Génie – Branche I – de l’Université
Libanaise, Dr. Haissam Ziadé, le directeur de l’Ecole Doctorale des Sciences et
Technologie de l’Université Libanaise (Centre Azm), Dr. Mohamad Khalil, pour leurs
judicieux conseils et leur disponibilité.
J’adresse un grand remerciement au responsable de ce mémoire Dr. Ahmad
Chahine pour son aide précieuse et pour le temps qu’il m’a bien consacré ainsi que pour
l’inspiration et l’aide qu’il m’a apporté.
Je tiens à remercier les professeurs Youssef Daher, Mustapha Ziadeh, Bassam El
Eter, Mohamad Halimi et Haissam Ziadé qui ont choisi d’être les membres du jury de ce
projet et aussi les autres professeurs et enseignants de l’ULFG1 et de l’EDST qui ont
contribué à mon arrivée jusqu’ici.
J’exprime ma gratitude à tous mes proches et mes amis qui m’ont toujours
soutenue et encouragée au cours de la réalisation de ce mémoire.
Enfin, j’adresse mes sincères remerciements à ma famille pour sa contribution et
son soutien.
Résumé
Pour les êtres humains, l'expression du visage est l'un des plus puissants et
naturels moyens pour communiquer leurs émotions et leurs intensions.
Un être humain est capable de détecter les expressions du visage sans effort, mais, pour
une machine, cette tâche est très difficile.
La reconnaissance automatique des expressions faciales est un problème
intéressant.
Les systèmes de reconnaissance automatique des expressions du visage peuvent être
utilisés principalement pour l'interaction homme-machine.
Lors de la conception d‘un système de reconnaissance automatique des
expressions du visage, il y a trois sous problèmes: la détection du visage, l'extraction des
caractéristiques faciales, et la classification des expressions. Un système qui effectue ces
opérations, en temps réel et avec précision, serait crucial pour parvenir à une interaction
quasi-humaine entre l'homme et la machine.
Dans ce projet, plusieurs méthodes pour chaque problème vont être expliquées
brièvement pour en choisir une à programmer sur MatLab.
L‘algorithme choisi pour la détection du visage est le ‗Viola Jones‘, celui pour
l‘extraction des caractéristiques faciales est l‘analyse des composantes principales ou
EigenFace. Enfin, la classification est accomplie par un réseau de neurones de
reconnaissance de formes (Pattern Recognition).
Mots clés :
Viola Jones, EigenFace, Réseau de neurones, AdaBoost, image intégrale, classifieurs en
cascade.
Abstract
For humans, the facial expression is one of the most powerful and natural ways to
communicate their emotions and intensions.
A human being is able to detect facial expressions effortlessly, but for a machine,
this task is very difficult.
Automatic recognition of facial expressions is an interesting problem.
Systems for automatic recognition of facial expressions can be used primarily for humanmachine interaction.
When designing a system for automatic recognition of facial expressions, there
are three sub-problems: face detection, facial feature extraction and classification of the
expressions. A system that performs these operations in real time with accuracy is crucial
to achieve a quasi-human interaction between human and machine.
In this project, several methods for each problem will be explained briefly and
one will be programmed in MatLab.
The chosen face detection algorithm is the 'Viola Jones' for the extraction of facial
features is the principal component analysis or PCA. Finally, the classification is
performed by a pattern recognition neural network.
KeyWords :
Viola Jones, EigenFace, Neural network, AdaBoost, integral image, cascade classifiers.
Sommaire
Sommaire ……………………………………………………………………………… 1
Introduction générale et cahier de charges …………………………………………….. 3
Chapitre 1 : Etat de l’art ..……………………………………………………………... 5
1.1. Introduction …………………………………………………………………….. 5
1.2. Détection et suivi du visage …………………………………………………….. 5
1.2.1. Définition ………………………………………………………………… 5
1.2.2. Caractéristiques d‘un détecteur de visage ………………………………... 5
1.2.3. Développement récent …………………………………………………… 5
1.2.4. Détection du visage par Viola Jones ……………………………………… 7
1.2.4.1. Définition ………………………………………………………... 7
1.2.4.2. Image intégrale ………………………………………………….. 8
1.2.4.3. Classifieur AdaBoost …………………………………………. 9
1.2.4.3.1. Algorithme …………………………………………… 9
1.2.4.4. Classifieurs en cascade ……………………………………….. 10
1.2.4.4.1. Algorithme ……………………………………………. 10
1.3. Extraction des caractéristiques faciales ………………………………………… 11
1.3.1. Définition ………………………………………………………………… 11
1.3.2. Problèmes ………………………………………………………………… 11
1.3.3. Développement récent …………………………………………………… 11
1.3.4. Extraction des traits faciaux par EigenFace ………………..………… 13
1.3.4.1. Etapes de calcul ……………………………………………….. 13
1.3.4.1.1. Préparation de données ……………………………… 13
1.3.4.1.2. Calcul de la moyenne ………………………………. 13
1.3.4.1.3. Soustraction de la moyenne de chaque dimension … 13
1.3.4.1.4. Calcul de la matrice de covariance ………………… 14
1.3.4.1.5. Calcul des vecteurs et des valeurs propres ………… 14
1.4. Classification des expressions faciales …………………………………………. 14
1.4.1. Définition ………………………………………………………………… 14
1.4.2. Classification supervisée et non supervisée ……………………………… 15
1.4.3. Classification d‘Ekman …………………………………………………... 15
1.4.4. Développement récent …………………………………………………… 16
1.4.5. Classification par Réseau de neurones ………………………………… 18
1.5. Conclusion ……………………………………………………………………… 19
Chapitre 2 : Architecture du système implémenté ………………………………... 20
2.1. Introduction ……………………………………………………………………... 20
2.2. Processus adopté ………………………………………………………………... 20
2.3. Implémentation du processus …………………………………………………. 21
2.3.1. Détection du visage par Viola Jones ……………………………………... 21
2.3.1.1. Segmentation de la couleur de la peau …………………………... 21
2.3.1.1.1. Principe ………………………………………………. 21
2.3.1.1.2. Problèmes ……………………………………………. 21
2.3.1.2. Filtrage par un masque …………………………………………... 22
2.3.1.2.1. Principe ………………………………………………. 22
2.3.1.2.2. Problèmes ……………………………………………. 22
2.3.2. Implémentation de Viola Jones ………………………………………… 22
2.3.2.1. Base de données …………………………………………………. 22
2.3.2.2. Fonctions de Haar ……………………………………………….. 22
2.3.2.3. Méthodologie ……………………………………………………. 23
2.3.2.4. Problèmes et solutions …………………………………………... 24
2.3.3. Extraction des paramètres par EigenFace ……………………………… 25
2.3.3.1. Détection automatique des coins ………………………………... 25
2.3.3.1.1. Principe ………………………………………………. 25
2.3.3.1.2. Phase d‘apprentissage ………………………………… 25
2.3.3.1.3. Phase de test ………………………………………….. 25
2.3.3.1.4. Problèmes …………………………………………….. 25
2.3.3.2. Détection manuelle des points caractéristiques …………………. 26
2.3.3.2.1. Principe ……………………………………………….. 26
2.3.3.2.2. Problèmes …………………………………………….. 26
2.3.3.3. Implémentation de l‘ACP ………………………………………. 26
2.3.3.3.1. Base de données ……………………………………… 26
2.3.3.3.2. Méthodologie ………………………………………… 26
2.3.3.3.3. Problèmes et solutions ……………………………….. 27
2.3.4. Classification des expressions faciales par RN …………………………. 27
2.3.4.1. Préparation du RN ……………………………………………… 27
2.3.4.1.1. Choix du RN …………………………………………. 27
2.3.4.1.2. Phase d‘apprentissage ………………………………… 27
2.3.4.1.3. Phase de test …………………………………………... 27
2.3.4.1.4. Problèmes et solutions ………………………………... 28
2.4. Algorithme final ………………………………………………………………… 28
2.4.1. Traitement de la base de données ………………………………………... 28
2.4.2. Division du visage ……………………………………………………….. 28
2.4.3. Démarche suivie ………………………………………………………….. 28
2.5. Conclusion ……………………………………………………………………… 29
Chapitre 3 : Résultats et discussion …………………………………………………. 31
3.1. Introduction …………………………………………………………………….. 31
3.2. Condition du test ……………………………………………………………….. 31
3.3. Joie vs Neutralité ……………………………………………………………… 31
3.4. Extraction dynamique des caractéristiques …………………………………… 31
3.5. Nouvelle vidéo à tester ………………………………………………………… 32
3.6. Elargissement de la base de données …………………………………………… 32
3.7. Vitesses de la lecture de la vidéo ……………………………………………….. 32
3.8. Conclusion ……………………………………………………………………… 32
Conclusion générale et perspectives ……………………………………………….. 33
Bibliographie ………………………………………………………………………… 34
Annexes ..…………………………………………………………………………….. 38
INTRODUCTION GENERALE ET CAHIER DE
CHARGE.
Le système de reconnaissance des expressions faciales est un exemple de système
de vision artificielle.
Cette dernière a été définie comme l'acquisition automatique et l'analyse des images pour
obtenir des données souhaitées pour l'interprétation d'une scène ou d'une activité de
contrôle.
Pour un système de vision artificielle, il n'est pas nécessaire de copier tous les détails du
système visuel humain, mais il est important de comprendre la véritable complexité
derrière sa puissance et sa flexibilité.
La recherche actuelle dans le domaine de la vision artificielle concerne, non seulement la
compréhension du processus de la vision, mais aussi la conception des systèmes de vision
efficaces pour diverses applications du monde réel.
Pour un être humain, le moyen le plus puissant de communiquer ses émotions et
ses intensions est l'expression faciale.
Un être humain est capable de détecter les expressions du visage dans une scène sans
aucun effort. Mais, le développement d‘un système automatique qui effectue cette tâche
est assez difficile surtout que la demande d'extraire automatiquement les informations des
caractères faciaux augmente toujours.
L'analyse automatique de l'expression du visage est un problème qui affecte
d‘importantes applications dans de nombreux domaines tels que l'interaction hommemachine.
Bien que beaucoup de progrès ont été accomplis, la reconnaissance de
l'expression du visage, en temps réel, avec une grande précision reste un défi en raison de
la complexité et la variabilité de ces expressions.
Le processus de cette reconnaissance est formé de 3 étapes principales. La
première et la plus importante étape est la détection du visage à partir de la séquence
d‘images. L'étape suivante consiste à développer un mécanisme pour extraire les traits du
visage à partir de la séquence observée: les traits à extraire sont les traits saillants des
différentes parties du visage comme les sourcils, les yeux, le nez, la bouche et le menton.
Cette étape est souvent désignée comme le suivi du visage dans la scène. La dernière
étape consiste à élaborer un classifieur qui classe l‘ensemble étudié des traits faciaux
dans l'une des expressions du visage de base.
Selon les chercheurs, les émotions faciales sont classées en 6 prototypes de base
universels présents dans presque toutes les cultures: la surprise, la peur, la tristesse, la
colère, le dégoût et le bonheur.
Chaque expression est caractérisée par un certain nombre de traits qui, groupés et étudiés
ensemble, permettent une reconnaissance précise de l‘émotion faciale en jeu.
Beaucoup de chercheurs ont traité ce sujet et selon plusieurs processus. Nous
avons travaillé sur une vidéo profil tant que sur une vidéo face, l‘analyse des expressions
profils étant limitée jusqu‘au nos jours.
La suite du rapport présente les chapitres suivants:
- L‘état de l‘art des différentes méthodes de la détection du visage, de l‘extraction
des caractéristiques faciales et de la classification des émotions avec les méthodes
choisies pour chaque étape du processus : Viola Jones pour la détection du visage,
l‘Analyse des Composantes Principales (ACP) pour l‘extraction des
caractéristiques et les réseaux de neurones pour la classification des émotions.
- L‘architecture du système implémenté avec les démarches et l‘enchaînement des
algorithmes adoptés.
- Les résultats suivis d‘une discussion.
- La conclusion générale et les perspectives.
Chapitre 1 : Etat de l’art
1.1.
Introduction
Ce chapitre présente l‘état de l‘art des différentes méthodes élaborées et étudiées
pour la détection du visage, pour l‘extraction des caractéristiques faciales et pour la
classification des émotions par les plus importants chercheurs durant les années les plus
récentes.
1.2.
Détection et suivi du visage
1.2.1. Définition
La détection des visages, ou la localisation des visages dans une image d'entrée,
est une étape fondamentale de tout système de traitement des visages. Les visages extraits
sont ensuite utilisés pour initialiser le suivi du visage.
Localiser le visage dans une image est le processus de la détection du visage,
alors que la localisation du visage à travers les différentes images d'une séquence vidéo
est nommée le suivi du visage.
1.2.2. Caractéristiques d’un détecteur de visage
Un détecteur de visage idéal doit posséder les caractéristiques suivantes:
- Robustesse: il doit être capable de gérer les variations d'apparence selon la pose,
la taille, l'éclairage, l'occlusion, les milieux complexes, les expressions faciales et
la résolution.
- Rapidité: il doit être assez rapide pour effectuer le traitement en temps réel.
- Simplicité: il doit être simple. Par exemple, le temps de formation doit être
court, le nombre de paramètres doit être petit, et les échantillons d‘apprentissage
doivent pouvoir être recueillis à moindre coût.
1.2.3. Développement récent
La recherche dans les domaines de la détection des visages et leur suivi a été très
active pendant plusieurs années. Il est au-delà de la portée de ce document de présenter et
étudier toutes les méthodes proposées. Toutefois, ce paragraphe portera sur la détection
des visages et des algorithmes de suivi qui ont été utilisés par les chercheurs dans le
domaine de la reconnaissance des expressions faciales au cours des dernières années.
Une des méthodes mises au point dans les années 1990 pour détecter et suivre les
visages était le traqueur Kanade-Lucas-Tomasi. Le cadre initial a été proposé par Lucas
et Kanade [1], puis développé d‘avantage par Tomasi et Kanade [2].
En 1998, Kanade et Schneiderman ont développé un algorithme de détection de visage
robuste utilisant des méthodes statistiques [3], qui a été largement utilisé depuis sa
proposition.
En 2004, Viola et Jones ont développé une méthode utilisant l'algorithme
d'apprentissage AdaBoost qui pourrait rapidement détecter la vue frontale des visages. Ils
ont réussi à atteindre une excellente performance en utilisant de nouvelles méthodes qui
pourraient calculer les caractéristiques faciales très rapidement, puis séparer le fond
arrière du visage [4].
Le traqueur Piecewise Bézier Volume Deformation (PBVD), développé par Tao
et Huang [5], est largement utilisé par les chercheurs de la reconnaissance des
expressions du visage. Il utilise un modèle filaire 3D du visage associé à 16 volumes de
Bézier. Il est intéressant de noter que le même modèle PBVD peut également être utilisé
pour l'analyse des mouvements faciaux et l'animation des visages par ordinateur.
Voyons maintenant le modèle de visage Candide 3-D encore utilisé pour le suivi
du visage. Ce modèle est construit en utilisant un ensemble de triangles. Il a été
initialement développé par Rydfalk en 1987 pour l‘animation par ordinateur [6]. Le
modèle utilisé pour présenter le visage a ensuite été modifié par Stromberg, Gallois et
Ahlberg et dont les modèles ont fini par être connus comme Candide-1, Candide-2 et
Candide-3, respectivement [7].
Candide-3 est actuellement utilisé par la plupart des
chercheurs. Au cours des dernières années, en dehors de l'animation faciale, le modèle
facial, Candide, a été utilisé pour le suivi du visage [8]. Il est devenu une des techniques
de repérage populaires utilisées actuellement pour la reconnaissance des expressions
faciales.
Un autre traqueur de visages est le modèle Ratio Tracker proposé par Sinha en
1996 pour le projet robotique cognitive au MIT [9]. Scassellati l‘a utilisé pour développer
un système qui trouve d‘abord les yeux en détectant le visage en temps réel [10].
En 2004, Anderson et McOwen ont modifié le modèle Ratio Tracker en intégrant
le «nombre d'or» [11]. Ils ont appelé ce traqueur modifié comme le Spatial Ratio
Template Tracker [12]. Cette modification a permis au suivi de mieux travailler sous
différents éclairages. Anderson et McOwen suggèrent que cette amélioration est obtenue
en raison du «Golden Ratio», qui permet de décrire la structure du visage humain avec
plus de précision.
Le Spatial Ratio Template tracker (avec SVM) a été utilisé avec succès dans la
reconnaissance de l'expression du visage [13].
Un autre système qui permet d'obtenir un suivi rapide et robuste est le système
PersonSpotter [14]. Il a été développé en 1998 par Steffens et al. pour la reconnaissance
de visage en temps réel. Avec la reconnaissance faciale, le système possède également
des modules pour la détection du visage et de son suivi. L'algorithme de suivi localise les
régions d'intérêt qui contiennent des objets en mouvement en formant des images de
différence. Les détecteurs de la peau et les détecteurs de convexes sont ensuite appliqués
à cette région afin de détecter et de suivre le visage. Le système de suivi du PersonSpotter
a été démontré être robuste contre tout mouvement de fond-arrière considérable.
En 2000, Bourel et al., ont proposé une version modifiée du traqueur KanadeLucas-Tomasi [15], qu'ils ont appelé le traqueur EKLT (Enhanced KLT Tracker). Ils ont
utilisé les configurations et les caractéristiques visuelles du visage pour étendre le
système de suivi KLT ce qui a fait le KLT robuste contre les occlusions temporaires et lui
a permis de remédier la perte de points causée par les dérives de suivi.
D'autres traqueurs de face populaires (ou, en général, des traqueurs d'objets) sont
ceux basés sur des filtres de Kalman, filtres de Kalman étendu, filtres moyen-décalage et
un filtrage particulaire.
Hors de ces méthodes, les filtres à particules sont plus largement utilisés car ils
peuvent traiter avec succès le bruit, l'occlusion, l'encombrement et un certain degré
d'incertitude [16].
Au cours des dernières années, plusieurs améliorations dans les filtres à particules ont été
proposées: la prédiction de mouvement a été utilisée dans les filtres à particules
d'adaptation pour suivre les mouvements rapides et faire face aux occlusions [17], le
décalage moyen a été intégré dans les filtres à particules ce qui a traité le problème de
dégénérescence [18] et AdaBoost a été utilisé avec des filtres à particules pour permettre
la détection et le suivi des cibles multiples [19].
D'autres approches intéressantes ont été proposées. Au lieu d'utiliser un traqueur
pour le visage, Tian et al. ont utilisé des modèles de visage multi-états pour suivre les
traits permanents et transitoires du visage séparément [20]. Les caractéristiques
permanentes (lèvres, les yeux, le front et les joues) sont suivies en utilisant un traqueur
pour les lèvres, pour l‘œil et pour le front et la joue. Ils ont utilisé la détection des
contours par le filtre de Canny pour détecter les caractéristiques transitoires.
1.2.4. Détection du visage par Viola Jones
1.2.4.1.
Définition
La méthode de Viola et Jones est une méthode de détection de visages dans
une image numérique, proposée par les chercheurs Paul Viola et Michael Jones. Elle fait
partie des toutes premières méthodes capables de détecter efficacement et en temps réel
des visages dans une image.
La méthode de Viola et Jones est une approche basée sur l'apparence, qui consiste
à parcourir l'ensemble de l'image en calculant un certain nombre de caractéristiques dans
des zones rectangulaires qui se chevauchent. Elle a la particularité d'utiliser des
caractéristiques très simples mais très nombreuses. Une première innovation de la
méthode est l'introduction des images intégrales, qui permettent le calcul rapide de ces
caractéristiques. Une deuxième innovation importante est la sélection de ces
caractéristiques par boosting, en interprétant les caractéristiques comme des classifieurs.
Enfin, la méthode propose une architecture pour combiner les classifieurs boostés en un
processus en cascade, ce qui apporte un net gain en temps de détection.
La méthode, en tant que méthode d'apprentissage supervisé, est divisée en deux
étapes : une étape d'apprentissage du classifieur basé sur un grand nombre d'exemples
positifs (c'est-à-dire les objets d'intérêt, par exemple des visages) et d'exemples négatifs,
et une phase de détection par application de ce classifieur à des images inconnues.
1.2.4.2.
Image Intégrale
La première contribution est l'utilisation des images intégrales pour l'évaluation
rapide des caractéristiques qui est devenu populaire avec l'algorithme de détection de
visage séminal proposé par Viola et Jones [4].
Motivé en partie par le travail de Papageorgiou et al. le système de détection ne
travaille pas directement avec les intensités de l'image.
Les dispositifs utilisés dans le détecteur rappellent les fonctions de base de Haar
et forment un ensemble complet pour la représentation de l'image.
Pour calculer ces caractéristiques très rapidement et à de nombreuses échelles, on
introduit la représentation d'image intégrée pour les images.
L'image intégrale peut être calculée à partir d'une image à l'aide de quelques
opérations par pixel. L‘obtention des caractéristiques proposées implique le calcul de la
somme des valeurs de pixels sur des zones rectangulaires.
Une fois l‘image intégrée est calculée, un élément Haar quelconque peut être
calculé à n'importe quelle échelle ou à n'importe quel lieu durant une petite constante de
temps.
L’image
1.2.4.3.
L’image intégrale
Classifieur AdaBoost
La deuxième contribution de la méthode Viola et Jones est un classifieur simple et
efficace construit en sélectionnant un petit nombre de caractéristiques importantes à partir
d‘un grand nombre de caractères potentiels en utilisant AdaBoost.
Dans toute la sous-fenêtre de l'image, le nombre total de fonctions Haar est très
grand, beaucoup plus grand que le nombre de pixels. Afin d'assurer une classification
rapide, le processus d'apprentissage doit exclure une grande majorité des fonctions
disponibles, et se concentrer sur un petit nombre de caractéristiques essentielles.
Motivé par le travail de Tieu et Viola [4], la sélection des caractéristiques est
réalisée en utilisant l'algorithme d'apprentissage AdaBoost en contraignant chaque
classifieur faible à dépendre d'un seul trait (classifieur faible).
À la suite, chaque étape du processus de boosting, qui sélectionne un nouveau
classifieur faible, peut être considérée comme un processus de sélection de
caractéristiques.
AdaBoost fournit un algorithme d'apprentissage efficace et une forte limite sur les
performances de généralisation.
1.2.4.3.1. Algorithme
T hypothèses sont construites chacune en utilisant un seul trait. L'hypothèse finale est une
combinaison linéaire pondérée des hypothèses T où les poids sont inversement
proportionnels aux erreurs de formation.
• Ayant l‘exemple des images (x1, y1), . . . , (xn , yn ) où yi = 0, 1 pour les exemples
négatifs et positifs respectivement.
• Initialiser les poids w1,i = 1 /2m , 1/2l for yi = 0, 1 respectivement, où m et l sont
respectivement les nombres des exemples négatifs et positifs.
• For t = 1, . . . , T :
1. Normaliser les poids, wt,i ← wt,i _nj=1 wt, j
2. Sélectionner le meilleur faible classifieur en respectant l‘erreur pondérée
∑
| (
)
|
3. Définir ht (x) = h(x, ft , pt, θt ) où ft , pt , et θt les minimisants de ϵt .
4. Actualiser les poids:
où ei = 0 si l‘exemple xi est classifié correctement, ei = 1
sinon, et
• Le fort classifieur final est :
∑
( )
∑
( )
{
où
1.2.4.4.
Classifieurs en cascade
La méthode de Viola et Jones est basée sur une troisième approche par recherche
exhaustive sur l'ensemble de l'image, qui teste la présence du visage dans une fenêtre à
toutes les positions et à plusieurs échelles.
Cette approche est cependant extrêmement coûteuse en calcul. L'une des idéesclés de la méthode pour réduire ce coût réside dans l'organisation de l'algorithme de
détection en une cascade de classifieurs.
Appliqués séquentiellement, ces classifieurs prennent une décision d'acceptation
— la fenêtre contient un visage et l'exemple est alors passé au classifieur suivant —, ou
de rejet — la fenêtre ne contient pas un visage et dans ce cas l'exemple est définitivement
écarté —.
L'idée est que l'immense majorité des fenêtres testées étant négatives (c.-à-d. ne
contiennent pas un visage), il est avantageux de pouvoir les rejeter avec le moins possible
de calculs.
Ici, les classifieurs les plus simples, donc les plus rapides, sont situés au début de
la cascade, et rejettent très rapidement la grande majorité des exemples négatifs.
1.2.4.4.1. Algorithme
• L'utilisateur sélectionne les valeurs de f, le taux maximal acceptable par couche pour les
fausses alarmes et d, le taux de détection minimale acceptable par couche.
• L'utilisateur sélectionne le taux cible des fausses alarmes globales, Fbut.
• P = ensemble d'exemples positifs
• N = ensemble d'exemples négatifs
• F0 = 1,0; D0 = 1,0
•i=0
• tandis que Fi> Fbut
-I←i+1
- Ni = 0; Fi = Fi-1
- Tandis Fi> f × Fi-1
* ni ← ni + 1
* Utiliser P et N pour former un classifieur avec des ni caractéristiques par AdaBoost
* Évaluer le classifieur en cascade courant sur le plateau de validation pour déterminer Fi
et Di.
* Diminuer le seuil pour l‘ième classifieur jusqu'à ce que le classifieur en cascade courant
ait un taux de détection d'au moins d × Di-1 (ce qui affecte également Fi)
-N←∅
- Si Fi> Fbut ensuite évaluer le détecteur courant en cascade sur l'ensemble des images
non-visage et mettre n‘importe quelle fausse détection dans l'ensemble N.
1.3.
Extraction des caractéristiques faciales
1.3.1. Définition
Une fois que le visage est détecté à partir de la séquence d'images, la prochaine
étape est l‘extraction de l'information sur l'expression du visage montré. En raison de la
grande variabilité dans les types de visages, il est très difficile pour la machine d‘extraire
les traits faciaux.
1.3.2. Problèmes
Les variations dans les conditions d'éclairage, les mouvements de la tête, les vues
non frontales, les diverses occlusions comme les lunettes et les cheveux rendent le
problème plus difficile. Un système idéal devrait être capable de reconnaître les
expressions faciales distinguables visuellement [21].
1.3.3. Développement récent
Lajevardi et Lech [22] utilisent une approche holistique, qui extrait les
caractéristiques faciale du visage entier. Les caractéristiques sont générées en utilisant
les filtres log-Gabor. Les filtres log-Gabor peuvent être construits avec une bande
passante arbitraire qui peut être optimisée pour produire un filtre avec une étendue
spatiale minimale.
Yacoub et Davis [23] propose une approche indépendante du suivi des
mouvements de points individuels. Elle est basée sur une caractérisation statistique des
schémas de mouvements dans des régions déterminées du visage. Ils ont élaboré une
région qui traque les rectangles renfermant les traits du visage. Chaque rectangle
renferme une caractéristique d'intérêt, de sorte que le calcul du débit dans la région n'est
pas «contaminé» par les mouvements des autres traits du visage.
Essa et Pentland [24] ont appliqué la méthode de l‘espace propre pour suivre
automatiquement le visage dans la scène et d'en extraire les positions des yeux, du nez et
de la bouche. La méthode emploie des ‗eigenfeatures‘ estimés à l'aide de l‘algorithme
ACP sur un échantillon de 128 images. Pour détecter la position des traits du visage dans
le premier plan dans une image donnée, la distance de chaque élément-image à partir de
l'espace caractéristique est calculée en utilisant une FFT avec un calcul de l'énergie
locale.
Cohn et al. [25] ont utilisé un modèle de points faciaux localisés autour des traits
du visage. Les points sont marqués manuellement dans la première image d'une séquence
d'image à examiner. Une méthode de flux optique hiérarchique est utilisé pour suivre les
flux optiques de fenêtres (13x13) qui entourent les points de repère dans le reste des
cadres. Le déplacement de chaque point de repère est calculé en soustrayant sa position
normalisée dans la première image à partir de sa position actuelle normalisée.
Wang et al. [26] ont proposé une méthode dans laquelle ils utilisent 19 points
caractéristiques du visage (FFP) - sept FFP pour préserver la topologie locale et 12 FFP
pour la reconnaissance de l'expression du visage. Les programmes de fidélisation sont
traités comme des nœuds d'un graphe étiqueté qui sont interconnectés avec des liens
représentant la distance euclidienne entre les nœuds.
Kotsia et Pitas [27] ont proposé une méthode qui repose sur la cartographie et le
suivi du modèle facial Candide sur les trames vidéo. La méthode proposée est semiautomatique. L'utilisateur doit placer manuellement le modèle de cadre de fil métallique
Candide à la première image de la séquence d'images en cours d'examen.
Bartlett a exploré et a comparé les techniques de reconnaissance automatique des
actions du visage dans des séquences d'images. Ces techniques comprennent l'analyse des
mouvements faciaux à travers l'estimation du flux optique, l'analyse spatiale globale,
telles que l'analyse indépendante des composants, l‘analyse des caractéristiques locales,
et l'analyse discriminante linéaire et des méthodes fondées sur les résultats des filtres
locaux [25].
Donato a comparé plusieurs techniques, qui comprenaient le flux optique,
l'analyse en composantes principales, l‘analyse en composantes indépendantes, l'analyse
des caractéristiques locales et la représentation en ondelettes de Gabor, dans le but de
reconnaître huit unités d'actions simples et quatre combinaisons d'unités d'actions à l'aide
de séquences d'images qui ont été alignées manuellement [26].
1.3.4. Extraction des traits faciaux par EigenFace
La plupart des approches de reconnaissance informatique des visages et de leurs
expressions a été axée sur la détection des caractéristiques faciales individuelles telles
que les yeux, le contour de la tête et la bouche, ou sur la définition d'un modèle de visage
en position et en taille avec les relations entre ces caractéristiques [43].
L‘extraction des caractéristiques joue un rôle essentiel dans la phase de
prétraitement.
L‘Analyse en Composantes Principales (ACP) a été couramment utilisée pour
confronter les problèmes de reconnaissance [41, 42, 44, 45]. L‘algorithme ACP typique
(Eigenface / Fisherface) est l'un des principaux travaux de recherche sur le traitement des
caractéristiques du visage [45, 46]. ACP a un avantage sur les autres systèmes de
reconnaissance faciale c‘est sa vitesse et sa simplicité.
La base de l'espace d'image ordinaire est composée de tous les vecteurs d'un seul
pixel. Cependant, l'espace d'image n'est pas un espace optimal pour la représentation du
visage et de sa catégorisation. Le but de l'application de l'APC est de construire un espace
de visage qui décrit mieux les images de visage. Les vecteurs de base de cet espace de
visage sont appelés les composantes principales. Ces composantes seront corrélées et
permettront de maximiser la variance représentée dans la base d'origine. Elles peuvent
également réduire la dimension de l'espace des caractéristiques. La complexité de calcul
est donc réduite [47].
1.3.4.1.
Etapes de calcul
Les étapes à suivre pour trouver les caractéristiques des expressions faciales sont :
1.3.4.1.1. Préparation de données
Considérons les données ayant un ensemble de M variables qui sont agencées
comme un ensemble de N vecteurs de données. Ainsi, l'ensemble des données est placé
dans une seule matrice X de dimensions M x N.
1.3.4.1.2. Calcul de la moyenne
∑
avec μx est la moyenne de la matrice X, et m = 1, 2, ... M
et n = 1, 2 ... N.
1.3.4.1.3. Soustraction de la moyenne de chaque dimension
La nouvelle matrice X comprend des données moyenne-soustraites. La
soustraction de la moyenne est importante, car elle garantit que la première composante
principale indique la direction de la variance maximale.
1.3.4.1.4. Calcul la matrice de covariance
La covariance a la même formule que celle de la variance.
Supposons que nous avons un ensemble de données en 3 dimensions (p, q, r),
alors nous pouvons mesurer la covariance entre les dimensions p et q, q, r ou r et. Mais la
mesure de la covariance entre les dimensions p et p, q et q, r et r donne la valeur de la
variance de la dimension p, q ou r respectivement. La variance est mesurée sur une seule
dimension alors que la covariance sur une multi-dimension.
Pour une dimension,
∑
(
)(
( )
( )
Pour 2 dimensions, disons (x, y),
∑
(
)(
)
(
)
moyenne d'une autre matrice Y.
)
où Var est la matrice de variance;
où Cov (x, y) est la matrice de covariance; est la
1.3.4.1.5. Calcul des vecteurs et des valeurs propres de la matrice de covariance
Pour le calcul de la matrice de vecteurs propres qui diagonalise la matrice de
covariance C,
où Cov est la matrice de covariance, E est la matrice de tous les
vecteurs propres de Cov, un vecteur propre par colonne, D est la matrice diagonale des
valeurs propres de Cov le long de sa diagonale principale, et qui est nulle pour le reste
des éléments.
Le vecteur propre associé à la plus grande valeur propre affiche la plus grande
variance dans l'image, tandis que le vecteur propre associé à la plus petite valeur propre
affiche la plus petite variance.
1.4.
Classification des expressions faciales
1.4.1. Définition
L'importance de la classification est connue dans des divers domaines de la vie
humaine. Elle permet d‘avoir une structure compréhensible des objets pour les localiser
dans la situation réelle. Elle sépare la zone de données en différentes catégories en
fonction de leurs caractéristiques et de leurs qualités, de sorte que, chaque catégorie
comprenne un ensemble d‘objets similaires contre les autres.
1.4.2. Classification supervisée et non supervisée
Les méthodes de classification sont divisées en deux groupes selon l'information
disponible sur les spécifications de classes:
- Classification non supervisée,
- Classification supervisée.
La classification non supervisée n'utilise pas une connaissance d'expert, et dans
certains cas, il y a des informations qui manquent concernant le schéma de classes et de
leurs attributs de sortie. Dans cette technique, des procédures statistiques sont utilisées
pour estimer une similitude dans la zone de comparaison des données d‘entrée.
En classification supervisée, des informations suffisantes sur le caractère des
classes étiquettes et des classes prédéfinies sont fournies.
La classification des objets ou des modèles en plusieurs groupes est un but
principal dans le processus de reconnaissance de formes. Il existe de nombreuses
applications dans lesquelles la reconnaissance de modèle est utilisée comme une partie
importante comme la reconnaissance de formes dans les systèmes de vision industrielle,
les systèmes de reconnaissance de caractères optiques, les systèmes d'aide à la décision
pour le diagnostic, les systèmes d'interaction homme-machine, les systèmes de
reconnaissance vocale et ainsi de suite.
La reconnaissance de formes dans le domaine de l'image du visage est l'une des
zapplications difficiles.
Au cours des dernières années, de nombreux chercheurs ont développé plusieurs
méthodes de classification pour reconnaître les émotions diverses basées sur les images
de visage humain. La classification des images du visage peut être utilisée efficacement
pour l‘interaction entre les systèmes informatiques et les humains qui ont de nombreuses
applications dans les appareils photo-numériques, l‘animation, les systèmes de
téléconférence et de gestion de la relation client et ainsi de suite.
1.4.3. Classification d’Ekman
Le développement des systèmes de classification automatique du visage présente
plusieurs problèmes. La plupart des études sur l'analyse de l'expression automatisée
effectue une classification émotionnelle.
La classification émotionnelle d‘Ekman est la plus suivie. Elle décrit six émotions
de base universelles: la joie, la tristesse, la surprise, la peur, le dégoût et la colère.
Néanmoins, l'utilisation des catégories d'Ekman pour le développement de
l'automatisation de classification émotionnelle de l'expression du visage est difficile. Tout
d'abord, sa description des six expressions faciales prototypiques des émotions est
linguistique et, par conséquent, ambigüe. Il n'y a pas de description définie de manière
unique ni en termes de mouvements faciaux ni en termes de certains autres codes du
visage universellement définis. En outre, la classification des expressions faciales dans de
multiples catégories d'émotion devrait être possible (par exemple, les sourcils levés, la
bouche souriante est un mélange de surprise et de bonheur). Un autre point important à
considérer est l'individualisation. Le système doit être capable d'analyser n'importe quel
sujet, homme ou femme de tout âge et d'origine ethnique et de toute expressivité.
La classification des expressions du visage est la partie principale des systèmes de
reconnaissance d'expression faciale. En raison de la complexité des caractéristiques
naturelles des expressions du visage de l'homme, la classification des émotions nécessite
une analyse complète des relations sémantiques des traits du visage comme un ensemble
de fonctionnalités. Cela signifie que la position et la relation de fonctionnalités les unes
vers les autres doivent être considérées comme un ensemble.
1.4.4. Développement récent
Un large éventail de techniques de classification est utilisé dans la reconnaissance
des formes et est également proposé dans la classification des expressions faciales
comme les réseaux de neurones, les réseaux Radial Basis Function (RBF), la logique
floue, les réseaux Bayesian, le k-plus proche voisin et ainsi de suite.
Certaines des études les plus importantes sont abordées ci-dessous.
Seyedarabi et al. [28] ont proposé un modèle de classifieur à réseau neuronal pour
reconnaître des expressions faciales à partir de la séquence des images. Ils ont utilisé
quatorze points de caractéristiques extraites manuellement dans le premier cadre autour
de l'œil, des sourcils, du nez et de la bouche, respectivement. Ils ont proposé des réseaux
de neurones pour classifier les émotions.
Sreenivasa Rao et al. [29] ont proposé une amélioration du modèle de réseaux de
neurones à la classification de la joie, la colère, la peur, la tristesse et le neutre à partir de
la séquence des images, respectivement. Après avoir extrait les caractéristiques des yeux
et de la bouche par des opérations morphologiques, des vecteurs de caractéristiques
extraites ont été utilisés dans trois réseaux de neurones en termes de l'œil gauche, l‘œil
droit et les fonctions de la bouche.
Hammal et al. [30] ont proposé un système à base de règles et l'ont comparé avec
le modèle bayésien pour la classification des expressions faciales. Les points
caractéristiques du visage autour de la bouche, des yeux et des sourcils ont été choisis
pour obtenir cinq caractéristiques géométriques des mouvements du visage.
Support Vector Machine (SVM), classifieur de Bayes et Adaboost ont été
examinés dans l'étude de Guo et Dyer [31] pour le problème de classification faciale des
expressions. Trente quatre points ont été sélectionnés manuellement dans chaque image
du visage puis un filtre de Gabor a été utilisé aux points sélectionnés pour extraire les
caractéristiques.
Hupont et al. [32] ont utilisé un classifieur à base de règles pour la reconnaissance
des expressions faciales. Dans cette étude, 20 points caractéristiques autour de la bouche,
des yeux et des sourcils et cinq distances entre eux ont été extraits.
Samad et Sawada [33] ont proposé le Support Vector Machine pour la
classification des expressions faciales où des ondelettes de Gabor avec quelques
paramètres ont été utilisés pour l'extraction des caractéristiques. Le point de force dans le
modèle proposé était la simplicité et le faible coût de calcul dans le processus d'extraction
des caractéristiques.
Récemment, les Hidden Markov Model (HMM) ont été également utilisés pour la
classification des expressions faciales dans les études de Pardas et al. [34], Cohen et al.
[35] et Shin et Chun [36]. Ces études ont tenté de modéliser la séquence d'état des image
dans HMM pour trouver le plus de chances d'expressions dans de nouvelles images pour
s'adapter à des modèles formés.
Une combinaison des méthodes de caractéristiques géométriques et d‘apparence a
été utilisée dans l'étude de Youssif et Asker [37] pour accroître l'information sur les traits
du visage afin de faire une classification plus précise. 19 points caractéristiques ont été
extraits des yeux, du nez et des régions de la bouche et ont été utilisés dans un réseau de
neurones RBF.
Cheon et Kim [38] ont proposé la méthode de k-plus proche voisin (k-NN) pour la
classification des expressions faciales en utilisant la distance de Hausdorff entre la
séquence des images. Les caractéristiques ont été extraites sur la base d'une méthode de
l'AAMS modifiées pour obtenir des résultats solides dans le cas de la modification des
conditions telles que la pose et l'éclairage.
Afin de l'amélioration de la robustesse, Xiang et al. [39] ont proposé un modèle
Fuzzy C-Means (FCM) pour classer les traits du visage tirés par l'utilisation de la
transformée de Fourier.
Un autre exemple de système à base de règles floues est le modèle proposé par
Esaü et al. [40] pour classer les émotions. Dans cette étude, un ensemble de règles floues
prédéfini spécifie le degré d‘appartenance (forte ou faible) des vecteurs des traits du
visage à chaque émotion.
Par suite, il existe différentes techniques de classification utilisées dans le
domaine de la reconnaissance des expressions du visage. Chaque technique a des
avantages et des inconvénients qui la rendent intrinsèquement plus appropriée ou
inappropriée en comparaison avec les autres selon les différents domaines et les diverses
conditions.
1.4.5. Classification par Réseau de Neurones
Un réseau de neurones artificiels est un modèle de calcul dont la conception est
très schématiquement inspirée du fonctionnement des neurones biologiques.
Un réseau de neurones est en général composé d'une succession de couches dont
chacune prend ses entrées des sorties de la précédente. Chaque couche (i) est composée
de Ni neurones, prenant leurs entrées sur les Ni-1neurones de la couche précédente. À
chaque synapse est associé un poids synaptique, de sorte que les Ni-1 sont multipliés par
ce poids, puis additionnés par les neurones de niveau i, ce qui est équivalent à multiplier
le vecteur d'entrée par une matrice de transformation. Mettre l'une derrière l'autre les
différentes couches d'un réseau de neurones reviendrait à mettre en cascade plusieurs
matrices de transformation et pourrait se ramener à une seule matrice, produit des autres,
s'il n'y avait à chaque couche, la fonction de sortie qui introduit une non linéarité à
chaque étape. Ceci montre l'importance du choix judicieux d'une bonne fonction de
sortie : un réseau de neurones dont les sorties seraient linéaires n'aurait aucun intérêt.
Les réseaux de neurones sont généralement optimisés par des méthodes
d‘apprentissage de type probabiliste, en particulier bayésien. Ils sont placés d‘une part
dans la famille des applications statistiques, qu‘ils enrichissent avec un ensemble
de paradigmes permettant de créer des classifications rapides (réseaux de Kohonen en
particulier), et d‘autre part dans la famille des méthodes de l‘intelligence
artificielle auxquelles ils fournissent un mécanisme perceptif indépendant des idées
propres de l'implémenteur, et fournissant des informations d'entrée au raisonnement
logique formel.
Les réseaux de neurones, en tant que système capable d'apprendre, mettent en
œuvre le principe de l'induction, c‘est-à-dire l'apprentissage par l'expérience. Par
confrontation avec des situations ponctuelles, ils infèrent un système de décision intégré
dont le caractère générique est fonction du nombre de cas d'apprentissages rencontrés et
de leur complexité par rapport à la complexité du problème à résoudre.
Par opposition, les systèmes symboliques capables d'apprentissage, s'ils
implémentent également l'induction, le font sur base de la logique algorithmique, par
complexification d'un ensemble de règles déductives.
Grâce à leur capacité de classification et de généralisation, les réseaux de
neurones sont généralement utilisés dans des problèmes de nature statistique.
1.5.
Conclusion
Nous avons vu dans ce premier chapitre, brièvement, un état de l‘art sur
le développement des techniques de détection du visage, d‘extraction des
paramètres et de classification des expressions faciales avec le principe des
méthodes adoptées pour chaque étape : Viola Jones pour la détection et le suivi
faciaux, l‘Analyse des Composantes Principales pour l‘obtention des
caractéristiques et les Réseaux de neurones pour la classification.
Le chapitre suivant va donner des détails sur les algorithmes utilisés et leur
implémentation.
Chapitre 2 : Architecture du système implémenté
2.1. Introduction
Ce chapitre présentera les différents algorithmes que nous avons essayé
implémenter en MatLab avec la préparation des données à utiliser, les problèmes
confrontés et les solutions par lesquelles nous avons pu résoudre les contraintes.
2.2. Processus adopté
Lecture de la
séquence des images.
Détection du visage
par Viola Jones.
Extraction des
caractéristiques faciales
par EigenFace.
Classification des
expressions par un
réseau de neurones.
L’architecture du système implémenté.
2.3.
Implémentation du processus
2.3.1. Détection du visage par Viola Jones
Avant de décider d‘utiliser l‘algorithme de Viola Jones pour détecter le visage,
nous avons essayé d‘accomplir cette étape par la méthode de la segmentation de la
couleur de la peau et le filtrage des images par un masque.
2.3.1.1.
Segmentation de la couleur de la peau
2.3.1.1.1. Principe
La détection de la couleur de peau va permettre une réduction considérable de
l‘espace de recherche des visages qui va se limiter uniquement aux sections de couleur
chair.
Nous avons utilisé une simple méthode dite « Explicit Skin Cluster » qui consiste
essentiellement à définir les pixels de la peau par seuillage donnant les coordonnées de
l‘intervalle de la couleur chair dans un espace chromatique de couleur approprié comme :
RGB, HSV, YCbCr (1) et YCbCr (2).
2.3.1.1.2. Problèmes
La couleur de peau (chair) fait partie des caractéristiques bas niveau (pixel), souvent
utilisées pour la détection des visages, quasi-insensible aux facteurs d‘échelle (donc ne
nécessitant pas de multi-résolution). Néanmoins, cette méthode présente certains
problèmes :
-
Le choix de l‘espace chromatique de couleur approprié.
-
La différence dans l‘éclairage naturel et synthétique.
-
L‘existence de plusieurs marges pour la couleur des peaux dans le monde entier.
-
La détection du visage avec une autre partie du corps comme la main, le cou…
-
La difficulté de généraliser des nombres et des valeurs exactes.
2.3.1.2.
Filtrage par un masque
2.3.1.2.1. Principe
L‘idée consiste à faire passer un masque tout au long de l‘image considérée, et
selon un certain seuil bien défini, on indique si un visage est détecté ou non.
2.3.1.2.2. Problèmes
-
La différence de la luminance et la chrominance des pixels.
-
Le choix de la forme et de la valeur du masque.
-
La détection de plusieurs autres objets qui ne sont pas un visage à cause de la
forme du masque adoptée.
2.3.2. Implémentation de Viola Jones
2.3.2.1.
Base de données
Pour détecter le visage on doit d'abord avoir une base de données formées d‘un
grand nombre d‘images de visages et de non-visages afin de pouvoir faire une formation
supervisée (on indique à l‘ordinateur s‘il s‘agit d‘un visage ou non).
La base de données du MIT, composée de 2429 visages et 4547 nonvisages, est utilisée.
2.3.2.2.
Fonctions de Haar
Après avoir choisi la base de données, on doit utiliser maintenant la notion des
fonctions de Haar. Ce sont des ondelettes représentées par des rectangles noirs er blancs.
Ces rectangles seront glissés sur l‘image pour indiquer s‘il s‘agit d‘un visage ou non
selon une procédure qu‘on va expliquer.
On trouve des milliers et des milliers des fonctions de Haar, mais seulement un
petit nombre est suffisant pour cette étude, de manière que les fonctions choisies (les
rectangles superposés) ressemblent aux certaines parties du visage humain.
Dans le visage humain, les yeux sont représentés par les 2 premières fonctions de Haar, le nez et les
joues par la troisième et la bouche par la quatrième fonction.
2.3.2.3.
Méthodologie
Si par exemple, la taille de l‘image est 19x19 pixels, et on prend la première
forme de Haar (1x2 pixel), comme l‘indique la figure ci-dessus, on aura la première
caractéristique :
Tout calcul fait, on agrandit la taille de la fonction de Haar, en longueur et en
largeur, tel qu‘elle couvre une plus grande partie de l‘image, et an aura la deuxième
caractéristique :
Maintenant, après avoir calculé toutes les caractéristiques provenant de chacune
des formes de la fonction de Haar, c‘est le temps de définir un seuil selon lequel on
décide si l‘image en traitement est un visage ou non. Chaque paramètre passe sur toutes
les images intégrales calculées à partir des images originales de la base de données
adoptée. Ainsi, ces seuils seront enregistrés dans un fichier qui contiendra les poids de
tous les classifieurs de Haar.
Une fois le calcul de la fonction Haar a été complété pour les images de visage, la
moyenne, l‘écart-type, le min et le max sont calculés pour toutes les valeurs données par
chaque image.
Ces paramètres sont calculés afin de catégoriser un classifieur comme bon ou
mauvais par une distribution gaussienne : on commence à partir de la valeur moyenne et
on élargit selon l'écart type, plus l'écart-type est grand, plus la reconnaissance sera pour
les visages.
Afin de faire tout ce qui précède, on doit faire le même calcul pour les images de
non-visages.
Pour tester les classifieurs obtenus et décider quels sont les forts classifieurs qu‘on
va utiliser ensuite dans la chaîne en cascade, chaque classifieur, ayant une distribution
gaussienne, doit vérifier 3 conditions :
- Obtenir une reconnaissance faciale de près de 100% (presque toutes les images
de visages sont détectées comme des visages).
- Obtenir une reconnaissance ‗non-face‘ très faible (la plupart des images nonface ne sont pas détectées comme des visages).
- Erreur totale pour le classifieur inférieure à 50%.
Si et seulement si ces trois conditions sont réunies, on continue avec le classifieur
en traitement. Le classifieur considéré comme fort sera ensuite traité par AdaBoost pour
le contraindre à un seul trait facial.
2.3.2.4.
Problèmes et solutions
Comme le calcul englobe toutes les fonctions Haar, le processus d‘apprentissage
prendra une longue durée (plus que 3 semaines) pour obtenir le fichier contenant les forts
classifieurs qui doivent être mis en cascade. Pour cela, manque de temps, nous avons
utilisé un fichier xml présent sur l‘internet permettant de détecter les visages avec une
grande précision « haarcascade_frotalface_alt.xml » [48].
2.3.3. Extraction des paramètres par EigenFace
Avant de décider utiliser l‘espace EigenFace pour l‘extraction des traits du visage,
nous avons travaillé sur certaines approches qui n‘ont pas donné les résultats désirés.
2.3.3.1.
Détection automatique des coins
2.3.3.1.1. Principe
En premier lieu, après avoir détecté un visage, nous avons essayé de prendre des
points caractéristiques sur le visage par la méthode de CornerDetctor présente dans l‘outil
MatLab. Cette fonction marque les coins dans une image niveau de gris.
2.3.3.1.2. Phase d’apprentissage
Pour un individu donné, nous détectons les coins faciaux dans l‘image neutre (ces
points sont considérés comme les points initiaux) et nous enregistrons leurs coordonnées.
Pour la même personne, nous détectons les coins faciaux dans les images des autres
expressions et nous calculons ensuite, pour chaque expression à part, la distance entre les
points initiaux et ceux nouveaux. Nous obtenons ainsi les vecteurs caractéristiques pour
chaque expression faciale que nous utilisions dans l‘apprentissage d‘un réseau de
neurones.
2.3.3.1.3. Phase de test
Dans la séquence vidéo, les positions initiales sont celles des coins détectés dans
la première fraction-image (qui doit représenter une expression neutre). Ensuite, dans les
fraction-images suivantes, on suit les nouvelles positions de ces points. Pour chaque
fraction-image, on calcule la distance entre la position initiale et chaque position nouvelle
dans la fraction-image considérée. Chaque distance serait l‘entrée du réseau de neurones.
2.3.3.1.4. Problèmes
Le problème était que, lors de la détection des nouveaux coins dans chaque image
pour les différentes expressions faciales, les points détectés sont différents. Un nouveau
point peut ne pas avoir un point initial et vice versa. Cela est dû à la différence entre les
traits faciaux durant chaque expression.
2.3.3.2.
Détection manuelle des points caractéristiques
2.3.3.2.1. Principe
Au lieu de détecter automatiquement les coins dans un visage détecté, nous avons
décidé de les marquer manuellement. Comme ça, nous limitons les points détectés à un
nombre bien défini et à des positions remarquables qui nous intéressent.
Les phases d‘apprentissage et de test sont les mêmes que la détection automatique des
coins.
2.3.3.2.2. Problèmes
Lors du suivi des points, certains points sont perdus et c‘est impossible de les
suivre. Nous avons alors décidé de travailler sur une méthode qui prend l‘image telle
qu‘elle est comme l‘ACP.
2.3.3.3.
Implémentation de l’Analyse des Composantes Principales
2.3.3.3.1. Base de données
Nous avons utilisé plusieurs bases de données pour calculer les paramètres
caractéristiques des images faciales représentant les six émotions prototypes.
Tout d‘abord, nous avons commencé avec la base de donnés de « Advanced
Multimedia Processing Lab » (AMP). La taille des images était très petite.
Ensuite, nous avons eu recours à la base de données « pain-crops » mais c‘était
une petite base de données par laquelle nous n‘avons pas pu bien apprendre notre réseau
de neurones.
Après, c‘était la base de données japonaise ‗jaffe‘. Les images étaient des visages
avec un fond-arrière. Alors nous devons couper les visages sans le fond.
2.3.3.3.2. Méthodologie
Tout d‘abord, nous avons divisé les images selon les 7 expressions prototypes, et
nous avons commencé par prendre le cas de l‘expression neutre avec celle heureuse.
Pour ces 2 catégories groupées ensemble, nous avons calculé les « EigenFaces » selon
l‘algorithme vu dans le chapitre précédent. Et après la projection de chaque image sur le
nouveau « Face Space » on obtiendrait les vecteurs paramètres utilisés ultérieurement
pour trainer le réseau de neurones.
2.3.3.3.3. Problèmes et solutions
Premièrement nous avons coupé manuellement les images, mais le problème était
que les parties faciales des différentes images n‘étaient pas alignés. Par exemple, les yeux
d‘une image se trouvaient sur une ligne différente que celle de l‘image suivante. La
solution était de détecter et couper les visages automatiquement par la méthode de Viola
Jones.
2.3.4. Classification des expressions faciales par Réseau de neurones
Bien qu‘il existe plusieurs méthodes pour classifier les caractéristiques comme la
distance euclidienne très utilisée avec l‘ACP et la logique floue bien efficace, les réseaux
de neurones restent le meilleur choix dans notre cas.
2.3.4.1.
Préparation du réseau de neurones
La préparation du réseau de neurones comprend les 2 phases d‘apprentissage et de
test, mais avant, il faut choisir le réseau le plus adéquat.
2.3.4.1.1. Choix du réseau de neurones
Le réseau de neurones choisi est celui de la reconnaissance de formes MLP car le
but de ce projet est la classification des entrées dans des catégories bien déterminées.
Pour cela, nous avons utilisé l‘outil « Neural Network Pattern Recognition Tool »
présente dans MatLab. L‘entrée de ce réseau de neurones sera une matrice formée par les
vecteurs caractéristiques calculés à partir des images de la base de données et une matrice
indiquant chaque image à quelle expression elle appartient.
2.3.4.1.2. Phase d’apprentissage
Les vecteurs paramètres d‘entrée sont les vecteurs obtenus par ACP. Après
l‘accomplissement de l‘apprentissage, nous pouvons voir, en MatLab, le pourcentage de
la confusion. Si ce pourcentage est très élevé nous répétons l‘apprentissage une deuxième
fois en changeant le nombre des couches internes. Dans notre cas, 20 couches cachées
étaient très suffisantes.
2.3.4.1.3. Phase de test
Maintenant il doit être possible de classifier les expressions faciales (neutre et
heureuse jusqu‘ici) de la séquence vidéo. Pour chaque fraction-image de la séquence
vidéo, nous détectons le visage, nous le coupons, nous le mettons à l‘échelle (256x256
par exemple), nous cherchons les poids caractéristiques en le projetant dans l‘espace
visage et nous faisons entrer le vecteur caractéristique dans le réseau de neurones.
2.3.4.1.4. Problèmes et solutions
Tout fait tel qu‘il est décrit, les résultats n‘étaient pas satisfaisants : nous avons
obtenu beaucoup d‘erreurs.
Après beaucoup de considérations et de traitements, plusieurs approches ont été
modifiées afin d‘obtenir un système ponctuel et puissant.
2.4.
Algorithme
2.4.1. Traitement de la base de données
Comme les résultats obtenus, concernant la classification des expressions faciales,
n‘étaient pas satisfaisants, nous avons décidé de prendre et d‘étudier seulement les parties
d‘intérêt du visage et non pas le visage tout entier.
2.4.2. Division du visage
Nous avons pris en considération 2 parties du visage : la zone contenant les yeux
et les sourcils comme la première partie et la zone contenant la bouche comme la
deuxième partie.
Et comme nous transformons chaque visage détecté à la taille de 256x256 pixels,
nous avons pu limiter la taille de la première zone à 60 pixels (de l‘ordonnée 60 au 120)
et la deuxième zone à 65 pixels (de l‘ordonnée 175 au 240).
2.4.3. Démarche suivie
Comme nous avions besoin d‘une base de données contenant des images faces et
des images profils pour chaque expression, nous avons décidé de faire notre propre base
de données.
Voyons les étapes de l‘algorithme adopté :
- Enregistrer une vidéo pour le visage exprimant les différentes expressions en
tournant lentement le cou de gauche à droite.
- Diviser chaque vidéo à part en fraction-images.
- Détecter le visage dans tous les fraction-images et le couper.
- Diviser, tout l‘ensemble des visages détectés appartenant à la même catégorie,
en 2 parties : une contenant les yeux et les sourcils et l‘autre contenant la
bouche.
- Grouper, pour toutes les expressions. la partie contenant les yeux et les
sourcils dans un fichier, et la partie de la bouche dans un autre fichier. C‘est
notre nouvelle base de données.
-
-
-
-
2.5.
Calculer, pour chaque partie, les ‗EigenVecteurs‘. Comme ça on obtiendra
une nouvelle base dans laquelle on présentera chaque image.
Prendre un nombre suffisant de vecteurs pour représenter la nouvelle base. En
d‘autres termes, réduire la dimension de la nouvelle base.
Projeter chaque image des 2 fichiers sur les ‗EigenVecteurs‘ qui lui
correspondent. On obtiendra, pour toute la base de données, 2 vecteurscolonnes caractéristiques : un pour la zone des yeux et des sourcils et l‘autre
pour la zone de la bouche.
Superposer, pour chaque même image, les 2 vecteurs-colonnes
caractéristiques en un seul après avoir éliminé la première valeur de chaque
sous-vecteur. C‘est le vecteur caractéristique qui sera l‘entrée du réseau de
neurones.
Organiser tous les vecteurs caractéristiques obtenus en une seule matrice.
Créer une matrice binaire dont le nombre de colonnes est égale au nombre des
images de la base de données tout entière et dont le nombre de lignes est égale
au nombre des expressions faciales à classifier.
Indiquer pour chaque image à quelle expression elle appartient.
Achever l‘apprentissage du réseau de neurones et enregistrer le réseau le plus
adéquat.
Conclusion
Nous avons vu dans ce chapitre la méthode d‘implémentation de Viola Jones, de
l‘ACP et des réseaux de neurones avec l‘étape de la préparation des données et les
problèmes confrontés. En plus, nous avons énuméré les étapes de notre algorithme final
qui est présenté par l‘organigramme ci-dessous.
Le chapitre suivant est consacré aux les résultats obtenus et leur discussion.
Enregistrer une vidéo exprimant
les différentes expressions
faciales en différenciant l‘angle
Lire les fraction-images de la
vidéo
Détecter le visage
Diviser le visage détecté en
parties haute et basse
Calculer pour chaque partie les
EigenVecteurs
Réduire la dimension de la
nouvelle base
Chercher les vecteurs caractéristiques
de chaque dimension
Organiser les vecteurs
caractéristiques en une matrice
Indiquer pour chaque image à
quelle expression elle appartient
Achever l‘apprentissage du
réseau de neurones
Organigramme général
Chapitre 3 : Résultats et discussion
3.1.
Introduction
Dans ce chapitre on va voir et discuter les résultats obtenus de notre algorithme déjà
implémenté afin de vérifier sa puissance.
On commence par tester les expressions de la joie et de la neutralité.
Numériquement parlant, nous avons :
- 630 images exprimant la joie.
- 446 images exprimant la neutralité.
- 38 valeurs dans chaque vecteur caractéristique : 19 de la zone contenant les yeux
et les sourcils et 19 de la zone contenant la bouche.
- 20 couches cachées.
- Un vecteur [1 0] représente l‘expression neutre et un vecteur [0 1] représente
l‘expression de la joie.
3.2.
Condition du test
Pour chaque vecteur caractéristique, la sortie du réseau de neurones donne 2
valeurs. Si la première valeur est la plus grande, l‘expression est donc la neutralité, sinon,
c‘est la joie.
3.3.
Joie vs Neutralité
Nous avons testé notre réseau de neurones sur les 2 vidéos que nous avons
enregistrés : une pour la joie et l‘autre exprimant la neutralité.
Pour le premier cas, la joie, nous avons eu de bons résultats d‘environ 80%.
L‘erreur survient le plus lorsque le cou tourne d‘un angle plus grand de 30o.
Pour le deuxième cas, la neutralité, nous avons eu des bons résultats de 87%
même si le cou tourne de plus de 30o.
3.4.
Extraction dynamiques des caractéristiques
Afin d‘augmenter la puissance de ce système, nous avons eu l‘idée de former le
vecteur caractéristique lors de la lecture de chaque fraction-image et non pas après la
division de la vidéo en fraction-images car, la détection du visage en mouvement dans
la vidéo, se fait par un polygone et non pas par un rectangle. Ainsi, notre base de
données est devenue une vidéo : des images dynamiques et non pas statiques.
En répétant le test décrit avant, sur la même vidéo d‘apprentissage, les résultats
étaient très précis (100%).
3.5.
Nouvelle vidéo à tester
Maintenant, c‘est le temps de tester le système sur de nouvelles vidéos.
Pour une deuxième vidéo de moi encore, la détection de l‘expression neutre était
plus précise que celle de la joie.
Pour une troisième vidéo de moi, avec un changement en make-up et en cheveux,
les résultats étaient meilleurs pour les 2 expressions.
3.6.
Elargissement de la base de données
Nous avons groupé les caractéristiques et l‘espace des 2 premières vidéos et
appris un nouveau réseau de neurones. Les résultats du test sur la troisième vidéo étaient
meilleurs.
Ceci implique la nécessité d‘une base de données beaucoup plus grande, formée à
partir des vidéos pour plusieurs personnes de différents âge et sexe et avec ou sans makeup.
3.7.
Vitesse de la lecture de la vidéo
Afin d‘augmenter la vitesse de l‘exposition de la vidéo, nous avons réduit la taille
des fraction-images avant le traitement et la détection faciale, ça a aidé un peu, mais la
diffusion des fraction-images a resté plus lente que le cas ordinaire où on ne réalise aucun
traitement sur les fraction-images.
3.8.
Conclusion
Dans ce chapitre nous avons exposé les résultats obtenus lors du test de notre
système implémenté de classification des expressions faciales.
Ces résultats étaient bons concernant mon visage, mais nous avons besoin d‘une
plus large base de données pour parvenir à réaliser un système puissant et précis.
Chapitre 4 : Conclusion générale et perspectives
L'objectif de ce mémoire était la présentation des dernières approches dans la
reconnaissance des expressions du visage dans une séquence vidéo d'une manière
compréhensible même pour les nouveaux individus intéressés dans ce domaine vidéo et
l‘implémentation d‘un système (un code MatLab) qui permet la classification de ces
expressions.
Nous avons divisé le système en question en trois procédures principales : la
détection du visage et son suivi, l‘extraction des paramètres caractéristiques et la
classification de l‘expression faciale.
Pour ces trois étapes, nous avons présenté, d‘une façon générale, le principe, les
problèmes confrontés avec un état de l‘art.
Par suite, nous avons défini les techniques choisies à implémenter pour chaque
procédure avec la cause de ce choix et après les différents essais qui ont amené à ce
choix. C‘est Viola Jones pour la détection du visage, les points caractéristiques pour son
suivi, l‘analyse des composantes principales (ACP) pour l‘extraction des paramètres
caractéristiques et les réseaux de neurones pour la classification des expressions.
Ensuite, vient le tour des algorithmes implémentés. Nous avons présenté l‘idée de
chaque technique, les problèmes que nous avons confrontés lors de l‘exécution du code
comme le choix de la base de données adéquate et le nombre d‘images nécessaires pour
achever l‘apprentissage du réseau de neurones, arrivant à l‘algorithme final adopté.
A la fin, c‘était l‘exposition des résultats obtenus et leur discussion lors de
différents tests réalisés.
Dans ce projet, nous avons pu classifier les expressions de la neutralité et de la
joie dans une séquence vidéo, pour un visage face et profil. Mais la nécessité d‘une plus
grande base de données formée par des vidéos et non pas par des images statiques est
claire. Et peut être que l‘utilisation des techniques hybrides peut donner des résultats plus
puissants. De même, c‘est intéressant d‘avoir des idées sur des logiciels autre que
MatLab pour achever cette tâche comme le Visual Studio avec la librairie OpenCV.
La prochaine décennie sera intéressante car nous pensons que les systèmes de la
reconnaissance de l'expression faciale spontanée robustes seront développés et déployés
dans les systèmes temps-réel et utilisés dans la construction des interfaces d'émotion HCI
(Human Computer Interface) sensibles. Cela va avoir un impact sur notre vie quotidienne
en améliorant la façon par laquelle nous interagissons avec les ordinateurs ou en général.
Bibliographie
[1] B.D. Lucas and T. Kanade,―An Iterative Image Registration Technique with an
Application to Stereo Vision,‖ Proc. 7th Int. Joint Conf.on Artificial Intelligence(IJCAI),pp.
674-679, Aug. 1981.
[2] C. Tomasi and T. Kanade,―Detection and Tracking of Point Features,‖Carnegie Mellon
University Technical Report CMU-CS-91-132,April 1991.
[3] H. Schneiderman, T. Kanade, ―Probabilistic modeling of local appearance and spatial
relationships for object recognition,‖ Proc. IEEE Conf. Computer Vision and Pattern
Recognition,pp 45-51, June 1998.
[4] P. Viola and M.J. Jones, ―Robust real-time object detection,‖Int. Journal of Computer
Vision, vol. 57, no. 2, pp. 137-154, Dec. 2004.
[5] H.Tao and T.S. Huang, ―A Piecewise Bezier Volume Deformation Model and Its
Applicationsin Facial Motion Capture," in Advances in Image Processing and
Understanding:AFestschrift for Thomas S. Huang, edited by Alan C. Bovik, Chang Wen
Chen, and Dmitry B. Goldgof, 2002.
[6] M. Rydfalk, ―CANDIDE, a parameterized face,”Report No. LiTH-ISY-I-866, Dept. of
Electrical Engineering, Linköping University, Sweden, 1987.
[7] http://www.icg.isy.liu.se/candide/main.html
[8] F. Dornaika and J. Ahlberg, ―Fast and reliable active appearance model search for 3-D
face tracking,‖ IEEE Trans. Systems, Man, and Cybernetics, Part B,vol. 34, no. 4, pp. 18381853, Aug. 2004.
[9] P. Sinha, ―Perceiving and Recognizing Three-Dimensional Forms,‖Ph.D. dissertation, M.
I. T., Cambridge, MA, 1995.
[10] B. Scassellati, ―Eye finding via face detection for a foveated, active visionsystem,‖ in
Proc. 15thNat. Conf. Artificial Intelligence,pp. 969-976, 1998.
[11] http://en.wikipedia.org/wiki/Golden_ratio
[12] K. Anderson and P.W. McOwan, ―Robust real-time face tracker for use in cluttered
environments,‖ Computer Vision and Image Understanding,vol. 95, no.2, pp. 184–200, Aug.
2004.
[13] K. Anderson and P.W. McOwan, ―A Real-Time Automated System for Recognition of
Human Facial Expressions,‖ IEEE Trans. Systems, Man, and Cybernetics Part B,vol. 36, no.
1, pp. 96-105, 2006.
[14] J. Steffens, E.Elagin, H. Neven, ―PersonSpotter-fast and robust system forhuman
detection, trackingand recognition,‖ Proc. 3rd IEEE Int. Conf. Automatic Face and Gesture
Recognition,pp. 516-521, April 1998
[15] F. Bourel, C.C. Chibelushi, and A.A. Low, ―Robust Facial Feature Tracking,‖ Proc.
11th British Machine Vision Conference, pp. 232-241, Bristol, England, Sept. 2000.
[16] M.S. Arulampalam, S. Maskell, N. Gordon andT. Clapp, ―A tutorial on particle filters
for online nonlinear/non-Gaussian Bayesian tracking,‖ IEEE Trans. Signal Processing,vol.
50, no. 2, pp. 174-188, Feb. 2002.
[17] H. Wang, S. Chang, ―A highly efficient system for automatic face region detection in
MPEG video,‖ IEEE Trans. Circuits and Systems for Video Technology,vol. 7, no. 4, pp.
615-628, Aug. 1997.
[18] T. Kanade, J. Cohn, and Y. Tian, ―Comprehensive Database for Facial Expression
Analysis,” Proc. IEEE Int’l Conf. Face and Gesture Recognition (AFGR ’00), pp. 46-53,
2000.
[19] http://vasc.ri.cmu.edu//idb/html/face/facial_expression/index.html
[20] Y. Tian, T. Kanade and J. Cohn, ―Recognizing Action Units for Facial Expression
Analysis,‖ IEEE Trans. Pattern Analysis and Machine Intelligence,vol. 23, no. 2, pp. 97–
115, 2001.
[21] M. Pantic and
L. J. M. Rothkrantz, ―Automatic
analysis
o f f a c i a l expressions: The state of the art,‖
IEEE Transactions on Pattern analysisand machine intelligence , vol. 22, pp. 1424–1445,
Dec. 2000.
[22] S. Lajevardi and M. Lech, ―Facial expression recognition from
imagesequences using optimized feature selection,‖ Image and Vision Computing New Zealand, 2008. IVCNZ 2008. 23rd International Conference , pp. 1–6, 2008
[23] Y. Yacoob and L. Davis, ―Recognizing human facial expressions fromlong
image
sequences
using
optical
flow,‖
IEEE
Transactions
on
Pattern Analysis and Machine Intelligence, vol. 18, pp. 636–642, June 1996.
[24] I. A. Essa and A. P. Pentland, ―Coding,
a n a l ys i s ,
i n t e r p r e t a t i o n , a n d recognition
of
facial
expressionsl,‖
IEEE Trans. Pattern Analysis Ma-chine Intelligence, vol. 19, pp. 757–763, July
1997.
[25] J. F. Cohn, A. J. Ziochower, J. J. lien, and T. kanade, ―Fe
a t u r e point tracking by optical flow discriminates subtle differences in
facialexpression,‖ Proc. Int‘l Conf. Automatic Face and Gesture Recognition,pp. 396–401,
1998.
[26] M. Wang, Y. Iwai, and M. Yachindai, ―Expression recognition from time-sequential
facial images by use of expression change model,‖ Proc. Int‘l Conf. Automatic Face and
Gesture Recognition, pp.324–329,1998.
[27] I. Kotsia and I. Pitas, ―Facial expression recognition in image
sequencesusing
geometric
deformation features and support vector machines,‖ IEEE Transactions on Image Pro
cessing, v o l . 1 6 , p p . 1 7 2 – 1 8 7 , J a n . 2007.
[28] Seyedarabi, H., A. Aghagolzadeh and Khanmohammadi, 2004. Recognition of Six Basic
Facial Expressions by Feature-Points Tracking Using RBF Neural Network and Fuzzy
Inference System. IEEE International Conference on Multimedia and Expo (ICME), pp:
1219-1222.
[29] Sreenivasa Rao, K., Saroj, V.K., Maity, S., Koolagudi, S. G. 2011. Recognition of
emotions from video using neural network models. Expert Syst. Appl., 38: pp. 13181-13185.
[30] Hammal, Z., L. Couvreur, A. Caplier, M. Rombaut, 2007. Facial expression
classification: An approach based on the fusion of facial deformations using the transferable
belief model. Int. J. Approx. Reason., 46(3): pp. 542-567.
[31] Guo, G. and C.R. Dyer, 2005. Learning from examples in the small sample case: face
expression recognition. IEEE Trans. Syst. Man Cybernetics-Part B: Cybernetics, 35(3): pp.
477-487.
[32] Hupont, I., E. Cerezo and S. Baldassarri, 2008a. Facial emotional classifier for natural
interaction. Electr. Let. Comput. Vision Image Anal., 7(4): pp. 1-12.
[33] Samad, R. and H. Sawada, 2011. Extraction of the minimum number of gabor
waveletparameters for the recognition of natural facial expressions. Artif. Life Robotics, 16:
pp. 21-31.
[34] Pardas, P., A. Bonafonte and J. Landabaso, 2002. Emotion Recognition Based on
MPEG4 Facial Animation Parameters. Proceedings of IEEE ICASSP, pp: 3624-3627.
[35] Cohen, I., N. Sebe, A. Garg, T.S. Huang and L.S. Chen, 2003. Facial expression
recognition from video sequences: temporal and static modelling. Comput. Vis. Image Und.,
91: pp. 160-187.
[36] Shin, G. and J. Chun, 2008. Spatio-temporal facial expression recognition using optical
flow and HMM. Comput. Stud. Computational intelligence SCI, 149: pp. 27-38.
[37] Youssif, A.A. and W.A. Asker, 2011. Automatic facial expression recognition system
based on geometric and appearance features. Stud. Comp. Intell., 4(2): pp. 115-124.
[38] Cheon, Y. and D. Kim, 2009. Natural facial expression recognition using differentialaam and manifold learning. Pattern Recogn., 42: pp. 1340-1350.
[39] Xiang, T., M.K.H., Leung, S.Y. Cho, 2008. Expression recognition using fuzzy spatioemporal modelling. Pattern Recogn., 41: pp. 204-216.
[40] Esau, N., E. Wetzel, L. Kleinjohann and B. Kleinjohann, 2007. Real-Time Facial
Expression Recognition Using a Fuzzy Emotion Model. IEEE International Fuzzy Systems
Conference, FUZZ-IEEE, pp: 1-6.
[41] T. Kurozumi, Y. Shinza, Y. Kenmochi, and K. Kotani, ―Facial individuality and
expression analysis by eigenspace method based on class features or multiple discriminant
analysis,‖ in Proceedings of the International Conference on Image Processing, Vol. 1, 1999,
pp. 648-652.
[42] K. Matsuno and S. Tsuji, ―Recognizing human facial expressions in a potential field,‖ in
Proceedings of the 12th IAPR International Conference on Pattern Recognition, Vol. 2,
1994, pp. 44-49.
[43] S. Carey and R. Dimond, ―From piecemeal to configurational representation of faces,‖
Science, Vol. 195, 1997, pp. 312-313.
[44] A. Lanitis, C. Taylor, and T. Cootes, ―Automatic interpretation and coding of face
images using flexible models,‖ IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 19, 1997, pp. 743-756.
[45] M. Turk and A. Pentland, ―Eigenfaces for recognition,‖ Journal of Cognitive
Neuroscience, Vol. 19, 1997, pp. 743-756.
[46] P. Belhumeur, J. Hespanha, and D. Kriegman, ―Eigenfaces vs. fisherface: recognition
using class specific linear projection,‖ IEEE Transactions on Pattern Analysis and Machine
Intelligence, Vol. 19, 1997, pp. 711-720.
[47] S. Haykin, Neural Networks: A Comprehensive Foundation, Macmillan College
Publishing Company, New York, 1994.
[48] http://note.sonots.com/SciSoftware/haartraining.html.