Vous êtes sur la page 1sur 35

DET4J

veloppement Java dun outil de


De
visualisation de courbes de
triques
performance biome
Christophe Gisler1

t 2006
11 aou

partement dInformatique
De
Rapport de Travail de Bachelor
Department of Informatics - Departement f
ur Informatik Universite de Fribourg - University of
Fribourg - Universit
at Freiburg Boulevard de Perolles 90 1700 Fribourg Switzerland
phone +41 (26) 300 84 65

fax +41 (26) 300 97 31

Diuf-secr-pe@unifr.ch

christophe.gisler@unifr.ch, Groupe DIVA, DIUF, Universite de Fribourg

http://diuf.unifr.ch

Table des mati`


eres
1 Introduction

2 But du projet

3 Bases th
eoriques
3.1 Definition de la biometrie . . . . . . . . . . . . . . . . . .
3.2 Evaluation des syst`emes biometriques . . . . . . . . . . .
3.2.1 Quest-ce quun syst`eme biometrique ? . . . . . . .
3.2.2 Que mesure un syst`eme biometrique ? . . . . . . .
3.2.3 Les taux derreur et leur utilite . . . . . . . . . . .
3.3 Differents types de courbes de performance . . . . . . . .
3.3.1 Courbe T-FA/T-FR . . . . . . . . . . . . . . . . .
3.3.2 Courbe ROC (Receiver Operating Characteristic) .
3.3.3 Courbe DET (Detection Error Tradeoff) . . . . . .
3.3.4 Courbe semi-logarithmique . . . . . . . . . . . . .
3.3.5 Courbe de co
ut (Cost) . . . . . . . . . . . . . . . .
3.4 Le format de fichier Ragga . . . . . . . . . . . . . . . . . .
3.4.1 Definition du format . . . . . . . . . . . . . . . . .
3.4.2 Structure . . . . . . . . . . . . . . . . . . . . . . .
3.4.3 Description de quelques elements importants . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

2
2
2
2
3
4
5
5
6
7
7
7
9
9
9
9

4 M
ethodologie et design
4.1 Management du projet . . . . . . . . .
4.1.1 Meetings et methode de travail
4.1.2 Subversion (SVN) . . . . . . .
4.1.3 Presentations et rapport final .
4.2 Choix technologiques . . . . . . . . . .
4.2.1 Langage de programmation . .
4.2.2 Parsing . . . . . . . . . . . . .
4.2.3 GUI . . . . . . . . . . . . . . .
4.3 Architecture du programme . . . . . .
4.3.1 biosecure.det4j . . . . . . . . .
4.3.2 biosecure.det4j.model . . . . .
4.3.3 biosecure.det4j.parser . . . . .
4.4 Description du GUI . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

11
11
11
12
12
12
12
13
13
13
13
14
14
14

5 Travail effectu
e et r
esultat
5.1 Fonctionnalites du programme . . . . . .
5.2 Redaction de la Javadoc . . . . . . . . . .
5.3 Packages utilises . . . . . . . . . . . . . .
5.3.1 Xerces et JDOM . . . . . . . . . .
5.3.2 VectorGraphics . . . . . . . . . . .
5.4 Evaluation du programme . . . . . . . . .
5.4.1 Justesse et fiabilite . . . . . . . . .
5.4.2 Robustesse . . . . . . . . . . . . .
5.4.3 Ameliorations potentielles futures .
5.5 Resultat et courbes de performance . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

16
16
18
18
18
18
20
20
20
21
21

6 Apports personnels
6.1 Outils informatiques . . . . .
6.2 Methodologies informatiques
6.3 Contenu scientifique . . . . .
6.4 Gestion du projet . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

24
24
24
24
24

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.

7 Conclusion

.
.
.
.

24
i

A Guide de lutilisateur
A.1 La fenetre principale Det4J et sa barre de
A.1.1 Le menu Det4J . . . . . . . . . . .
A.1.2 Le menu File . . . . . . . . . . . .
A.1.3 Le menu Edit . . . . . . . . . . .
A.1.4 Le menu Window . . . . . . . . .
A.2 La fenetre des reglages (Settings) . . . . . .
A.2.1 Le compartiment Settings . . . . .
A.2.2 Le compartiment Cost . . . . . . .
A.2.3 Le compartiment Classifiers . . . .
A.3 La fenetre de la console . . . . . . . . . . .

ii

menus
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

26
26
26
27
27
28
28
29
29
29
30

Table des figures


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

Composants dun syst`eme biometrique . . . . . . . . . . . . . . . . . . . . . . . . .


Exemple de graphe T-FA/T-FR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de courbe T-FA/T-FR . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de courbe ROC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de courbe DET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de courbe semi-logarithmique . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de courbe de co
ut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Exemple de contenu dun fichier Ragga . . . . . . . . . . . . . . . . . . . . . . . . .
Structure dun classifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Deroulement dun projet selon la methode eXtreme Programming . . . . . . . . . .
Apercu du GUI de lapplication DET4J . . . . . . . . . . . . . . . . . . . . . . . .
Architecture du package VectorGraphics . . . . . . . . . . . . . . . . . . . . . . . .
Representation de courbes T-FA/T-FR dans Det4J . . . . . . . . . . . . . . . . . .
Representation de courbes ROC dans Det4J . . . . . . . . . . . . . . . . . . . . . .
Representation de courbes DET dans Det4J . . . . . . . . . . . . . . . . . . . . . .
Representation de courbes semi-logarithmiques dans Det4J . . . . . . . . . . . . .
Representation de courbes de co
ut dans Det4J . . . . . . . . . . . . . . . . . . . .
La fenetre principale Det4J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le menu Det4J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les formats dexportation disponibles . . . . . . . . . . . . . . . . . . . . . . . . .
Le menu File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le menu Edit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Le menu Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fenetre des reglages (Settings) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Les fenetres permettant de changer la couleur, lepaisseur et le type de trait dune
courbe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
La fenetre de la console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

iii

2
5
6
6
7
8
8
10
11
12
15
19
21
22
22
23
23
26
27
27
27
28
28
29
30
30

INTRODUCTION

Introduction

Depuis toujours, les humains se reconnaissent entre eux `a leurs caracteristiques physiques et
comportementales. Nous reconnaissons nos semblables `a leurs visages quand nous les rencontrons
ou `a leurs voix quand nous leur parlons.
Jusqu`
a present, la verification didentite (authentification) dans les syst`emes informatiques a
toujours ete basee sur un objet que tout un chacun doit avoir sur lui (cle, carte `a puce ou carte
magnetique). Malheureusement, ce genre dobjet `a tendance `a etre perdu, voire vole.
Pour atteindre une verification ou une identification plus fiable, letre humain doit utiliser
un moyen qui caracterise reellement sa personne. La biometrie cherche `a offrir des methodes automatiques didentification ou de verification didentite qui sappuient sur les mesures des caracteristiques physiques ou comportementales, comme les empreintes digitales ou la signature vocale. Ces caracteristiques devraient etre uniques et non falsifiables. Helas, il est souvent possible de
creer une copie qui sera acceptee par le syst`eme biometrique comme etant un echantillon veritable
[3].
Les syst`emes biometriques qui verifient automatiquement lidentite dune personne peuvent
faire deux types derreurs. Il y a les erreurs de faux rejet (FR) lorsque le syst`eme refuse lacc`es `a
un vrai utilisateur (acc`es vrai) et les erreurs de fausse acceptation (FA) lorsque le syst`eme accorde
lacc`es `a un imposteur (acc`es imposteur). La decision daccepter ou de rejeter un utilisateur se
prend en comparant les donnees dun nouvel acc`es avec le template de lutilisateur. La comparaison donne un score dit de vraisemblance. Lorsque le score est en dessous dun seuil de securite (ou
seuil de rejet), le syst`eme 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 syst`eme fait plus ou moins derreurs de faux
rejet ou de fausse acceptation. Si le seuil est tr`es grand, il y aura beaucoup de faux rejets et peu
de fausses acceptations. Si le seuil est tr`es 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, et
il 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. Ces
courbes sont classiquement nommees les courbes de detection (DET curves) car une verification
biometrique est en fait un probl`eme classique de detection devenements [1].

