joomla thesis gisler

Upload: maichimcs

Post on 13-Apr-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/25/2019 Joomla Thesis Gisler

    1/35

    DET4J

    Developpement Java dun outil de

    visualisation de courbes deperformance biometriques

    Christophe Gisler1

    11 aout 2006

    Departement dInformatique

    Rapport de Travail de Bachelor

    Department of Informatics - Departement fur Informatik Universite de Fribourg - University ofFribourg - Universitat Freiburg Boulevard de Perolles 90 1700 Fribourg Switzerland

    phone +41 (26) 300 84 65 fax +41 (26) 300 97 31 [email protected] http://diuf.unifr.ch

    [email protected], Groupe DIVA, DIUF, Universite de Fribourg

  • 7/25/2019 Joomla Thesis Gisler

    2/35

    Table des matieres

    1 Introduction 1

    2 But du projet 1

    3 Bases theoriques 23.1 Definition de la biometrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23.2 Evaluation des systemes biometriques . . . . . . . . . . . . . . . . . . . . . . . . . 2

    3.2.1 Quest-ce quun systeme biometrique ? . . . . . . . . . . . . . . . . . . . . . 23.2.2 Que mesure un systeme biometrique ? . . . . . . . . . . . . . . . . . . . . . 33.2.3 Les taux derreur et leur utilite . . . . . . . . . . . . . . . . . . . . . . . . . 4

    3.3 Differents types de courbes de performance . . . . . . . . . . . . . . . . . . . . . . 53.3.1 Courbe T-FA/T-FR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53.3.2 Courbe ROC (Receiver Operating Characteristic). . . . . . . . . . . . . . . 63.3.3 Courbe DET (Detection Error Tradeoff) . . . . . . . . . . . . . . . . . . . . 73.3.4 Courbe semi-logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . . . 73.3.5 Courbe de cout (Cost) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    3.4 Le format de fichier Ragga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4.1 Definition du format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4.2 Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93.4.3 Description de quelques elements importants . . . . . . . . . . . . . . . . . 9

    4 Methodologie et design 114.1 Management du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

    4.1.1 Meetings et methode de travail . . . . . . . . . . . . . . . . . . . . . . . . . 114.1.2 Subversion (SVN) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.1.3 Presentations et rapport final . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4.2 Choix technologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.2.1 Langage de programmation . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    4.2.2 Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2.3 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3 Architecture du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    4.3.1 biosecure.det4j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.3.2 biosecure.det4j.model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.3.3 biosecure.det4j.parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    4.4 Description du GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    5 Travail effectue et resultat 165.1 Fonctionnalites du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165.2 Redaction de la Javadoc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.3 Packages utilises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    5.3.1 Xerces et JDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    5.3.2 VectorGraphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.4 Evaluation du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    5.4.1 Justesse et fiabilite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.4.2 Robustesse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.4.3 Ameliorations potentielles futures. . . . . . . . . . . . . . . . . . . . . . . . 21

    5.5 Resultat et courbes de performance. . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    6 Apports personnels 246.1 Outils informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246.2 Methodologies informatiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246.3 Contenu scientifique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246.4 Gestion du projet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    7 Conclusion 24

    i

  • 7/25/2019 Joomla Thesis Gisler

    3/35

    A Guide de lutilisateur 26A.1 La fenetre principale Det4J et sa barre de menus . . . . . . . . . . . . . . . . . . 26

    A.1.1 Le menu Det4J. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26A.1.2 Le menu File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27A.1.3 Le menu Edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

    A.1.4 Le menu Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28A.2 La fenetre des reglages (Settings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

    A.2.1 Le compartiment Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . 29A.2.2 Le compartiment Cost. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29A.2.3 Le compartiment Classifiers. . . . . . . . . . . . . . . . . . . . . . . . . . 29

    A.3 La fenetre de la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    ii

  • 7/25/2019 Joomla Thesis Gisler

    4/35

    Table des figures

    1 Composants dun systeme biometrique . . . . . . . . . . . . . . . . . . . . . . . . . 22 Exemple de graphe T-FA/T-FR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Exemple de courbe T-FA/T-FR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    4 Exemple de courbe ROC. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Exemple de courbe DET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 Exemple de courbe semi-logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . 87 Exemple de courbe de cout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Exemple de contenu dun fichier Ragga. . . . . . . . . . . . . . . . . . . . . . . . . 109 Structure dunclassifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 Deroulement dun projet selon la methode eXtreme Programming . . . . . . . . . . 1211 Apercu du GUI de lapplication DET4J . . . . . . . . . . . . . . . . . . . . . . . . 1512 Architecture du packageVectorGraphics . . . . . . . . . . . . . . . . . . . . . . . . 1913 Representation de courbes T-FA/T-FR dans Det4J . . . . . . . . . . . . . . . . . . 2114 Representation de courbes ROC dans Det4J . . . . . . . . . . . . . . . . . . . . . . 2215 Representation de courbes DET dans Det4J . . . . . . . . . . . . . . . . . . . . . . 22

    16 Representation de courbes semi-logarithmiques dans Det4J . . . . . . . . . . . . . 2317 Representation de courbes de cout dans Det4J . . . . . . . . . . . . . . . . . . . . 2318 La fenetre principale Det4J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2619 Le menu Det4J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2720 Les formats dexportation disponibles . . . . . . . . . . . . . . . . . . . . . . . . . 2721 Le menu File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2722 Le menu Edit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2823 Le menu Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2824 La fenetre des reglages (Settings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2925 Les fenetres permettant de changer la couleur, lepaisseur et le type de trait dune

    courbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3026 La fenetre de la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    iii

  • 7/25/2019 Joomla Thesis Gisler

    5/35

    1 INTRODUCTION 1

    1 Introduction

    Depuis toujours, les humains se reconnaissent entre eux a leurs caracteristiques physiques etcomportementales. Nous reconnaissons nos semblables a leurs visages quand nous les rencontronsou a leurs voix quand nous leur parlons.

    Jusqua present, la verification didentite (authentification) dans les systemes informatiques atoujours ete basee sur un objet que tout un chacun doit avoir sur lui (cle, carte a puce ou cartemagnetique). Malheureusement, ce genre dobjet a tendance a etre perdu, voire vole.

    Pour atteindre une verification ou une identification plus fiable, letre humain doit utiliserun moyen qui caracterise reellement sa personne. La biometrie cherche a offrir des methodes au-tomatiques didentification ou de verification didentite qui sappuient sur les mesures des ca-racteristiques physiques ou comportementales, comme les empreintes digitales ou la signature vo-cale. Ces caracteristiques devraient etre uniques et non falsifiables. Helas, il est souvent possible decreer une copie qui sera acceptee par le systeme biometrique comme etant un echantillon veritable[3].

    Les systemes biometriques qui verifient automatiquement lidentite dune personne peuventfaire deux types derreurs. Il y a les erreurs de faux rejet (FR) lorsque le systeme refuse lacces aun vrai utilisateur (acces vrai) et les erreurs de fausse acceptation (FA) lorsque le systeme accordelacces a un imposteur (acces imposteur). La decision daccepter ou de rejeter un utilisateur seprend en comparant les donnees dun nouvel acces avec le template de lutilisateur. La comparai-son donne un score dit de vraisemblance. Lorsque le score est en dessous dun seuil de securite (ouseuil de rejet), le systeme decide de rejeter lutilisateur. Lorsque le score est au-dessus de ce seuil,lutilisateur est accepte.

    En fonction de la valeur du seuil de rejet, le systeme fait plus ou moins derreurs de fauxrejet ou de fausse acceptation. Si le seuil est tres grand, il y aura beaucoup de faux rejets et peude fausses acceptations. Si le seuil est tres petit, il y aura peu de faux rejets mais beaucoup de

    fausses acceptations. A chaque valeur de seuil correspondent un taux de FR et un taux de FA, etil est donc possible de dessiner une courbe de performance qui est parametree en fonction du seuil.Generalement, ces courbes reprennent en abscisse le taux deFAet en ordonnee le taux deFR. Cescourbes sont classiquement nommees les courbes de detection (DET curves) car une verificationbiometrique est en fait un probleme classique de detection devenements[1].

    2 But du projet

    Le but de ce projet de Bachelor etait dimplementer en JAVA un outil de visualisation decourbes de performance biometriques de divers types (cf. 3.3). En entree, loutil devait prendre unfichier XML contenant des scores de vraisemblance pour des acces vrais et des acces imposteurs.En sortie, loutil devait permettre une visualisation directe de la courbe de performance. Les prin-cipales fonctionnalites a developper etaient les suivantes :

    Possibilite de visualiser jusqua 4 courbes de performance sur le meme graphique ; Possibilite de visualiser jusqua 5 types de courbes differents ; Possibilite de charger ou de supprimer ces courbes ; Visualisation de divers points importants (equal error rate, minimal cost) ; Possibilite dexporter les courbes sous differents formats graphiques ; Possibilite dinteragir avec le graphique, au moyen de la souris, pour effectuer diverses actions.

  • 7/25/2019 Joomla Thesis Gisler

    6/35

    3 BASES THEORIQUES 2

    3 Bases theoriques

    3.1 Definition de la biometrie

    La biometrie vise lelaboration de techniques didentification automatique des humains. Cer-

    taines biometries utilisent des caracteristiques physiques comme liris, les empreintes digitales oula forme du visage. Dautres biometries se basent sur des caracteristiques comportementales desindividus comme lecriture ou le signal de la parole.

    3.2 Evaluation des systemes biometriques

    3.2.1 Quest-ce quun systeme biometrique ?

    Un systeme biometrique possede quatre comp osants principaux[2] :

    1. Un module de senseurs (sensor module) qui acquiert les donnees biometriques dun indi-vidu. Par exemple, un senseur qui capture les empreintes digitales;

    2. Un module dextraction des caracteristiques (feature extraction module) qui traite lesdonnees acquises par le precedent module pour en extraire des valeurs caracteristiques, commela position et lorientation de points precis de limage de lempreinte digitale ;

    3. Un module de comparaison (matching module) dans lequel les valeurs caracteristiquesextraites par le precedent module sont comparees avec celles du profil de lutilisateur (usersmaster template) dans la base de donnees pour generer un scoreS, dit score de concordance(matching score). Par exemple, dans le cas des empreintes digitales, le nombre de pointsconcordants, entre limage de lempreinte de la requete et celle du template, va etre calculepour retourner un score de concordance ;

    4. Un module de decision(decision-making module) qui va decider daccepter ou de rejeterlutilsateur en comparant le score de concordance genere par le module precedent avec unseuil de securiteT (security threshold) donne. Dans le cas ou ST, lindividu sera accepte,

    et dans le cas contraire, si S < T, il sera rejete.

    Sensor

    Module

    User'smaster

    template

    FeatureExtraction

    MatchingModule

    DecisionModule

    Threshold T

    BiometricData

    Accept if S !TReject if S < T

    Database

    BiometricFeatures

    ID Claim

    MatchingScore S

    BiometricSample

    Fig.1 Composants dun systeme biometrique

  • 7/25/2019 Joomla Thesis Gisler

    7/35

    3 BASES THEORIQUES 3

    Le schema de la figure 1 illustre bien les relations entre ces differents composants. La flecheportant le label ID Claim napparat que dans le cas de verification didentite et pas dans celuididentification (voir ci-dessous), cest la raison pour laquelle elle est en pointille.

    Les systemes biometriques peuvent etre utilises dans deux modes differents :

    La verification de personnes ;

    Lidentificationde personnes.

    On parle deverification didentite lorsquune personne clame etre deja enrolee dans le systemebiometrique (et possederait donc uneID-cardou unlogin name). Dans ce cas, les donnees biometriquesobtenues de cette personne sont comparees avec son template dutilisateur qui est enregistre dansla base de donnees.

    On parle didentificationquand lidentite de lutilisateur est a priori inconnue. Dans ce cas,les donnees biometriques de lutilisateur sont comparees aux templates de tous les utilisateurs en-

    registres dans la base de donnees du systeme biometrique, car lutilisateur pourrait etre nimportelequel (sinon aucun) dentre eux.

    Il est evident que lidentification de personnes est techniquement beaucoup plus compliquee etbeaucoup plus couteuse, et le taux dexactitude de lidentification diminue generalement quand lagrandeur de la base de donnees augmente.

    Afin quune personne puisse etre verifiee ou identifiee avec succes par le systeme biometrique, elledoit setre fait prealablement enregistrer dans le systeme, cest-a-dire que ses donnees biometriquesont du etre enregistrees, traitees et stoquees. Comme la qualite de ces donnees biometriquesstoquees est cruciale pour les futures authentifications, il y a souvent plusieurs echantillons biometri-ques (biometric samples) qui sont utilises pour creer le profil matre de lutilisateur (usersmaster template). Ce processus denregistrement dun nouvel utilisateur est appele lenrolement(enrollment).

    3.2.2 Que mesure un systeme biometrique ?

    La difference la plus significative entre la biometrie et les technologies traditionnelles se situedans la reponse dun systeme biometrique a une requete de verification ou didentification. De telssystemes ne peuvent pas repondre simplement par oui ou non, comme le ferait un systeme tradi-tionnel en verifiant que le code PIN dune carte banquaire correspond bien a une sequence donneetelle que 1234. Aucun systeme biometrique ne peut verifier lidentite ou identifier une personneavec une certitude absolue. Par certitude absolue, on entend une probabilite de verification stric-tement egale a 1. La signature dune personne nest jamais deux fois identique, tout comme laposition du doigt sur un lecteur dempreintes digitales nest jamais deux fois la meme. Cest la rai-

    son pour laquelle on ne peut quessayer de mesurer les similitudes entre les donnees biometriquesdu protagoniste et celles de son profil qui est stocke dans la bases de donnees. Ainsi, le systemebiometrique retourne la probabilite que ces deux echantillons biometiques proviennent de la memepersonne.

    Les systemes biometriques peuvent etre divises en deux categories selon ce quils mesurent :

    Les systemes bases sur les caracteristiques physiques de lindividu (comme les empreintesdigitales , laspect de liris ou de la retine, la morphologie de la main, du doigt ou du visage) ;

    Les systemes bases sur les caracteristiques comportementalesde lindividu (comme lareconnaissance vocale ou la dynamique de la signature manuscrite ou des frappes au clavier).

  • 7/25/2019 Joomla Thesis Gisler

    8/35

    3 BASES THEORIQUES 4

    Les systemes biometriques de la premiere categorie sont generalement plus fiables et plus precis,car les caracteristiques physiques sont plus facilement reproductibles et ne sont souvent pas affecteespar les conditions mentales de la personne au moment de lenr olement.

    Si lon construisait un systeme requerant 100% de concordance a chaque fois, alors evidemment

    ce systeme serait pratiquement inutilisable, puisque seulement une petite minorite des utilisateurs(et encore) pourrait lutiliser. La plupart dentre eux serait rejetee a chaque tentative, comme lesresultats des mesures ne seraient jamais les memes.

    Ainsi, il faut tenir compte de la variabilite des donnees biometriques, car il nest pas tolerablequun systeme biometrique rejete trop souvent les veritables utilisateurs. Cependant, plus la varia-bilite toleree sera grande, plus la probabilite quun imposteur possedant des donnees biometriquessimilaires soit accepte sera grande.

    3.2.3 Les taux derreur et leur utilite

    Un systeme biometrique peut faire deux types derreurs :

    Uneerreur de faux rejet(ou erreur de type 1), qui survient lorsquun utilisateur legitimeest faussement rejete, parce que le systeme trouve que ses donnees biometriques ne sont passuffisamment similaires a celles du profil matre (master template) de la base de donnees ;

    Uneerreur de fausse acceptation(ou erreur de type 2), qui survient quand un imposteurest malencontreusement accepte en tant quutilisateur legitime, parce que le systeme trouveque ses donnees biometriques sont suffisamment similaires a celles du profil matre de la basede donnees.

    Dans un systeme ideal, il ny a pas de faux rejet et de fausse acceptation. Dans un systemereel cependant, leur nombre nest pas nul et peut prendre des valeurs non negligeables lorsque lesmodalites et conditions dutilisation augmentent la variabilite des donnees. Les taux de faux rejet

    et de fausse acceptation dependent du seuil de securiteT. Plus la valeur du seuil sera grande, plusil y aura de faux rejets et moins de fausses acceptations, et inversement, plus la valeur du seuilsera petite, moins il y aura de faux rejets et plus de fausses acceptations. Le nombre de faux rejetset celui de fausses acceptations sont inversement proportionnels. Le choix de la valeur de seuilT (pour threshold) a utiliser depend principalement de la finalite du systeme biometrique. Cettevaleur est choisie de maniere a faire un compromis adequat entre la securite et lutilisabilite dusysteme. Par exemple, un systeme biometrique aux portes dun parc dattraction comme Disney-land appliquera typiquement un seuil beaucoup plus petit quun systeme biometrique aux portesdes quartiers generaux de la NSA.

    Le nombre de faux rejets (resp. de fausses acceptations) est habituellement exprime en unpourcentage par rapport au nombre total de tentatives dacces autorises (resp. non autorises). Ces

    taux sont appeles taux de faux rejet (false reject rate, abrege par FRR) et taux de fausseacceptation (false acceptation rate, abrege par FAR) et sont donc lies a une certaine valeur deseuil T.

    Certains appareils biometriques (ou les logiciels les accompagnant) prennent le seuil de securitedesire comme parametre du processus de decision. Les autres appareils biometriques retournent unscore S (borne) sur la base duquel la decision daccepter ou de rejeter lutilisateur va etre prisepar lapplication elle-meme. En general, si le scoreSest plus grand ou egal au seuil T, lutilisateurva etre accepte et, si le score est plus petit, il sera rejete.

    Dans le cas ou le dispositif biometrique retourne un score, on peut generer un graphe indiquantla dependance des taux de fausse acceptation (FAR) et de faux rejets (FRR) au seuil (T). La figure2montre un exemple dun tel graphe, quon appelle graphe T-FA/T-FR.

  • 7/25/2019 Joomla Thesis Gisler

    9/35

    3 BASES THEORIQUES 5

    Fig.2 Exemple de graphe T-FA/T-FR

    Les courbes desFARet FRR se coupent en un point ou les taux de fausse acceptation et de fauxrejet sont egaux ; la valeur en ce point est appelee equal error rate (EER) ou aussi crossoveraccuracy. Cette valeur na presque pas dutilite pratique car on ne souhaite generalement pas queleFARet leFRRsoient les memes, mais elle constitue un bon indicateur de la precision du dispositifbiometrique. Par exemple, si lon a deux appareils avec des equal error rates de 1% et 10%, on saitalors que le premier est plus precis (i.e. quil fait moins derreurs) que le second. Pourtant, de tellescomparaisons ne sont pas aussi simples en realite. Dune part, les valeurs fournies par les fabricants

    sont incomparables parce que ces derniers ne publient habituellement pas les conditions exactes deleurs tests, et dautre part, meme sils le font, les tests dependent vraiment du comportement desutilisateurs et dautres influences exterieures, telles que la qualite des senseurs ou lutilisation deceux-ci.

    3.3 Differents types de courbes de performance

    Il a ete vu au paragraphe precedent que les performances dun systeme biometrique peuventetre mesurees en reportant ses taux de fausse acceptation (FAR) et de faux rejet (FRR) pourdifferentes valeurs de seuil (threshold T). A partir de ce triplet (T,FAR,FRR), diverses courbesde performance peuvent etre calculees et tracees. Celles qui sont decrites ci-dessous sont les pluspreponderantes dans la recherche sur la biometrie et leurs modeles ont ete implementes dans le

    projetDET4J.

    3.3.1 Courbe T-FA/T-FR

    La representation de ce type de courbe est la plus simple a comprendre (voir figure3). On faitvarier la valeur du seuil (threshold T) sur laxe des abscisses et les taux de fausse acceptation (FARin %) et de faux rejet (FRR in %) sur laxe des ordonnees, ce qui donne au final deux courbesqui se coupent au point de lequal error rate (FRR et FRR egaux). Quand la valeur du seuil estpetite, les taux respectifs de faux rejet et de fausse acceptation sont lun petit et lautre grand, etinversement quand la valeur du seuil est grande.

  • 7/25/2019 Joomla Thesis Gisler

    10/35

    3 BASES THEORIQUES 6

    Fig.3 Exemple de courbe T-FA/T-FR

    3.3.2 Courbe ROC (Receiver Operating Characteristic)

    Pour obtenir ce type de courbe (represente a la figure4), on fait varier intrinsequement la valeurdu seuil (threshold T) et les points de lunique courbe obtenue sont alors constitues des taux defausse acceptation (FAR in %) et de faux rejet (FRR in %) resp. en abscisses et en ordonnees.Lechelle est lineaire. Lequal error rate (EER) est obtenu a lintersection de la courbe et de ladiagonale partant de (0, 0) et arrivant en (100, 100). Les avantages de ce type de courbe sont quelon obtient une representation compacte des performances dun systeme biometrique au traversdune seule courbe, et que lon peut ainsi comparer des systemes biometriques differents (la courbela plus proche du coin inferieur gauche est la meilleure).

    Fig.4 Exemple de courbe ROC

  • 7/25/2019 Joomla Thesis Gisler

    11/35

    3 BASES THEORIQUES 7

    3.3.3 Courbe DET (Detection Error Tradeoff)

    Une courbe DET nest par essence quune courbe ROC dont on a remplace lechelle lineaire parune echelle basee sur une distribution normale1 [1] pour la rendre plus lisible et plus exploitable(voir la figure 5). Comme les scores de vraisemblance se distribuent generalement selon une loi

    normale, la courbe de performance saplatit et tend vers une droite. Les avantages des courbesDET sont les memes que ceux des courbes ROC, mais elles permettent en plus de comparer dessystemes biometriques qui ont des performances similaires.

    Fig.5 Exemple de courbe DET

    3.3.4 Courbe semi-logarithmique

    A linstar de la courbe DET, la courbe semi-logarithmique est une courbe ROC dont on a modifielechelle (lineaire). Lechelle de laxe des abscisses est simplement remplacee par une echelle semi-logarithmique, tandis que celle de lautre axe reste lineaire. De plus, on represente sur laxe desordonnees le genuine acceptation rate (GAR), qui est egal a 1 F RR. On obtient finalement unecourbe qui a lallure de celle de la figure6. Les courbes semi-logarithmiques, utilisees par certainschercheurs en biometrie, permettent une lisibilite et une interpretation differente[2].

    3.3.5 Courbe de cout (Cost)

    La courbe de cout (cost) est une courbe particuliere en ce sens quelle permet de donner despoids variables (facteurs WF A et WF R) aux taux de faux rejet et de fausse acceptation pour enfaire ressortir en quelque sorte un cout general du syteme biometrique pour un certain seuil. Lespoints qui composent une telle courbe prennent en abscisse une valeur de seuil T et en ordonneela valeur Cost(T) retournee par la fonction de cout pour ce seuil (voir la figure 7). Lexpressionmathematique de cette fonction est donnee par :

    Cost(T) = WF A F AR(T) P(Impostor) + WF R F RR(T) P(Genuine)

    WFA , WFR 0 ; P(Impostor), P(Genuine) [0,1] ; P(Genuine) = 1 P(Impostor)

    1

    Pour plus dinformations sur les distributions normales : http://en.wikipedia.org/wiki/Normal distribution

    http://en.wikipedia.org/wiki/Normal_distributionhttp://en.wikipedia.org/wiki/Normal_distribution
  • 7/25/2019 Joomla Thesis Gisler

    12/35

    3 BASES THEORIQUES 8

    Fig.6 Exemple de courbe semi-logarithmique

    Fig.7 Exemple de courbe de cout

  • 7/25/2019 Joomla Thesis Gisler

    13/35

    3 BASES THEORIQUES 9

    Dans une banque par exemple, un dispositif de reconnaissance vocal sur le systeme telephoniqueinduira un cout deFRR eleve et un cout deFARpetit, car si les personnes qui veulent telephoner sefont sans cesse rejeter, elles vont etre frustrees et risquent de rompre leur relation avec la banque,ce qui va couter beaucoup plus cher a cette derniere que si quelques personnes non autoriseesse font un peu trop facilement accepter. Au contraire, un systeme biometrique sur un coffre fort

    induira un cout deFRR petit et un cout deFAR eleve, car si une personne autorisee veut accederau coffre (ce quelle ne fait en general qua de rares occasions) et quelle se fait rejeter, ce ne serapas grave. Elle va recommencer le processus de verification peut-etre une fois ou deux jusqua cequelle soit acceptee. Elle sera meme ravie de la reticence du systeme a accepter toute personne etfinira par avoir acces a ses biens, ce qui ne va pas couter grand chose a la banque. Par contre, siun imposteur se fait malencontreusement accepter, il pourra avoir acces au contenu du coffre et levoler, ce qui va couter cher a la banque qui va devoir dedommager son client.

    3.4 Le format de fichier Ragga

    3.4.1 Definition du format

    Le format de fichier denommeRaggaest un format de fichier de scores biometriques au format

    XML(eXtended Markup Language) qui a ete defini dans le cadre du projet europeen BioSecure2.Ce format va etre pousse et finalise dans le consortium du projet afin quil devienne un standardet que la plupart des laboratoires lutilisent. Ce format de fichier contient aussi plus de meta-informations que les autres formats de fichier employes par les outils de scoring actuels. On peutdonc potentiellement en faire plus de choses (par exemple, faire une analyse par client et nonplus une analyse globale, etc...). Ce format permet egalement dinclure des informations de typeobservateur sur les donnees de test. Ces observateurs peuvent par exemple donner un indice dequalite sur les donnees (niveau de bruit ou autre).

    3.4.2 Structure

    La structure du contenu dun fichier Ragga est reresentee a la figure8.

    3.4.3 Description de quelques elements importants

    Dans un fichier Ragga, les elements importants sont definis par des balises XML dont les prin-cipales sont :

    eval : Un element eval constitue une sequence de tests ;

    ...

    moduleInformation: Les elementsmoduleInformationfournissent des informations supple-mentaires au sujet des systemes utilises pour produire les scores ou les meta-data. Ils sontlies a un module specifique qui est soit unclassifier, soit un observer. Tous les sous-elements

    institution, version, features etnotessont optionnels ;

    ...

    test : Les elements test definissent un acces unique qui peut etre un acces vrai ou un accesimposteur. Un test est defini par un nom de frichier (fileName), un modele de test (testModel)utilise sur le nom de fichier, et eventuellement le modele veritable (trueModel) correspondantau fichier teste. Un attribut facultatif est la longueur du fichier (fileLength) ;

    ...

    2Site web du projet BioSecure : http://www.biosecure.info

    http://www.biosecure.info/http://www.biosecure.info/
  • 7/25/2019 Joomla Thesis Gisler

    14/35

    3 BASES THEORIQUES 10

    Fig.8 Exemple de contenu dun fichier Ragga

  • 7/25/2019 Joomla Thesis Gisler

    15/35

    4 METHODOLOGIE ET DESIGN 11

    classifier: Les elements classifierdefinissent les scores biometriques du fichier sous un test.Le format Ragga permet de sortir des scores globaux du fichier sous un test ou une sequencede scores individuels avec des timestamps specifiant a partir de quel instant et jusqua quelinstant dans le temps un score individuel sapplique. Une finalite pourrait etre par exemplequun classifier retourne des scores individuels pour chaque trame de 10 ms dans le cas de la

    biometrie sur le signal de parole ;

    ...

    Fig.9 Structure dun classifier

    score : Un element de type score represente le score de vraisemblance issu du module decomparaison. De facon generale, ce score est directement ou indirectement lie a la probabiliteque les donnees biometriques observees correspondent a lidentite pretendue. En pratique, cescore est une valeur de type floatqui peut etre negative ou positive suivant son domaine de

    representation (logarithmique ou lineaire).

    4 Methodologie et design

    4.1 Management du projet

    4.1.1 Meetings et methode de travail

    Concernant le management du projet, il a ete decide avec le Dr Jean Hennebert et lassistantBruno Dumas au debut de lannee academique de faire des meetings environ toutes les deux se-maines, ce qui en totalise une quinzaine durant lannee. Lors de ces reunions, Jean Hennebertsupervisait lavancement du projet selon une methode bien connue en entreprise qui sappelle eX-treme Programming3 (abregeXP). Cette methode de developpement de programmes informatiques(softwares) procede sommairement de la maniere suivante :

    1. Analyse de larchitecture et des fonctionnalites (features) du futur programme informatique.Definition de priorites sur les fonctionnalites a implementer ;

    2. Elaboration dun planning sur la duree totale estimee du projet et selon les priorites desfonctionnalites a implementer ;

    3. Meetings (iterations) pendant lesquels le travail effectue est inspecte et les taches suivantesfixees. Pour chaque tache, le temps de realisation necessaire est estime, et sil nest pas

    3Site web de XP : http://www.extremeprogramming.org

    http://www.extremeprogramming.org/http://www.extremeprogramming.org/
  • 7/25/2019 Joomla Thesis Gisler

    16/35

    4 METHODOLOGIE ET DESIGN 12

    encore possible de le determiner precisement, un travail de prospection appele spike estprealablement agende ;

    4. Tests dacceptation et correction des bugs ;

    5. Premiere sortie du programme (small release).

    La figure10represente de maniere plus precise ces differentes etapes :

    Fig.10 Deroulement dun projet selon la methode eXtreme Programming

    4.1.2 Subversion (SVN)

    Il etait demande de faire regulierement des sauvegardes des fichiers du projet en cours sur lerepertoire de sauvegardes (repository) du serveur du groupe DIVA du departement dinformatiqueen utilisant le logiciel de controle de versions appeleSubversion4 (SVN).

    4.1.3 Presentations et rapport final

    A la fin de chaque semestre, tous les etudiants accomplissant leur travail de Bachelor dansle groupe DIVA devaient faire une presentation intermediaire de leur projet et principalement deson etat davancement. A la fin de lannee academique (en loccurence le 19 juillet 2006), unepresentation finale etait exigee pour couronner laboutissement du projet et profiter des remarquesde derniere minute faites par le professeur et les assistants pour effectuer les dernieres retouchesau programme et au rapport final (a rendre dans les deux semaines au plus tard).

    4.2 Choix technologiques4.2.1 Langage de programmation

    Java5 (de Sun Microsystems) est le langage de programmation qui a ete choisi pour le projetDET4J. Les raisons de ce choix sont que Java est un langage multiplateforme, de haut niveau(oriente objet), tres repandu et apprecie des programmeurs pour sa convivialite (notamment souslenvironnement de programmation Eclipse6).

    4Site web du projet Subversion : http://subversion.tigris.org5Site web du projet Java : http://java.sun.com6Site web du projet Eclipse : http://www.eclipse.org

    http://subversion.tigris.org/http://java.sun.com/http://www.eclipse.org/http://www.eclipse.org/http://java.sun.com/http://subversion.tigris.org/
  • 7/25/2019 Joomla Thesis Gisler

    17/35

    4 METHODOLOGIE ET DESIGN 13

    4.2.2 Parsing

    Le choix du parseur de fichier XML a ete porte sur SAX7.JDOM8 constituait lautre parseurpotentiel, mais SAX lui a ete prefere car, contrairement a JDOM, cest un modele de parseurevenementiel qui est tres peu gourmand en memoire puisquil na pas besoin de charger tout le

    fichier en memoire, ce qui nest pas du tout negligeable, sachant quun fichier Ragga possede unetaille moyenne dune vingtaine de mega-octets environ. JDOM est tres gourmand en memoire caril doit dabord generer larbre du document entier pour pouvoir ensuite acceder aux elements pardes operations classiques de navigation dans les arbres, tandis que SAX accede aux elements demaniere sequentielle, ce qui ne demande que peu de memoire.

    4.2.3 GUI

    Une grande partie de la programmation de DET4J portait sur la realisation de linterfacegraphique utilisateur (GUI), cest la raison pour laquelle il etait important dutiliser une bonnebibliotheque graphique telle que Swing pour le langage Java. Swing offre la possibilite de creerdes interfaces graphiques identiques quel que soit le systeme dexploitation sous-jacent, au prix deperformances moindres quen utilisant Abstract Window Toolkit (AWT). En effet, AWT fournit une

    API independante du systeme dexploitation pour mettre en oeuvre des composants graphiques.Dans AWT, chaque composant est dessine et controle par un composant tiers natif specifique ausysteme dexploitation. Cest pourquoi les composants dAWT sont appeles composants lourds. Aucontraire, les composants Swing sont decrits comme legers, car ils ne requierent pas dallocationde ressources natives de la part du gestionnaire de fenetres sous-jacent, mais empruntent lesresources de leurs ancetres. Une grande partie de lAPI Swing est une extension complementaire aAWT plutot quun remplacant direct. Laffichage est fourni par Java2D. Finalement, Swing utilisele principe Modele-Vue-Controleur9 (MVC) et dispose de plusieurs choix dapparence (de vue)pour chacun des composants standard.

    4.3 Architecture du programme

    Le programme DET4J se decompose en trois differents paquetages (packages) Java dont voiciles descriptions :

    4.3.1 biosecure.det4j

    biosecure.det4jest le package principal. Il est constitue de toutes les classes qui sont lessencememe de lapplication DET4J. Ce package comprend :

    Det4J.java, qui est la classe principale du programme DET4J. Elle lance le programme etinstancie les differentes classes pour, entre autres, creer les trois fenetres du GUI et le menu,lancer le parseur SAX et extraire les differentes donnees utiles pour laffichage et la manipu-lation des courbes de performance ;

    SettingsWindow.java, qui contient les methodes pour creer une fenetre permettant deffectuerdivers reglages ainsi que de manipuler les classifiers et leurs courbes ;

    ConsoleWindow.java, qui contient les methodes pour creer une fenetre de console qui affichedes informations sur les actions et evenements importants qui se produisent durant lutilisa-tion du logiciel;

    JCanvas.java, qui contient les methodes pour creer dans la fenetre principale de DET4J legraphique (canvas) contenant les courbes, la grille, les labels, le titre, la legende, etc... Cestce canvas qui constitue la finalite de lutilitaire et qui va pouvoir etre imprime ou exporte ;

    7Site web du projet SAX : http://www.saxproject.org8Site web du projet JDOM : http://www.jdom.org9Pour plus dinformations sur la demarche MVC : http://fr.wikipedia.org/wiki/Modele-Vue-Controleur

    http://www.saxproject.org/http://www.jdom.org/http://www.jdom.org/http://www.saxproject.org/
  • 7/25/2019 Joomla Thesis Gisler

    18/35

    4 METHODOLOGIE ET DESIGN 14

    CanvasObject.java, qui decrit un objet representant une certaine zone du graphique (canvas)et memorisant les caracteristiques de cette derniere pour pouvoir detecter les evenements dela souris (clics et glissements) et permettre de reagir en consequence ;

    ActiveZoneDescriptors.java, qui cree un objet contenant la liste de tous les CanvasObjects

    qui vont reagir aux actions de la souris ;

    CDF Normal.java, qui contient les routines necessaires au calcul de la fonction de distribu-tion normale cumulative (CDF) et de sa fonction inverse. Ces routines sont utilisees dans larepresentation de courbes de performance de type DET (cf.3.3) ;

    ClassifierDETCurveData.java, qui decrit une structure de donnees pour contenir les ca-racteristiques de la courbe dun classifier. Ces caracteristiques sont le nom du classifier, lenom de la courbe dans la legende, le vecteur contenant les coordonnees de tous ses points, sacouleur, son type et son epaisseur, la valeur de son equal error rate (EE R) et celle du seuilassocie (T(EE R)). Cette classe contient aussi les methodes qui calculent le vecteur des pointsde la courbe (la dimension de ce vecteur est donnee constitue la resolution de la courbe, i.e.

    le nombre de points qui la compose), son E ER et le seuil associe T(EE R) ;

    ClassifierScores.java, qui a pour fonction de creer la liste des scores bruts dun classifier ;

    Coordinate.java, qui cree une structure de donnees pour contenir les coordonnees dun pointdune courbe de performance et du seuil associe ;

    PrintUtilities.java, qui est une classe utilitaire permettant dimprimer un composant (com-ponent) quelconque, tel que le graphique (canvas) dans notre cas ;

    RaggaException.java, qui retourne une exception specifique lorsquune erreur survient lors duparsing dun fichier Ragga.

    4.3.2 biosecure.det4j.model

    Ce package a comme fonction de representer le modele interne dun fichier Ragga et contientune classe pour chaque element structurel du format (cf. 3.4). Ces classes sont bien evidemmentemployees par le parseur SAX et sontAuxiliarySignal.java,Classifier.java,Eval.java,Generic.java,MetaData.java, ModuleInformation.java, Observer.java, Score.java etTest.java.

    4.3.3 biosecure.det4j.parser

    Ce package est celui du parseur de fichiers Ragga (XML) et contient lunique classe RaggaSax-Parser.java qui est utilisee pour lire et parser un fichier (XML) au format Ragga au moyen deSAX.

    4.4 Description du GUI

    Lors de la reflexion sur le layout final de lutilitaire DET4J, il a ete decide que linterface gra-phique utilisateur (GUI) serait compose de trois fenetres independantes (voir la figure11) :

    1. Une premiere fenetre, la principale, pour contenir et interagir avec le graphique. Elle contientaussi lunique barre de menus ;

    2. Une deuxieme fenetre pour effectuer les reglages les plus importants et qui sappliquentdirectement aux courbes des classifiers ;

    3. Une troisieme fenetre pour la console permettant dafficher les informations a propos desactions et erreurs pouvant survenir durant lutilisation.

  • 7/25/2019 Joomla Thesis Gisler

    19/35

    4 METHODOLOGIE ET DESIGN 15

    Fig.11 Apercu du GUI de lapplication DET4J

    Dans la fenetre principale Det4J, il a ete souhaite que le plus grand nombre possible demanipulations soient realisables intuitivement et directement sur le graphique au moyen de la sou-ris (par clics et glissements). Cela comprend la majorite des manipulations dedition des titres,des labels et de la legende. Les operations restantes et les options typiques des menus (comme

    louverture de fichiers, limpression, lexportation, etc...) sont accessibles via la barre de menus.Les menus disponibles sont : Det4J, File, Edit et Window. Le menu Det4J contient lesoptions relatives au programme lui-meme (About, Quit), le menu File les options relatives aufichier (Open, Export, Print), le menu Edit les options relatives a ledition du graphique, et lemenu Window les options relatives aux fenetres annexes (Show, Hide).

    Dans la deuxieme fenetre, il a ete decide de placer deux compartiments principaux. Le pre-mier, Settings, permet de faire les deux reglages principaux relatifs a toutes les courbes deperformance, cest-a-dire de changer par un menu deroulant le type de courbes a visualiser, etdaugmenter/reduire avec un slider la resolution des courbes (i.e. le nombre de points calculespour chacune dentre elles). Le second compartiment, Classifiers, permet deffectuer des reglageset de voir des informations propres a chaque classifier. Un troisieme compartiment sintercale entre

    les deux premiers quand le type de courbe selectionne dans le menu deroulant est la courbe decout (cf. 3.3). Ce dernier compartiment offre a lutilisateur la possibilite de modifier directementles parametres de la fonction de cout.

    Leventualite de creer une application DET4J reunissant ces trois fenetres en une unique fenetreprincipale a longuement ete discutee, mais finalement abandonnee, et ceci pour les raisons suivantes.La programmation de la creation, de la separation, de la hierarchisation, de laffichage et de lexploi-tation de plusieurs zones de fonctionnalites diverses au sein dune meme fenetre est extremementfastidieuse avec Swing et donc plus sujette aux bugs et aux pertes de temps. Finalement, la creationdun GUI avec fenetres separees comme cest le cas dans DET4J permet a lutilisateur demasquer a souhait celles dont il na pas lutilite ou quil ne veut simplement pas voir safficher.

  • 7/25/2019 Joomla Thesis Gisler

    20/35

    5 TRAVAIL EFFECTUE ET RESULTAT 16

    5 Travail effectue et resultat

    5.1 Fonctionnalites du programme

    Dans sa version actuelle, lutilitaire DET4J est dote de multiples fonctionnalites. Voici les des-

    criptions de celles qui paraissent essentielles :

    Support du nouveau format de score Ragga : Il etait primordial que DET4J supporte ce fu-tur standard de format de fichier de scores biometriques elabore recemment par le consortiumdu pro jet europeen BioSecure ;

    Chargement et fermeture de plusieurs fichiers Ragga : Il est possible douvrir plusieurs fi-chiers Ragga lun apres lautre. Chaque fichier peut contenir un ou plusieurs classifiers. Lescourbes de performance respectives seront alors affichees sur le meme graphique dans DET4J.Ce dernier permet de desactiver a la volee laffichage des courbes des classifiers charges endecochant la case prevue a cet effet a cote de leur nom dans la fenetre des reglages. No-tons que DET4J gere les fichiers Ragga dapres les classifiers quils contiennent. Ainsi, il est

    possible de se debarasser de tout classifier (qui a ete charge) independamment des autresclassifiers pouvant appartenir au meme fichier Ragga. En reouvrant le meme fichier Ragga,le classifier perdu va etre recharge sans que les autres classifiers, deja charges, ne le soient aleur tour (un message davertissement va alors nous en informer) ;

    Creation du GUI : Linterface graphique utilisateur (GUI), dont les principes sous-jacents ontete discutes au paragraphe4.4,a ete realise avec Swing et a represente une partie considerabledu projet (creation des fenetres, des menus, boutons, sliders, etc..). Il est a noter que diverstool-tips ont ete implementes pour afficher des messages daide quand lutilisateur deplacele pointeur de la souris sur certains elements du GUI ;

    Calcul et affichage des courbes ROC, DET, Semi-Log, T-FA/T-FR et Cost : Le calcul

    et laffichage de ces divers types de courbes, dont les modeles ont ete discutes au para-graphe3.3, se font entierement dans la classe JCanvas.java. Le mode daffichage desire estselectionnable au moyen le menu deroulant Curve types dans la fenetre des reglages ;

    Optimisation de laffichage des courbes : Lors du calcul des coordonneesF AR et F RR despoints de chaque courbe, on a remarque que la repartition de ces points netait pas uniforme(bien que le seuil de securite Tvarie lineairement). En effet, la ma jeure partie des points sesituaient aux extremites du graphe, si bien que beaucoup dentre eux etaient dessines sur lememe pixel. Laffichage des courbes devenait donc lourd et lent. Cest la raison pour laquelle,lors du calcul et de laffichage des points dune courbe, on supprime ceux qui sont inutilementtrop proches. De plus, une fonction danti-aliasing (i.e. de lissage des pixels) applicable auxcourbes a ete implementee. Lanti-aliasing est desactive par defaut, mais peut etre active par

    une commande du menu Edit ;

    Exportation dans un grand nombre de formats : Grace au package VectorGraphics (cf. 5.3.2), il est possible dexporter le graphique dans un grand nombre de formats, tels png,jpg, gif, bmp, pdf, ps, eps, svg (la liste exhaustive est donnee a la figure 20 du Guide delUtilisateur en annexe). Lexportation se fait via la commande Export du menu File ;

    Impression : Il est possible dimprimer le graphique via la commande Print du menu File.Cest la classe PrintUtilities.javaqui en est responsable (cf. 4.3) ;

    Calcul et affichage de lequal error rate : Les valeurs de lequal error rate (EER) de tousles classifiers charges saffichent a cote de leurs noms respectifs dans la fenetre des reglages.En outre, dans quatre des cinq visualisations implementees (toutes sauf celle de la courbe de

  • 7/25/2019 Joomla Thesis Gisler

    21/35

    5 TRAVAIL EFFECTUE ET RESULTAT 17

    cout), il est possible dafficher, via le menu Edit, les points des equal error rates sur lesdifferentes courbes de performance activees ;

    Calcul du seuil de lequal error rate : De maniere analogue, les seuils associes aux equal errorrates respectifs des classifiers (T(EE R)) sont affiches a cote des noms dans la fenetre desreglages ;

    Calcul et affichage des points de cout minimal, seuil optimal : Si la visualisation en modeCourbe de cout est selectionnee, le troisieme compartiment permettant de modifier a lavolee les parametres de la fonction de cout apparat dans la fenetre des reglages. De plus,on peut afficher le point de cout minimal (le seuil associe est par consequent optimal) surla courbe de chaque classifier, et un tableau contenant les coordonnees de ces points (Topt,Cmin= C(Topt)) pour chaque classifier est imprime dans la console. Ce tableau est reimprimeapres tout changement de resolution ou de parametre de la fonction C(T). Notons que cetableau nest pas mis a jour, mais reimprime, ce qui permet de faire des comparaisons entretableaux de configurations differentes ;

    Gestion des evenements de la souris : La gestion des evenements de la souris sur le graphique(canvas) de la fenetre principale de DET4J permet de reperer et didentifier les actions po-tentielles de la souris (clics et glissements) aux endroits specifiques du canvas pour pouvoirreagir en consequence. Comme il la ete vu au paragraphe 4.3, ce sont les classes CanvasOb-ject.java etActiveZoneDescriptors.javaqui en sont responsables ;

    Deplacement de la legende par drag and drop : La legende est deplacable par un glisser-deposer (drag and drop) de la souris au sein-meme du graphique. Notons quil est possiblede masquer la legende si on le souhaite ;

    Affichage des coordonnees dun p oint en fonction dun clic dans la grille: Lorsquun clic

    de la souris est effectue a linterieur du cadran contenant les courbes, un point muni duncadre contenant ses coordonnees est dessine a lendroit du clic. La couleur du fond de ce cadreest modifiable au moyen dun color-chooser accessible par une commande du menu Edit ;

    Edition des labels des axes, titre, legende et noms des classifiers : Les labels des axes, letitre, la legende et les noms des classifiers sont editables soit via le menu Edit, soit encliquant directement sur lelement concerne dans le graphique. Les valeurs par defaut de tousles elements sont restaurables par lintermediaire des commandes appropriees dans le menuEdit ;

    Gestion du redimensionnement de la fenetre (canvas) : La gestion du redimensionnementde la fenetre principale de DET4J, et par consequent du canvas, constituait une lourde tache.

    En effet, il na pas ete aise de faire que le graphique reste consistant, utilisable et presentable,et que les evenements de la souris continuent de fonctionner lors des redimensionnements dela fenetre. DET4J impose une taille minimale de la fenetre au-dela de laquelle il nest paspossible daller. Notons aussi que le redimensionnement constitue une sorte de zoom qui peutetre utile ;

    Edition de la couleur, de lepaisseur et du type de trait des courbes : Il est possible dechanger la couleur de chaque courbe de performance par lintermediaire dun color-chooserqui apparat lorsquon clique sur le bouton adequat a droite du nom du classifier dans lafenetre des reglages. Lepaisseur (de 1 a 10 pixels) et le type de trait (continu, pointille, petitou grand traitille) est modifiable dune facon analogue. Ces changements sont aussi pris enconsideration par les symboles dans la legende.

  • 7/25/2019 Joomla Thesis Gisler

    22/35

    5 TRAVAIL EFFECTUE ET RESULTAT 18

    5.2 Redaction de la Javadoc

    Pendant la duree du projet DET4J, une partie non negligeable du temps de travail a eteconsacree a la redaction de la documentation de lAPI au format HTML (Javadoc). Lenvironne-ment de programmation Eclipse dispose dun outil de creation de Javadoc a partir du code source

    (dans lequel on insere certaines commandes specifiques). Le code de lapplication DET4J est doncentierement commente et pret a etre consulte. Cest la raison pour laquelle lauteur de ce rapportne va pas sattarder sur le code et limplementation.

    5.3 Packages utilises

    5.3.1 Xerces et JDOM

    Il a ete vu au paragraphe4.2que SAX a ete choisi pour effectuer le parsing des fichiers XML auformat Ragga. SAX, dont lacronyme veut dire Simple API for XML, a ete le premier API pourXML a etre largement adopte par la communite des programmeurs Java, et constitue de factoun standard a lheure actuelle. La derniere version stable de SAX est la 2.0.1 (SAX2). SAX2 estgratuit et il nest pas possible den posseder une license car il fait partie du domaine public.

    Pour utiliser SAX2, il est necessaire dinstaller un parseur XML pour Java qui supporte les in-terfaces de SAX2, comme Xerces-J10.Xerces fait partie du projet XML dApache. Le programmeDET4J requiert aussi linstallation de JDOM11 dont le parseur SAX utilise certaines classes (no-tamment pour representer les modeles des elements XML dans Java). Par consequent les fichiersxerces.jar etjdom.jardoivent etre ajoutes au CLASSPATH de Java.

    5.3.2 VectorGraphics

    Description du packageLe package VectorGraphics de la bibliotheque Java FreeHEP12 est mis a dispostion et utilisable

    sous les termes de license LGPL. Il permet a tout programme Java dexporter dans une variete deformats graphiques vectoriels et bitmap. La gamme des formats vectoriels recense entre autres les

    formats PostScript, PDF, EMF, SWF et CGM, tandis que celle des formats bitmap les formatsGFI, PNG, JPG and PPM. Ce package utilise la classe standard java.awt.Graphics2D commeinterface pour le programme utilisateur, ce qui rend plutot facile son couplage a un quelconqueprogramme Java. En outre, il met a disposition une bote de dialogue qui permet a lutilisateurde choisir entre les differents formats mentionnes ci-dessus et de fixer les parametres propres achaque format. Finalement, VectorGraphics contient un ensemble de classe basiques pouvant etreetendues pour gerer des nouveaux formats de sortie qui viendraient a faire leur apparition. Lafigure12 montre un schema de larchitecture du package et ce qui suit est extrait du manuel13.

    Comment utiliser le package ?En Java, cest la methode paint(Graphics g) dun componentqui permet de dessiner un gra-

    phique. Dans le corps de cette methode, lutilisateur appelle sequentiellement plusieurs methodes

    dun contexte java.awt.Graphics ou de java.awt.Graphics2D pour realiser le dessin. Le packageVectorGraphics etend la classe Graphics2D pour permettre aux utilisateurs de continuer de des-siner vers le meme ancien contexte Graphics2D qui leur est familier. Cependant, cette exten-sion ajoute la gestion des nouveaux formats de sortie. Le code de lutilisateur pour dessinerun graphique reste donc le meme, autant pour ce qui concerne laffichage a lecran que pource qui est de lecriture dans un format quelconque. Pour utiliser le package VectorGraphics, leprogrammeur doit a jouter le code pour afficher la bote de dialogue dexportation (ExportDia-log) afin que lutilisateur puisse selectionner un format. Cet a jout peut se faire dans un Me-nuItem (voir lexemple du manuel en ligne). Pour lancer le programme dont le code employece package, il est imperatif dajouter au CLASSPATH les fichiers jar suivants : freehep-base.jar,

    10Site web du projet Xerces : http://xerces.apache.org/xerces-j11Site web du projet JDOM : http://www.jdom.org/12The FreeHEP Java library : http://java.freehep.org13Manuel en ligne de VectorGraphics : http://java.freehep.org/freehep1.x/vectorgraphics/Manual.html

    http://xerces.apache.org/xerces-jhttp://www.jdom.org/http://java.freehep.org/http://java.freehep.org/freehep1.x/vectorgraphics/Manual.htmlhttp://java.freehep.org/freehep1.x/vectorgraphics/Manual.htmlhttp://java.freehep.org/http://www.jdom.org/http://xerces.apache.org/xerces-j
  • 7/25/2019 Joomla Thesis Gisler

    23/35

    5 TRAVAIL EFFECTUE ET RESULTAT 19

    Fig.12 Architecture du package VectorGraphics

    freehep-graphics2d.jar, freehep-graphicsio.jar, qui incluent les formats bitmap de base JPG, PNGet PPM. Pour inclure en plus le format GIF ainsi quun ou plusieurs formats vectoriels, les fi-chiersjarsuivants doivent aussi etre ajoutes : freehep-graphicsio-gif.jar, freehep-graphicsio-cgm.jar,freehep-graphicsio-emf.jar, freehep-graphicsio-pdf.jar, freehep-graphicsio.ps.jar, freehep-graphicsio-svg.jar et freehep-graphicsio-swf.jar. Le cas echeant, la bote de dialogue dexportation va auto-matiquement detecter tous les formats dont les fichiers jar ont ete ajoutes au CLASSPATH etpermettre a lutilisateur de les selectionner.

    Comment dessiner dans un contexte VectorGraphics ?Afin dutiliser les methodes du package pour dessiner, lutilisateur a besoin de convertir le

    contexte standard java.awt.Graphics en un contexte VectorGraphics. Pour ce faire, on disposede la methodeVectorGraphics.create(Graphics g), qui va retournerg si ce dernier est deja une ins-tance de VectorGraphics ou alors encapsuler g dans une instance de VectorGraphics (un exemplede code est disponible dans le manuel en ligne). On pourra ainsi faire appel a toutes les methodesde Graphics2D et aux methodes additionnelles de VectorGraphics.

    Fonctionnalites additionnelles du package ?La classe VectorGraphics etend Graphics2D avec un certain nombre de fonctionnalites permet-

    tant decrire de meilleurs formats de sortie. Ces fonctionnalites sont : Les methodes Draw, Fill, Clear, Clip,... : Ces methodes (drawLine(), fillOval(), clear-

    Rect(), clipRect(),...) qui prennent normalement en parametres des nombres entiers ont etesurchargees avec des methodes dont les noms sont les memes mais qui prennent en parametresdes double. Ceci permet de dessiner avec une plus grande precision en continuant dutiliserces methodes simples. Une telle precision est requise par les formats vectoriels, souvent des-tines a etre exploites par des peripheriques demandant une resolution plus haute que celledun ecran (une imprimante par exemple). Les methodes setLineWidth() etgetLineWidth()permettent de changer la largeur du trait sans creer explicitement un objet de type Stroke.

    Les objets PrintColors: La classe PrintColor etend java.awt.Colorpour tenir compte des

  • 7/25/2019 Joomla Thesis Gisler

    24/35

    5 TRAVAIL EFFECTUE ET RESULTAT 20

    couleurs qui sont visibles et sur lecran et sur une imprimante. Limpression peut se faire encouleur, en noir et blanc ou en niveaux de gris. Des PrintColors peuvent etre crees avec lesmappages corrects, et se comporter pourtant differemment sur lecran que dans nimportequel formats de sortie. La classe PrintColor peut etre employee partout ou le serait uneclasse normale dejava.awt.Color. Les couleurs par defaut de Java y sont egalement definies,

    avec, en plus, les mappages corrects pour les imprimantes. Un PrintColor sera seulementtraite particulierement si un contexte VectorGraphics est utilise. Le methodes setColorMode()et getColorMode() peuvent etre employees pour choisir le mode de sortie entre COLOR,BLACK AND WHITE et GRAYSCALE.

    Les objets Symbols: Pour dessiner un grand nombre de symboles similaires (petits carres,triangles, etc.....), on pourrait faire appel a certaines methodes comme drawSymbol() oufill-Symbol() dans le contexte de VectorGraphics. Un certain nombre de symboles predefinis sontdisponibles dans VectorGraphicsConstants (et dans VectorGraphics). Lavantage demployerces symboles, plutot que de les coder soit-meme en termes de lignes et dautres primitives,est que le format de sortie peut traduire ces appels en procedures. Ceci peut etre fait dansles formats de sortie qui permettent a des procedures detre definies, comme les formatsPostScript et SVG. Ainsi, le fichier de sortie prendra considerablement moins de place.

    Les objets TagStrings : La classe TagString offre la possiblite de marquer les chanes decaracteres (strings) avec des balises HTML (< b > ... < /b >, < i > ... < /i >, etc...).La representation des caracteres &, , et peut se faire a laide des entites HTMLrespectives suivantes : &amp ; &lt ; &gt ; &quot et &apos ; .

    Dautres metho des : Certaines methodes specifiques sont appelees dans limplementationde nouveaux formats de sortie dans VectorGraphics. Ces methodes sontstartExport(),endEx-port(),setCreator(),getCreator(),printComment(), setDeviceIndependent() et isDeviceInde-pendent() et sont decrites dans le manuel en ligne.

    Les formats supportes et leurs limitationsLe manuel en ligne fournit la liste exhaustive des formats de sortie supportes, leurs descriptions,

    ainsi que leurs limitations.

    Javadoc de VectorGraphicsLa javadoc du package de VectorGraphics est disponible a ladresse suivante : http://java.

    freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.html.

    5.4 Evaluation du programme

    5.4.1 Justesse et fiabilite

    Durant le projet, un test comparatif a ete effectue pour verifier que les courbes de performanceDET affichees par DET4J etaient bien semblables a celles quaffiche Matlab.

    Apres analyse du code des deux programmes, il a pu etre certifie que le programme DET4J danssa version Java actuelle est equivalent au script Matlab dans sa maniere dafficher les courbes de

    detection DET. Les methodes mathematiques, notamment pour le calcul de la fonction de distribu-tion normale cumulative (CDF) et de son inverse, qui sont utilisees dans le fichier CDF Normal.javade DET4J sont les memes que dans le fichier ppndf.mde Matlab. La maniere dont procede DET4Jpour dessiner la courbe DET est aussi equivalente a celle de Matlab.

    5.4.2 Robustesse

    Des tests de robustesse ont ete entrepris tout au long de la phase de programmation de DET4J.Des tests dutilisation intensive a la fin du projet ont permis de mettre en evidence et de corrigerde nombreux bugs. Il en resulte que lutilitaire DET4J fait maintenant preuve dune tres bonnestabilite.

    http://java.freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.htmlhttp://java.freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.htmlhttp://java.freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.htmlhttp://java.freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.htmlhttp://java.freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.html
  • 7/25/2019 Joomla Thesis Gisler

    25/35

    5 TRAVAIL EFFECTUE ET RESULTAT 21

    5.4.3 Ameliorations potentielles futures

    Il avait ete decide au debut du projet que le programme DET4J devrait au minimum heriter desmemes fonctionnalites que Matlab. A la fin du projet, la quasi-totalite des fonctionnalites du ca-hier des charges ayant ete implementees, DET4J est desormais bien superieur a la version Matlab.

    Cependant, comme nulle chose nest parfaite et surement pas un logiciel informatique, plusieursameliorations pourraient lui etre apportees dans lavenir.

    Les principales fonctionnalites que lon pourrait envisager dimplementer sont les suivantes : La possibilite de faire un zoom sur le graphique et notamment en un endroit bien precis par

    un simple clic de la souris ; La possibilite dexploiter les meta-informations contenues dans les fichiers Ragga (par exemple,

    pour determiner lutilisateur le plus facilement contrefaisable) ; Loptimisation du calcul des points en fonction de la resolution et du nombre de classifiers

    charges (par exemple, ne pas recalculer tous les points si la resolution diminue, mais simple-ment supprimer ceux qui sont de trop, etc...).

    5.5 Resultat et courbes de performanceLes captures decran suivantes (figures 13a17) montrent lactuelle version de DET4J en pleine

    utilisation. Elles illustrent aussi les differents aspects que peuvent revetir des courbes de perfo-mance dans les cinq modes daffichage.

    Fig.13 Representation de courbes T-FA/T-FR dans Det4J

  • 7/25/2019 Joomla Thesis Gisler

    26/35

    5 TRAVAIL EFFECTUE ET RESULTAT 22

    Fig.14 Representation de courbes ROC dans Det4J

    Fig.15 Representation de courbes DET dans Det4J

  • 7/25/2019 Joomla Thesis Gisler

    27/35

    5 TRAVAIL EFFECTUE ET RESULTAT 23

    Fig. 16 Representation de courbes semi-logarithmiques dans Det4J

    Fig. 17 Representation de courbes de cout dans Det4J

  • 7/25/2019 Joomla Thesis Gisler

    28/35

    6 APPORTS PERSONNELS 24

    6 Apports personnels

    Tout dabord, je dirais que le projet DET4J dans son ensemble et sous tous ses aspects mapersonnellement beaucoup apporte. Mener a bien et a terme ce projet de Bachelor restera pro-bablement un des points forts de mon cursus universitaire en informatique. Jaimerais neanmoins

    souligner certains elements qui mont particulierement enrichi.

    6.1 Outils informatiques

    En tant quetudiant en informatique, je puis dire avec grande satisfaction que lapprofondisse-ment de mes connaissances en matiere de programmation en langage Java a surement constitue leplus grand apport personnel tout au long de ce projet. Jai aussi appris a faire usage de la librairieJava Swing et du logiciel de controle des versions Subversion (SVN).

    6.2 Methodologies informatiques

    Jai aussi pu faire lexperience de methodologies informatiques que je ne connaissais pas commela demarche dite de Vue-Modele-Controleur et la maniere dont selabore le design du GUI.

    6.3 Contenu scientifique

    La biometrie est une science extremement interessante. Le fait davoir pu y etre initie untant soit peu ma beaucoup appris, notamment sur les evaluations des performances des systemesbiometriques. Je nexclus donc pas leventualite de faire mon travail de Master dans le memedomaine.

    6.4 Gestion du projet

    La maniere de gerer un projet dune telle envergure a ete pour moi une experience nouvelle.Mon assistant-chef, le Dr Jean Hennebert, ma fait decouvrir la methode de developpement de

    logiciels appelee eXtreme Programming. Jai beaucoup apprecie sa facon de superviser le projet enorganisant des meetings reguliers durant lesquels les prochaines taches a accomplir etaient fixees.

    7 Conclusion

    Ladoption massive de systemes biometriques repose sur un prix et des performances accep-tables. Naguere eleve, le prix des systemes dauthentification ou de verification didentites diminuerapidement, mais lamelioration des performances promet detre plus lente. Du cote des societes deservice, le facteur dacceptation principal est le taux de succes. Cependant, le cahier des chargesvarie dune application a lautre : un distributeur de billets de banque necessite un taux de fauxrejet faible, alors quune application militaire necessite un taux de fausse acceptation tres faible.

    Afin dameliorer au mieux et le plus rapidement possible ces systemes biometriques, les ingenieurset chercheurs dans le domaine doivent disposer de multiples outils adaptes a leurs besoins. Dorenavant,le logiciel DET4J leur offre un outil simple, elegant, intuitif, efficace, fiable et gratuit pour representeret analyser diverses types de courbes de performance biometriques. Ce programme est dote de fonc-tionnalites fondamentales que ne propose pas son equivalent actuel Matlab, comme la representationde courbes de cout ou de type T-FA/T-FR, ROC ou semi-logarithmique. De plus, il permet le cal-cul et laffichage de certaines valeurs importantes, comme celles de lequal error rate, du seuil delequal error rate, du cout minimal et du seuil optimal. Finalement, il supporte le format Ragga,qui est un format de fichier de scores biometriques developpe par le consortium europeen BioSecure.

    Dans un futur proche, les systemes biometriques vont peu a peu remplacer lutilisation de motsde passe, voire de cles qui sont utilises actuellement pour les ordinateurs, les voitures, les accescontroles a des batiments ou a Internet. Les systemes qui rencontreront le plus de succes seront

  • 7/25/2019 Joomla Thesis Gisler

    29/35

    7 CONCLUSION 25

    ceux qui offriront linterface la plus simple et la moins contraignante a lutilisateur, tout en garan-tissant un bon niveau de securite. Finalement, lauthentification biometrique contribuera a rendrelutilisation de certains systemes plus simple et plus conviviale.

  • 7/25/2019 Joomla Thesis Gisler

    30/35

    A GUIDE DE LUTILISATEUR 26

    A Guide de lutilisateur

    A.1 La fenetre principale Det4J et sa barre de menus

    La fenetre Det4J constitue la fenetre principale de lapplication. Elle permet de visualiser et

    de manipuler les courbes de performance biometriques.

    Fig.18 La fenetre principale Det4J

    Les actions suivantes sont possibles directement sur le dessin (canvas) au moyen de la souris :

    1. Un clic sur le titre du graphe, sur le titre de la legende ou sur les labels des axes X et Ypermet de les editer ;

    2. Un clic sur le nom dun classifier dans la legende permet de lediter ;

    3. Un drag and drop de la legende permet de la deplacer et de la positionner a lendroitsouhaite ;

    4. Un clic en un endroit precis du graphe y affiche un point muni dun cadre contenant les

    coordonnees de ce point. Un clic a lexterieur du graphe fait disparatre ce point (et le cadrecontenant les coordonnees) sil y en avait un ;

    5. Un redimensionnement de la fenetre permet de faire varier la taille du graphique.

    En outre, la fenetre Det4J dispose dune barre de menus permettant deffectuer diversesoperations. Cette barre est constituee des menus suivants :

    A.1.1 Le menu Det4J

    Les 2 options de ce menu sont : About Det4J qui affiche une fenetre pop-up a propos de ce programme ; Quit Det4J qui permet de quitter le programme (tout comme un clic dans la case de

    fermeture de la fenetre principale).

  • 7/25/2019 Joomla Thesis Gisler

    31/35

    A GUIDE DE LUTILISATEUR 27

    Fig.19 Le menu Det4J

    A.1.2 Le menu File

    Les 3 options de ce menu sont : Open Ragga File... qui permet douvir un fichierRaggaafin de charger le(s) classifier(s)

    quil contient; Export To... qui offre la possibilite dexporter directement le canvas dans divers formats.

    Pour chaque format, les options dexportation (qualite, dimensions,...) sont modifiables viaune bote de dialogue. Les formats disponibles sont enumeres a la figure suivante :

    Fig.20 Les formats dexportation disponibles

    Print... qui permet limpression (si une imprimante est disponible).

    Fig. 21 Le menu File

    A.1.3 Le menu Edit

    Les 13 options de ce menu sont : Change Background Color... qui permet de changer la couleur de fond du canvas ; Change Coordinates Box Color... qui permet de changer la couleur de la bote contenant

    les coordonnees lorsquun clic est effectue dans la grille ; Change Title... qui permet de modifier le titre par defaut du dessin (canvas) ; Change Axe X Label... qui p ermet de changer le label par defaut de laxe des X ; Change Axe Y Label... qui p ermet de changer le label par defaut de laxe des Y ; Change Legend Label... qui permet de changer le label par defaut de la legende ;

  • 7/25/2019 Joomla Thesis Gisler

    32/35

    A GUIDE DE LUTILISATEUR 28

    Restore Default Labels qui restaure les labels par defaut pour le titre, la legende et lesaxes X et Y;

    Restore Default Classifiers Names qui restaure les noms initiaux des classifiers charges ; Show Equal Error Rate Points qui affiche le point de lequal error rate (EER) sur la courbe

    de chaque classifier charge. Cette option nest pas disponible pour laffichage de la courbe de

    cout (Cost) ; Show Minimal Cost Points qui affiche le point de cout minimal (Topt,Cost(Topt)) pour

    la courbe de cout de chaque classifier. Cette option nest disponible que la courbe de cout(Cost) ;

    Hide Legend (resp. Show Legend) qui offre la possibilite de masquer, resp. afficher lalegende ;

    Hide Grid (resp. Show Grid) qui offre la possibilite de masquer, resp. afficher la grilledu repere dans lequel sont affichees les courbes des differents classifiers ;

    Enable Anti-Aliasing (resp. Disable Anti-Aliasing) qui active, resp. desactive le lissagedes pixels (anti-aliasing) pour les courbes des differents classifiers charges.

    Fig.22 Le menu Edit

    A.1.4 Le menu Window

    Les 2 options de ce menu sont : Settings qui cache, resp. affiche la fenetre des settings suivant que cette option est cochee

    ou non; Console qui cache, resp. affiche la fenetre de la console suivant que cette option est cochee

    ou non.

    Fig.23 Le menu Window

    A.2 La fenetre des reglages (Settings)

    Cette fenetre contient, comme son nom lindique, les outils permettant deffectuer les diversreglages pour laffichage des courbes de performances biometriques. Elle est constituee des 3 com-partiments suivants (voir figure24) :

  • 7/25/2019 Joomla Thesis Gisler

    33/35

    A GUIDE DE LUTILISATEUR 29

    A.2.1 Le compartiment Settings

    Les 2 elements de ce compartiment sont : Un menu deroulant pour le changement de mode de representation des courbes de perfor-

    mance. Ce menu propose au choix les cinq types de courbes suivants : DET, ROC, Semi-

    Logarithmic, T-FA/T-FR, Cost (cf. section3.3) ; Un slider pour augmenter ou reduire la resolution des courbes, cest-a-dire le nombre depoints qui sont calcules pour chaque courbe et qui influe sur la precision du graphe parconsequent.

    A.2.2 Le compartiment Cost

    Ce compartiment napparat que lorsque le type de courbe Cost est selectionne dans le menuderoulant du compartiment Settings et permet de faire varier les parametres de la fonction decout (cf. section3.3).

    A.2.3 Le compartiment Classifiers

    Ce compartiment contient la liste des noms de tous les classifiers charges, les valeurs de leurequal error rate (EE R) et du seuil de leur equal error rate (T(EE R)). En outre, chaque classifierdispose de trois boutons pour resp. changer la couleur, lepaisseur et le type de trait de sa courbe(figure 25), se supprimer. La check-box a gauche du nom doit etre cochee pour que sa courbesoit affichee. Ceci permet dafficher ou de masquer a la volee les courbes des classifiers charges. Lescouleurs des check-boxes sont les memes que celles de leurs courbes.

    Fig.24 La fenetre des reglages (Settings)

  • 7/25/2019 Joomla Thesis Gisler

    34/35

    A GUIDE DE LUTILISATEUR 30

    Fig.25 Les fenetres permettant de changer la couleur, lepaisseur et le type de trait dune courbe

    A.3 La fenetre de la console

    La console a comme principale fonction doffrir un suivi des evenements (et erreurs) qui seproduisent au cours de lutilisation du logiciel, en affichant entre autres :

    le temps de parsing dun fichier Ragga lors de son chargement; le temps dextraction des scores des classifiers ; le temps de generation des donnees des courbes ; un tableau contenant les points de cout minimaux (Topt,Cost(Topt)) pour chaque classifier (le

    tableau est reaffiche si des parametres comme ceux de la fonction de cout ou la resolution va-rient. A noter quil nest pas mis a jour mais reaffiche, ce qui permet de faire des comparaisonsentre plusieurs tableaux de configurations differentes).

    Fig. 26 La fenetre de la console

  • 7/25/2019 Joomla Thesis Gisler

    35/35

    REFERENCES 31

    References

    [1] Alvin Martin, G. Doddington, T. Kamm, M. Ordowski and M. Przybocki, The DET curvein assesment of detection task performance, Eurospeech 1997, pp. 1895-1898, Rhodes Greece,1997

    [2] Arun Ross, Anil Jain, Department of Computer Science and Engineering, Michigan Sate Uni-versity, Information fusion in biometrics, Pattern Recognition Letters, Vol. 24, Issue 13, pp.2115-2125, September, 2003

    [3] Vaclav Matyas Jr., Zdenek Riha, Faculty Of Informatics, Masaryk University, Biometric Au-thentication Systems, Ecom-Monitor, 2000

    [4] The BioSecure NoE collaborative web site, http://www.biosecure.info

    [5] The Speech Group of the National Institute of Standards and Technology, http://www.nist.gov/speech

    [6] La Securite Informatique - La Securite des Informations (site web), La Biometrie, http://www.securiteinfo.com/conseils/biometrie.shtml

    [7] Djamila Mahmoud, PhD, collaboratrice au departement Corporate Information and Tech-nology de Swisscom AG, Biometrie et Authentification, http://sawww.epfl.ch/SIC/SA/publications/FI00/fi-sp-00/sp-00-page25.html

    [8] Wikipedia, The Free Encyclopedia, Normal Distribution, Modele-Vue-Controleur, http://en.wikipedia.org/wiki/Normal distribution,http://fr.wikipedia.org/wiki/Modele-Vue-Controleur

    [9] David Flanagan,Java In A Nutshel l, Manuel de reference pour Java 2Editions OReilly, Paris,2002, ISBN 2-84177-216-0

    [10] The documentation of the Java 2 Platform Standard Edition (J2SE) and JDK,http://java.sun.com/docs

    [11] The Javadoc of the CDF Normal class, http://www1.fpl.fs.fed.us/distributions/CDFNormal.html

    [12] The VectorGraphics package of FreeHEP Java Library, http://java.freehep.org/vectorgraphics

    [13] The SAX project, http://www.saxproject.org

    [14] The JDOM project, http://www.jdom.org

    [15] The eXtreme Programming project, http://www.extremeprogramming.org

    [16] The Subversion project, http://subversion.tigris.org

    [17] The Eclipse project, http://www.eclipse.org

    http://www.biosecure.info/http://www.nist.gov/speechhttp://www.nist.gov/speechhttp://www.securiteinfo.com/conseils/biometrie.shtmlhttp://www.securiteinfo.com/conseils/biometrie.shtmlhttp://sawww.epfl.ch/SIC/SA/publications/FI00/fi-sp-00/sp-00-page25.htmlhttp://sawww.epfl.ch/SIC/SA/publications/FI00/fi-sp-00/sp-00-page25.htmlhttp://en.wikipedia.org/wiki/Normal_distributionhttp://en.wikipedia.org/wiki/Normal_distributionhttp://java.sun.com/docshttp://java.sun.com/docshttp://www1.fpl.fs.fed.us/distributions/CDF_Normal.htmlhttp://www1.fpl.fs.fed.us/distributions/CDF_Normal.htmlhttp://java.freehep.org/vectorgraphicshttp://java.freehep.org/vectorgraphicshttp://www.saxproject.org/http://www.jdom.org/http://www.extremeprogramming.org/http://subversion.tigris.org/http://www.eclipse.org/http://www.eclipse.org/http://subversion.tigris.org/http://www.extremeprogramming.org/http://www.jdom.org/http://www.saxproject.org/http://java.freehep.org/vectorgraphicshttp://java.freehep.org/vectorgraphicshttp://www1.fpl.fs.fed.us/distributions/CDF_Normal.htmlhttp://www1.fpl.fs.fed.us/distributions/CDF_Normal.htmlhttp://java.sun.com/docshttp://java.sun.com/docshttp://en.wikipedia.org/wiki/Normal_distributionhttp://sawww.epfl.ch/SIC/SA/publications/FI00/fi-sp-00/sp-00-page25.htmlhttp://sawww.epfl.ch/SIC/SA/publications/FI00/fi-sp-00/sp-00-page25.htmlhttp://www.securiteinfo.com/conseils/biometrie.shtmlhttp://www.securiteinfo.com/conseils/biometrie.shtmlhttp://www.nist.gov/speechhttp://www.nist.gov/speechhttp://www.biosecure.info/