Vous êtes sur la page 1sur 28

ENSICAEN 6, bd marchal Juin F-14050 Caen cedex 4

Spcialit Informatique - 2e anne Rapport de projet

Reconnaissance Palmaire
Ralisation de dmonstrateurs sur PC et Mobile

Julien GOBERT Nicolas RENOUS

Suivi projet : M. Jean-Jacques Schwartzmann

2010 - 2011

Introduction..................................................................................................... 3 1. Reconnaissance palmaire : gnralits...................................................... 4


1.1. Prsentation du projet................................................................................................. 4 1.1.1 La demande..............................................................................................................4 1.1.2 Positionnement dans une perspective d'volution...................................................4 1.1.3 Spcification des objectifs........................................................................................ 4 1.2. La reconnaissance palmaire....................................................................................... 5 1.2.1 La biomtrie : gnralits et utilisations................................................................... 5 1.2.2 Avantages de la reconnaissance palmaire...............................................................6 1.2.3 tat de l'art de la reconnaissance palmaire............................................................. 7 1.3. Organisation du travail................................................................................................ 9 1.3.1 Suivi du projet...........................................................................................................9 1.3.2 Diagramme de Gantt................................................................................................ 9 1.3.3 Rpartition des tches............................................................................................10

2. La bibliothque libHandRecognition......................................................... 11
2.1. Prsentation des bibliothques exploites............................................................. 11 2.1.1 Traitement des images : Pandore.......................................................................... 11 2.1.2 Machine-learning : Torch........................................................................................ 11 2.1.3 Organisation de la bibliothque libHandRecognition.............................................11 2.2. Principe de fonctionnement..................................................................................... 12 2.2.1 Pr-requis en vue de l'analyse............................................................................... 12 2.2.2 tapes intermdiaires.............................................................................................12 2.2.3 Comparaison des signatures................................................................................. 13 2.3. Exploitation de la bibliothque................................................................................. 14 2.3.1 Rorganisation globale des sources...................................................................... 14 2.3.2 Mise jour vers Pandore 6.5.2.............................................................................. 14 2.3.3 Mise en oeuvre pour les dmonstrateurs...............................................................15

3. Ralisation des dmonstrateurs................................................................16


3.1. Dmonstrateur sur PC : Identification d'identit....................................................16 3.1.1 Modlisation de l'application.................................................................................. 16 3.1.2 Dveloppement et tests..........................................................................................18 3.1.3 Analyse des rsultats............................................................................................. 18 3.2. Dmonstrateur pour mobile Symbian...................................................................... 19 3.2.1 Mise en place de l'environnement de dveloppement...........................................19 3.2.2 Modlisation de l'application.................................................................................. 20 3.2.3 Dveloppement et tests..........................................................................................23

Conclusion..................................................................................................... 24 Annexes.......................................................................................................... 25

Introduction
Ce rapport a pour objectif de prsenter le travail que nous avons men dans le cadre de notre projet de 2nd anne du cycle ingnieur l'ENSICAEN. Ce projet a fait l'objet d'un suivi par M. Jean-Jacques SCHWARTZMANN (PAST ENSICAEN Orange Labs) ainsi que d'valuations par un jury en milieu et en fin d'anne (janvier et avril 2011). Tous deux spcialiss dans la majeure Montique, nous sommes sensibiliss aux problmatiques de la scurisation des systmes informatiques. En effet, la gnralisation des changes de donnes sensibles par voie lectronique impose aux acteurs en prsence d'intgrer en permanence de nouvelles technologies afin de scuriser l'accs aux systmes. Dans ce cadre, les outils d'identification biomtrique offrent la perspective d'identifier un individu par rapport ses caractristiques ; mais en contrepartie comme nous le verrons, leur mise en place prsente de nombreux obstacles techniques ou tenant aux principes spcifiques des individus. Dans ce contexte, ce projet fut pour nous l'occasion d'avoir une premire exprience autour de la biomtrie en dveloppant un dmonstrateur de reconnaissance palmaire sur PC ainsi que sur mobile. La dmocratisation des priphriques nomades tels que les smartphones combinant une camra et une bonne puissance de calcul rendaient en effet envisageable le dveloppement d'une telle application. Dans un premier temps, nous vous prsenterons donc de manire prcise les caractristiques de ce projet autour de la reconnaissance palmaire, puis nous dtaillerons le fonctionnement de la bibliothque exploite. Enfin, nous exposerons la mise en uvre des deux dmonstrateurs que nous avons raliss.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 3 sur 28

1. Reconnaissance palmaire : gnralits


1.1. Prsentation du projet
1.1.1 La demande
L'objet initial de notre projet est le dveloppement d'un dmonstrateur de reconnaissance palmaire sur un tlphone portable. Il devra permettre la vrification de l'identit d'un individu partir d'une photographie de sa main. Ce sujet ncessite donc des comptences en Programmation Oriente Objet, en analyse d'images et en ralisation d'interfaces graphiques.

1.1.2 Positionnement dans une perspective d'volution


Une thse encadre par Marinette REVENU et soutenue par Julien DOUBLET a conduit la dfinition d'algorithmes performants de vrification d'identit d'individu partir d'une photo de sa main. Ils ont fait l'objet d'une implmentation en C# et .NET. En 2009, un autre tudiant, Franois PETTE a port ce travail en C++. Dans la continuit de ces travaux, il semblait ncessaire de dvelopper un dmonstrateur plus ergonomique que la version prcdente qui s'excute en dur et ligne de commande. Il est en effet intressant d'implmenter l'application sur un device facilement transportable, et ayant les capacits requises. Les smartphones de dernire gnration sont tout indiqus, ces appareils intgrent en effet une bonne puissance de calcul et un appareil-photo de qualit.

