35
DET4J D ´ eveloppement Java d’un outil de visualisation de courbes de performance biom ´ etriques Christophe Gisler 1 11 aoˆ ut 2006 D ´ epartement d’Informatique Rapport de Travail de Bachelor Department of Informatics - Departement f¨ ur Informatik Universit´ e de Fribourg - University of Fribourg - Universit¨ at Freiburg Boulevard de P´ erolles 90 1700 Fribourg Switzerland phone +41 (26) 300 84 65 fax +41 (26) 300 97 31 [email protected] http://diuf.unifr.ch 1 [email protected], Groupe DIVA, DIUF, Universit´ e de Fribourg

DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

DET4JDeveloppement Java d’un outil de

visualisation de courbes deperformance biometriques

Christophe Gisler1

11 aout 2006

Departement d’Informatique

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

Page 2: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 Qu’est-ce qu’un systeme biometrique ? . . . . . . . . . . . . . . . . . . . . . 23.2.2 Que mesure un systeme biometrique ? . . . . . . . . . . . . . . . . . . . . . 33.2.3 Les taux d’erreur 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.2.2 Parsing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.2.3 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3 Architecture du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185.3.2 VectorGraphics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

5.4 Evaluation du programme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205.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

Page 3: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A Guide de l’utilisateur 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” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27A.1.4 Le menu “Window” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

A.2 La fenetre des reglages (Settings) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28A.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

Page 4: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

Table des figures

1 Composants d’un systeme biometrique . . . . . . . . . . . . . . . . . . . . . . . . . 22 Exemple de graphe T-FA/T-FR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Exemple de courbe T-FA/T-FR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 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 d’un fichier Ragga . . . . . . . . . . . . . . . . . . . . . . . . . 109 Structure d’un classifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1110 Deroulement d’un projet selon la methode eXtreme Programming . . . . . . . . . . 1211 Apercu du GUI de l’application DET4J . . . . . . . . . . . . . . . . . . . . . . . . 1512 Architecture du package VectorGraphics . . . . . . . . . . . . . . . . . . . . . . . . 1913 Representation de courbes T-FA/T-FR dans Det4J . . . . . . . . . . . . . . . . . . 2114 Representation de courbes ROC dans Det4J . . . . . . . . . . . . . . . . . . . . . . 2215 Representation de courbes DET dans Det4J . . . . . . . . . . . . . . . . . . . . . . 2216 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 d’exportation 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, l’epaisseur et le type de trait d’une

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

iii

Page 5: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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.