But du projet

Le but de ce projet de Bachelor etait dimplementer en JAVA un outil de visualisation de


courbes de performance biometriques de divers types (cf. 3.3). En entree, loutil devait prendre un
fichier XML contenant des scores de vraisemblance pour des acc`es vrais et des acc`es imposteurs.
En sortie, loutil devait permettre une visualisation directe de la courbe de performance. Les principales 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 dexporter les courbes sous differents formats graphiques ;
Possibilite dinteragir avec le graphique, au moyen de la souris, pour effectuer diverses actions.

BASES THEORIQUES

Bases th
eoriques

3.1

D
efinition de la biom
etrie

La biometrie vise lelaboration de techniques didentification automatique des humains. Certaines biometries utilisent des caracteristiques physiques comme liris, les empreintes digitales ou
la forme du visage. Dautres biometries se basent sur des caracteristiques comportementales des
individus comme lecriture ou le signal de la parole.

3.2
3.2.1

Evaluation des syst`


emes biom
etriques
Quest-ce quun syst`
eme biom
etrique ?

Un syst`eme biometrique poss`ede quatre composants principaux [2] :


1. Un module de senseurs (sensor module) qui acquiert les donnees biometriques dun individu. Par exemple, un senseur qui capture les empreintes digitales ;
2. Un module dextraction des caract
eristiques (feature extraction module) qui traite les
donnees acquises par le precedent module pour en extraire des valeurs caracteristiques, comme
la position et lorientation de points precis de limage de lempreinte digitale ;
3. Un module de comparaison (matching module) dans lequel les valeurs caracteristiques
extraites par le precedent module sont comparees avec celles du profil de lutilisateur (users
master 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 points
concordants, entre limage de lempreinte de la requete et celle du template, va etre calcule
pour retourner un score de concordance ;
4. Un module de d
ecision (decision-making module) qui va decider daccepter ou de rejeter
lutilsateur en comparant le score de concordance genere par le module precedent avec un
seuil de securite T (security threshold ) donne. Dans le cas o`
u S T , lindividu sera accepte,
et dans le cas contraire, si S < T , il sera rejete.

ID Claim

Biometric
Data

Database
User's
master
template

Sensor
Module

Threshold T

Biometric
Sample
Feature
Extraction

Biometric
Features

Matching
Module

Matching
Score S

Decision
Module

Fig. 1 Composants dun syst`eme biometrique

Accept if S T
Reject if S < T

BASES THEORIQUES

Le schema de la figure 1 illustre bien les relations entre ces differents composants. La fl`eche
portant le label ID Claim napparat que dans le cas de verification didentite et pas dans celui
didentification (voir ci-dessous), cest la raison pour laquelle elle est en pointille.
Les syst`emes biometriques peuvent etre utilises dans deux modes differents :
La v
erification de personnes ;
Lidentification de personnes.
On parle de v
erification didentite lorsquune personne clame etre dej`a enrolee dans le syst`eme
biometrique (et possederait donc une ID-card ou un login name). Dans ce cas, les donnees biometriques
obtenues de cette personne sont comparees avec son template dutilisateur qui est enregistre dans
la base de donnees.
On parle didentification quand lidentite de lutilisateur est `a priori inconnue. Dans ce cas,
les donnees biometriques de lutilisateur sont comparees aux templates de tous les utilisateurs enregistres dans la base de donnees du syst`eme biometrique, car lutilisateur pourrait etre nimporte
lequel (sinon aucun) dentre eux.
Il est evident que lidentification de personnes est techniquement beaucoup plus compliquee et
beaucoup plus co
uteuse, et le taux dexactitude de lidentification diminue generalement quand la
grandeur de la base de donnees augmente.
Afin quune personne puisse etre verifiee ou identifiee avec succ`es par le syst`eme biometrique, elle
doit setre fait prealablement enregistrer dans le syst`eme, cest-`a-dire que ses donnees biometriques
ont d
u etre enregistrees, traitees et stoquees. Comme la qualite de ces donnees biometriques
stoquees est cruciale pour les futures authentifications, il y a souvent plusieurs echantillons biometriques (biometric samples) qui sont utilises pour creer le profil matre de lutilisateur (users
master template). Ce processus denregistrement dun nouvel utilisateur est appele lenr
olement
(enrollment).
3.2.2

Que mesure un syst`


eme biom
etrique ?

La difference la plus significative entre la biometrie et les technologies traditionnelles se situe


dans la reponse dun syst`eme biometrique `a une requete de verification ou didentification. De tels
syst`emes ne peuvent pas repondre simplement par oui ou non, comme le ferait un syst`eme traditionnel en verifiant que le code PIN dune carte banquaire correspond bien `a une sequence donnee
telle que 1234. Aucun syst`eme biometrique ne peut verifier lidentite ou identifier une personne
avec une certitude absolue. Par certitude absolue, on entend une probabilite de verification strictement egale `
a 1. La signature dune personne nest jamais deux fois identique, tout comme la
position du doigt sur un lecteur dempreintes digitales nest jamais deux fois la meme. Cest la raison pour laquelle on ne peut quessayer de mesurer les similitudes entre les donnees biometriques
du protagoniste et celles de son profil qui est stocke dans la bases de donnees. Ainsi, le syst`eme
biometrique retourne la probabilite que ces deux echantillons biometiques proviennent de la meme
personne.
Les syst`emes biometriques peuvent etre divises en deux categories selon ce quils mesurent :
Les syst`emes bases sur les caract
eristiques physiques de lindividu (comme les empreintes
digitales , laspect de liris ou de la retine, la morphologie de la main, du doigt ou du visage) ;
Les syst`emes bases sur les caract
eristiques comportementales de lindividu (comme la
reconnaissance vocale ou la dynamique de la signature manuscrite ou des frappes au clavier).

BASES THEORIQUES

Les syst`emes biometriques de la premi`ere categorie sont generalement plus fiables et plus precis,
car les caracteristiques physiques sont plus facilement reproductibles et ne sont souvent pas affectees
par les conditions mentales de la personne au moment de lenrolement.
Si lon construisait un syst`eme requerant 100% de concordance `a chaque fois, alors evidemment
ce syst`eme serait pratiquement inutilisable, puisque seulement une petite minorite des utilisateurs
(et encore) pourrait lutiliser. La plupart dentre eux serait rejetee `a chaque tentative, comme les
resultats des mesures ne seraient jamais les memes.
Ainsi, il faut tenir compte de la variabilite des donnees biometriques, car il nest pas tolerable
quun syst`eme biometrique rej`ete trop souvent les veritables utilisateurs. Cependant, plus la variabilite toleree sera grande, plus la probabilite quun imposteur possedant des donnees biometriques
similaires soit accepte sera grande.
3.2.3

Les taux derreur et leur utilit


e

Un syst`eme biometrique peut faire deux types derreurs :


Une erreur de faux rejet (ou erreur de type 1), qui survient lorsquun utilisateur legitime
est faussement rejete, parce que le syst`eme trouve que ses donnees biometriques ne sont pas
suffisamment similaires `
a celles du profil matre (master template) de la base de donnees ;
Une erreur de fausse acceptation (ou erreur de type 2), qui survient quand un imposteur
est malencontreusement accepte en tant quutilisateur legitime, parce que le syst`eme trouve
que ses donnees biometriques sont suffisamment similaires `a celles du profil matre de la base
de donnees.
Dans un syst`eme ideal, il ny a pas de faux rejet et de fausse acceptation. Dans un syst`eme
reel cependant, leur nombre nest pas nul et peut prendre des valeurs non negligeables lorsque les
modalites et conditions dutilisation augmentent la variabilite des donnees. Les taux de faux rejet
et de fausse acceptation dependent du seuil de securite T . Plus la valeur du seuil sera grande, plus
il y aura de faux rejets et moins de fausses acceptations, et inversement, plus la valeur du seuil
sera petite, moins il y aura de faux rejets et plus de fausses acceptations. Le nombre de faux rejets
et celui de fausses acceptations sont inversement proportionnels. Le choix de la valeur de seuil
T (pour threshold ) `
a utiliser depend principalement de la finalite du syst`eme biometrique. Cette
valeur est choisie de mani`ere `
a faire un compromis adequat entre la securite et lutilisabilite du
syst`eme. Par exemple, un syst`eme biometrique aux portes dun parc dattraction comme Disneyland appliquera typiquement un seuil beaucoup plus petit quun syst`eme biometrique aux portes
des quartiers generaux de la NSA.
Le nombre de faux rejets (resp. de fausses acceptations) est habituellement exprime en un
pourcentage par rapport au nombre total de tentatives dacc`es autorises (resp. non autorises). Ces
taux sont appeles taux de faux rejet (false reject rate, abrege par FRR) et taux de fausse
acceptation (false acceptation rate, abrege par FAR) et sont donc lies `a une certaine valeur de
seuil T .
Certains appareils biometriques (ou les logiciels les accompagnant) prennent le seuil de securite
desire comme param`etre du processus de decision. Les autres appareils biometriques retournent un
score S (borne) sur la base duquel la decision daccepter ou de rejeter lutilisateur va etre prise
par lapplication elle-meme. En general, si le score S est plus grand ou egal au seuil T , lutilisateur
va etre accepte et, si le score est plus petit, il sera rejete.
Dans le cas o`
u le dispositif biometrique retourne un score, on peut generer un graphe indiquant
la dependance des taux de fausse acceptation (FAR) et de faux rejets (FRR) au seuil (T ). La figure
2 montre un exemple dun tel graphe, quon appelle graphe T-FA/T-FR.

BASES THEORIQUES

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

Les courbes des FAR et FRR se coupent en un point o`


u les taux de fausse acceptation et de faux
rejet sont egaux ; la valeur en ce point est appelee equal error rate (EER) ou aussi crossover
accuracy. Cette valeur na presque pas dutilite pratique car on ne souhaite generalement pas que
le FAR et le FRR soient les memes, mais elle constitue un bon indicateur de la precision du dispositif
biometrique. Par exemple, si lon a deux appareils avec des equal error rates de 1% et 10%, on sait
alors que le premier est plus precis (i.e. quil fait moins derreurs) que le second. Pourtant, de telles
comparaisons 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 de
leurs tests, et dautre part, meme sils le font, les tests dependent vraiment du comportement des
utilisateurs et dautres influences exterieures, telles que la qualite des senseurs ou lutilisation de
ceux-ci.

3.3

Diff
erents types de courbes de performance

Il a ete vu au paragraphe precedent que les performances dun syst`eme biometrique peuvent
etre mesurees en reportant ses taux de fausse acceptation (FAR) et de faux rejet (FRR) pour
differentes valeurs de seuil (threshold T ). A partir de ce triplet (T, F AR, F RR), diverses courbes
de performance peuvent etre calculees et tracees. Celles qui sont decrites ci-dessous sont les plus
preponderantes dans la recherche sur la biometrie et leurs mod`eles ont ete implementes dans le
projet 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 fait
varier la valeur du seuil (threshold T ) sur laxe des abscisses et les taux de fausse acceptation (FAR
in % ) et de faux rejet (FRR in % ) sur laxe des ordonnees, ce qui donne au final deux courbes
qui se coupent au point de lequal error rate (FRR et FRR egaux). Quand la valeur du seuil est
petite, les taux respectifs de faux rejet et de fausse acceptation sont lun petit et lautre grand, et
inversement quand la valeur du seuil est grande.

BASES THEORIQUES

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 intrins`equement la valeur
du seuil (threshold T ) et les points de lunique courbe obtenue sont alors constitues des taux de
fausse 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 la
diagonale partant de (0, 0) et arrivant en (100, 100). Les avantages de ce type de courbe sont que
lon obtient une representation compacte des performances dun syst`eme biometrique au travers
dune seule courbe, et que lon peut ainsi comparer des syst`emes biometriques differents (la courbe
la plus proche du coin inferieur gauche est la meilleure).

Fig. 4 Exemple de courbe ROC

BASES THEORIQUES

3.3.3

Courbe DET (Detection Error Tradeoff )

Une courbe DET nest par essence quune courbe ROC dont on a remplace lechelle lineaire par
une 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 courbes
DET sont les memes que ceux des courbes ROC, mais elles permettent en plus de comparer des
syst`emes biometriques qui ont des performances similaires.

Fig. 5 Exemple de courbe DET

3.3.4

Courbe semi-logarithmique

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

Courbe de co
ut (Cost)

La courbe de co
ut (cost) est une courbe particuli`ere en ce sens quelle permet de donner des
poids variables (facteurs WF A et WF R ) aux taux de faux rejet et de fausse acceptation pour en
faire ressortir en quelque sorte un co
ut general du syt`eme biometrique pour un certain seuil. Les
points qui composent une telle courbe prennent en abscisse une valeur de seuil T et en ordonnee
la valeur Cost(T ) retournee par la fonction de co
ut pour ce seuil (voir la figure 7). Lexpression
mathematique de cette fonction est donnee par :
Cost(T ) = WF A F AR(T ) P (Impostor) + WF R F RR(T ) P (Genuine)
WF A , W F R 0

1 Pour

P (Impostor), P (Genuine) [0,1]

P (Genuine) = 1 P (Impostor)

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

BASES THEORIQUES

Fig. 6 Exemple de courbe semi-logarithmique

Fig. 7 Exemple de courbe de co


ut

BASES THEORIQUES

Dans une banque par exemple, un dispositif de reconnaissance vocal sur le syst`eme telephonique
induira un co
ut de FRR eleve et un co
ut de FAR petit, car si les personnes qui veulent telephoner se
font sans cesse rejeter, elles vont etre frustrees et risquent de rompre leur relation avec la banque,
ce qui va co
uter beaucoup plus cher `
a cette derni`ere que si quelques personnes non autorisees
se font un peu trop facilement accepter. Au contraire, un syst`eme biometrique sur un coffre fort
induira un co
ut de FRR petit et un co
ut de FAR eleve, car si une personne autorisee veut acceder
au coffre (ce quelle ne fait en general qu`a de rares occasions) et quelle se fait rejeter, ce ne sera
pas grave. Elle va recommencer le processus de verification peut-etre une fois ou deux jusqu`a ce
quelle soit acceptee. Elle sera meme ravie de la reticence du syst`eme `a accepter toute personne et
finira par avoir acc`es `
a ses biens, ce qui ne va pas co
uter grand chose `a la banque. Par contre, si
un imposteur se fait malencontreusement accepter, il pourra avoir acc`es au contenu du coffre et le
voler, ce qui va co
uter cher `
a la banque qui va devoir dedommager son client.