1.1.3 Spcification des objectifs


Une premire runion avec M. SCHWARTZMANN en Novembre 2010 nous a permis de prciser les modalits du projet. Le logiciel sera destin une implmentation sous Symbian S60, systme qui quipe les smartphones de la marque Nokia. Le dveloppement se fera donc sous Qt, un framework orient objet et cod en C++ par Qt Development Frameworks, une filiale de Nokia depuis quelques annes. Le dmonstrateur sur tlphone portable devra donc utiliser les fonctions de la bibliothque afin de vrifier l'identit d'un individu en la comparant celle qui est enregistre au sein de l'application. Avant de pouvoir s'identifier, l'utilisateur devra donc crer son profil. Par ailleurs, l'application devra offrir une interface allge et ergonomie adapte l'utilisation de ce type d'appareils. Dans le but d'exploiter pleinement la librairie, nous dcidons en accord avec notre tuteur d'ajouter un second objectif : la ralisation d'un dmonstrateur sur PC, qui aurait la capacit de stocker plusieurs empreintes utilisateurs. Cela permet d'identifier un individu parmi toutes les empreintes prsentes en mmoire. L'intrt est de pouvoir tester un grand nombre d'empreintes, afin dfinir le seuil partir duquel on peut estimer tre certain de l'identit d'un individu lors de la vrification.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 4 sur 28

1.2. La reconnaissance palmaire


1.2.1 La biomtrie : gnralits et utilisations
Le mot biomtrie signifie l'origine mesure du vivant , et dsigne dans un sens trs large l'tude quantitative des tres vivants. De nos jours, l'utilisation de se terme se rapporte de plus en plus aux utilisations de ces techniques des fins de reconnaissance d'individus, travers des caractristiques physiques ou comportementales. Le sens premier du mot biomtrie est dornavant re-dfini par le terme biostatistique. Pour pouvoir tre utilise dans ce cadre de la biomtrie, la caractristique considre doit tre slectionne au regard des paramtres suivants : 1. Universalit chaque individu doit possder la caractristique ; 2. Singularit possibilit de sparer les individus les uns des autres ; 3. Permanence capacit de rsistance cours de la vie quotidienne et au vieillissement du vieillissement, ainsi qu' l'altration volontaire ou involontaire ; 4. Collectabilit facilit d'acquisition de la mesure ; 5. Performance prcision, vitesse et robustesse des technologies utilises ; 6. Acceptabilit degr d'approbation de la technologie ; 7. Contournement facilit d'utilisation d'un substitut. Les systmes biomtriques sont destins rpondre deux oprations : Vrification Comparaison d'une donne biomtrique capture avec un modle stock afin de vrifier que l'individu est bien celui qu'il prtend tre . Ncessite un enregistrement pralable ( ou enrollment ). Peut tre ralis en conjonction avec une autre pice d'identit. Identification Comparaison d'une donne biomtrique capture avec celles prsentes au sein d'une base de donnes dans le but d'identifier une personne inconnue. L'identification ne russit que si la donne est au dessus d'un seuil pralablement fix. Certains caractres biomtriques sont bien connus comme le grand public, comme les empreintes digitales ou l'ADN, mais de nombreux autres peuvent tre tudis et donnent lieu de nombreuses recherches. Caractristiques physiques Empreintes digitales et palmaires, ADN, iris, rtine, traits du visage, morphologie de la main, voix ( spectre ), odeur, ... Caractristiques comportementales Dynamique des frappes au clavier (keystroke-scan), dynamique des signatures (signature-scan), voix ( habitudes ), ...

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 5 sur 28

1.2.2 Avantages de la reconnaissance palmaire


Analysons ce mode de reconnaissance au regard des paramtres prcdents : 1. Universalit pas de problme ; 2. Singularit discrimination semblable celles des empreintes digitales. En soit les diffrences sont suffisantes pour distinguer les individus au sein de la population mondiale mais en pratique dpend de la prcision de la capture et des algorithmes ; 3. Permanence similaire aux empreintes digitales. Le dessin se forme durant la phase ftale. Peu d'volution aprs 10 ans de l'empreinte except sa taille. 4. Collectabilit excellente, il suffit d'une photographie. Les images utilises par Franois PETTE n'avaient qu'une rsolution de 454 x 341 ! Le seul impratif est la prsence d'un auto-focus pour bien distinguer l'empreinte. 5. Performance algorithmes performants d'aprs la thse de Julien DOUBLET ; 6. Acceptabilit mthode d'identification peu connue pour le grand public, des rticences pourraient donc apparatre ; 7. Contournement le danger est l'impression d'une photographie de la main, si la capture n'est pas contrle. Possibilit de se faire prendre la main en photo sans s'en apercevoir ? Ce contrle des individus aux moyens de technologies mises au service de socits prives ou publiques pose cependant des questions thiques car les citoyens disposent de peu de moyens pour en contrler l'utilisation et viter les ventuels abus. Ainsi les entreprises doivent faire face des lgislations sur la collecte de donnes prives, et certains individus montrent des rticences utiliser les services associs. Toutefois, notons que dans l'esprit du grand public, la reconnaissance palmaire est moins facilement associe aux drives concernant le dtournement des donnes. En effet, dans le cadre des empreintes digitales, certaines personnes ont peur que les bases de donnes tablies par des entits prives ou publiques puissent servir des fins d'enqutes internes ou judiciaires ce qui est thoriquement interdit en France. D'aprs nos recherches, les gens auraient moins peur de diffuser une image de leur main. Ce mode de reconnaissance prsente de plus l'avantage de ne pas aller l'encontre de certaines sensibilits, l'inverse par exemple de l'analyse des caractristiques du visage qui poseraient problmes pour les personnes masquant leur visage ( port du voile ). Par ailleurs, l'un des problmes principaux de la biomtrie est le recours des matriels spcifiques : lecteur d'empreinte, d'iris, Mme si ces appareils se dmocratisent de plus en plus ( prsence dans les ordinateurs portables ), ces systmes restent coteux mettre en place. L'utilisation d'une simple photo supprime cette barrire : notre application est en effet compatible avec n'importe quel appareil dot d'un appareil photo ou d'une webcam c'est dire pratiquement tous les smartphones et ordinateurs portables actuels.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 6 sur 28