Jusqu’a present, la verification d’identite (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 d’objet a tendance a etre perdu, voire vole.

Pour atteindre une verification ou une identification plus fiable, l’etre humain doit utiliserun moyen qui caracterise reellement sa personne. La biometrie cherche a offrir des methodes au-tomatiques d’identification ou de verification d’identite qui s’appuient 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 l’identite d’une personne peuventfaire deux types d’erreurs. Il y a les erreurs de faux rejet (FR) lorsque le systeme refuse l’acces aun vrai utilisateur (acces vrai) et les erreurs de fausse acceptation (FA) lorsque le systeme accordel’acces a un imposteur (acces imposteur). La decision d’accepter ou de rejeter un utilisateur seprend en comparant les donnees d’un nouvel acces avec le template de l’utilisateur. La comparai-son donne un score dit de vraisemblance. Lorsque le score est en dessous d’un seuil de securite (ouseuil de rejet), le systeme decide de rejeter l’utilisateur. Lorsque le score est au-dessus de ce seuil,l’utilisateur est accepte.

En fonction de la valeur du seuil de rejet, le systeme fait plus ou moins d’erreurs 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 defausses 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 de FA et en ordonnee le taux de FR. Cescourbes sont classiquement nommees les courbes de detection (DET curves) car une verificationbiometrique est en fait un probleme classique de “detection” d’evenements [1].

2 But du projet

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

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

Page 6: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 2

3 Bases theoriques

3.1 Definition de la biometrie

La biometrie vise l’elaboration de techniques d’identification automatique des humains. Cer-taines biometries utilisent des caracteristiques physiques comme l’iris, les empreintes digitales oula forme du visage. D’autres biometries se basent sur des caracteristiques comportementales desindividus comme l’ecriture ou le signal de la parole.

3.2 Evaluation des systemes biometriques

3.2.1 Qu’est-ce qu’un systeme biometrique ?

Un systeme biometrique possede quatre composants principaux [2] :

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

2. Un module d’extraction des caracteristiques (feature extraction module) qui traite lesdonnees acquises par le precedent module pour en extraire des valeurs caracteristiques, commela position et l’orientation de points precis de l’image de l’empreinte digitale ;

3. Un module de comparaison (matching module) dans lequel les valeurs caracteristiquesextraites par le precedent module sont comparees avec celles du profil de l’utilisateur (user’smaster template) dans la base de donnees pour generer un score S, dit score de concordance(matching score). Par exemple, dans le cas des empreintes digitales, le nombre de pointsconcordants, entre l’image de l’empreinte 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 d’accepter ou de rejeterl’utilsateur en comparant le score de concordance genere par le module precedent avec unseuil de securite T (security threshold) donne. Dans le cas ou S ≥ T , l’individu sera accepte,et dans le cas contraire, si S < T , il sera rejete.

Sensor Module

User's master

template

FeatureExtraction

Matching Module

Decision Module

Threshold T

BiometricData

Accept if S ≥ TReject if S < T

Database

BiometricFeatures

ID Claim

MatchingScore S

BiometricSample

Fig. 1 – Composants d’un systeme biometrique

Page 7: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 3

Le schema de la figure 1 illustre bien les relations entre ces differents composants. La flecheportant le label “ID Claim” n’apparaıt que dans le cas de verification d’identite et pas dans celuid’identification (voir ci-dessous), c’est la raison pour laquelle elle est en pointille.

Les systemes biometriques peuvent etre utilises dans deux modes differents :

– La verification de personnes ;

– L’identification de personnes.

On parle de verification d’identite lorsqu’une personne clame etre deja enrolee dans le systemebiometrique (et possederait donc une ID-card ou un login name). Dans ce cas, les donnees biometriquesobtenues de cette personne sont comparees avec son template d’utilisateur qui est enregistre dansla base de donnees.

On parle d’identification quand l’identite de l’utilisateur est a priori inconnue. Dans ce cas,les donnees biometriques de l’utilisateur sont comparees aux templates de tous les utilisateurs en-registres dans la base de donnees du systeme biometrique, car l’utilisateur pourrait etre n’importelequel (sinon aucun) d’entre eux.

Il est evident que l’identification de personnes est techniquement beaucoup plus compliquee etbeaucoup plus couteuse, et le taux d’exactitude de l’identification diminue generalement quand lagrandeur de la base de donnees augmente.

Afin qu’une personne puisse etre verifiee ou identifiee avec succes par le systeme biometrique, elledoit s’etre fait prealablement enregistrer dans le systeme, c’est-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 maıtre de l’utilisateur (user’smaster template). Ce processus d’enregistrement d’un nouvel utilisateur est appele l’enrolement(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 d’un systeme biometrique a une requete de verification ou d’identification. De telssystemes ne peuvent pas repondre simplement par oui ou non, comme le ferait un systeme tradi-tionnel en verifiant que le code PIN d’une carte banquaire correspond bien a une sequence donneetelle que “1234”. Aucun systeme biometrique ne peut verifier l’identite ou identifier une personneavec une certitude absolue. Par certitude absolue, on entend une probabilite de verification stric-tement egale a 1. La signature d’une personne n’est jamais deux fois identique, tout comme laposition du doigt sur un lecteur d’empreintes digitales n’est jamais deux fois la meme. C’est la rai-son pour laquelle on ne peut qu’essayer 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 qu’ils mesurent :

– Les systemes bases sur les caracteristiques physiques de l’individu (comme les empreintesdigitales , l’aspect de l’iris ou de la retine, la morphologie de la main, du doigt ou du visage) ;

– Les systemes bases sur les caracteristiques comportementales de l’individu (comme lareconnaissance vocale ou la dynamique de la signature manuscrite ou des frappes au clavier).

Page 8: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 l’enrolement.

Si l’on construisait un systeme requerant 100% de concordance a chaque fois, alors evidemmentce systeme serait pratiquement inutilisable, puisque seulement une petite minorite des utilisateurs(et encore) pourrait l’utiliser. La plupart d’entre 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 n’est pas tolerablequ’un systeme biometrique rejete trop souvent les veritables utilisateurs. Cependant, plus la varia-bilite toleree sera grande, plus la probabilite qu’un imposteur possedant des donnees biometriquessimilaires soit accepte sera grande.

3.2.3 Les taux d’erreur et leur utilite

Un systeme biometrique peut faire deux types d’erreurs :

– Une erreur de faux rejet (ou erreur de type 1), qui survient lorsqu’un utilisateur legitimeest faussement rejete, parce que le systeme trouve que ses donnees biometriques ne sont passuffisamment similaires a celles du profil maıtre (master template) de la base de donnees ;

– Une erreur de fausse acceptation (ou erreur de type 2), qui survient quand un imposteurest malencontreusement accepte en tant qu’utilisateur legitime, parce que le systeme trouveque ses donnees biometriques sont suffisamment similaires a celles du profil maıtre de la basede donnees.

Dans un systeme ideal, il n’y a pas de faux rejet et de fausse acceptation. Dans un systemereel cependant, leur nombre n’est pas nul et peut prendre des valeurs non negligeables lorsque lesmodalites et conditions d’utilisation augmentent la variabilite des donnees. Les taux de faux rejetet de fausse acceptation dependent du seuil de securite T . 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 l’utilisabilite dusysteme. Par exemple, un systeme biometrique aux portes d’un parc d’attraction comme Disney-land appliquera typiquement un seuil beaucoup plus petit qu’un 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 d’acces autorises (resp. non autorises). Cestaux 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 d’accepter ou de rejeter l’utilisateur va etre prisepar l’application elle-meme. En general, si le score S est plus grand ou egal au seuil T , l’utilisateurva 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 figure2 montre un exemple d’un tel graphe, qu’on appelle graphe T-FA/T-FR.

Page 9: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 5

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

Les courbes des FAR et 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 n’a presque pas d’utilite pratique car on ne souhaite generalement pas quele FAR et le FRR soient les memes, mais elle constitue un bon indicateur de la precision du dispositifbiometrique. Par exemple, si l’on a deux appareils avec des equal error rates de 1% et 10%, on saitalors que le premier est plus precis (i.e. qu’il fait moins d’erreurs) que le second. Pourtant, de tellescomparaisons ne sont pas aussi simples en realite. D’une part, les valeurs fournies par les fabricantssont incomparables parce que ces derniers ne publient habituellement pas les conditions exactes deleurs tests, et d’autre part, meme s’ils le font, les tests dependent vraiment du comportement desutilisateurs et d’autres influences exterieures, telles que la qualite des senseurs ou l’utilisation deceux-ci.

3.3 Differents types de courbes de performance

Il a ete vu au paragraphe precedent que les performances d’un 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 leprojet DET4J.

3.3.1 Courbe T-FA/T-FR

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

Page 10: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 figure 4), on fait varier intrinsequement la valeurdu seuil (threshold T ) et les points de l’unique courbe obtenue sont alors constitues des taux defausse acceptation (FAR in % ) et de faux rejet (FRR in % ) resp. en abscisses et en ordonnees.L’echelle est lineaire. L’equal error rate (EER) est obtenu a l’intersection de la courbe et de ladiagonale partant de (0, 0) et arrivant en (100, 100). Les avantages de ce type de courbe sont quel’on obtient une representation compacte des performances d’un systeme biometrique au traversd’une seule courbe, et que l’on peut ainsi comparer des systemes biometriques differents (la courbela plus proche du coin inferieur gauche est la meilleure).

Fig. 4 – Exemple de courbe ROC

Page 11: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 7

3.3.3 Courbe DET (Detection Error Tradeoff)

Une courbe DET n’est par essence qu’une courbe ROC dont on a remplace l’echelle 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 loinormale, la courbe de performance s’aplatit 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 l’instar de la courbe DET, la courbe semi-logarithmique est une courbe ROC dont on a modifiel’echelle (lineaire). L’echelle de l’axe des abscisses est simplement remplacee par une echelle semi-logarithmique, tandis que celle de l’autre axe reste lineaire. De plus, on represente sur l’axe desordonnees le genuine acceptation rate (GAR), qui est egal a 1− FRR. On obtient finalement unecourbe qui a l’allure de celle de la figure 6. 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 qu’elle permet de donner despoids variables (facteurs WFA et WFR) 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). L’expressionmathematique de cette fonction est donnee par :

