tipe

essay B

Reconnaissance de visage TIPE Table des matières . Introduction 1- La reconnaissance de visage 4 1 . 1- Les faces propre 1. 2- Les faces propre 2 -L’interface graphiq 15 orn Sni* to View 2. 1- Fonctionnement général 2. 2- Implantation python . Conclusion ANOUAR BAYARI MPSI 3 20 page 2 . 16 passé en paramètre. Il devra également indiquer à quel point il s’en rapproche, afin de pouvoir valider ou infirmer l’identification. Il utillsera la technique dite des « faces-propres 9, qui bien que n’offrant pas meilleures performances à Vheure actuelle, est relativement simple ? mettre en œuvre et reste efficace.

L’interface graphique sera également réalisée en Python, ? l’aide de la plateforme PySide, qui est un portage de la librairie Qt pour le langage Python. Elle utilisera également OpenCV pour pouvoir prendre des photos à l’aide de la webcam. Elle devra prendre une photo à l’aide de la webcam et permettre le choix d’un module de reconnaissance parmi ceux qu’elle connait (qui seront dans une liste facilement extensible). Elle devra ensuite appeler ce module afin qu’il reconnaisse ou non le visage en question.

Elle affichera dans une fenêtre le visage reconnu par le module, ainsi que diverses informations que ledit odule aura pu lui donner. page 3 1- La reconnalssance de visage 1 . 1- Les faces propres : la théorie Nous cherchons à effectuer de la reconnaissance faciale, en employant des systèmes simples comme une webc e plaçant alors face à la PAGF OF simples comme une webcam. Le sujet se plaçant alors face à la caméra, nous partons donc de la remarque, qui nous simplifie grandement notre démarche, selon laquelle nous pratiquons de la reconnaissance à deux dimensions.

La méthode de reconnaissance faciale Eigenfaces emploie la technique de l’analyse en composante principale, qui marque une différence notable avec es méthodes plus classiques, appelees méthodes géométriques ou locales, qui se basent sur les particularités du visage analysé, et dont les défauts résident dans son manque de précision, ainsi que sa sensibillté aux informations qui ne sont pas pertinentes. La méthode que nous avons utilisé est qualifiée de globale, puisque l’ensemble du visage est alors analysé Notre technique de reconnaissance va donc utiliser la méthode d’analyse en composantes principales (également dite ACP).

De manière simple, nous visons la diminution de la dimension de l’espace dans lequel nous allons travalller, et nous pourrons lors simplifier les données à notre disposition et leur interprétation Ainsi nous pourrons prendre en compte les informations importantes qui nous permettrons de reconnaitre un visage parmi d’autres avec un bon taux de réus- site. (Figure 1. 1) Figure 1 1 . – Illustration de l’ACP Faisons un simple parallèle OF de réus- site. (Figure 1. 1) Figure 1. 1 – Illustration de l’ACP Faisons un simple parallèle entre ma méthode des faces propres et les séries de Fourier.

Les séries de Fourier nous permettent généralement de représenter un signal périodique à l’aide de sommes de cosinus et de sinus. Figure 1. 2) Figure 1. 2 – Approximation d’un créneau par des sinusoïdales page 4 Dans le cas de notre projet, notre approche consiste ? représenter un visage comme étant la combinaison linéaire d’un ensemble d’images, ces dernières formant une base de référence. Mathématiquement, cela revient à parvenir à l’équation : où di représente le visage propre, et pi le coefficient associé.

Nous allons chercher à trouver les visages propres ; tout d’abord, nous devons prendre un nombre M de visages d’apprentissage. Chacune de ces images, qui sont en pratique des matrices N N sont alors transformées en un unique vecteur colonne de longueur N2. Matrice N x N initiale : transformée en : soustrait en effet ce visage moyen aux visages d’apprentissages, ce qui nous laisse alors les informations propres à ce visage, nous récupérons alors dans Si uniquement les informatlons qui sont particulières à ce visage d’apprentissage.

Page 5 Nous devrions calculer les vecteurs propres di de la matrice D. Mais cela représente pour nous N2 vecteurs propres de dimension N2 chacun. C’est à présent que nous allons réduire l’information en limitant les composantes avec esquelles nous travaillerons, en accord avec le principe de l’analyse en composantes principales. Nous allons donc considérer la matrice E = QtQ, dont nous trouverons les vecteurs propres ei. Cette matrice est de taille M x M ce qui nous simplifiera donc les choses étant donné que nous aurons M vecteurs propres de taille M chacun.

Le passage de la matrice D à la matrice E n’est pas anodin, nous utilisons en effet le fait que les vecteurs propres de ces deux matrices sont liés de manière assez proche. En effet, nous avons comme relation, En multipliant cette équation ar la matrice Q, il vient : PAGF s OF éduisons donc qu’avec ei vecteur propre de la matrice E associé à la valeur propre Ai, nous avons par conséquent Qei est un vecteur propre de la matrice D associé à la même valeur propre Ai.