1.2.3 tat de l'art de la reconnaissance palmaire


L'utilisation des empreintes de la main des fins de reconnaissance d'individus ont t initis par les polices scientifiques, bien leur utilisation des fins d'authentification. Jusque dans les annes 1980, les policiers comparaient manuellement les empreintes digitales stockes sur papier. En 1987 est cr en France le Fichier Automatis des Empreintes Digitales (FAED) qui regroupe les empreintes digitales utilises des fins judiciaires. Depuis 2002, ce fichier s'tend galement aux empreintes palmaires. Ce systme est bas sur le logiciel MetaMorpho de SAFRAN - SAGEM Scurit, qui automatise l'analyse, la numrisation, le traitement et la comparaison des empreintes digitales et palmaires. L'analyse comparative qui est faite par le logiciel de SAGEM reste identique celle des empreintes digitales. La paume de la main est quadrille en 16 zones de la taille dune empreinte digitale. Comme pour ces dernires, il faut alors au moins 12 points qui correspondent parfaitement lempreinte dj numrise dans le FAED. Le 20 janvier 2010 est ralise une premire pour la police technique et scientifique franaise : un voleur est dmasqu par ses empreintes palmaires.

Fig 1.2.3.a : Interface utilisateur du logiciel MetaMorpho

Le leader du march des appareils est Suprema. Il propose des lecteurs d'empreintes digitales et / ou palmaires respectant les normes europennes (Eurodac) et internationales (AFIS). Ces lecteurs sont utiliss par la plupart des pays proposant un passeport biomtrique.

Fig 1.2.3.b : Lecteur d'empreintes digitales et palmaires RealScan-F Suprema

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 7 sur 28

En ce qui concerne l'utilisation des empreintes palmaires des fin d'authentification, signalons galement une autre approche qui a t faite par Fujitsu. Le fabriquant propose en effet une technologie baptise PalmSecure base sur la reconnaissance non plus de l'empreinte palmaire mais des veines de la main.

Fig 1.2.3.c : Technologie d'authentification PalmSecure

Un capteur infrarouge ( qui peut tre intgr la souris par exemple ) numrise les veines de la main, et un logiciel propritaire les algorithmes ne sont pas connus permet d'identifier l'utilisateur lgitime de l'ordinateur. Pour plus d'informations sur ces trois solutions : SAFRAN Morpho : http://www.morpho.com Suprema : http://www.supremainc.com/ PalmSecure : http://www.fujitsu.com/us/services/biometrics/palm-vein/

La bibliothque dveloppe par Julien DOUBLET n'a pas du tout la mme approche. La capture de l'image de la main se fait sans contact grce un appareil-photo et sans matriel spcifique ( ce qui impose la dtection et la suppression du fond ). Par ailleurs les algorithmes de comparaison diffrent totalement dans leur analyse. Nous le verrons dans la seconde partie, ce ne sont pas qu'un certain nombre de points qui sont compars mais l'empreinte dans son ensemble, afin de dterminer un degr de similitude entre les deux signatures compares.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 8 sur 28

1.3. Organisation du travail


1.3.1 Suivi du projet
Nous avons utilis divers outils notre disposition afin de permettre un suivi efficace du projet, en interne comme en externe. Un suivi en temps rel de l'avancement du projet a t rendu possible par la ralisation d'un site web. Le gestionnaire de contenu Wordpress est tout fait adapt pour cela, en permettant la publication de billets contenant textes et images chaque tape importante du projet palmprint.renous.fr La gestion des sources du projet a t assure par l'utilisation de l'outil Subversion qui a un intrt multiple : le partage de ressources pour la collaboration au sein de l'quipe projet, la sauvegarde des codes sources et la gestion des diffrentes versions produites.

1.3.2 Diagramme de Gantt


L'analyse du sujet a conduit l'tablissement d'un programme prvisionnel prsent cidessous sous la forme d'un diagramme de Gantt.

Fig 1.3.2.a : Diagramme de Gantt du projet

Remarque : Les 3 semaines libres du mois de Janvier correspondent nos priodes de rvisions pour les examens de l'ENSICAEN et de l'IAE.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 9 sur 28

1.3.3 Rpartition des tches


La rpartition des tches a t faite en amont afin de permettre d'avancer efficacement en parallle, sans avoir attendre que l'autre membre n'ait fini sa partie. Retrouvez ci-dessous la rpartition des tches entre les membres de l'quipe projet.

Fig 1.3.3.a : Rpartition des tches entre les membres de l'quipe projet

Au final, nous sommes parvenus respecter le programme prvisionnel. Seule la priode de ralisation du dmonstrateur pour PC a t rallonge de quelques semaines en parallle de celle pour PC. Ce dlai supplmentaire ( apparaissant en rouge dans le diagramme de Gantt ) nous a permis d'amliorer la gestion des comparaisons d'empreintes et d'identification peu fiable dans les premires versions.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 10 sur 28