Cost(T ) = WFA ∗ FAR(T ) ∗ P (Impostor) + WFR ∗ FRR(T ) ∗ P (Genuine)

WF A, WF R ≥ 0 ; P (Impostor), P (Genuine) ∈ [0,1] ; P (Genuine) = 1 − P (Impostor)

1Pour plus d’informations sur les distributions normales : http://en.wikipedia.org/wiki/Normal distribution

Page 12: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 8

Fig. 6 – Exemple de courbe semi-logarithmique

Fig. 7 – Exemple de courbe de cout

Page 13: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 9

Dans une banque par exemple, un dispositif de reconnaissance vocal sur le systeme telephoniqueinduira un cout de FRR eleve et un cout de FAR petit, 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 fortinduira un cout de FRR petit et un cout de FAR eleve, car si une personne autorisee veut accederau coffre (ce qu’elle ne fait en general qu’a de rares occasions) et qu’elle se fait rejeter, ce ne serapas grave. Elle va recommencer le processus de verification peut-etre une fois ou deux jusqu’a cequ’elle 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 denomme Ragga est un format de fichier de scores biometriques au formatXML (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 qu’il devienne un standardet que la plupart des laboratoires l’utilisent. 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 d’inclure des informations de type“observateur” 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 d’un fichier Ragga est reresentee a la figure 8.

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 ;

<eval evalID="NIST-Biosecure-2005"> ... </eval>

– moduleInformation : Les elements moduleInformation fournissent 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 un classifier, soit un observer. Tous les sous-elementsinstitution, version, features et notes sont optionnels ;

<moduleInformation linkedToModule="det4j_test"> ... </moduleInformation>

– 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) ;