3.4

Le format de fichier Ragga

3.4.1

D
efinition du format

Le format de fichier denomme Ragga est 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 standard
et que la plupart des laboratoires lutilisent. Ce format de fichier contient aussi plus de metainformations que les autres formats de fichier employes par les outils de scoring actuels. On peut
donc potentiellement en faire plus de choses (par exemple, faire une analyse par client et non
plus une analyse globale, etc...). Ce format permet egalement dinclure des informations de type
observateur sur les donnees de test. Ces observateurs peuvent par exemple donner un indice de
qualite sur les donnees (niveau de bruit ou autre).
3.4.2

Structure

La structure du contenu dun fichier Ragga est reresentee `a la figure 8.


3.4.3

Description de quelques
el
ements importants

Dans un fichier Ragga, les elements importants sont definis par des balises XML dont les principales sont :
eval : Un element eval constitue une sequence de tests ;
<eval evalID="NIST-Biosecure-2005"> ... </eval>
moduleInformation : Les elements moduleInformation fournissent des informations supplementaires au sujet des syst`emes utilises pour produire les scores ou les meta-data. Ils sont
lies `
a un module specifique qui est soit un classifier, soit un observer. Tous les sous-elements
institution, version, features et notes sont optionnels ;
<moduleInformation linkedToModule="det4j_test"> ... </moduleInformation>
test : Les elements test definissent un acc`es unique qui peut etre un acc`es vrai ou un acc`es
imposteur. Un test est defini par un nom de frichier (fileName), un mod`ele de test (testModel )
utilise sur le nom de fichier, et eventuellement le mod`ele veritable (trueModel ) correspondant
au fichier teste. Un attribut facultatif est la longueur du fichier (fileLength) ;
<test fileName="njst.b" testModel="m7780" trueModel="m7780"> ... </test>
2 Site

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