2. La bibliothque libHandRecognition
2.1. Prsentation des bibliothques exploites
2.1.1 Traitement des images : Pandore
La premire bibliothque utilise au sein des sources qui nous ont t transmises est Pandore en version 5.2.0, une bibliothque standardise d'oprateurs de traitement d'images dveloppe par l'quipe image du Greyc. Ce framework dvelopp en C++ se compose d'une classe de reprsentation des images (Pobject), ainsi que d'une collection d'oprateurs permettant de les traiter. Les images manipules sont au format Pandore, mais il existe des oprateurs de conversion vers la majorit des formats standards. La reconnaissance palmaire requiert la manipulation de nombreuses images : les photos sources contenant les empreintes, ainsi que les signatures ( stockes au format Pandore ).

2.1.2 Machine-learning : Torch


La dtection repose galement en partie sur Torch, un outil de machine-learning permettant de traiter des arbres de dcision. La version 3 est utilise au sein de notre bibliothque. Cela permet au cours des analyses de tenir compte des comparaisons dj effectues pour ne pas reproduire plusieurs fois les mmes calculs.

2.1.3 Organisation de la bibliothque libHandRecognition


LibHandRecognition s'articule autour de 4 modules principaux qui seront utiliss successivement lors de l'analyse puis de la reconnaissance. Voici leur organisation :

Fig 2.1.3.a : Organisation des modules de la bibliothque

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 11 sur 28

2.2. Principe de fonctionnement


2.2.1 Pr-requis en vue de l'analyse
La bibliothque exploite des images au format Pandore, qu'il est possible de gnrer via des oprateurs depuis les formats GIF, TIFF, BMP, Nous avons slectionn ce dernier format (Bitmap) car il s'agit de l'un des plus rpandus de par sa simplicit de programmation et est donc compatible directement avec la majorit des systmes et camras. LibHandRecognition est capable de grer toutes les rsolutions d'images, nous avons choisi arbitrairement une rsolution de 640x480 pixels qui est supporte nativement par les webcams que nous utilisons ce qui vite des traitements supplmentaires.
Remarque : notre prdcesseur utilisait des images de 454x341 pixels, nous avons toutefois privilgi une qualit suprieure. Nous avons not une augmentation des temps de calculs lie l'augmentation du nombre de pixels analyser.

Par ailleurs il est recommand d'utiliser des priphriques de capture dots d'un autofocus, indispensable pour capturer les dtails de l'empreinte courte distance.

2.2.2 tapes intermdiaires


L'objectif premier de notre projet n'tait pas la comprhension totale des algorithmes de la reconnaissance palmaire, il nous semble toutefois intressant de dtailler les grandes tapes de cette dernire. A cette fin, nous avons gnr grce Pandore les images correspondant aux traitements successifs de la dtection. Retrouvez-ci dessous dans l'ordre chronologique les tapes ralises lors de l'analyse d'une image :

Fig 2.2.2.a : Image source

Fig 2.2.2.b : Carte de probabilit

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 12 sur 28

Fig 2.2.2.c : Gradient ( contour main )

Fig 2.2.2.d : Image segmente

Fig 2.2.2.e : Image contour


(Sert uniquement de vrification)

Fig 2.2.2.f : Image aligne

Fig 2.2.2.g : Extraction sous-image de la paume

Fig 2.2.2.h : Signature empreinte

La rsolution de l'imagette contenant la paume et celle de la signature est de 64x64 ( taille dfinie dans le fichier de constante. La signature est un fichier binaire combinant deux donnes : l'empreinte de la paume binarise l'aide d'un filtre de Gabor ; ainsi que la forme de la main dtermine grce l'image segmente.

2.2.3 Comparaison des signatures


La signature est donc un fichier binaire reprsentatif de l'empreinte palmaire. La comparaison de deux signatures revient quantifier les diffrences entre elles grce au calcul de la distance de Hamming : aux deux matrices de pixels de mme longueur elle associe le nombre de positions o les valeurs diffrent. Cette distance devra tre reporte un pourcentage, dont la formule sera dtermine lors des tests. Projet reconnaissance palmaire 2011 GOBERT / RENOUS Page 13 sur 28

2.3. Exploitation de la bibliothque


2.3.1 Rorganisation globale des sources
Aprs avoir rcupr le travail ralis par Franais PETTE, la premire tape qui s'est impos nous est le nettoyage et la rorganisation globale des sources. En effet, dans leur tat initial, la librairie ne compilait pas cause certainement des mises jour du systme. Nous avons donc procd la r-criture des fichiers de compilation (Makefiles) de chacun des modules de l'application. Par ailleurs, certains fichiers taient prsents en double ou triple ( comme les fichiers d'en-ttes de Pandore et Torch ). Lors de modifications ventuelles de ces derniers, il aurait donc fallu galement diter toutes les autres copies. Nous avons donc corrig le problme en incluant les fichiers initiaux ( dition de la variable -L suivie du rpertoire d'installation des librairies ) lors de la compilation. Enfin, nous avons supprim du rpertoire principal de l'application tous les fichiers de tests qu'il n'tait pas ncessaire d'intgrer la bibliothque. Cela permet de distinguer les fonctions de reconnaissance palmaire de leur utilisation effective ce qui correspond plus au principe de bibliothque.

2.3.2 Mise jour vers Pandore 6.5.2