<test fileName="njst.b" testModel="m7780" trueModel="m7780"> ... </test>

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

Page 14: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

3 BASES THEORIQUES 10

Fig. 8 – Exemple de contenu d’un fichier Ragga

Page 15: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

4 METHODOLOGIE ET DESIGN 11

– classifier : Les elements classifier definissent 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 jusqu’a quelinstant dans le temps un score individuel s’applique. Une finalite pourrait etre par exemplequ’un classifier retourne des scores individuels pour chaque trame de 10 ms dans le cas de labiometrie sur le signal de parole ;

<classifier moduleID="det4j_test"> ... </classifier>

Fig. 9 – Structure d’un 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 l’identite pretendue. En pratique, cescore est une valeur de type float qui peut etre negative ou positive suivant son domaine derepresentation (logarithmique ou lineaire).

<score start="0" end="1240" value="10.854705"/>

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 l’assistantBruno Dumas au debut de l’annee academique de faire des meetings environ toutes les deux se-maines, ce qui en totalise une quinzaine durant l’annee. Lors de ces reunions, Jean Hennebertsupervisait l’avancement du projet selon une methode bien connue en entreprise qui s’appelle eX-treme Programming3 (abrege XP). Cette methode de developpement de programmes informatiques(softwares) procede sommairement de la maniere suivante :

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

2. Elaboration d’un 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 s’il n’est pas

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

Page 16: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

4 METHODOLOGIE ET DESIGN 12

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

4. Tests d’acceptation et correction des bugs ;

5. Premiere sortie du programme (small release).

La figure 10 represente de maniere plus precise ces differentes etapes :

