% % % demo.txt est un script Octave qui lance la demo du % mon projet fr (FaceRecognition : reconnaissance % de visage). % % Auteur : Mathieu Deschamps % mathdesc@scouge.fr % Date : 11/02/2004 % IUT de Caen -- Licence Pro. M.C.A % eval("clear"); txt="% Bienvenu,"; txt2="% voici le script de démonstration de mon"; txt3="% projet FR, Face Recognition, Reconnaissance"; txt4="% Faciale. Ce projet est basé sur la technique"; txt5="% EigenFace."; txt6="% Ce script va illustrer le fonctionnement du"; txt7="% systeme FR que je propose."; txt8="% Trois terminaux differents sont en actions"; txt9="% dans ce systeme. Le terminal certifieur, de confiance"; txt10="% c'est lui qui contiendra la banque de données"; txt11="% des visages EigenFaces. Le terminal de personnalisation"; txt12="% considere l'ajout d'un usager au système FR."; txt13="% Le terminal d'authentification, lui est le terminal"; txt14="% d'utilisation/d'acces d'un/à un service que l'usager"; txt15="% veut utiliser/accéder."; disp(txt) disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) disp(txt7) disp(txt8) disp(txt9) disp(txt10) disp(txt11) disp(txt12) disp(txt13) disp(txt14) disp(txt15) txt = 'system("mv 1mat.pgm.oct 1mat.pgm.oc");'; txt2 = 'system("mv 1mat2.pgm.oct 1mat2.pgm.oc");'; %disp(txt) %disp(txt2) %eval(txt); %eval(txt2); txt= "% On renomme les fichiers à ajouter et"; txt2="% à tester pour pas que fr_load les charge !"; txt3="%"; txt4="% On recupere les images du repertoire"; txt5="% courant pour les chargent directement"; txt6="% grace à leur format en .pgm.oct"; txt7="% Octave charge les vecteurs qu'elles"; txt8="% contiennent."; txt9="%"; %disp(txt) %disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) disp(txt7) disp(txt8) disp(txt9) pause txt='[y,depth,dim,mmm,nbfoto] = fr_load (10000);'; disp(txt) eval(txt); txt="%"; txt2="% Octave dispose des données initiale pour"; txt3="% se constituer une banque de données de "; txt4="% visage. Celle-ci doit etre un echantillon"; txt5="% representatif de la forme à reconnaitre"; txt6="% (ici un visage humaine dont l'image"; txt7="% respecte certaines normes.)"; txt8="%"; disp(txt) disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) disp(txt7) disp(txt8) pause txt="% On renomme les fichiers pour leur chargement"; txt2="%"; %disp(txt) %disp(txt2) txt = 'system("mv 1mat.pgm.oc 1mat.pgm.oct");'; txt2 = 'system("mv 1mat2.pgm.oc 1mat2.pgm.oct");'; %disp(txt) %disp(txt2) %eval(txt); %eval(txt2); pause txt="%"; txt2="% On constitue la banque de donnée et on cree"; txt3="% les EigenFaces. Ce traitement génére une cle"; txt4="% signature publique. "; txt5="%"; txt6='t=fr_databank (depth,dim,nbfoto,y,0,0,1);'; disp(txt) disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) eval(txt6); pause txt="%"; txt2="% le contenu de la memoire (variable):"; disp(txt) disp(txt2) who -variables txt="%"; txt2="% On efface toutes les variables, on se"; txt3="% place dans un nouvel environnement."; disp(txt) disp(txt2) disp(txt3) clear mmm;clear depth;clear dim;clear y;clear nbfoto txt="%"; txt2="% Il ne reste que t la cle publique : les EigenFaces (photos)"; disp(txt) disp(txt2) who -variables pause txt="%"; txt2="% Un utilisateur veut s'abonner à ce service"; txt3="% de reconnaissance. Il fournit une photo. Le "; txt4="% terminal certifieur envoie a ce terminal-ci la"; txt5="% cle singature publique. Ce traitment calcule"; txt6="% la clé privée qui sera stockée dans une carte"; txt7="% a puce."; txt8="%"; txt9='vprime = fr_perso ("1mat.pgm.oct",t,10000, 0,1);'; disp(txt) disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) disp(txt7) disp(txt8) disp(txt9) eval(txt9); pause who -variables pause txt="%"; txt2="%"; txt3="% Maintenant l'usager vient, muni de sa carte"; txt4="% à un terminal lui permettant l'acces à ce" ; txt5="% service. "; txt6="% Il insere sa carte et le systeme lit la"; txt7="% signature privée inscrite. "; txt8="8% Le terminal certifieur envoie une signature"; txt9="% publique. "; txt10="% Le terminal d'authentification prend une photo,"; txt11="% fait des calculs similaires à l'etape précédente"; txt12="% et genere la clé privée correspondant à la photo"; txt13="% prise."; txt14="%"; txt15='vseconde = fr_auth ("1mat2.pgm.oct",t,vprime,10000, 0,1);'; disp(txt) disp(txt2) disp(txt3) disp(txt4) disp(txt5) disp(txt6) disp(txt7) disp(txt8) disp(txt9) disp(txt10) disp(txt11) disp(txt12) disp(txt13) disp(txt14) disp(txt15) eval(txt15); txt5="%"; txt="% Donc vprime = signature authentique"; txt2="% vseconde = signature a authentifier "; txt3="% Le test opéré par le terminal pourrait etre :"; txt4="test = vseconde./vprime "; disp(txt5) disp(txt) disp(txt2) disp(txt3) disp(txt4) eval(txt4); pause txt="%"; txt2="% Voilà c'est terminé"; txt3="%"; disp(txt) disp(txt2) disp(txt3) pause save envdemo.save quit