Ainsi, nous avons di vecteur propre de D, avec : di = Qei Ce sont les valeurs propres qui leur sont associées qui nous permet ensuite de classer les vecteurs propres en fonction de leur capacité à caractériser les variations entre les images. Lorsque l’on les visualise (ces vecteurs sont à Porigine des matrices de taille N x N), les faces propres sont ce que l’on pourrait appeler des images aux airs fantomatiques. Mais gardons ? l’esprit que sont les vecteurs propres de la matrice de covariance des images d’apprentissage des visages. (Figure 1. 3) page 6 Figure 1. – Quelques faces propres Les M vecteurs propres que nous avons alors obtenus nous permettrons donc d’approximer au mieux les visages d’apprentissage en utilisant les visages propres de plus grande importance. L’avantage de réduire le n ges propres est d’une PAGF 6 OF d’exécution ; cependant nous perdons sans aucun doute de l’information et donc Pinformation moins précise, mais les résultats ne s’en verront pas vraiment modlfiés, étant donné que nous ne ous donnons qu’une mission didentification. Nous ne cherchons pas à reconstruire le visage du sujet à partir de nos visages propres, mais seulement à le reconnaître.

Parmi les M vecteurs propres trouvés, nous allons seulement conserver un nombre qui seront les plus significatifs. Nous allons trouver maintenant le poids associé à chacun des visages propres. Les images servant à rapprentissage, auquel on a enlevé l’image moyenne, sont en fait combinaison linéaire des visages propres. Pour trouver le poids associé, nous faisons pour chacune des coordonnées correspondant à un isage d’apprentissage Ce qui nous permet d’obtenir pour chacun des M visages d’apprentissages un vecteur ni, où i représente le ieme visage, et qui nous informe sur le coffin- ceintrage appliqué à chacun des visages propres.

Passons à présent au travail à effectuer pour la reconnaissance d’un visage d’un sujet. l_Jne fois l’image prise, l’image (vecteur colonne r) obtenue est soustraite à l’image moyenne : Puis nous trouvons les coordonnées de cette image dans l’espace réduit des faces propres 7 OF trouvons les coordonnées de cette image dans l’espace réduit des faces propres age 7 Ce qui nous donne au final : Il nous faut maintenant interpréter la projection de l’image ? analyser pour identifier le sujet.

Pour cela nous allons utiliser une mesure de distance particulière, la distance de Mahalanobis. L’intérêt de cette distance réside dans le fait qu’elle va accorder un poids moins important aux composantes bruitées, et qu’elle permet séparer efficacement les axes pour lesquels l’information peut être mieux classifiée. (Flgure 1. 4) Figure 1. 4 : illustration de la distane de mahalanobis Elle est def par : avec Q covariance des variables. Nous cherchons donc : Puis, nous comparons la valeur de m trouvée à une valeur seuil A. ui aurait du être déterminée à partir d’essais sur des images choisies aléatoirement, qui peuvent aussi bien représenter des visages qu’autres choses, puis en comparant ces valeurs aux valeurs obtenues avec des visages d’apprentissa e et décider du seuil que nous avons choisi. Mais le choix PAGF 8 OF précision souhaité pour la reconnaissance, etc.. ) c’est pour cela qu’en pratique nous avons décidé de ne pas prendre de seuil. L’utilisation d’un seuil nous aurait permis de déterminer si oui ou on l’image analysée correspond à un visage présent dans la base de données.

Si alors la valeur de m était inférieure à celle du seuil, l’image correspond au visage qui a donné cette valeur la plus basse. Dans notre cas, le fait de ne pas choisir de seuil à eu pour conséquence que lorsqu’un visage non présent dans la base de donnée était testé, il était tout de même reconnu par le programme. page 8 1 . 2-Les faces propres : l’implantation pratique Voici donc le code de l’implantation en Python, commenté . 1. impo rt numpyasnp impo rt os impo rt sys impo rt tim e 2. ef lis t_d e_i pl im age( ima ge) : 3. Ren voi e u la u for me u list e u d’ une u i mage u Open CV » 4. retu rn [cc v. G et 20 (ima ge , i , for j n xran ge( ima ge. wi dt h)] for in xran ima ee. he ig ht)] nce (au tr e, Tab lea u): i. retu rn Tab lea se Itt ab + a utr e. ta b) e lif isin sta nce (au tr e, num ber S. N umb er ret urn Tabl eau (se If. ta b + au tre ) e Ise : ii. rais e Type Err « Ta bl ea u. _ add _u ab le au u ou usc al aire u att end u » 7. def_d iv_ _(s elf , au tre ): a. « Div ise upa ruu nu sc alai re » re tur n Tabl eau (se If. ta b / au tre ) 8. def _g eti tem _ (s elf , i nde x): a.

Ren voi euu nuc Oe ff icie ntu duu Tab le au rupo uru pou voi util ise rut abl ea u[ i if is ins tan ce (i ndex i nt) an d self -la rge ur 1 : re tur n Tabl eau (se If. ta b[ inde x]) el se . i. retu rn sel f. t ab [i ndex ] 9. def nit _(se If, so urc e, nom tr (tim e. t ime 0) a. ons tru cte ur d’un Ob jet Ta bl ea u On p eut lu i p as se r: 10. une cha ne d e cara ct re , qui ser a le che min de l’im age 11. une ima ge au fo rm at O pen CV pas se r en T abl eau 12. un arrayn umpy pa sser en Tabl eau ‘ a. if i sin sta nce (s ou rce , str): i. self . ta b – np. a rra y(l ist_d e_ ipli mag e(c v. L oa dl mage (so ur