Fig. 10 – Deroulement d’un 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 d’informatiqueen utilisant le logiciel de controle de versions appele Subversion4 (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 d’avancement. A la fin de l’annee academique (en l’occurence le 19 juillet 2006), unepresentation finale etait exigee pour couronner l’aboutissement 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 technologiques

4.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 sousl’environnement 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

Page 17: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

4 METHODOLOGIE ET DESIGN 13

4.2.2 Parsing

Le choix du parseur de fichier XML a ete porte sur SAX7. JDOM8 constituait l’autre parseurpotentiel, mais SAX lui a ete prefere car, contrairement a JDOM, c’est un modele de parseurevenementiel qui est tres peu gourmand en memoire puisqu’il n’a pas besoin de charger tout lefichier en memoire, ce qui n’est pas du tout negligeable, sachant qu’un fichier Ragga possede unetaille moyenne d’une vingtaine de mega-octets environ. JDOM est tres gourmand en memoire caril doit d’abord generer l’arbre 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 l’interfacegraphique utilisateur (GUI), c’est la raison pour laquelle il etait important d’utiliser une bonnebibliotheque graphique telle que Swing pour le langage Java. Swing offre la possibilite de creerdes interfaces graphiques identiques quel que soit le systeme d’exploitation sous-jacent, au prix deperformances moindres qu’en utilisant Abstract Window Toolkit (AWT). En effet, AWT fournit uneAPI independante du systeme d’exploitation pour mettre en oeuvre des composants graphiques.Dans AWT, chaque composant est dessine et controle par un composant tiers natif specifique ausysteme d’exploitation. C’est pourquoi les composants d’AWT sont appeles composants lourds. Aucontraire, les composants Swing sont decrits comme legers, car ils ne requierent pas d’allocationde ressources natives de la part du gestionnaire de fenetres sous-jacent, mais “empruntent” lesresources de leurs ancetres. Une grande partie de l’API Swing est une extension complementaire aAWT plutot qu’un remplacant direct. L’affichage est fourni par Java2D. Finalement, Swing utilisele principe Modele-Vue-Controleur9 (MVC) et dispose de plusieurs choix d’apparence (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.det4j est le package principal. Il est constitue de toutes les classes qui sont l’essencememe de l’application 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 l’affichage et la manipu-lation des courbes de performance ;

– SettingsWindow.java, qui contient les methodes pour creer une fenetre permettant d’effectuerdivers 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 l’utilisa-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... C’estce canvas qui constitue la finalite de l’utilitaire 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 d’informations sur la demarche MVC : http://fr.wikipedia.org/wiki/Modele-Vue-Controleur

Page 18: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 CanvasObjectsqui 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 d’un 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 (EER) et celle du seuilassocie (T (EER)). 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 EER et le seuil associe T (EER) ;

– ClassifierScores.java, qui a pour fonction de creer la liste des scores bruts d’un classifier ;

– Coordinate.java, qui cree une structure de donnees pour contenir les coordonnees d’un pointd’une courbe de performance et du seuil associe ;

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

– RaggaException.java, qui retourne une exception specifique lorsqu’une erreur survient lors duparsing d’un fichier Ragga.

4.3.2 biosecure.det4j.model

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

4.3.3 biosecure.det4j.parser

Ce package est celui du parseur de fichiers Ragga (XML) et contient l’unique 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 l’utilitaire DET4J, il a ete decide que l’interface gra-phique utilisateur (GUI) serait compose de trois fenetres independantes (voir la figure 11) :

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

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

3. Une troisieme fenetre pour la console permettant d’afficher les informations a propos desactions et erreurs pouvant survenir durant l’utilisation.

Page 19: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

4 METHODOLOGIE ET DESIGN 15

Fig. 11 – Apercu du GUI de l’application 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 d’edition des titres,des labels et de la legende. Les operations restantes et les options typiques des menus (commel’ouverture de fichiers, l’impression, l’exportation, 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 l’edition 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, c’est-a-dire de changer par un menu deroulant le type de courbes a visualiser, etd’augmenter/reduire avec un “slider” la resolution des courbes (i.e. le nombre de points calculespour chacune d’entre elles). Le second compartiment, “Classifiers”, permet d’effectuer des reglageset de voir des informations propres a chaque classifier. Un troisieme compartiment s’intercale entreles deux premiers quand le type de courbe selectionne dans le menu deroulant est la courbe decout (cf. §3.3). Ce dernier compartiment offre a l’utilisateur la possibilite de modifier directementles parametres de la fonction de cout.

L’eventualite 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 l’affichage et de l’exploi-tation de plusieurs zones de fonctionnalites diverses au sein d’une meme fenetre est extremementfastidieuse avec Swing et donc plus sujette aux bugs et aux pertes de temps. Finalement, la creationd’un GUI avec fenetres separees — comme c’est le cas dans DET4J — permet a l’utilisateur demasquer a souhait celles dont il n’a pas l’utilite ou qu’il ne veut simplement pas voir s’afficher.

Page 20: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

5 TRAVAIL EFFECTUE ET RESULTAT 16

5 Travail effectue et resultat

5.1 Fonctionnalites du programme

Dans sa version actuelle, l’utilitaire 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 projet europeen BioSecure ;

Chargement et fermeture de plusieurs fichiers Ragga : Il est possible d’ouvrir plusieurs fi-chiers Ragga l’un apres l’autre. 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 l’affichage 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 d’apres les classifiers qu’ils contiennent. Ainsi, il estpossible 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 d’avertissement va alors nous en informer) ;

Creation du GUI : L’interface graphique utilisateur (GUI), dont les principes sous-jacents ontete discutes au paragraphe 4.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 divers“tool-tips” ont ete implementes pour afficher des messages d’aide quand l’utilisateur 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 calculet l’affichage de ces divers types de courbes, dont les modeles ont ete discutes au para-graphe 3.3, se font entierement dans la classe JCanvas.java. Le mode d’affichage desire estselectionnable au moyen le menu deroulant “Curve types” dans la fenetre des reglages ;

Optimisation de l’affichage des courbes : Lors du calcul des coordonnees FAR et FRR despoints de chaque courbe, on a remarque que la repartition de ces points n’etait pas uniforme(bien que le seuil de securite T varie lineairement). En effet, la majeure partie des points sesituaient aux extremites du graphe, si bien que beaucoup d’entre eux etaient dessines sur lememe pixel. L’affichage des courbes devenait donc lourd et lent. C’est la raison pour laquelle,lors du calcul et de l’affichage des points d’une courbe, on supprime ceux qui sont inutilementtrop proches. De plus, une fonction d’anti-aliasing (i.e. de lissage des pixels) applicable auxcourbes a ete implementee. L’anti-aliasing est desactive par defaut, mais peut etre active parune commande du menu “Edit” ;

Exportation dans un grand nombre de formats : Grace au package VectorGraphics (cf. §5.3.2), il est possible d’exporter 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 del’Utilisateur en annexe). L’exportation se fait via la commande “Export” du menu “File” ;

Impression : Il est possible d’imprimer le graphique via la commande “Print” du menu “File”.C’est la classe PrintUtilities.java qui en est responsable (cf. §4.3) ;

Calcul et affichage de l’equal error rate : Les valeurs de l’equal error rate (EER) de tousles classifiers charges s’affichent 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

Page 21: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

5 TRAVAIL EFFECTUE ET RESULTAT 17

cout), il est possible d’afficher, via le menu “Edit”, les points des equal error rates sur lesdifferentes courbes de performance activees ;

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