BASES THEORIQUES

Fig. 8 Exemple de contenu dun fichier Ragga

10

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 sequence
de scores individuels avec des timestamps specifiant `a partir de quel instant et jusqu`a quel
instant dans le temps un score individuel sapplique. Une finalite pourrait etre par exemple
quun classifier retourne des scores individuels pour chaque trame de 10 ms dans le cas de la
biometrie sur le signal de parole ;
<classifier moduleID="det4j_test"> ... </classifier>

Fig. 9 Structure dun classifier


score : Un element de type score represente le score de vraisemblance issu du module de
comparaison. De facon generale, ce score est directement ou indirectement lie `a la probabilite
que les donnees biometriques observees correspondent `a lidentite pretendue. En pratique, ce
score est une valeur de type float qui peut etre negative ou positive suivant son domaine de
representation (logarithmique ou lineaire).
<score start="0" end="1240" value="10.854705"/>

M
ethodologie et design

4.1
4.1.1

Management du projet
Meetings et m
ethode de travail

Concernant le management du projet, il a ete decide avec le Dr Jean Hennebert et lassistant


Bruno Dumas au debut de lannee academique de faire des meetings environ toutes les deux semaines, ce qui en totalise une quinzaine durant lannee. Lors de ces reunions, Jean Hennebert
supervisait lavancement du projet selon une methode bien connue en entreprise qui sappelle eXtreme Programming 3 (abrege XP ). Cette methode de developpement de programmes informatiques
(softwares) proc`ede sommairement de la mani`ere 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 des
fonctionnalites `
a implementer ;
3. Meetings (iterations) pendant lesquels le travail effectue est inspecte et les taches suivantes
fixees. Pour chaque t
ache, le temps de realisation necessaire est estime, et sil nest pas
3 Site

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

METHODOLOGIE
ET DESIGN

12

encore possible de le determiner precisement, un travail de prospection appele spike est


prealablement agende ;
4. Tests dacceptation et correction des bugs ;
5. Premi`ere sortie du programme (small release).
La figure 10 represente de mani`ere 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 reguli`erement des sauvegardes des fichiers du projet en cours sur le
repertoire de sauvegardes (repository) du serveur du groupe DIVA du departement dinformatique
en utilisant le logiciel de contr
ole de versions appele Subversion 4 (SVN ).
4.1.3

Pr
esentations et rapport final

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

4.2
4.2.1

Choix technologiques
Langage de programmation

Java5 (de Sun Microsystems) est le langage de programmation qui a ete choisi pour le projet
DET4J. Les raisons de ce choix sont que Java est un langage multiplateforme, de haut niveau
(oriente objet), tr`es repandu et apprecie des programmeurs pour sa convivialite (notamment sous
lenvironnement de programmation Eclipse6 ).
4 Site

web du projet Subversion : http://subversion.tigris.org


web du projet Java : http://java.sun.com
6 Site web du projet Eclipse : http://www.eclipse.org
5 Site

METHODOLOGIE
ET DESIGN

4.2.2

13

Parsing

Le choix du parseur de fichier XML a ete porte sur SAX7 . JDOM8 constituait lautre parseur
potentiel, mais SAX lui a ete prefere car, contrairement `a JDOM, cest un mod`ele de parseur
evenementiel qui est tr`es 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 poss`ede une
taille moyenne dune vingtaine de mega-octets environ. JDOM est tr`es gourmand en memoire car
il doit dabord generer larbre du document entier pour pouvoir ensuite acceder aux elements par
des operations classiques de navigation dans les arbres, tandis que SAX acc`ede aux elements de
mani`ere 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 linterface