Dans son tat initial, la bibliothque libHandRecognition exploitait la version 5.2.0 de Pandore datant de Mars 2006. La compilation de cette dernire gnrait ainsi de nombreuses erreurs ( avertissements et erreurs relles sur certains oprateurs ) avec la dernire version d'Ubuntu et de g++. Face ce constat, et suite aux conseils de Mme REVENU, nous avons dcid de mettre jour la bibliothque afin d'exploiter la version 6.5.2 de Pandore publie en Novembre 2010. Nous avons contact M. CLOUARD, en charge du dveloppement de Pandore au sein de l'quipe image du Greyc, qui nous a donn des conseils afin d'effectuer cette mise jour. En pratique, elle consiste en : l'utilisation d'un nouvel espace de nom (pandore::) dans tous les fichiers sources utilisant la bibliothque ; la modification des prototypes de tous les oprateurs utiliss ( noms des fonctions en anglais et prcds par le prfixe P, ainsi que certains changements au niveau des paramtres comme l'ajout de collections ).

Ainsi, la bibliothque libHandRecognition a t nettoye et pourra servir de base propre aux projets futurs qui pourraient l'exploiter.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 14 sur 28

2.3.3 Mise en oeuvre pour les dmonstrateurs


Les sources contenant de nombreux modules et bibliothques pouvant tre compils sparment, il nous semblait judicieux de coder un script de compilation gnrale. Ainsi au lieu d'un long fichier readme, il suffit d'excuter le fichier Shell ./install prsent la racine aprs en avoir positionn les droits (+x). Il ralise les oprations suivantes : 1. Configuration de Pandore 6.5.2 ; 2. Compilation de Pandore 6.5.2 ; 3. Compilation de Torch 3 ; 4. Compilation de la bibliothque de reconnaissance palmaire ; 5. Intgration des bibliothques l'environnement ($LD_LIBRARY_PATH) ; 6. Vrification de l'installation d'OpenCV 2.1 ; 7. Gnration du Makefile du dmonstrateur ; 8. Compilation du dmonstrateur ; 9. Gnration d'un script ./run pour lancer le dmonstrateur.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 15 sur 28

3. Ralisation des dmonstrateurs


3.1. Dmonstrateur sur PC : Identification d'identit
3.1.1 Modlisation de l'application
Comme nous l'avons prcis dans la 1re partie, il semblait intressant de travailler non pas directement sur mobile mais sur une interface pour PC. Ce dmonstrateur raliserait des oprations d'identification ( alors que celui pour terminal mobile ne permet que de la vrification d'une identit ). Outre que le fait que l'application pour systme Symbian ncessite une compilation croise, l'intrt du logiciel sur PC est de pouvoir tester facilement de nombreuses situations. Dvelopper un dmonstrateur sur le mme environnement que la librairie constitue donc la premire tape. Par ailleurs, le but final du projet est de porter ce code sur un systme d'exploitation Symbian et la librairie est implmente en C++. C'est pourquoi nous utiliserons le framework Qt, comme nous l'avons vu prcdemment. Afin de produire un code portable et maintenable, nous avons ralis une analyse des outils et interfaces dont nous allons nous servir. En effet, il est ncessaire d'obtenir une image de la webcam via capture directe, d'interfacer la librairie libHandRecognition avec notre application et d'assurer une complexit minimale lors de l'implmentation des fonctions spcifiques l'environnement mobile. Nous devions choisir une bibliothque d'acquisition d'images depuis une webcam. Sous licence BSD, disposant des oprateurs ncessaires l'acquisition vido et d'une communaut active, OpenCV (version 2.1) nous a paru une solution opportune. Elle est compatible avec la majorit des systmes et camras intgres ou externes. Enfin, nous avons modlis notre application. Voici dans un premier temps le diagramme des cas d'utilisation qui dtaille les besoins tels que nous les avons traduits avant le dveloppement.

Fig 3.1.1.a : Diagramme des cas d'utilisation de l'interface PC

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 16 sur 28

Afin de dcrire et d'optimiser les dpendances des objets les uns aux autres, nous avons ralis un diagramme d'activits dtaillant les squences d'utilisation du logiciel. Il permet galement d'assurer la cohrence du produit avec le cahier des charges.

Fig 3.1.1.b : Diagramme d'activit de l'interface PC

Le diagramme des classes traduit les contraintes nonces plus haut. Par exemple, nous avons implment une classe AbstractCaptureDialog() afin de distinguer la fentre de capture depuis une webcam de son implmentation. En effet, l'interface utilisateur n'est pas impacte si l'on change la mthode d'acquisition.

Fig 3.1.1.c : Diagramme de classes de l'interface PC

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 17 sur 28

3.1.2 Dveloppement et tests


Bien que la phase de dveloppement ait t tendue de deux semaines pour raliser les tests dans de meilleures conditions, elle n'a pas fait apparatre d'incohrence dans le travail de modlisation effectu en amont. Les seules modifications ont trait l'ergonomie (place des boutons, comportement des dialogues, ) Les principales difficults que nous avons rencontres concernent le transtypage et la suppression des widgets. C'est pourquoi nous nous sommes imposs une rigueur ncessaire au bon fonctionnement de l'application en ce qui concerne le transtypage statique et la suppression de tous les objets instancis. Le dmonstrateur est oprationnel sur Ubuntu et permet le chargement d'une image depuis un fichier .bmp ou depuis une webcam (intgre ou USB pas de test avec IEEE1394). Suite une analyse concluante ( une main a t reconnue dans l'image ), l'utilisateur peut s'enregistrer et/ou s'identifier. L'identification conduit l'affichage d'au maximum trois empreintes enregistres dans la base ainsi qu' un pourcentage de fiabilit. Ce pourcentage est linairement dpendant du rsultat de la fonction comparaison . On le calcule grce la formule 100 Coefficient x Distance de Hamming entre les deux empreintes. Le coefficient sera fix la suite d'une srie de tests 20 ce qui permet une bonne amplitude de rsultats.

3.1.3 Analyse des rsultats


La prochaine tape tant la ralisation d'un dmonstrateur sur mobile qui doit permettre l'identification d'un individu, il faut dterminer la valeur du coefficient de comparaison partir duquel on peut considrer qu'il s'agit bien du mme individu tout en gardant en tte que certains lments de la prise de vue ont chang, comme les conditions de luminosit, le flou de l'image ou encore la distance de la main. Le systme doit permettre didentifier un utilisateur avec un haut degr de fiabilit ( rduire au maximum les fausses acceptations ), sans toutefois risquer l'impossibilit un utilisateur de s'identifier ( faux rejets ). La valeur adquate semble se situer aux alentours de 80%. Notons toutefois que ces valeurs sont trs sensibles aux changements de luminosit et au flou de l'image.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 18 sur 28

3.2. Dmonstrateur pour mobile Symbian


3.2.1 Mise en place de l'environnement de dveloppement
Ce projet nous met face aux problmatiques lies la portabilit du code produit et la compilation pour un autre systme. En effet, l'application devra tre compile sur ordinateur, puis excute sur un terminal mobile. Il a donc fallu mettre en place l'environnement de dveloppement permettant de compiler les librairies et l'application en vue de l'intgration sur un terminal de type Symbian. Nokia qui possde Qt Software depuis Janvier 2008 diffuse librement un kit complet de dveloppement afin de concurrencer le panel d'applications disponibles pour iOs et Androd dont les communauts sont trs actives. Cet outil contient de nombreux lments qui permettent la cration dapplications mutli-plateformes : Qt SDK : le framework Qt ; Qt Designer : gnrateur dinterfaces graphiques ; Qt Creator : un environnement de dveloppement orient pour la programmation en Qt gestion de projet, coloration, auto-compltion ... ; Des outils de compilation et de debug ( par dfaut MinGW sous Windows et g++ sous Linux ) ainsi que des cross-compiler ( en ligne ou hors ligne ) qui permettent de compiler pour d'autres systmes comme Symbian ; Des outils de gestion de version ( intgration de Subversion ) ; Qt Simulator : un mulateur de device mobile (Symbian) qui permettent de simuler de nombreux paramtres comme lorientation du tlphone, son tat de batterie et de rseau, des notifications, .

Dans un premier temps nous avons utilis le Nokia Qt SDK version 1.0.2 de Novembre 2010, puis l'avons mis jour vers la version 1.1 RC (Release Candidate) sortie en Mars 2011. Outre l'intgration de la dernire version de Qt (v 4.7.3 ) et des corrections de bugs, cette nouvelle dition intgre de nombreuses fonctionnalits regroupes sous QtMobility . Cette bibliothque a pour but d'uniformiser la gestion des priphriques que l'on retrouve sur les appareils nomades ( camra, GPS, capteurs, ) qui jusqu'ici dpendait normment des appareils cibls. Cela reprsentait une faiblesse par rapport aux environnements iOs et Androd qui fournissent au dveloppeurs des solutions simples pour utiliser ces fonctionnalits. Ainsi nous pourrons envisager de pouvoir capturer directement la photo analyser, sans avoir le faire dans une application tierce.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 19 sur 28

3.2.2 Modlisation de l'application


L'adaptation directe du dmonstrateur pour PC n'tait pas envisageable. L'ensemble des caractristiques inhrentes un priphrique mobile imposent en effet diffrentes contraintes. Nous devons ainsi tenir compte des limites de la capacit mmoire, de la puissance de calcul et de la taille de l'cran du device envisag. De plus, l'interface doit tre pure pour offrir l'application une bonne ergonomie complexe tant sur les appareil disposant d'un pav directionnel que sur les appareils intgralement tactiles. L'interface sur PC permettait l'enregistrement d'une base de donnes d'un nombre illimit d'empreintes, et l'identification impliquait donc la comparaison de l'empreinte considre avec toutes celles prsentes en mmoire, d'o une complexit en O ( Nnombre empreintes). L'interface pour mobile sera ainsi simplifie en ne permettant l'enregistrement que d'une seule empreinte ce qui caractrise par exemple un service de vrification biomtrique protgeant par exemple l'accs une donne scurise. Le diagramme des cas d'utilisation cidessous dtaille les fonctionnalits finales de notre application.

Fig 3.2.2.a : Diagramme des cas d'utilisation

Les deux actions principales de l'utilisateur seront donc dans un premier temps l'enregistrement de son empreinte au sein de l'application, puis l'identification. Ces deux oprations ncessitent au pralable d'avoir ralis le chargement ou la capture de l'empreinte. Lors de l'enregistrement, l'utilisateur pourra enregistrer un message qui sera crypt par un chiffrement simple, puis enregistr au sein d'un fichier. Pour afficher ou modifier ce message, l'utilisateur devra au pralable s'identifier : en cas d'chec, impossible d'accder aux donnes. L'utilisateur aura par ailleurs la possibilit de remplacer / supprimer l'empreinte, et de se dconnecter de l'application. Remarque : Dans le cadre d'une implmentation relle d'un contrle d'accs sur un tlphone mobile, le module Charger une image n'aurait que peu d'intrt ! Si l'utilisateur enregistre une photo de sa main sur la mmoire du tlphone, n'importe qui pourrait alors se connecter. Elle est nanmoins implmente afin de pouvoir tester l'application sur des devices ne permettant pas la capture directe partir d'un capteur.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 20 sur 28

La description de ces oprations est dcrite dans le diagramme d'activit ci-dessous, qui dtaille les squences d'utilisation auxquelles doit se conformer le logiciel.

Fig 3.2.2.b : Diagramme d'activit

Lorsque l'on redmarre l'application, celle-ci devra bien videmment charger une empreinte propritaire qui aurait ventuellement t enregistre. Il faudra donc prvoir dans la squence d'initialisation de l'application une tape de chargement de cette identit. Cette dernire sera sauvegarde dans un rpertoire MyPrint la racine de l'application, lequel contiendra la signature de la personne ainsi que le fichier crypt contenant le message secret. Le chiffrement sera du type Vigenre ( addition cyclique des caractres d'une clef ), avec la clef intgre en dur dans le logiciel.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 21 sur 28

Les diffrentes classes en jeu dans le logiciel sont prsentes dans le diagramme cidessous, chaque module tant responsable d'un type d'opration.

Fig 3.2.2.c : Classes de l'application

Les flches rouges correspondent aux principaux signaux qui sont mis par les classes afin de dclencher des actions ( = slots ) dans d'autres classes. Ces communications sont une spcificit intressante du framework Qt : les objets communiquent entre eux sans se connatre explicitement. Par exemple les signaux ImageLoaded et ImageCaptured connects QAnalyseWidget dans MainWindow permettent de dclencher l'analyse sans que les widgets ne soient rfrencs entre eux.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 22 sur 28

3.2.3 Dveloppement et tests


L'utilisation de la bibliothque de reconnaissance palmaire sur un mobile impose d'en compiler les sources pour le systme Symbian. Il faut pour cela utiliser le compilateur crois ( ou cross-compiler ) fourni par Nokia. En pratique, il est ncessaire de remplacer dans les Makefiles des bibliothques en jeu ( Pandore, Torch et HandRecognition ) les variables $(CC) qui correspondent au compilateur de g++ g++-symbian. Les bibliothques sont ensuite copies dans le rpertoire de travail de Qt SQK, afin d'tres intgres l'application finale. Le projet a ensuite t cr dans Qt Creator, cet outil permettant de mener un projet pour environnement Symbian de manire transparente. De manire identique que pour l'interface PC, les bibliothques sont inclues au sein du fichier .pro, ainsi que les rpertoires des fichiers d'en-ttes qui seront utiliss par le logiciel. Le dveloppement en lui-mme n'a pas prsent de difficult particulire, grce aux comptences acquises durant les travaux pratiques d'interface graphique et de C++. Nous avons prohib l'utilisation du positionnement absolu pour privilgier l'utilisation des widgets qui permettent aux lments de se positionner automatiquement en fonction de l'espace disponible. L'application s'adaptera ainsi la rsolution de l'cran et en mode paysage uniquement. Les tests de l'application n'ont t raliss que grce Qt Simulator, dans la mesure o nous n'avions pas notre disposition de terminal mobile suffisamment rcent. Le crosscompiler propos par Nokia n'est en effet compatible qu' partir de Symbian S60 5th dition ( alors que le N95 que nous possdons tourne sous S60 3rd dition ). Le simulateur permet de tester de manire efficace le fonctionnement gnral de l'application, sans avoir l'installer chaque fois sur le systme. Toutefois, il demeure indispensable de procder des tests d'intgration de l'application sur un terminal physique pour certains lments : Dans le cadre du simulateur, la capture en direct du flux de la camra ne revient au final qu' charger des fichiers image statiques. Il faudrait donc tester ce module avec un capteur rel. En effet, certains systmes pourraient refuser le mode capture d'image ou les paramtres utiliss ( image/bmp, rsolution 640 x 480 ). L'analyse de l'image et la gnration du fichier de signature peuvent prendre entre 3 et 5 secondes sur un ordinateur double cur, qu'en est-il sur un terminal dot d'une moins grande puissance de calcul ? La comparaison entre les deux signatures de 64 x 64 pixels ne devrait pas poser de problmes de latence, mais il faut galement le vrifier.

Dans le cadre du simulateur, les tests sont concluants et offrent un bon aperu des capacits du logiciel. Signalons toutefois une difficult qui se poserait si on souhaitait diffuser telle quelle cette mthode d'authentification : la signature d'une empreinte est sensible au capteur utilis. Chaque capteur a en effet ses caractristiques ( rsolution, ouverture, luminosit, niveaux, aberrations optiques ). En consquence, la comparaison de deux signatures ne sera significative que si elles rsultent d'une prise de vue avec le mme appareil. Le seuil au-dessus duquel les signatures peuvent tre considres comme identiques dpendra lui aussi du matriel utilis.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 23 sur 28

Conclusion
La ralisation de ce projet a ainsi conduit l'accomplissement de rsultats concrets, respectant et tendant les spcifications du sujet propos. Tout d'abord, nous avons effectu un bref travail de recherche visant fixer les problmatiques en lien avec la biomtrie, et tablir l'tat de l'art du domaine de la reconnaissance palmaire. Puis nous avons pris connaissance de la bibliothque libHandRecognition qui nous a t fournie, et ralis les ncessaires mises jours et rorganisations de cette dernire en vue de leur utilisation via une interface graphique. A l'issue de cette prise en main, et d'un travail d'analyse prliminaire, nous avons mis en oeuvre deux dmonstrateurs exploitant la puissance des algorithmes de la reconnaissance palmaire : un identificateur permettant de dterminer qui appartient telle ou telle empreinte ( sur PC ), ainsi qu'un vrificateur d'identit ( sur mobile Symbian ). Durant ce projet, nous n'avons rencontr aucune difficult dans le travail d'quipe et la communication interne. La rpartition des tches s'est faite naturellement suivant les comptences de chacun, travaillant la plupart du temps en parallle, ou conjointement sur les parties critiques le ncessitant. En revanche il faut signaler que les codes sources qui nous ont t transmis ( la bibliothque libHandRecognition, le moteur de nos dmonstrateurs ) manquait de clart. A la lecture du sujet, nous pensions que nous n'aurions pas faire de modifications au sein de cette dernire. En pratique, la remettre en tat via la mise jour de Pandore et la r-criture des rgles de compilation nous a demand de nombreuses heures de travail. Par ailleurs, l'absence de documentation ( ou de commentaires prcis ) en a compliqu la comprhension. Ce travail a ncessit la mise en application de connaissances acquises au cours de notre formation, dont la programmation oriente objet ( en particulier le dveloppement de projets labors utilisant le framework graphique Qt ), ainsi que l'exploitation de plusieurs bibliothques denses et spcialises. D'un point de vue personnel, cela a galement t l'occasion d'enrichir nos acquis en ayant une premire exprience de l'utilisation de la biomtrie des fins d'identification et de vrification d'identit. Cette technologie est susceptible de se dvelopper dans les annes venir, par exemple dans le domaine de la montique dans lequel nous comptons justement nous spcialiser. Nous avons galement une exprience pratique de la ralisation d'un projet en vue de son implmentation sur un terminal mobile, ce qui implique des compilations croises pour un autre systme d'exploitation. Nous esprons que notre contribution ce projet fortement ancr dans une perspective d'volution l'ENSICAEN sera l'occasion de proposer de nouveaux sujets aux promotions futures. C'est dans cette optique que nous avons mis jour et nettoy la bibliothque libHandRecognition ; et veill organiser clairement les diffrents modules afin de faciliter leur ventuelle prise en main ainsi que leur exploitation future.

GOBERT Julien et RENOUS Nicolas http://palmprint.renous.fr/

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 24 sur 28

Annexes
Liste des diffrents modules exploits au sein de la bibliothque :
Dtection : ASM ( Active Shape Model ) Contour Classe permettant d'extraire et de manipuler le contour d'une main partir de l'image contenant la main dj segmente (sur fond noir). Les oprations possible sont : l'extraction des points caractristiques, le dplacement de ces points sur une image (vers les plus fortes valeurs), l'ajout de points intermdiaires. Dtection Classe de manipulation d'un contour actif. Va crer les points du contour actif a partir une premire segmentation de l'image, et faire voluer ces points sur le gradient de l'image initiale tout en appliquant des contraintes de forme issues de l'apprentissage. Toutes les mthodes de cette classe sont statiques. TableauPoints Classe permettant de manipuler des donnes, comme des listes de points. Elle permet de dfinir une donnes de rfrence et de pouvoir effectuer des oprations d'alignement par rapport celle-ci, selon la mthode de procruste. D'autres oprations sont possibles, comme le calcul de la moyenne ou une analyse en composante principale sur les donnes fournies. chaine Classe de gestion des liste chaines pour contours actif. ellipse Classe reprsentant une ellipse nrutil Algorithmes de traitement numrique Numerical Recipes Peau Segmentation Classe virtuelle dfinissant les mthodes de bases pour la segmentation par la couleur de la peau et indiquant les fonctions dpendant de chaque mthode. Segmentation_Bayes Classe dfinissant les mthodes de segmentation de peau par la mthode de Bayes. Segmentation_Gaussienne Classe dfinissant les mthodes segmentation de peau par la mthode des sommes de Gaussiennes. Segmentation_RN Classe dfinissant les mthodes segmentation de peau par rseau de neurones. Segmentation_heuristique Classe dfinissant les mthodes segmentation de peau par heuristique dans le domaine RGB.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 25 sur 28

Segmentation_SVM Classe permettant de segmenter une image l'aide d'un SVM ( Machine vecteurs de support ). Traitement Classe permettant de traiter les images mais aussi les chaines de caractres. Chargement Classe permettant de charger un fichier contenant la probabilit que chaque pixel soit un pixel de peau suivant sa couleur dans le domaine RGB. Divers Message Classe indiquant des commentaires sur le droulement de fonctions. constantes Fichier dfinissant les constantes d'exploitation du systme. stdafx Dfinition des en-ttes standard. svm Structures d'utilisation du SVM. temps Classe dfinissant le calcul des temps d'excution. Reconnaissance ASVM Classe permettant la reconnaissance de paume partir de SVM. Aondelette Classe pour analyse par ondelette et comparaison des rsultats de ces analyses. Distance Dfinition de calcul de distance euclidienne entre deux float. Distance_Hoad Classe permettant de calculer la distance de Hoad entre deux ensembles. EDP Dfinition de fonctions de calcul d'quations aux drives partielles. Geometrie Classe permettant de dtecter la position des points charactristiques d'une main de la carte de probabilit. Poc Classe pour analyse et comparaison par Phase and Orientation Code. Forme Fichier contentant la classe forme qui permet d'identifier un individu par la forme de sa main. Palmprint Dfinition de la classe palmprint qui permet la manipulation d'une image d'empreinte de la main. Main DLL_HandBiometrics Classe principale exploitant les fonctions des diffrents modules pour la reconnaissance et la comparaison des empreintes.

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 26 sur 28

Captures d'cran de l'interface PC ( Identificateur )

Initialisation de l'interface

Capture d'une empreinte partir de la webcam

Analyse russie affichage des rsultats intermdiaires

Affichage des candidats pour l'identification

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 27 sur 28

Captures d'cran de l'interface Symbian ( Vrificateur )

Lancement de l'application (pas d'empreinte enregistre)

Chargement d'une image

Enregistrement de l'empreinte, initialisation du message secret

Fig 3.2.3.a : Comparaison russie avec une seconde empreinte

Fig 3.2.3.b : Affichage / modification du message secret

Projet reconnaissance palmaire 2011 GOBERT / RENOUS

Page 28 sur 28