Calcul et affichage des points de cout minimal, seuil optimal : Si la visualisation en mode“Courbe de cout” est selectionnee, le troisieme compartiment permettant de modifier a lavolee les parametres de la fonction de cout apparaıt 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 n’est 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 d’identifier les actions po-tentielles de la souris (clics et glissements) aux endroits specifiques du canvas pour pouvoirreagir en consequence. Comme il l’a ete vu au paragraphe 4.3, ce sont les classes CanvasOb-ject.java et ActiveZoneDescriptors.java qui 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 qu’il est possiblede masquer la legende si on le souhaite ;

Affichage des coordonnees d’un point en fonction d’un clic dans la grille : Lorsqu’un clicde la souris est effectue a l’interieur du cadran contenant les courbes, un point muni d’uncadre contenant ses coordonnees est dessine a l’endroit du clic. La couleur du fond de ce cadreest modifiable au moyen d’un “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 l’element concerne dans le graphique. Les valeurs par defaut de tousles elements sont restaurables par l’intermediaire des commandes appropriees dans le menu“Edit” ;

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 n’a 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 n’est paspossible d’aller. Notons aussi que le redimensionnement constitue une sorte de zoom qui peutetre utile ;

Edition de la couleur, de l’epaisseur et du type de trait des courbes : Il est possible dechanger la couleur de chaque courbe de performance par l’intermediaire d’un “color-chooser”qui apparaıt lorsqu’on clique sur le bouton adequat a droite du nom du classifier dans lafenetre des reglages. L’epaisseur (de 1 a 10 pixels) et le type de trait (continu, pointille, petitou grand traitille) est modifiable d’une facon analogue. Ces changements sont aussi pris enconsideration par les symboles dans la legende.

Page 22: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 l’API au format HTML (Javadoc). L’environne-ment de programmation Eclipse dispose d’un outil de creation de Javadoc a partir du code source(dans lequel on insere certaines commandes specifiques). Le code de l’application DET4J est doncentierement commente et pret a etre consulte. C’est la raison pour laquelle l’auteur de ce rapportne va pas s’attarder sur le code et l’implementation.

5.3 Packages utilises

5.3.1 Xerces et JDOM

Il a ete vu au paragraphe 4.2 que SAX a ete choisi pour effectuer le parsing des fichiers XML auformat Ragga. SAX, dont l’acronyme 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 facto”un standard a l’heure actuelle. La derniere version stable de SAX est la 2.0.1 (SAX2). SAX2 estgratuit et il n’est pas possible d’en posseder une license car il fait partie du domaine public.

Pour utiliser SAX2, il est necessaire d’installer un parseur XML pour Java qui supporte les in-terfaces de SAX2, comme Xerces-J10. Xerces fait partie du projet XML d’Apache. Le programmeDET4J requiert aussi l’installation 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 et jdom.jar doivent 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 d’exporter dans une variete deformats graphiques vectoriels et bitmap. La gamme des formats vectoriels recense entre autres lesformats 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 boıte de dialogue qui permet a l’utilisateurde 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. Lafigure 12 montre un schema de l’architecture du package et ce qui suit est extrait du manuel13.

Comment utiliser le package ?En Java, c’est la methode paint(Graphics g) d’un component qui permet de dessiner un gra-

phique. Dans le corps de cette methode, l’utilisateur appelle sequentiellement plusieurs methodesd’un 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 l’utilisateur pour dessinerun graphique reste donc le meme, autant pour ce qui concerne l’affichage a l’ecran que pource qui est de l’ecriture dans un format quelconque. Pour utiliser le package VectorGraphics, leprogrammeur doit ajouter le code pour afficher la boıte de dialogue d’exportation (ExportDia-log) afin que l’utilisateur puisse selectionner un format. Cet ajout peut se faire dans un Me-nuItem (voir l’exemple du manuel en ligne). Pour lancer le programme dont le code employece package, il est imperatif d’ajouter 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

