Reconnaissance Palmaire
Ralisation de dmonstrateurs sur PC et Mobile
2010 - 2011
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
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.
Page 3 sur 28
Page 4 sur 28
Page 5 sur 28
Page 6 sur 28
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.
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.
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.
Page 8 sur 28
Remarque : Les 3 semaines libres du mois de Janvier correspondent nos priodes de rvisions pour les examens de l'ENSICAEN et de l'IAE.
Page 9 sur 28
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.
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 ).
Page 11 sur 28
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.
Page 12 sur 28
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.
Ainsi, la bibliothque libHandRecognition a t nettoye et pourra servir de base propre aux projets futurs qui pourraient l'exploiter.
Page 14 sur 28
Page 15 sur 28
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.
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.
Page 17 sur 28
Page 18 sur 28
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.
Page 19 sur 28
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.
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.
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.
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.
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.
Page 22 sur 28
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.
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.
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.
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.
Page 26 sur 28
Initialisation de l'interface
Page 27 sur 28
Page 28 sur 28