graphique utilisateur (GUI), cest la raison pour laquelle il etait important dutiliser une bonne
biblioth`eque graphique telle que Swing pour le langage Java. Swing offre la possibilite de creer
des interfaces graphiques identiques quel que soit le syst`eme dexploitation sous-jacent, au prix de
performances moindres quen utilisant Abstract Window Toolkit (AWT). En effet, AWT fournit une
API independante du syst`eme dexploitation pour mettre en oeuvre des composants graphiques.
Dans AWT, chaque composant est dessine et controle par un composant tiers natif specifique au
syst`eme dexploitation. Cest pourquoi les composants dAWT sont appeles composants lourds. Au
contraire, les composants Swing sont decrits comme legers, car ils ne requi`erent pas dallocation
de ressources natives de la part du gestionnaire de fenetres sous-jacent, mais empruntent les
resources de leurs anc`etres. Une grande partie de lAPI Swing est une extension complementaire `a
AWT plut
ot quun remplacant direct. Laffichage est fourni par Java2D. Finalement, Swing utilise
le principe Mod`ele-Vue-Contr
oleur9 (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 voici
les descriptions :
4.3.1

biosecure.det4j

biosecure.det4j est le package principal. Il est constitue de toutes les classes qui sont lessence
meme de lapplication DET4J. Ce package comprend :
Det4J.java, qui est la classe principale du programme DET4J. Elle lance le programme et
instancie 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 manipulation des courbes de performance ;
SettingsWindow.java, qui contient les methodes pour creer une fenetre permettant deffectuer
divers reglages ainsi que de manipuler les classifiers et leurs courbes ;
ConsoleWindow.java, qui contient les methodes pour creer une fenetre de console qui affiche
des informations sur les actions et evenements importants qui se produisent durant lutilisation du logiciel ;
JCanvas.java, qui contient les methodes pour creer dans la fenetre principale de DET4J le
graphique (canvas) contenant les courbes, la grille, les labels, le titre, la legende, etc... Cest
ce canvas qui constitue la finalite de lutilitaire et qui va pouvoir etre imprime ou exporte ;
7 Site

web du projet SAX : http://www.saxproject.org


web du projet JDOM : http://www.jdom.org
9 Pour plus dinformations sur la d
emarche MVC : http://fr.wikipedia.org/wiki/Mod`
ele-Vue-Contr^
oleur
8 Site

METHODOLOGIE
ET DESIGN

14

CanvasObject.java, qui decrit un objet representant une certaine zone du graphique (canvas)
et memorisant les caracteristiques de cette derni`ere pour pouvoir detecter les evenements de
la 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 distribution normale cumulative (CDF) et de sa fonction inverse. Ces routines sont utilisees dans la
representation de courbes de performance de type DET (cf. 3.3) ;
ClassifierDETCurveData.java, qui decrit une structure de donnees pour contenir les caracteristiques de la courbe dun classifier. Ces caracteristiques sont le nom du classifier, le
nom de la courbe dans la legende, le vecteur contenant les coordonnees de tous ses points, sa
couleur, son type et son epaisseur, la valeur de son equal error rate (EER) et celle du seuil
associe (T (EER)). Cette classe contient aussi les methodes qui calculent le vecteur des points
de 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 dun classifier ;
Coordinate.java, qui cree une structure de donnees pour contenir les coordonnees dun point
dune courbe de performance et du seuil associe ;
PrintUtilities.java, qui est une classe utilitaire permettant dimprimer un composant (component) quelconque, tel que le graphique (canvas) dans notre cas ;
RaggaException.java, qui retourne une exception specifique lorsquune erreur survient lors du
parsing dun fichier Ragga.
4.3.2

biosecure.det4j.model

Ce package a comme fonction de representer le mod`ele interne dun fichier Ragga et contient
une classe pour chaque element structurel du format (cf. 3.4). Ces classes sont bien evidemment
employees 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 lunique classe RaggaSaxParser.java qui est utilisee pour lire et parser un fichier (XML) au format Ragga au moyen de
SAX.

4.4

Description du GUI

Lors de la reflexion sur le layout final de lutilitaire DET4J, il a ete decide que linterface graphique utilisateur (GUI) serait compose de trois fenetres independantes (voir la figure 11) :
1. Une premi`ere fenetre, la principale, pour contenir et interagir avec le graphique. Elle contient
aussi lunique barre de menus ;
2. Une deuxi`eme fenetre pour effectuer les reglages les plus importants et qui sappliquent
directement aux courbes des classifiers ;
3. Une troisi`eme fenetre pour la console permettant dafficher les informations `a propos des
actions et erreurs pouvant survenir durant lutilisation.

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 de
manipulations soient realisables intuitivement et directement sur le graphique au moyen de la souris (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 les
options relatives au programme lui-meme (About, Quit), le menu File les options relatives au
fichier (Open, Export, Print), le menu Edit les options relatives `a ledition du graphique, et le
menu Window les options relatives aux fenetres annexes (Show, Hide).
Dans la deuxi`eme fenetre, il a ete decide de placer deux compartiments principaux. Le premier, Settings, permet de faire les deux reglages principaux relatifs `a toutes les courbes de
performance, cest-`
a-dire de changer par un menu deroulant le type de courbes `a visualiser, et
daugmenter/reduire avec un slider la resolution des courbes (i.e. le nombre de points calcules
pour chacune dentre elles). Le second compartiment, Classifiers, permet deffectuer des reglages
et de voir des informations propres `
a chaque classifier. Un troisi`eme compartiment sintercale entre
les deux premiers quand le type de courbe selectionne dans le menu deroulant est la courbe de
co
ut (cf. 3.3). Ce dernier compartiment offre `a lutilisateur la possibilite de modifier directement
les param`etres de la fonction de co
ut.
Leventualite de creer une application DET4J reunissant ces trois fenetres en une unique fenetre
principale 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 lexploitation de plusieurs zones de fonctionnalites diverses au sein dune meme fenetre est extremement
fastidieuse avec Swing et donc plus sujette aux bugs et aux pertes de temps. Finalement, la creation
dun GUI avec fenetres separees comme cest le cas dans DET4J permet `a lutilisateur de
masquer `a souhait celles dont il na pas lutilite ou quil ne veut simplement pas voir safficher.

ET RESULTAT

TRAVAIL EFFECTUE

5
5.1

16

Travail effectu
e et r
esultat
Fonctionnalit
es du programme

Dans sa version actuelle, lutilitaire DET4J est dote de multiples fonctionnalites. Voici les descriptions de celles qui paraissent essentielles :
Support du nouveau format de score Ragga : Il etait primordial que DET4J supporte ce futur standard de format de fichier de scores biometriques elabore recemment par le consortium
du projet europeen BioSecure ;
Chargement et fermeture de plusieurs fichiers Ragga : Il est possible douvrir plusieurs fichiers Ragga lun apr`es lautre. Chaque fichier peut contenir un ou plusieurs classifiers. Les
courbes 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 en
decochant la case prevue `
a cet effet `a cote de leur nom dans la fenetre des reglages. Notons que DET4J g`ere les fichiers Ragga dapr`es les classifiers quils contiennent. Ainsi, il est
possible de se debarasser de tout classifier (qui a ete charge) independamment des autres
classifiers pouvant appartenir au meme fichier Ragga. En reouvrant le meme fichier Ragga,
le classifier perdu va etre recharge sans que les autres classifiers, dej`a charges, ne le soient `a
leur tour (un message davertissement va alors nous en informer) ;
Cr
eation du GUI : Linterface graphique utilisateur (GUI), dont les principes sous-jacents ont
ete discutes au paragraphe 4.4, a ete realise avec Swing et a represente une partie considerable
du projet (creation des fenetres, des menus, boutons, sliders, etc..). Il est `a noter que divers
tool-tips ont ete implementes pour afficher des messages daide quand lutilisateur deplace
le 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 mod`eles ont ete discutes au paragraphe 3.3, se font enti`erement dans la classe JCanvas.java. Le mode daffichage desire est
selectionnable au moyen le menu deroulant Curve types dans la fenetre des reglages ;
Optimisation de laffichage des courbes : Lors du calcul des coordonnees F AR et F RR des
points de chaque courbe, on a remarque que la repartition de ces points netait pas uniforme
(bien que le seuil de securite T varie lineairement). En effet, la majeure partie des points se
situaient aux extremites du graphe, si bien que beaucoup dentre eux etaient dessines sur le
meme 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 inutilement
trop proches. De plus, une fonction danti-aliasing (i.e. de lissage des pixels) applicable aux
courbes 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 de
lUtilisateur 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.java qui en est responsable (cf. 4.3) ;
Calcul et affichage de lequal error rate : Les valeurs de lequal error rate (EER) de tous
les 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

ET RESULTAT

TRAVAIL EFFECTUE

17

co
ut), il est possible dafficher, via le menu Edit, les points des equal error rates sur les
differentes courbes de performance activees ;
Calcul du seuil de lequal error rate : De mani`ere analogue, les seuils associes aux equal error
rates respectifs des classifiers (T (EER)) sont affiches `a cote des noms dans la fenetre des
reglages ;
Calcul et affichage des points de co
ut minimal, seuil optimal : Si la visualisation en mode
Courbe de co
ut est selectionnee, le troisi`eme compartiment permettant de modifier `a la
volee les param`etres de la fonction de co
ut apparat dans la fenetre des reglages. De plus,
on peut afficher le point de co
ut minimal (le seuil associe est par consequent optimal) sur
la 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 reimprime
apr`es tout changement de resolution ou de param`etre de la fonction C(T ). Notons que ce
tableau nest pas mis `
a jour, mais reimprime, ce qui permet de faire des comparaisons entre
tableaux de configurations differentes ;
Gestion des
ev
enements 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 potentielles de la souris (clics et glissements) aux endroits specifiques du canvas pour pouvoir
reagir en consequence. Comme il la ete vu au paragraphe 4.3, ce sont les classes CanvasObject.java et ActiveZoneDescriptors.java qui en sont responsables ;
D
eplacement de la l
egende par drag and drop : La legende est deplacable par un glisserdeposer (drag and drop) de la souris au sein-meme du graphique. Notons quil est possible
de masquer la legende si on le souhaite ;
Affichage des coordonn
ees dun point en fonction dun clic dans la grille : Lorsquun clic
de la souris est effectue `
a linterieur du cadran contenant les courbes, un point muni dun
cadre contenant ses coordonnees est dessine `a lendroit du clic. La couleur du fond de ce cadre
est modifiable au moyen dun color-chooser accessible par une commande du menu Edit ;
Edition des labels des axes, titre, l
egende et noms des classifiers : Les labels des axes, le
titre, la legende et les noms des classifiers sont editables soit via le menu Edit, soit en
cliquant directement sur lelement concerne dans le graphique. Les valeurs par defaut de tous
les elements sont restaurables par lintermediaire des commandes appropriees dans le menu
Edit ;
Gestion du redimensionnement de la fen
etre (canvas) : La gestion du redimensionnement
de 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 de
la fenetre. DET4J impose une taille minimale de la fenetre au-del`a de laquelle il nest pas
possible daller. Notons aussi que le redimensionnement constitue une sorte de zoom qui peut
etre utile ;
Edition de la couleur, de l
epaisseur et du type de trait des courbes : Il est possible de
changer la couleur de chaque courbe de performance par lintermediaire dun color-chooser
qui apparat lorsquon clique sur le bouton adequat `a droite du nom du classifier dans la
fenetre des reglages. Lepaisseur (de 1 `a 10 pixels) et le type de trait (continu, pointille, petit
ou grand traitille) est modifiable dune facon analogue. Ces changements sont aussi pris en
consideration par les symboles dans la legende.

ET RESULTAT

TRAVAIL EFFECTUE

5.2

18

R
edaction de la Javadoc

Pendant la duree du projet DET4J, une partie non negligeable du temps de travail a ete
consacree `
a la redaction de la documentation de lAPI au format HTML (Javadoc). Lenvironnement de programmation Eclipse dispose dun outil de creation de Javadoc `a partir du code source
(dans lequel on ins`ere certaines commandes specifiques). Le code de lapplication DET4J est donc
enti`erement commente et pret `
a etre consulte. Cest la raison pour laquelle lauteur de ce rapport
ne va pas sattarder sur le code et limplementation.

5.3
5.3.1

Packages utilis
es
Xerces et JDOM

Il a ete vu au paragraphe 4.2 que SAX a ete choisi pour effectuer le parsing des fichiers XML au
format Ragga. SAX, dont lacronyme veut dire Simple API for XML, a ete le premier API pour
XML `a etre largement adopte par la communite des programmeurs Java, et constitue de facto
un standard `
a lheure actuelle. La derni`ere version stable de SAX est la 2.0.1 (SAX2). SAX2 est
gratuit 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 interfaces de SAX2, comme Xerces-J10 . Xerces fait partie du projet XML dApache. Le programme
DET4J requiert aussi linstallation de JDOM11 dont le parseur SAX utilise certaines classes (notamment pour representer les mod`eles des elements XML dans Java). Par consequent les fichiers
xerces.jar et jdom.jar doivent etre ajoutes au CLASSPATH de Java.
5.3.2

VectorGraphics

Description du package
Le package VectorGraphics de la biblioth`eque Java FreeHEP12 est mis `a dispostion et utilisable
sous les termes de license LGPL. Il permet `a tout programme Java dexporter dans une variete de
formats 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 formats
GFI, PNG, JPG and PPM. Ce package utilise la classe standard java.awt.Graphics2D comme
interface pour le programme utilisateur, ce qui rend plutot facile son couplage `a un quelconque
programme Java. En outre, il met `
a disposition une bote de dialogue qui permet `a lutilisateur
de choisir entre les differents formats mentionnes ci-dessus et de fixer les param`etres propres `a
chaque format. Finalement, VectorGraphics contient un ensemble de classe basiques pouvant etre
etendues pour gerer des nouveaux formats de sortie qui viendraient `a faire leur apparition. La
figure 12 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 component qui permet de dessiner un graphique. 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 package
VectorGraphics etend la classe Graphics2D pour permettre aux utilisateurs de continuer de dessiner vers le meme ancien contexte Graphics2D qui leur est familier. Cependant, cette extension ajoute la gestion des nouveaux formats de sortie. Le code de lutilisateur pour dessiner
un graphique reste donc le meme, autant pour ce qui concerne laffichage `a lecran que pour
ce qui est de lecriture dans un format quelconque. Pour utiliser le package VectorGraphics, le
programmeur doit ajouter le code pour afficher la bote de dialogue dexportation (ExportDialog) afin que lutilisateur puisse selectionner un format. Cet ajout peut se faire dans un MenuItem (voir lexemple du manuel en ligne). Pour lancer le programme dont le code employe
ce package, il est imperatif dajouter au CLASSPATH les fichiers jar suivants : freehep-base.jar,
10 Site

web du projet Xerces : http://xerces.apache.org/xerces-j


web du projet JDOM : http://www.jdom.org/
12 The FreeHEP Java library : http://java.freehep.org
13 Manuel en ligne de VectorGraphics : http://java.freehep.org/freehep1.x/vectorgraphics/Manual.html
11 Site

ET RESULTAT

TRAVAIL EFFECTUE

19

Fig. 12 Architecture du package VectorGraphics

freehep-graphics2d.jar, freehep-graphicsio.jar, qui incluent les formats bitmap de base JPG, PNG
et PPM. Pour inclure en plus le format GIF ainsi quun ou plusieurs formats vectoriels, les fichiers 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-graphicsiosvg.jar et freehep-graphicsio-swf.jar. Le cas echeant, la bote de dialogue dexportation va automatiquement detecter tous les formats dont les fichiers jar ont ete ajoutes au CLASSPATH et
permettre `
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 dispose
de la methode VectorGraphics.create(Graphics g), qui va retourner g si ce dernier est dej`a une instance de VectorGraphics ou alors encapsuler g dans une instance de VectorGraphics (un exemple
de code est disponible dans le manuel en ligne). On pourra ainsi faire appel `a toutes les methodes
de Graphics2D et aux methodes additionnelles de VectorGraphics.
Fonctionnalit
es additionnelles du package ?
La classe VectorGraphics etend Graphics2D avec un certain nombre de fonctionnalites permettant decrire de meilleurs formats de sortie. Ces fonctionnalites sont :
Les m
ethodes Draw, Fill, Clear, Clip,... : Ces methodes (drawLine(), fillOval(), clearRect(), clipRect(),...) qui prennent normalement en param`etres des nombres entiers ont ete
surchargees avec des methodes dont les noms sont les memes mais qui prennent en param`etres
des double. Ceci permet de dessiner avec une plus grande precision en continuant dutiliser
ces methodes simples. Une telle precision est requise par les formats vectoriels, souvent destines `
a etre exploites par des peripheriques demandant une resolution plus haute que celle
dun 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

ET RESULTAT

TRAVAIL EFFECTUE

20

couleurs qui sont visibles et sur lecran et sur une imprimante. Limpression peut se faire en
couleur, en noir et blanc ou en niveaux de gris. Des PrintColors peuvent etre crees avec les
mappages corrects, et se comporter pourtant differemment sur lecran que dans nimporte
quel formats de sortie. La classe PrintColor peut etre employee partout o`
u le serait une
classe 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 seulement
traite particuli`erement 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 fillSymbol() dans le contexte de VectorGraphics. Un certain nombre de symboles predefinis sont
disponibles dans VectorGraphicsConstants (et dans VectorGraphics). Lavantage demployer
ces symboles, plut
ot 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 dans
les formats de sortie qui permettent `a des procedures detre definies, comme les formats
PostScript 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 de
caract`eres (strings) avec des balises HTML (< b > ... < /b >, < i > ... < /i >, etc...).
La representation des caract`eres &, <, >, et peut se faire `a laide des entites HTML
respectives suivantes : &amp ; &lt ; &gt ; &quot et &apos ; .
Dautres m
ethodes : Certaines methodes specifiques sont appelees dans limplementation
de nouveaux formats de sortie dans VectorGraphics. Ces methodes sont startExport(), endExport(), setCreator(), getCreator(), printComment(), setDeviceIndependent() et isDeviceIndependent() et sont decrites dans le manuel en ligne.
Les formats support
es et leurs limitations
Le manuel en ligne fournit la liste exhaustive des formats de sortie supportes, leurs descriptions,
ainsi que leurs limitations.
Javadoc de VectorGraphics
La javadoc du package de VectorGraphics est disponible `a ladresse suivante : http://java.
freehep.org/lib/freehep/api/org/freehep/graphics2d/VectorGraphics.html.

5.4
5.4.1

Evaluation du programme
Justesse et fiabilit
e

Durant le projet, un test comparatif a ete effectue pour verifier que les courbes de performance
DET affichees par DET4J etaient bien semblables `a celles quaffiche Matlab.
Apr`es analyse du code des deux programmes, il a pu etre certifie que le programme DET4J dans
sa version Java actuelle est equivalent au script Matlab dans sa mani`ere dafficher les courbes de
detection DET. Les methodes mathematiques, notamment pour le calcul de la fonction de distribution normale cumulative (CDF) et de son inverse, qui sont utilisees dans le fichier CDF Normal.java
de DET4J sont les memes que dans le fichier ppndf.m de Matlab. La mani`ere dont proc`ede DET4J
pour 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 corriger
de nombreux bugs. Il en resulte que lutilitaire DET4J fait maintenant preuve dune tr`es bonne
stabilite.

ET RESULTAT

TRAVAIL EFFECTUE

5.4.3

21

Am
eliorations potentielles futures

Il avait ete decide au debut du projet que le programme DET4J devrait au minimum heriter des
memes fonctionnalites que Matlab. A la fin du projet, la quasi-totalite des fonctionnalites du cahier des charges ayant ete implementees, DET4J est desormais bien superieur `a la version Matlab.
Cependant, comme nulle chose nest parfaite et s
urement pas un logiciel informatique, plusieurs
ameliorations 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 simplement supprimer ceux qui sont de trop, etc...).

5.5

R
esultat et courbes de performance

Les captures decran suivantes (figures 13 `a 17) montrent lactuelle version de DET4J en pleine
utilisation. Elles illustrent aussi les differents aspects que peuvent revetir des courbes de perfomance dans les cinq modes daffichage.

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

ET RESULTAT

TRAVAIL EFFECTUE

Fig. 14 Representation de courbes ROC dans Det4J

Fig. 15 Representation de courbes DET dans Det4J

22

ET RESULTAT

TRAVAIL EFFECTUE

Fig. 16 Representation de courbes semi-logarithmiques dans Det4J

Fig. 17 Representation de courbes de co


ut dans Det4J

23

APPORTS PERSONNELS

24

Apports personnels

Tout dabord, je dirais que le projet DET4J dans son ensemble et sous tous ses aspects ma
personnellement beaucoup apporte. Mener `a bien et `a terme ce projet de Bachelor restera probablement un des points forts de mon cursus universitaire en informatique. Jaimerais neanmoins
souligner certains elements qui mont particuli`erement enrichi.

6.1

Outils informatiques

En tant quetudiant en informatique, je puis dire avec grande satisfaction que lapprofondissement de mes connaissances en mati`ere de programmation en langage Java a s
urement constitue le
plus grand apport personnel tout au long de ce projet. Jai aussi appris `a faire usage de la librairie
Java Swing et du logiciel de contr
ole des versions Subversion (SVN).

6.2

M
ethodologies informatiques

Jai aussi pu faire lexperience de methodologies informatiques que je ne connaissais pas comme
la demarche dite de Vue-Mod`ele-Contr
oleur et la mani`ere dont selabore le design du GUI.

6.3

Contenu scientifique

La biometrie est une science extremement interessante. Le fait davoir pu y etre initie un
tant soit peu ma beaucoup appris, notamment sur les evaluations des performances des syst`emes
biometriques. Je nexclus donc pas leventualite de faire mon travail de Master dans le meme
domaine.

6.4

Gestion du projet

La mani`ere 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 en
organisant des meetings reguliers durant lesquels les prochaines taches `a accomplir etaient fixees.

Conclusion

Ladoption massive de syst`emes biometriques repose sur un prix et des performances acceptables. Nagu`ere eleve, le prix des syst`emes dauthentification ou de verification didentites diminue
rapidement, mais lamelioration des performances promet detre plus lente. Du cote des societes de
service, le facteur dacceptation principal est le taux de succ`es. Cependant, le cahier des charges
varie dune application `
a lautre : un distributeur de billets de banque necessite un taux de faux
rejet faible, alors quune application militaire necessite un taux de fausse acceptation tr`es faible.
Afin dameliorer au mieux et le plus rapidement possible ces syst`emes biometriques, les ingenieurs
et 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 representer
et analyser diverses types de courbes de performance biometriques. Ce programme est dote de fonctionnalites fondamentales que ne propose pas son equivalent actuel Matlab, comme la representation
de courbes de co
ut ou de type T-FA/T-FR, ROC ou semi-logarithmique. De plus, il permet le calcul et laffichage de certaines valeurs importantes, comme celles de lequal error rate, du seuil de
lequal error rate, du co
ut 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 syst`emes biometriques vont peu `a peu remplacer lutilisation de mots
de passe, voire de cles qui sont utilises actuellement pour les ordinateurs, les voitures, les acc`es
controles `
a des b
atiments ou `
a Internet. Les syst`emes qui rencontreront le plus de succ`es seront

CONCLUSION

25

ceux qui offriront linterface la plus simple et la moins contraignante `a lutilisateur, tout en garantissant un bon niveau de securite. Finalement, lauthentification biometrique contribuera `a rendre
lutilisation de certains syst`emes plus simple et plus conviviale.

GUIDE DE LUTILISATEUR

26

Guide de lutilisateur

A.1

La fen
etre 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 Y
permet 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 lendroit
souhaite ;
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 cadre
contenant 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 diverses
operations. 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).

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 fichier Ragga afin 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 via
une 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 permet de changer le label par defaut de laxe des X ;
Change Axe Y Label... qui permet de changer le label par defaut de laxe des Y ;
Change Legend Label... qui permet de changer le label par defaut de la legende ;

GUIDE DE LUTILISATEUR

28

Restore Default Labels qui restaure les labels par defaut pour le titre, la legende et les
axes 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
co
ut (Cost) ;
Show Minimal Cost Points qui affiche le point de co
ut minimal (Topt , Cost(Topt )) pour
la courbe de co
ut de chaque classifier. Cette option nest disponible que la courbe de co
ut
(Cost) ;
Hide Legend (resp. Show Legend) qui offre la possibilite de masquer, resp. afficher la
legende ;
Hide Grid (resp. Show Grid) qui offre la possibilite de masquer, resp. afficher la grille
du rep`ere dans lequel sont affichees les courbes des differents classifiers ;
Enable Anti-Aliasing (resp. Disable Anti-Aliasing) qui active, resp. desactive le lissage
des 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 fen
etre des r
eglages (Settings)

Cette fenetre contient, comme son nom lindique, les outils permettant deffectuer les divers
reglages pour laffichage des courbes de performances biometriques. Elle est constituee des 3 compartiments suivants (voir figure 24) :

GUIDE DE LUTILISATEUR

A.2.1

29

Le compartiment Settings

Les 2 elements de ce compartiment sont :


Un menu deroulant pour le changement de mode de representation des courbes de performance. Ce menu propose au choix les cinq types de courbes suivants : DET, ROC, SemiLogarithmic, T-FA/T-FR, Cost (cf. section 3.3) ;
Un slider pour augmenter ou reduire la resolution des courbes, cest-`a-dire le nombre de
points qui sont calcules pour chaque courbe et qui influe sur la precision du graphe par
consequent.
A.2.2

Le compartiment Cost

Ce compartiment napparat que lorsque le type de courbe Cost est selectionne dans le menu
deroulant du compartiment Settings et permet de faire varier les param`etres de la fonction de
co
ut (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 leur
equal error rate (EER) et du seuil de leur equal error rate (T (EER)). En outre, chaque classifier
dispose 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 courbe
soit affichee. Ceci permet dafficher ou de masquer `a la volee les courbes des classifiers charges. Les
couleurs des check-boxes sont les memes que celles de leurs courbes.

Fig. 24 La fenetre des reglages (Settings)

GUIDE DE LUTILISATEUR

30

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

A.3

La fen
etre de la console

La console a comme principale fonction doffrir un suivi des evenements (et erreurs) qui se
produisent 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 co
ut minimaux (Topt , Cost(Topt )) pour chaque classifier (le
tableau est reaffiche si des param`etres comme ceux de la fonction de co
ut ou la resolution varient. A noter quil nest pas mis `
a jour mais reaffiche, ce qui permet de faire des comparaisons
entre plusieurs tableaux de configurations differentes).

Fig. 26 La fenetre de la console

ERENCES

REF

31

R
ef
erences
[1] Alvin Martin, G. Doddington, T. Kamm, M. Ordowski and M. Przybocki, The DET curve
in 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 University, 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 Authentication 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 Technology 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,
Mod`eleVue-Contr
oleur,
http://en.wikipedia.org/wiki/Normal distribution,
http://fr.wikipedia.org/wiki/Mod`
ele-Vue-Contr^
oleur
[9] David Flanagan, Java In A Nutshell, Manuel de reference pour Java 2 Editions 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/CDF
Normal.html
[12] The VectorGraphics package of FreeHEP Java Library,
vectorgraphics

http://java.freehep.org/

[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

Vous aimerez peut-être aussi