Page 23: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 qu’un ou plusieurs formats vectoriels, les fi-chiers jar suivants 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 boıte de dialogue d’exportation va auto-matiquement detecter tous les formats dont les fichiers jar ont ete ajoutes au CLASSPATH etpermettre a l’utilisateur de les selectionner.

Comment dessiner dans un contexte VectorGraphics ?Afin d’utiliser les methodes du package pour dessiner, l’utilisateur a besoin de convertir le

contexte standard java.awt.Graphics en un contexte VectorGraphics. Pour ce faire, on disposede la methode VectorGraphics.create(Graphics g), qui va retourner g 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 d’ecrire 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 d’utiliserces 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 celled’un ecran (une imprimante par exemple). Les methodes setLineWidth() et getLineWidth()permettent de changer la largeur du trait sans creer explicitement un objet de type Stroke.

– Les objets PrintColors : La classe PrintColor etend java.awt.Color pour tenir compte des

Page 24: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

5 TRAVAIL EFFECTUE ET RESULTAT 20

couleurs qui sont visibles et sur l’ecran et sur une imprimante. L’impression 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 l’ecran que dans n’importequel formats de sortie. La classe PrintColor peut etre employee partout ou le serait uneclasse normale de java.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() ou fill-Symbol() dans le contexte de VectorGraphics. Un certain nombre de symboles predefinis sontdisponibles dans VectorGraphicsConstants (et dans VectorGraphics). L’avantage d’employerces symboles, plutot que de les coder soit-meme en termes de lignes et d’autres 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 d’etre 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 chaınes decaracteres (strings) avec des balises HTML (< b > ... < /b >, < i > ... < /i >, etc...).La representation des caracteres &, <, >, ” et ’ peut se faire a l’aide des entites HTMLrespectives suivantes : &amp ; &lt ; &gt ; &quot et &apos ; .

– D’autres methodes : Certaines methodes specifiques sont appelees dans l’implementationde nouveaux formats de sortie dans VectorGraphics. Ces methodes sont startExport(), 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 l’adresse 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 qu’affiche 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 d’afficher les courbes dedetection 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.m de 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 d’utilisation intensive a la fin du projet ont permis de mettre en evidence et de corrigerde nombreux bugs. Il en resulte que l’utilitaire DET4J fait maintenant preuve d’une tres bonnestabilite.

Page 25: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 n’est parfaite et surement pas un logiciel informatique, plusieursameliorations pourraient lui etre apportees dans l’avenir.

Les principales fonctionnalites que l’on pourrait envisager d’implementer 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 d’exploiter les meta-informations contenues dans les fichiers Ragga (par exemple,

pour determiner l’utilisateur le plus facilement contrefaisable) ;– L’optimisation 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 performance

Les captures d’ecran suivantes (figures 13 a 17) montrent l’actuelle version de DET4J en pleineutilisation. Elles illustrent aussi les differents aspects que peuvent revetir des courbes de perfo-mance dans les cinq modes d’affichage.

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

Page 26: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

5 TRAVAIL EFFECTUE ET RESULTAT 22

Fig. 14 – Representation de courbes ROC dans Det4J

Fig. 15 – Representation de courbes DET dans Det4J

Page 27: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

5 TRAVAIL EFFECTUE ET RESULTAT 23

Fig. 16 – Representation de courbes semi-logarithmiques dans Det4J

Fig. 17 – Representation de courbes de cout dans Det4J

Page 28: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

6 APPORTS PERSONNELS 24

6 Apports personnels

Tout d’abord, je dirais que le projet DET4J dans son ensemble et sous tous ses aspects m’apersonnellement 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. J’aimerais neanmoinssouligner certains elements qui m’ont particulierement enrichi.

6.1 Outils informatiques

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

6.2 Methodologies informatiques

J’ai aussi pu faire l’experience de methodologies informatiques que je ne connaissais pas commela demarche dite de Vue-Modele-Controleur et la maniere dont s’elabore le design du GUI.

6.3 Contenu scientifique

La biometrie est une science extremement interessante. Le fait d’avoir pu y etre initie untant soit peu m’a beaucoup appris, notamment sur les evaluations des performances des systemesbiometriques. Je n’exclus donc pas l’eventualite de faire mon travail de Master dans le memedomaine.

6.4 Gestion du projet

La maniere de gerer un projet d’une telle envergure a ete pour moi une experience nouvelle.Mon assistant-chef, le Dr Jean Hennebert, m’a fait decouvrir la methode de developpement delogiciels appelee eXtreme Programming. J’ai beaucoup apprecie sa facon de superviser le projet enorganisant des meetings reguliers durant lesquels les prochaines taches a accomplir etaient fixees.

