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.