7 Conclusion

L’adoption massive de systemes biometriques repose sur un prix et des performances accep-tables. Naguere eleve, le prix des systemes d’authentification ou de verification d’identites diminuerapidement, mais l’amelioration des performances promet d’etre plus lente. Du cote des societes deservice, le facteur d’acceptation principal est le taux de succes. Cependant, le cahier des chargesvarie d’une application a l’autre : un distributeur de billets de banque necessite un taux de fauxrejet faible, alors qu’une application militaire necessite un taux de fausse acceptation tres faible.

Afin d’ameliorer 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 l’affichage de certaines valeurs importantes, comme celles de l’equal error rate, du seuil del’equal 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 l’utilisation 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

Page 29: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

7 CONCLUSION 25

ceux qui offriront l’interface la plus simple et la moins contraignante a l’utilisateur, tout en garan-tissant un bon niveau de securite. Finalement, l’authentification biometrique contribuera a rendrel’utilisation de certains systemes plus simple et plus conviviale.

Page 30: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A GUIDE DE L’UTILISATEUR 26

A Guide de l’utilisateur

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

La fenetre “Det4J” constitue la fenetre principale de l’application. Elle permet de visualiser etde 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 d’un classifier dans la legende permet de l’editer ;

3. Un “drag and drop” de la legende permet de la deplacer et de la positionner a l’endroitsouhaite ;

4. Un clic en un endroit precis du graphe y affiche un point muni d’un cadre contenant lescoordonnees de ce point. Un clic a l’exterieur du graphe fait disparaıtre ce point (et le cadrecontenant les coordonnees) s’il y en avait un ;

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

En outre, la fenetre “Det4J” dispose d’une barre de menus permettant d’effectuer 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).

Page 31: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A GUIDE DE L’UTILISATEUR 27

Fig. 19 – Le menu “Det4J”

A.1.2 Le menu “File”

Les 3 options de ce menu sont :– “Open Ragga File...” qui permet d’ouvir un fichier Ragga afin de charger le(s) classifier(s)

qu’il contient ;– “Export To...” qui offre la possibilite d’exporter directement le canvas dans divers formats.

Pour chaque format, les options d’exportation (qualite, dimensions,...) sont modifiables viaune boıte de dialogue. Les formats disponibles sont enumeres a la figure suivante :

Fig. 20 – Les formats d’exportation disponibles

– “Print...” qui permet l’impression (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 boıte contenant

les coordonnees lorsqu’un clic est effectue dans la grille ;– “Change Title...” qui permet de modifier le titre par defaut du dessin (canvas) ;– “Change Axe X Label...” qui permet de changer le label par defaut de l’axe des X ;– “Change Axe Y Label...” qui permet de changer le label par defaut de l’axe des Y ;– “Change Legend Label...” qui permet de changer le label par defaut de la legende ;

Page 32: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A GUIDE DE L’UTILISATEUR 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 l’equal error rate (EER) sur la courbe

de chaque classifier charge. Cette option n’est pas disponible pour l’affichage de la courbe decout (Cost) ;

– “Show Minimal Cost Points” qui affiche le point de cout minimal (Topt, Cost(Topt)) pourla courbe de cout de chaque classifier. Cette option n’est 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 l’indique, les outils permettant d’effectuer les diversreglages pour l’affichage des courbes de performances biometriques. Elle est constituee des 3 com-partiments suivants (voir figure 24) :

Page 33: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A GUIDE DE L’UTILISATEUR 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. section 3.3) ;

– Un “slider” pour augmenter ou reduire la resolution des courbes, c’est-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 n’apparaıt 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. section 3.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 (EER) et du seuil de leur equal error rate (T (EER)). En outre, chaque classifierdispose de trois boutons pour resp. changer la couleur, l’epaisseur 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 d’afficher 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)

Page 34: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

A GUIDE DE L’UTILISATEUR 30

Fig. 25 – Les fenetres permettant de changer la couleur, l’epaisseur et le type de trait d’une courbe

A.3 La fenetre de la console

La console a comme principale fonction d’offrir un suivi des evenements (et erreurs) qui seproduisent au cours de l’utilisation du logiciel, en affichant entre autres :

– le temps de parsing d’un fichier Ragga lors de son chargement ;– le temps d’extraction 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 qu’il n’est 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

Page 35: DET4J D´eveloppement Java d’un outil de visualisation de ......courbes de performance biom´etriques de divers types (cf. §3.3). En entr´ee, l’outil devait prendre un fichier

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 Nutshell, Manuel de reference pour Java 2 Editions O’Reilly, 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