<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Renaud+C</id>
	<title>air - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://air.imag.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Renaud+C"/>
	<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php/Special:Contributions/Renaud_C"/>
	<updated>2026-05-30T22:57:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4924</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4924"/>
		<updated>2012-03-27T22:52:10Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur a tenté de s&#039;identifier, il peut alors consulter différentes informations liées à sa tentative : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm31.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Le pourcentage de fausses acceptations et faux refus&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm32.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Un graphe qui affiche l&#039;évolution de la pression sur la signature référence de l&#039;utilisateur et sur sa dernière acquisition&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm33.png]][[File:ihm34.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Les informations du traitement algorithmique comme l&#039;arbre de décision ou les résultats des différentes étapes de l&#039;algorithme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Dossier_de_conception.pdf|Dossier de conception]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Notes_et_Conseils.pdf|Notes et Conseils]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:SoutenanceProjetBiometrieSignatures.pdf|Présentation du projet]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
http://subversion.assembla.com/svn/projet-biometrie/&lt;br /&gt;
&lt;br /&gt;
[[Media:SourcesBiometrieSignatures.rar|Archive des sources (+dll +lib +dump bdd)]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:SourcesBiometrieSignatures.rar&amp;diff=4923</id>
		<title>File:SourcesBiometrieSignatures.rar</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:SourcesBiometrieSignatures.rar&amp;diff=4923"/>
		<updated>2012-03-27T22:48:45Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4920</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4920"/>
		<updated>2012-03-27T22:40:17Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur a tenté de s&#039;identifier, il peut alors consulter différentes informations liées à sa tentative : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm31.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Le pourcentage de fausses acceptations et faux refus&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm32.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Un graphe qui affiche l&#039;évolution de la pression sur la signature référence de l&#039;utilisateur et sur sa dernière acquisition&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm33.png]][[File:ihm34.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Les informations du traitement algorithmique comme l&#039;arbre de décision ou les résultats des différentes étapes de l&#039;algorithme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Dossier_de_conception.pdf|Dossier de conception]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Notes_et_Conseils.pdf|Notes et Conseils]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:SoutenanceProjetBiometrieSignatures.pdf|Présentation du projet]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
http://subversion.assembla.com/svn/projet-biometrie/&lt;br /&gt;
&lt;br /&gt;
[[Media:Sources-Biometrie-Signatures.zip|Archive des sources (+dll +lib +dump bdd)]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:SoutenanceProjetBiometrieSignatures.pdf&amp;diff=4919</id>
		<title>File:SoutenanceProjetBiometrieSignatures.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:SoutenanceProjetBiometrieSignatures.pdf&amp;diff=4919"/>
		<updated>2012-03-27T19:24:19Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4918</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4918"/>
		<updated>2012-03-27T19:23:40Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur a tenté de s&#039;identifier, il peut alors consulter différentes informations liées à sa tentative : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm31.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Le pourcentage de fausses acceptations et faux refus&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm32.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Un graphe qui affiche l&#039;évolution de la pression sur la signature référence de l&#039;utilisateur et sur sa dernière acquisition&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm33.png]][[File:ihm34.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Les informations du traitement algorithmique comme l&#039;arbre de décision ou les résultats des différentes étapes de l&#039;algorithme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Dossier_de_conception.pdf|Dossier de conception]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Notes_et_Conseils.pdf|Notes et Conseils]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Media:SoutenanceProjetBiometrieSignatures.pdf|Présentation du projet]]&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
http://subversion.assembla.com/svn/projet-biometrie/&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Notes_et_Conseils.pdf&amp;diff=4916</id>
		<title>File:Notes et Conseils.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Notes_et_Conseils.pdf&amp;diff=4916"/>
		<updated>2012-03-27T12:35:30Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4915</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4915"/>
		<updated>2012-03-27T12:35:22Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur a tenté de s&#039;identifier, il peut alors consulter différentes informations liées à sa tentative : &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm31.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Le pourcentage de fausses acceptations et faux refus&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm32.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Un graphe qui affiche l&#039;évolution de la pression sur la signature référence de l&#039;utilisateur et sur sa dernière acquisition&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm33.png]][[File:ihm34.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Les informations du traitement algorithmique comme l&#039;arbre de décision ou les résultats des différentes étapes de l&#039;algorithme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Dossier_de_conception.pdf|Dossier de conception]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Notes_et_Conseils.pdf|Notes et Conseils]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Dossier_de_conception.pdf&amp;diff=4907</id>
		<title>File:Dossier de conception.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Dossier_de_conception.pdf&amp;diff=4907"/>
		<updated>2012-03-27T08:53:24Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4906</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4906"/>
		<updated>2012-03-27T08:53:15Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur a tenté de s&#039;identifier, il peut alors consulter différentes informations liées à sa tentative : &lt;br /&gt;
&lt;br /&gt;
[[File:ihm31.png]]&lt;br /&gt;
&#039;&#039;Le pourcentage de fausses acceptations et faux refus&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm32.png]]&lt;br /&gt;
&#039;&#039;Un graphe qui affiche l&#039;évolution de la pression sur la signature référence de l&#039;utilisateur et sur sa dernière acquisition&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm33.png]][[File:ihm34.png]]&lt;br /&gt;
&#039;&#039;Les informations du traitement algorithmique comme l&#039;arbre de décision ou les résultats des différentes étapes de l&#039;algorithme&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Dossier_de_conception.pdf|Dossier de conception]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Diagramme-de-Gantt.png&amp;diff=4895</id>
		<title>File:Diagramme-de-Gantt.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Diagramme-de-Gantt.png&amp;diff=4895"/>
		<updated>2012-03-27T08:11:48Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4893</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4893"/>
		<updated>2012-03-27T08:11:04Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt effectif=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4863</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4863"/>
		<updated>2012-03-26T14:17:55Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Coefficient de corrélation temporel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
Nous avons ajouté une option &amp;quot;faussaire&amp;quot; sur cette onglet. Lorsque l&#039;option est cochée, la signature du compte sur lequel l&#039;utilisateur essaie de s&#039;identifier est affiché sur l&#039;écran de signature. Cette option a été mise en place pour tester d&#039;avantage notre système. Ainsi nous pouvons voir si, avec le dessin de la signature, un imposteur peut réussir à s&#039;identifier. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet de calculer la ressemblance existante entre deux séries de données de même longueur, à savoir l&#039;évolution des coordonnées en fonction du temps.&lt;br /&gt;
&lt;br /&gt;
[[File:Equa.png]]&lt;br /&gt;
&lt;br /&gt;
Le Résultat varie entre 1 et -1. &lt;br /&gt;
&lt;br /&gt;
Plus le résultat est proche de 0, moins la relation est forte entre les deux listes de données.&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Rapport_des_seances.pdf&amp;diff=4855</id>
		<title>File:Rapport des seances.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Rapport_des_seances.pdf&amp;diff=4855"/>
		<updated>2012-03-26T13:16:16Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4854</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4854"/>
		<updated>2012-03-26T13:15:20Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;br /&gt;
&lt;br /&gt;
[[Media:Rapport_des_seances.pdf|Rapport des séances]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4852</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4852"/>
		<updated>2012-03-26T12:27:16Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Génération d&amp;#039;un modèle classification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de [http://www.cs.waikato.ac.nz/ml/weka WEKA] pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4851</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4851"/>
		<updated>2012-03-26T12:25:40Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Classification par arbre de décision */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle a rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4850</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4850"/>
		<updated>2012-03-26T12:19:21Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Matrice de radiation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
modifie leur valeur suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4849</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4849"/>
		<updated>2012-03-26T12:14:01Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Dynamic Time Warping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarités entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
fait passer leur valeur à certains seuils, suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4848</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4848"/>
		<updated>2012-03-26T12:10:08Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* 6. Ré-échantillonnage sur le nombre de points */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelques-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarité entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
fait passer leur valeur à certains seuils, suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4847</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4847"/>
		<updated>2012-03-26T12:07:12Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* 4. Centrage et Rotation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation. Cette rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelque-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarité entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
fait passer leur valeur à certains seuils, suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4846</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4846"/>
		<updated>2012-03-26T11:50:15Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Prétraitement des acquisitions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auxquels sont rattachés une abscisse, une ordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation.La rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelque-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarité entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
fait passer leur valeur à certains seuils, suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4843</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4843"/>
		<updated>2012-03-26T11:28:36Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Documents */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:Arduino2.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
Un système de reconnaissance par signature nécessite l&#039;application d&#039;algorithmes, que ce soit dans un premier temps pour obtenir des acquisitions de qualité, qu&#039;ensuite pour pouvoir les comparer de manière cohérente et enfin construire un modèle efficace de reconnaissance.&lt;br /&gt;
&lt;br /&gt;
==Prétraitement des acquisitions==&lt;br /&gt;
Les acquisitions obtenues par l&#039;intermédiaire de l&#039;interface, pour représenter la signature d&#039;un individu, sont des listes de points, auquels sont rattachés une abscisse, une coordonnée, une valeur de pression et un temps d&#039;acquisition.&lt;br /&gt;
Cependant, il est nécessaire d&#039;appliquer un prétraitement à ces acquisitions afin d&#039;en augmenter le nombre de points, corriger les différences entre des signatures successives (décalage, orientation et taille) et également obtenir un nombre de points fixe pour toutes les acquisitions pour pouvoir les comparer.&lt;br /&gt;
&lt;br /&gt;
Voilà une image d&#039;une acquisition originale:&lt;br /&gt;
&lt;br /&gt;
[[File:0_origine_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===1. Ré-échantillonnage sur le temps===&lt;br /&gt;
La première étape est propre à l&#039;utilisation de la tablette Bamboo et consiste à ne conserver qu&#039;un seul point par temps d&#039;acquisition. En effet, le système d&#039;acquisition de la tablette renvoie la liste de points acquis durant chaque période de 16ms et attache à chaque point cette période d&#039;acquisition plutôt que le temps réel.&lt;br /&gt;
Par exemple les points acquis en réalité aux temps 11ms et 14,5ms seront enregistrés avec un temps d&#039;acquisition de 16ms alors qu&#039;un point acquis au temps 16,8ms sera enregistré avec un temps d&#039;acquisition de 32ms.&lt;br /&gt;
Nous avons considéré que ce temps de 16ms étant relativement court, on ne conserverait qu&#039;un seul point pour un même temps d&#039;acquisition (par défaut le premier de la liste).&lt;br /&gt;
&lt;br /&gt;
De plus, on a également considéré que deux points espacés d&#039;un temps d&#039;acquisition supérieur à 32ms correspondait à un lever de stylo.&lt;br /&gt;
&lt;br /&gt;
===2. Interpolation===&lt;br /&gt;
&lt;br /&gt;
On applique une interpolation cubique sur l&#039;acquisition dans le but d&#039;obtenir un rendu de signature plus continu et lisse, et mieux comprendre les courbures de la signature d&#039;un individu. De plus, il est nécessaire de travailler sur des données assez fournies notamment pour des algorithmes de recouvrement par exemple.&lt;br /&gt;
&lt;br /&gt;
[[File:0_interpolee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
===3. Analyse en composantes principales===&lt;br /&gt;
&lt;br /&gt;
[[File:PCA.png]]&lt;br /&gt;
&lt;br /&gt;
L&#039;ACP est utilisé pour trouver les informations mathématiques qui décrivent la position des points: {{rouge|l&#039;axe principal}} et {{bleu|l&#039;axe secondaire}} et le centre de gravité d&#039;une forme binaire.&lt;br /&gt;
&lt;br /&gt;
===4. Centrage et Rotation===&lt;br /&gt;
[[File:0_centree_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:0_droite_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Pour réduire les problèmes de décalage, entre l&#039;image à tester et le modèle, on utilise les informations fournies par l&#039;ACP.&lt;br /&gt;
&lt;br /&gt;
Le centre de gravité permet de centrer l&#039;image comme le modèle.&lt;br /&gt;
&lt;br /&gt;
Les deux axes qui décrivent l&#039;alignement des points permettent de faire la rotation.La rotation est calculée à partir de l&#039;angle entre l&#039;axe principal et l&#039;axe horizontal.&lt;br /&gt;
&lt;br /&gt;
===5. Normalisation (Zoom)===&lt;br /&gt;
[[File:0_normalisee_Aurélie_4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le zoom est calculé pour obtenir la taille la plus grande possible pour l&#039;image. &lt;br /&gt;
&lt;br /&gt;
La distance entre le centre et le point le plus proche du rebord de l&#039;image évaluée = (distance max). &lt;br /&gt;
&lt;br /&gt;
Chaque point subit alors une translation proportionnelle au rapport (distance du point/distance max)*(demi-largeur de l&#039;image).&lt;br /&gt;
&lt;br /&gt;
===6. Ré-échantillonnage sur le nombre de points===&lt;br /&gt;
&lt;br /&gt;
Suivant la durée totale d&#039;acquisition, le nombre de points acquis peut être plus ou moins important et les précédentes étapes de prétraitement peuvent en supprimer quelque-uns également. Il est donc essentiel d&#039;effectuer un ré-échantillonnage sur les acquisitions après normalisation pour obtenir un nombre de points fixe (2000 points choisis actuellement) pour que les différents algorithmes de comparaison soient cohérents.&lt;br /&gt;
On a choisi d&#039;interpoler des points de manière uniforme si le nombre de points était inférieur à 2000 et d&#039;en supprimer, également de manière uniforme, si ce nombre était supérieur.&lt;br /&gt;
&lt;br /&gt;
==Algorithmes de comparaison==&lt;br /&gt;
&lt;br /&gt;
Pour la création du modèle (voir plus loin), il est nécessaire d&#039;obtenir un ensemble de données de comparaisons. On a ainsi sélectionné les comparaisons suivantes&lt;br /&gt;
&lt;br /&gt;
===Comparaisons simplistes===&lt;br /&gt;
&lt;br /&gt;
*Différence de temps total d&#039;acquisition&lt;br /&gt;
*Différence de nombre de lever de stylos&lt;br /&gt;
*Différence de pression moyenne&lt;br /&gt;
*...&lt;br /&gt;
&lt;br /&gt;
===Coefficient de corrélation temporel===&lt;br /&gt;
&lt;br /&gt;
A COMPLETER&lt;br /&gt;
&lt;br /&gt;
===Dynamic Time Warping===&lt;br /&gt;
&lt;br /&gt;
Les données des signatures sont converties en graphe temporel. Par exemple : x/temps ; y/temps ; etc.&lt;br /&gt;
&lt;br /&gt;
La méthode du DTW permet de calculer les dissimilarité entre les informations. &lt;br /&gt;
&lt;br /&gt;
Ici, les deux listes permettent de calculer une matrice dont le dernier élément contient la distance minimale entre les deux listes d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
===Matrice de radiation===&lt;br /&gt;
&lt;br /&gt;
La matrice de radiation est une méthode de reconnaissance de forme.&lt;br /&gt;
&lt;br /&gt;
Il existe deux possibilités pour calculer la matrice modèle : &lt;br /&gt;
&lt;br /&gt;
1-  Les points de la signature sont placés avec une valeur de 100. Autour de ces points, les cellules subissent une radiation qui &lt;br /&gt;
fait passer leur valeur à certains seuils, suivant la distance entre la cellule mentionnée et les points originaux de la signature.&lt;br /&gt;
Chaque cellule de la matrice ne peut que subir le rayonnement du point original le plus proche.&lt;br /&gt;
&lt;br /&gt;
2- De même que précédemment sauf que chaque cellule de la matrice subie la somme des rayonnements des points originaux.&lt;br /&gt;
&lt;br /&gt;
Après l&#039;évaluation de cette matrice modèle, le calcul se fait de deux manières différentes :&lt;br /&gt;
&lt;br /&gt;
1- Le résultat est la somme des valeurs enregistrées, dans la matrice modèle, qui sont aux coordonnées des points de la signature à tester.&lt;br /&gt;
&lt;br /&gt;
2- Le résultat est le rapport du nombre de cellules non nulles communes entre la matrice modèle et la signature à tester et le nombre de cellules non nul total.&lt;br /&gt;
&lt;br /&gt;
===Somme des différences d&#039;angles entre vecteurs===&lt;br /&gt;
&lt;br /&gt;
Cette méthode permet une reconnaissance de forme simple. &lt;br /&gt;
&lt;br /&gt;
Elle permet d&#039;obtenir l&#039;angle d&#039;écart entre la signature à tester et le modèle.&lt;br /&gt;
&lt;br /&gt;
Le résultat est la somme des angles entre chaque vecteur et le vecteur horizontal. Chaque angle est compris entre -Pi et Pi.&lt;br /&gt;
&lt;br /&gt;
==Génération d&#039;un modèle classification==&lt;br /&gt;
&lt;br /&gt;
Afin de réaliser la tâche de vérification pour la reconnaissance de signature, nous avons opté pour le choix de WEKA pour la création du modèle par apprentissage et la décision finale.&lt;br /&gt;
&lt;br /&gt;
===Construction du fichier de comparaison (apprenstissage.arff)===&lt;br /&gt;
&lt;br /&gt;
WEka utilise des fichiers ARFF pour construire et tester son modèle. Dans ce fichier on retrouve dans l&#039;ordre:&lt;br /&gt;
&lt;br /&gt;
* Le nom de la relation (utile pour nommer le fichier d&#039;apprentissage aux fichiers d&#039;identification et de décision)&lt;br /&gt;
&lt;br /&gt;
@relation signature&lt;br /&gt;
&lt;br /&gt;
* La liste des attributs de comparaison utilisés et leur type&lt;br /&gt;
&lt;br /&gt;
@attribute totalTime numeric&lt;br /&gt;
&lt;br /&gt;
@attribute numberPenUp numeric&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
@attribute CORTX numeric&lt;br /&gt;
&lt;br /&gt;
@attribute CORTY numeric&lt;br /&gt;
&lt;br /&gt;
@attribute pourcentageRadiance numeric&lt;br /&gt;
&lt;br /&gt;
* L&#039;attribut contenant les différentes classes (2 dans notre cas: signatures équivalentes ou non)&lt;br /&gt;
&lt;br /&gt;
@attribute accepte {no,yes}&lt;br /&gt;
&lt;br /&gt;
* Les données de comparaisons entre différentes signatures&lt;br /&gt;
&lt;br /&gt;
@data&lt;br /&gt;
&lt;br /&gt;
1019.466796875,2.0,0.9912756661011811,0.9970564473307176,17.837034225463867,yes&lt;br /&gt;
&lt;br /&gt;
663.466796875,0.0,0.9837515744201278,0.996214642908734,15.106257438659668,yes&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
1278.466796875,0.0,0.9729839482086351,0.9951841501724467,9.820034980773926,no&lt;br /&gt;
&lt;br /&gt;
1044.06640625,0.0,0.9859247460800329,0.9970413832907982,9.922861099243164,no&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour construire ces données, on doit donc comparer des signatures équivalentes (d&#039;une même personne) et des signatures différentes(de personnes différentes). Etant donné qu&#039;un utilisateur enregistre 5 acquisitions pour former sa &amp;quot;signature&amp;quot;, on peut donc réaliser 10 comparaisons entre signatures équivalentes par utilisateur. &lt;br /&gt;
Ainsi pour n utilisateurs, on aura 5*n comparaisons de signatures équivalentes.&lt;br /&gt;
Ensuite pour construire le modèle par apprentissage, il faut également comparer des signatures différentes. Pour cela, on effectue des comparaisons de manière aléatoire entre les signatures d&#039;utilisateurs différents sans jamais refaire la même comparaison. On se permet de réaliser deux fois plus de comparaisons inter-utilisateur qu&#039;intra-utilisateur (soit 10*n comparaisons).&lt;br /&gt;
&lt;br /&gt;
===Construction du modèle===&lt;br /&gt;
&lt;br /&gt;
Ensuite, on fournit ce jeu de données d&#039;apprentissage à Weka qui construit son modèle selon le classifier choisi. Pour cela, il construit un modèle à partir des 9/10 des données et teste sur le 1/10 restant. Il répète l&#039;opération 10 fois pour parcourir toutes les données et améliorer son modèle au fur et à mesure.&lt;br /&gt;
&lt;br /&gt;
Nous avons opté pour un arbre de décision (plus précisément le J48) pour classer nos données parmi les nombreuses méthodes possibles car il nous permet à posteriori de voir quelles sont les paramètres discriminants et pour quelles raisons il a décidé que 2 signatures se ressemblaient ou non.&lt;br /&gt;
&lt;br /&gt;
===Classification par arbre de décision===&lt;br /&gt;
&lt;br /&gt;
Une fois le modèle construit, on peut via l&#039;interface tenter de s&#039;identifier en sélectionnant la personne que l&#039;on prétend être et en faisant une acquisition. Le programme va alors récupérer les cinq acquisitions représentant la signature de la personne supposée, effectuer le prétraitement de ces acquisitions ainsi que de la nouvelle et les comparer comme pour la création du modèle.&lt;br /&gt;
&lt;br /&gt;
On va ainsi créer un fichier ARFF &amp;quot;identification.arff&amp;quot; qui contiendra les données de comparaisons comme pour celui de l&#039;apprentissage à la différence que le dernier attribut, celui de la classe, sera rempli d&#039;un &amp;quot;?&amp;quot; pour signifier que c&#039;est au modèle de décider à quelle classe associer cette comparaison (si les deux signatures se ressemblent ou pas).&lt;br /&gt;
&lt;br /&gt;
Une fois que le modèle à rendu sa décision concernant ces cinq comparaisons, on a décidé que la personne avait réussie à s&#039;identifier si la nouvelle acquisition était désignée comme ressemblante à au moins trois des cinq acquisitions enregistrées dans la base de données.&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;br /&gt;
&lt;br /&gt;
[[Media:Cahier_des_charges.pdf|Cahier des charges]]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Cahier_des_charges.pdf&amp;diff=4842</id>
		<title>File:Cahier des charges.pdf</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Cahier_des_charges.pdf&amp;diff=4842"/>
		<updated>2012-03-26T11:27:27Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4780</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4780"/>
		<updated>2012-03-21T12:11:09Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et de reconnaissance de signatures a déjà été traité par une équipe d&#039;étudiants en 2010-2011. Nous avons donc étudié ce qui avait été réalisé afin de ne pas perdre les efforts déjà fournis. De cette étude nous avons retenu les conseils et remarques faits sur la partie algorithmique de comparaison de signatures. De plus, nous allons reprendre quelques idées de leur IHM.&lt;br /&gt;
Pour plus de détails, consulter les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouvel utilisateur dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle calculé et enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Renaud Collin&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Chef de projet&lt;br /&gt;
*Responsable documents,&lt;br /&gt;
*Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Flavien Garcia &amp;amp; Corentin Foucault :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Etude de l&#039;existant,&lt;br /&gt;
*Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Christophe Havard :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Montage DS + Arduino,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Thibaud Michel&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
*Mise en place de la base de données,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Aurélie Moiroux :&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Acquisition des données depuis la tablette,&lt;br /&gt;
*Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
&lt;br /&gt;
Cette tablette est un ajout de matériel par rapport à l&#039;année précédente. Ainsi, nous avons pour notre projet deux interfaces pour l&#039;acquisition des signatures. Cela nous a donc amené à étudier la tablette graphique et les librairies Java permettant de nous en servir. &lt;br /&gt;
L&#039;IHM a également été modifiée pour permettre à l&#039;utilisateur de choisir quelle interface d&#039;acquisition il souhaite utiliser. &lt;br /&gt;
&lt;br /&gt;
*La librairie permettant d&#039;utiliser cette tablette est : Jpen [http://sourceforge.net/apps/mediawiki/jpen/index.php?title=Main_Page]&lt;br /&gt;
*Le driver de la tablette CTH-460 est disponible ici : [http://www.wacom-asia.com/download/download_index.html]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=&lt;br /&gt;
&lt;br /&gt;
Lorsque l&#039;utilisateur démarre l&#039;application, celle-ci s&#039;ouvre sur l&#039;onglet &amp;quot;Nouvel utilisateur&amp;quot;. Si il n&#039;a pas encore de compte, il doit alors rentrer son nom, son prénom, et procéder à l&#039;acquisition de cinq signatures (la même) afin de pouvoir s&#039;enregistrer. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Nouvel Utilisateur&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:ihm1.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;utilisateur possède un compte, il peut se rendre sur l&#039;onglet &amp;quot;Identification&amp;quot;. Afin de s&#039;authentifier l’utilisateur doit sélectionner son nom, puis signer de la même signature que lors de l&#039;acquisition. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Identification&amp;quot;&#039;&#039;&lt;br /&gt;
 &lt;br /&gt;
[[File:ihm2.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le système affiche alors la réponse de l&#039;authentification : la réussite ou l’échec. Une question apparaît également afin d&#039;établir des statistiques de performance du système. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm21.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Onglet &amp;quot;Infos&amp;quot;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ihm3.jpg]]&lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;br /&gt;
&lt;br /&gt;
=Documents=&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Arduino_DS.png&amp;diff=4718</id>
		<title>File:Arduino DS.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Arduino_DS.png&amp;diff=4718"/>
		<updated>2012-03-12T14:06:32Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: uploaded a new version of &amp;quot;File:Arduino DS.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Arduino_DS.png&amp;diff=4717</id>
		<title>File:Arduino DS.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Arduino_DS.png&amp;diff=4717"/>
		<updated>2012-03-12T14:04:35Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4716</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4716"/>
		<updated>2012-03-12T14:02:23Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Montage Arduino + Ecran de DS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et reconnaissance de signature a été traité par une équipe d&#039;étudiants de l&#039;année précédente. Nous avons donc étudié leur travail. Nous retiendrons leurs conseils et remarques sur la partie algorithmique de comparaison de signatures, et nous nous inspirerons de leur IHM (voir plus bas les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouveau client dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
Renaud Collin :&lt;br /&gt;
	Chef de projet,&lt;br /&gt;
	Responsable documents,&lt;br /&gt;
	Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
Flavien Garcia &amp;amp; Corentin Foucault :&lt;br /&gt;
	Etude de l&#039;existant,&lt;br /&gt;
	Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
Christophe Havard :&lt;br /&gt;
	Montage DS + Arduino,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Thibaud Michel :&lt;br /&gt;
	Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
	Mise en place de la base de données,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Aurélie Moiroux :&lt;br /&gt;
	Installation tablette,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
[[File:Arduino_DS.png]]&lt;br /&gt;
&lt;br /&gt;
=IHM=  &lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4697</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4697"/>
		<updated>2012-03-07T15:33:29Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Organisation de l&amp;#039;équipe */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et reconnaissance de signature a été traité par une équipe d&#039;étudiants de l&#039;année précédente. Nous avons donc étudié leur travail. Nous retiendrons leurs conseils et remarques sur la partie algorithmique de comparaison de signatures, et nous nous inspirerons de leur IHM (voir plus bas les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouveau client dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
Renaud Collin :&lt;br /&gt;
	Chef de projet,&lt;br /&gt;
	Responsable documents,&lt;br /&gt;
	Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
Flavien Garcia &amp;amp; Corentin Foucault :&lt;br /&gt;
	Etude de l&#039;existant,&lt;br /&gt;
	Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
Christophe Havard :&lt;br /&gt;
	Montage DS + Arduino,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Thibaud Michel :&lt;br /&gt;
	Acquisition des données (depuis le montage DS + Arduino et depuis la tablette),&lt;br /&gt;
	Mise en place de la base de données,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Aurélie Moiroux :&lt;br /&gt;
	Installation tablette,&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=IHM=  &lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Projets_2011-2012&amp;diff=4696</id>
		<title>Projets 2011-2012</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Projets_2011-2012&amp;diff=4696"/>
		<updated>2012-03-07T15:02:29Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* RICM5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lien vers [http://air.imag.fr/mediawiki/index.php/Projets_2010-2011 les projets 2010-2011]&lt;br /&gt;
==RICM4==&lt;br /&gt;
&lt;br /&gt;
 {|class=&amp;quot;wikitable alternance&amp;quot;&lt;br /&gt;
 |+ Affectation des projets RICM4 2011-2012&lt;br /&gt;
 |-&lt;br /&gt;
 |&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Sujet&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Enseignant(s)&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Etudiants&lt;br /&gt;
 !scope=&amp;quot;col&amp;quot;| Fiche de suivi&lt;br /&gt;
 |- &lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
 | [[Qemu Cortex-M3 Boards | Qemu et carte ARM Cortex-M3]]&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | A.Clavelin, T. Eid, M. Mercier &lt;br /&gt;
 | [[Proj-2011-2012-qemu | &#039;&#039;&#039;Fiche&#039;&#039;&#039; ]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
 | Risques Industriels:&lt;br /&gt;
 | Didier Donsez, Didier Mazet-Brachet, Hassan Saïbi&lt;br /&gt;
 | S. Vigier, F. Eloy&lt;br /&gt;
 | [[Proj-2011-2012-Risques_Industriels | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
 | [[Home Security Sweet Home 2012]] + [[iVLC|Ventilation efficace énergétiquement]]&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | N.-J. Caramelli, M. Ho&lt;br /&gt;
 | [[Proj-2011-2012-Home_Security_Sweet_Home | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
 | [[Camera d&#039;observation à basse altitude]]:&lt;br /&gt;
 | Didier Donsez, David Eon, Didier Hantz&lt;br /&gt;
 | N. Tchounikine, T. Aufort&lt;br /&gt;
 | [[Proj-2011-2012-CameraBasseAltitude | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
 | [[Education à la respiration]]&lt;br /&gt;
 | Julie Fontecave, Pierre-Yves Gumery, Didier Donsez, Olivier Richard,&lt;br /&gt;
 | M. Raoux, J. Segala&lt;br /&gt;
 | [[Proj-2011-2012-ProjetAMO | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
 | [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap]]&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | L. Xiao, M. Nicolaccini, Y. Fall, S. Prak&lt;br /&gt;
 | [[Proj-2011-2012-BrasRobotiqueHandicap| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]] &lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
 | [[Robot de télé-présence]]&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | F. Fourure, S. Bisch&lt;br /&gt;
 | [[Pro-2011-2012-Telepresence | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
 | [[Visualisation de données volcanologiques]]&lt;br /&gt;
 | Paule-Annick Davoine, Didier Donsez&lt;br /&gt;
 | M. Chevallier, C. Oswald, C. Gnatto&lt;br /&gt;
 | [[Proj-2011-2012-Visualisation_de_données_volcanologiques | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
 | [[elua arduino stm32F4 Discovery | eLua et approche Arduino sur STM32F4-DISCOVERY]]&lt;br /&gt;
 | Olivier Richard&lt;br /&gt;
 | S. Harrache, E. Paz&lt;br /&gt;
 | [[Proj-2011-2012-elua-arduino | &#039;&#039;&#039;Fiche&#039;&#039;&#039;]]&lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
 | IHM mobile pour le visualisation et le contrôle d&#039;onduleurs&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | Q. Gu, C. Wirth&lt;br /&gt;
 | [[Proj-2011-2012-ihm_mobile_onduleurs| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]] &lt;br /&gt;
 |-&lt;br /&gt;
 !scope=&amp;quot;row&amp;quot;| 11&lt;br /&gt;
 | [[GroundCTRL]]&lt;br /&gt;
 | Didier Donsez&lt;br /&gt;
 | L. Dauvergne, F. Levêque, R. Ngouala&lt;br /&gt;
 | [[Proj-2011-2012-GroundCTRL| &#039;&#039;&#039;Fiche&#039;&#039;&#039;]] &lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
# [[Qemu Cortex-M3 Boards | Qemu et carte ARM Cortex-M3]]: ((extension de l&#039;émulateur Qemu) (Olivier Richard) (2-3 RICM4-SR)&lt;br /&gt;
# Risques Industriels: (Didier Donsez, Didier Mazet-Brachet, RICM4 + PRI4 ?)&lt;br /&gt;
# [[Home Security Sweet Home 2012]] + [[iVLC|Ventilation efficace énergétiquement]]: (Didier Donsez, RICM4 SR + CM)&lt;br /&gt;
# [[Camera d&#039;observation à basse altitude]]:  (Didier Donsez, David Eon, Didier Hantz, RICM4, 3I4)&lt;br /&gt;
# [[Education à la respiration]]: (Projet AMO TIS4 2011-2012, Julie Fontecave, Pierre-Yves Gumery, TIS4, 3I4, RICM4 CM)&lt;br /&gt;
# [[Bras Robotique Handicap | Bras robotique à commande gestuelle pour le handicap]]:(Olivier Richard, RICM4 SR + CM)&lt;br /&gt;
# [[Robot de télé-présence]]:  (RICM4 SR et CM, 3I4, Didier Donsez)&lt;br /&gt;
# [[Visualisation de données volcanologiques]]: (RICM4 CM et Geotech4)&lt;br /&gt;
# [[ArduiLab]] avec STM32 (RICM4 SR + CM, Olivier Richard) &lt;br /&gt;
# [[elua arduino stm32F4 Discovery | eLua et approche Arduino sur STM32F4-DISCOVERY]]: (RICM4 SR, Olivier Richard) &lt;br /&gt;
# IHM mobile pour le visualisation et le contrôle d&#039;onduleurs: (RICM4 CM + SR, Didier Donsez)&lt;br /&gt;
# Shield Arduino pour pad gestuel 3D et bibliothèque Processing pour l&#039;IHM (Didier Donsez, 1 RICM4 + 1 3I4)&lt;br /&gt;
&lt;br /&gt;
Priorité 2&lt;br /&gt;
# [[3DWebCam]] (Didier Donsez, 1 à 2 RICM4)&lt;br /&gt;
# [[GroundCTRL]] (Didier Donsez, 2 RICM4)&lt;br /&gt;
# Projet AMO suite (Didier Donsez, RICM4 + 3I4 + TIS4)&lt;br /&gt;
&lt;br /&gt;
==RICM5==&lt;br /&gt;
* [[Projet &amp;quot;Biométrie&amp;quot;]] (Laurent Besacier)&lt;br /&gt;
## [[PAGE WIKI ETUDIANTS 2011-12 SERRURE VOCALE]] &lt;br /&gt;
## [[PAGE WIKI ETUDIANTS 2011-12 SIGNATURES]]&lt;br /&gt;
* [[EA2011| Etudes d&#039;Approfondissement]] 2011 en RICM5&lt;br /&gt;
## [[Haptic Glove]] (Didier Donsez)&lt;br /&gt;
## [[FreeRTOS on STM32 Discovery]]&lt;br /&gt;
* [[SmartGrid Marketplace]]&lt;br /&gt;
* [[GreenIT Autonomic Manager]]&lt;br /&gt;
&lt;br /&gt;
==ERASMUS RICM5==&lt;br /&gt;
# [[FollowMe, CatchMe]] (un drone+webcam pour le suivi de personne) (Michaël Périn)&lt;br /&gt;
# [[KiFit]] Kinect + Wiifit for functional reeducation (Didier Donsez, Nicolas Vuillerme)&lt;br /&gt;
&lt;br /&gt;
==M2PGI PM2M==&lt;br /&gt;
Contact: Didier Donsez, Thomas Calmant&lt;br /&gt;
# [[Drone roulant de Prévention des Risques Industriels]] (Didier Donsez)&lt;br /&gt;
# [[Fiche de Présence Contactless JavaCard]] (Gérard Forestier, Didier Donsez)&lt;br /&gt;
# [[eCOM Warehouse Management System]] (Didier Donsez)&lt;br /&gt;
# [[Détection de trafic automobile et de d’attente aux feux]] (Didier Donsez, Thomas Calmant)&lt;br /&gt;
&lt;br /&gt;
==L3 Info==&lt;br /&gt;
Contact: Vincent Danjean&lt;br /&gt;
&lt;br /&gt;
==Réserve==&lt;br /&gt;
# [[Serrure à clé MIDI multifactorielle]] (Didier Donsez)&lt;br /&gt;
# [[Table interactive musicale]] (Didier Donsez)&lt;br /&gt;
# [[iMailbox]] (Didier Donsez)&lt;br /&gt;
# [[AmILight]] (eclairage d&#039;ambience intelligent) (Didier Donsez)&lt;br /&gt;
# [[PDAmeetPDA]] (synchronisation d&#039;agenda) (Michaël Périn)&lt;br /&gt;
# [[1 000 000 VMs]] (expérimentation d&#039;application distribuée à très grande échelle) (Olivier Richard) (2-3 RICM4)&lt;br /&gt;
# [[Multiple Kinect]] (utilisation simultanée de plusieurs Kinect) (Olivier Richard) (RICM ou 3I)&lt;br /&gt;
# [[Kinect musicale]] (Didier Donsez) (RICM)&lt;br /&gt;
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)&lt;br /&gt;
# Ocaml on AVR (Arduino)&lt;br /&gt;
# Ocaml on Cortex-M3&lt;br /&gt;
# [[Arduino on STM32 Discovery]]&lt;br /&gt;
# [[Reverse Geocache Puzzle Box]]&lt;br /&gt;
# [[OSGi ME]] (Didier Donsez)&lt;br /&gt;
# [[Affichage Etudiant à Polytech]]&lt;br /&gt;
# Synthèse 3D + motion capture Kinect&lt;br /&gt;
# Logiciel d&#039;[[apprentissage du calcul]] sur tablette Android (reconnaissance de chiffres manuscrits)&lt;br /&gt;
# Plancher de verre (saint gobain) à la [http://www.wat.tv/video/mickael-jackson-billie-jean-oewj_2ey2h_.html Mickael Jackson dans Billie Jean] ! woo&lt;br /&gt;
# [[Ktechlab Simavr Arduino | Ktechlab et integration de Simavr(Arduino)]] (Olivier Richard) (2-3 RICM4-SR)&lt;br /&gt;
# [[CNC]]&lt;br /&gt;
# [[Idées en Vrac]]&lt;br /&gt;
# STM32 Primer2 et communication (Olivier Richard) (2-3 RICM4-SR)&lt;br /&gt;
# Scheme Everywhere (Olivier Richard) (2-3 RICM4-SR)&lt;br /&gt;
# [[Projet Station Météo]]&lt;br /&gt;
# Ocaml on AVR (Arduino)&lt;br /&gt;
# Ocaml on Cortex-M3&lt;br /&gt;
# [[Table interactive musicale]] (Didier Donsez)&lt;br /&gt;
# [[AmILight]] (eclairage d&#039;amnbience intelligent) (Didier Donsez)&lt;br /&gt;
# [[Cube pointeur]] d&#039;activité ingénieur&lt;br /&gt;
# [http://www.instructables.com/id/Puppeteer-Motion-Capture-Costume/ Puppeteer Motion-Capture Costume]&lt;br /&gt;
# [[Musical Staircase]] @ Polytech (Didier Donsez, 1 RICM4 + 1 3I4)&lt;br /&gt;
# [[Total Recall]] (Didier Donsez)&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Bamboo.jpg&amp;diff=4695</id>
		<title>File:Bamboo.jpg</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Bamboo.jpg&amp;diff=4695"/>
		<updated>2012-03-07T15:00:31Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: Tablette Bamboo d&amp;#039;acquisition de signatures pour le projet de Biométrie (Signatures) RICM5 2011-2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Tablette Bamboo d&#039;acquisition de signatures pour le projet de Biométrie (Signatures) RICM5 2011-2012&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Diagramme-de-Gantt-previsionnel.png&amp;diff=4694</id>
		<title>File:Diagramme-de-Gantt-previsionnel.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Diagramme-de-Gantt-previsionnel.png&amp;diff=4694"/>
		<updated>2012-03-07T14:59:51Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: Diagramme de Gantt prévisionnel pour le projet de Biométrie (Signatures) RICM5 2011-2012&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Diagramme de Gantt prévisionnel pour le projet de Biométrie (Signatures) RICM5 2011-2012&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4693</id>
		<title>PAGE WIKI ETUDIANTS 2011-12 SIGNATURES</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES&amp;diff=4693"/>
		<updated>2012-03-07T14:58:49Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: Created page with &amp;quot;=Présentation du projet=  Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&amp;#039;un client ou utilisateur afin …&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Présentation du projet=&lt;br /&gt;
&lt;br /&gt;
Le projet de Biométrie &amp;quot;Acquisition et reconnaissance de signatures&amp;quot; consiste à enregistrer une signature numérique d&#039;un client ou utilisateur afin de permettre ultérieurement une identification grâce à cette modalité biométrique.&lt;br /&gt;
&lt;br /&gt;
=Contexte=&lt;br /&gt;
===Etude de l&#039;existant===&lt;br /&gt;
&lt;br /&gt;
Ce projet d&#039;acquisition et reconnaissance de signature a été traité par une équipe d&#039;étudiants de l&#039;année précédente. Nous avons donc étudié leur travail. Nous retiendrons leurs conseils et remarques sur la partie algorithmique de comparaison de signatures, et nous nous inspirerons de leur IHM (voir plus bas les parties &amp;quot;Algorithmes&amp;quot; et &amp;quot;IHM&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
===Suites prévues===&lt;br /&gt;
L&#039;année prochaine, une nouvelle équipe reprendra surement ce projet de biométrie. Il est donc important de laisser une bonne documentation et des conseils.&lt;br /&gt;
&lt;br /&gt;
=Cadre de réponse=&lt;br /&gt;
Nous réaliserons une IHM qui nous permettra, d&#039;une part, d&#039;enregistrer un nouveau client dans la base de données (acquisition de signature), et d&#039;autre part de tester l&#039;identification d&#039;un utilisateur. Pour cette identification, la signature sera comparée au modèle enregistré. Afin de pouvoir effectuer cette comparaison, nous récupèrerons, lors de l&#039;acquisition des signatures, différentes informations qui nous permettront d&#039;appliquer des algorithmes de comparaison de signatures (coordonnées de chaque point, pression du stylet, temps). Il faudra donc étudier les différentes méthodes possibles de comparaison de ces signatures et implémenter l&#039;algorithme conçu à partir de cette étude.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Organisation de l&#039;équipe=&lt;br /&gt;
Renaud Collin :&lt;br /&gt;
	Chef de projet&lt;br /&gt;
	Responsable documents&lt;br /&gt;
	Etude de l&#039;existant&lt;br /&gt;
&lt;br /&gt;
Flavien Garcia &amp;amp; Corentin Foucault :&lt;br /&gt;
	Etude de l&#039;existant&lt;br /&gt;
	Construction et codage de l&#039;algorithme&lt;br /&gt;
&lt;br /&gt;
Christophe Havard :&lt;br /&gt;
	Montage DS + Arduino&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Thibaud Michel :&lt;br /&gt;
	Acquisition des données (depuis le montage DS + Arduino et depuis la tablette)&lt;br /&gt;
	Mise en place de la base de données&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
Aurélie Moiroux :&lt;br /&gt;
	Installation tablette&lt;br /&gt;
	Conception et codage IHM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Diagramme de Gantt prévisionnel=&lt;br /&gt;
&lt;br /&gt;
[[File:Diagramme-de-Gantt-previsionnel.png]]&lt;br /&gt;
&lt;br /&gt;
=Matériel=&lt;br /&gt;
===Tablette Bamboo CTH-460===&lt;br /&gt;
[[File:bamboo.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Montage Arduino + Ecran de DS===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=IHM=  &lt;br /&gt;
&lt;br /&gt;
=Algorithmes=&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Haptic_Glove&amp;diff=3873</id>
		<title>Haptic Glove</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Haptic_Glove&amp;diff=3873"/>
		<updated>2011-11-29T12:56:00Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* UE/Module: Projet IHM Avancé de RICM5&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM5: Christophe Havard (chef de projet), Renaud Collin&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
La [[Haptic perception|perception haptique]] est désormais présente dans la plupart des téléphones portables, les manettes de jeux vidéos, les consoles de jeu portables etc. Son intérêt premier est d&#039;augmenter les sensations de l&#039;utilisateur en stimulant, en plus de son sens de la vue, son sens du [http://fr.wikipedia.org/wiki/Toucher|&#039;&#039;&#039;toucher&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
La plupart des appareils nomades possèdent un vibreur qui permet d&#039;associer un stimulus visuel (action sur un objet virtuel) à un stimulus physique, en l’occurrence une vibration de l&#039;appareil.&lt;br /&gt;
Par exemple, sur la plupart des téléphones, il est possible de faire vibrer l&#039;appareil à chaque appui sur une lettre lors de l&#039;écriture d&#039;un SMS.&lt;br /&gt;
&lt;br /&gt;
Mais qu&#039;en est-il d&#039;une grande/très grande surface tactile type &amp;quot;table&amp;quot;? Il est impossible d&#039;y intégrer des vibreurs. Il faut donc trouver un autre moyen de faire &#039;&#039;&#039;ressentir&#039;&#039;&#039; à l&#039;utilisateur les actions qu&#039;il effectue sur la surface.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise donc à réaliser un &#039;&#039;&#039;gant&#039;&#039;&#039; qui permet d&#039;associer à chaque action sur un objet virtuel, une vibration dans la main de l&#039;utilisateur.&lt;br /&gt;
Le cerveau de celui-ci fera naturellement le lien entre ce qu&#039;il voit et ce qu&#039;il ressent.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Dans le cadre des projets d&#039;approfondissement RICM5, nous avons proposé de concevoir et fabriquer un gant équipé de vibreurs à chaque doigt. De plus, nous fournirons l&#039;API permettant de contrôler les vibrations de chaque doigt.&lt;br /&gt;
&lt;br /&gt;
== Pour qui ? ==&lt;br /&gt;
Ce concept de gant à retour haptique intéresse particulièrement les personnes mal-voyantes qui peuvent, malgré leur cécité, ressentir les actions qu&#039;elles effectuent sur la surface interactive. Cela leur permet de savoir par exemple, à quel moment elles sont entrain de toucher un bouton ou bien lorsqu&#039;elles déplacent un objet virtuel à l&#039;intérieur d&#039;une une zone particulière de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Les joueurs sont également une cible particulière puisqu&#039;ils expérimentent ce genre de dispositifs depuis longtemps via les contrôleurs de jeu vibrant. A chaque action sur l&#039;écran est associé une vibration du dispositif (ex : dans un jeu de voiture, lorsque la voiture entre en collision).&lt;br /&gt;
&lt;br /&gt;
Enfin, ce gant peut-être adapté à de nombreuses applications diverses et variées, pour tout type de public. Les interactions possibles n&#039;ont de limites que celles de l&#039;imagination du développeur.&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
Comme vous pouvez le voir sur les photos ci-dessous, nous avons collé 5 vibreurs plats sur chaque emplacement de doigt du gant. L&#039;emplacement des doigts est optimal pour nous puisqu&#039;il répond à nos contraintes : &lt;br /&gt;
* La zone la plus sensible du doigt est l&#039;extrémité mais nous voulons pouvoir interagir avec une surface tactile. Il n&#039;est pas donc pratique de coller un vibreur au bout des doigts.&lt;br /&gt;
* Les vibreurs ne doivent pas être trop dans la paume afin que l&#039;on puisse distinguer la vibration sur chaque doigt efficacement.&lt;br /&gt;
* On place alors les vibreurs sur la première phalange : c&#039;est un endroit relativement sensible (ou en tous cas, bien assez pour sentir une vibration) et qui laisse les doigts relativement libres de leur mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Image:HapticGlove 3.png|500px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
== Fabrication ==&lt;br /&gt;
Pour réaliser ce gant, voici comment nous avons procédé : &lt;br /&gt;
* Nous avons commencé par coudre avec du fil conducteur deux brins par doigt. Ceux-ci nous permettront de relier le vibreur correspondant à la carte Arduino.&lt;br /&gt;
[[Image:HapticGlove_1.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Puis nous avons cousu du tissu conducteur sur le pouce, l&#039;index et le majeur. Pour chacun de ces morceaux de tissus, on fera correspondre un brin de fil conducteur.&lt;br /&gt;
[[Image:HapticGlove_2.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Nous fixons ensuite les vibreurs à l&#039;emplacement prévu. Ceux-ci sont autocollants donc pas besoin de colle spéciale. Nous laissons dépasser du fil électrique de chaque vibreur pour pouvoir les relier au fil conducteur.&lt;br /&gt;
* Nous effectuons ensuite la liaison entre le fil conducteur et les fils électriques de chaque coté du brin. Pour cela, nous enroulons le fil électrique sur lui-même pour former un petit cercle sur lequel nous rajoutons un bout de soudure, afin que le cercle tienne bien. Nous faisons ensuite un noeud avec le fil conducteur dans ce cercle.&lt;br /&gt;
[[Image:HapticGlove_5.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Voilà un aperçu du résultat final&lt;br /&gt;
[[Image:HapticGlove_6.JPG|300px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
==Matériel==&lt;br /&gt;
* 1 glove (cotton, leather)&lt;br /&gt;
* [[Arduino]] Uno or Lilypad or [[Arduino FIO]]&lt;br /&gt;
* 1 XBee module or Bluetooth module for wireless communication&lt;br /&gt;
* 5 [[Vibration motor]]s&lt;br /&gt;
&lt;br /&gt;
Optional&lt;br /&gt;
* 1 [http://ardx.org/src/guide/2/ARDX-EG-SPAR-FR-WEB.pdf#page=34 Flex sensor]&lt;br /&gt;
* 1 [http://www.sparkfun.com/products/9267 Accelerometer ADXL335]&lt;br /&gt;
* 1 gyroscope (WiiMotion)&lt;br /&gt;
For finger contacts&lt;br /&gt;
* Conductive textiles&lt;br /&gt;
** http://www.sparkfun.com/products/10055&lt;br /&gt;
** http://www.sparkfun.com/products/10056&lt;br /&gt;
* Conductive threads &lt;br /&gt;
** http://www.sparkfun.com/products/8549&lt;br /&gt;
** http://www.sparkfun.com/products/8544&lt;br /&gt;
&lt;br /&gt;
[[Image:HapticGlovev0.jpg|500px|Haptic Glove v0.1]]&lt;br /&gt;
[[Image:Arduino_breadboard.JPG|500px|Haptic Glove v0.2]]&lt;br /&gt;
[[Image:HapticGlove_1.jpg|500px|Haptic Glove v0.2]]&lt;br /&gt;
[[Image:HapticGlove 2.jpg|500px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
Pour la programmation de ce gant, nous avons utilisé d&#039;un coté l&#039;IDE Arduino et le langage de programmation d&#039;Arduino, d&#039;un autre coté un programme Java qui utilise la librairie [http://rxtx.qbang.org/wiki/index.php/Download | RXTX] (permet la communication via le port série).&lt;br /&gt;
&lt;br /&gt;
Pour piloter le gant, il suffit de : &lt;br /&gt;
* Charger [[File:motors_drive_2.pde|ce programme]] Arduino dans l&#039;Arduino,&lt;br /&gt;
* Intégrer le jar contenue dans l&#039;archive [[File:Hapticglove.zip]]&lt;br /&gt;
* Essayer avec ce bout de code :&lt;br /&gt;
 IGlove glove = GloveFactory.getNewGlove(&amp;quot;COM3&amp;quot;);&lt;br /&gt;
* Vous instanciez un nouveau Gant &#039;&#039;&#039;physique&#039;&#039;&#039; (un gant &amp;quot;virtuel&amp;quot; est également disponible et permet de tester votre application sans nécessiter de gant) sur le port &amp;quot;COM3&amp;quot; de votre ordinateur.&lt;br /&gt;
 glove.vibrate(FINGERS.THUMB, 200);&lt;br /&gt;
* La première valeur indique quel doigt faire vibrer. La seconde indique le temps de la vibration (en millisecondes).&lt;br /&gt;
*Vous pouvez remplacer THUMB (le pouce) par l&#039;une de ces 5 autres valeurs : &lt;br /&gt;
** FOREFINGER (index)&lt;br /&gt;
** MIDDLEFINGER (majeur)&lt;br /&gt;
** RINGFINGER (annulaire)&lt;br /&gt;
** LITTLEFINGER (auriculaire)&lt;br /&gt;
** ALL (tous les doigt en même temps)&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Haptic_Glove&amp;diff=3872</id>
		<title>Haptic Glove</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Haptic_Glove&amp;diff=3872"/>
		<updated>2011-11-29T12:55:28Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* UE/Module: Projet IHM Avancé de RICM5&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM5: Christophe Havard (chef de projet), Renaud Collin&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
La [[Haptic perception|perception haptique]] est désormais présente dans la plupart des téléphones portables, les manettes de jeux vidéos, les consoles de jeu portables etc. Son intérêt premier est d&#039;augmenter les sensations de l&#039;utilisateur en stimulant, en plus de son sens de la vue, son sens du [http://fr.wikipedia.org/wiki/Toucher|&#039;&#039;&#039;toucher&#039;&#039;&#039;].&lt;br /&gt;
&lt;br /&gt;
La plupart des appareils nomades possèdent un vibreur qui permet d&#039;associer un stimulus visuel (action sur un objet virtuel) à un stimulus physique, en l’occurrence une vibration de l&#039;appareil.&lt;br /&gt;
Par exemple, sur la plupart des téléphones, il est possible de faire vibrer l&#039;appareil à chaque appui sur une lettre lors de l&#039;écriture d&#039;un SMS.&lt;br /&gt;
&lt;br /&gt;
Mais qu&#039;en est-il d&#039;une grande/très grande surface tactile type &amp;quot;table&amp;quot;? Il est impossible d&#039;y intégrer des vibreurs. Il faut donc trouver un autre moyen de faire &#039;&#039;&#039;ressentir&#039;&#039;&#039; à l&#039;utilisateur les actions qu&#039;il effectue sur la surface.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise donc à réaliser un &#039;&#039;&#039;gant&#039;&#039;&#039; qui permet d&#039;associer à chaque action sur un objet virtuel, une vibration dans la main de l&#039;utilisateur.&lt;br /&gt;
Le cerveau de celui-ci fera naturellement le lien entre ce qu&#039;il voit et ce qu&#039;il ressent.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Dans le cadre des projets d&#039;approfondissement RICM5, nous avons proposé de concevoir et fabriquer un gant équipé de vibreurs à chaque doigt. De plus, nous fournirons l&#039;API permettant de contrôler les vibrations de chaque doigt.&lt;br /&gt;
&lt;br /&gt;
== Pour qui? ==&lt;br /&gt;
Ce concept de gant à retour haptique intéresse particulièrement les personnes mal-voyantes qui peuvent, malgré leur cécité, ressentir les actions qu&#039;elles effectuent sur la surface interactive. Cela leur permet de savoir par exemple, à quel moment elles sont entrain de toucher un bouton ou bien lorsqu&#039;elles déplacent un objet virtuel à l&#039;intérieur d&#039;une une zone particulière de l&#039;écran.&lt;br /&gt;
&lt;br /&gt;
Les joueurs sont également une cible particulière puisqu&#039;ils expérimentent ce genre de dispositifs depuis longtemps via les contrôleurs de jeu vibrant. A chaque action sur l&#039;écran est associé une vibration du dispositif (ex : dans un jeu de voiture, lorsque la voiture entre en collision).&lt;br /&gt;
&lt;br /&gt;
Enfin, ce gant peut-être adapté à de nombreuses applications diverses et variées, pour tout type de public. Les interactions possibles n&#039;ont de limites que celles de l&#039;imagination du développeur.&lt;br /&gt;
&lt;br /&gt;
== Réalisation ==&lt;br /&gt;
Comme vous pouvez le voir sur les photos ci-dessous, nous avons collé 5 vibreurs plats sur chaque emplacement de doigt du gant. L&#039;emplacement des doigts est optimal pour nous puisqu&#039;il répond à nos contraintes : &lt;br /&gt;
* La zone la plus sensible du doigt est l&#039;extrémité mais nous voulons pouvoir interagir avec une surface tactile. Il n&#039;est pas donc pratique de coller un vibreur au bout des doigts.&lt;br /&gt;
* Les vibreurs ne doivent pas être trop dans la paume afin que l&#039;on puisse distinguer la vibration sur chaque doigt efficacement.&lt;br /&gt;
* On place alors les vibreurs sur la première phalange : c&#039;est un endroit relativement sensible (ou en tous cas, bien assez pour sentir une vibration) et qui laisse les doigts relativement libres de leur mouvement.&lt;br /&gt;
&lt;br /&gt;
[[Image:HapticGlove 3.png|500px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
== Fabrication ==&lt;br /&gt;
Pour réaliser ce gant, voici comment nous avons procédé : &lt;br /&gt;
* Nous avons commencé par coudre avec du fil conducteur deux brins par doigt. Ceux-ci nous permettront de relier le vibreur correspondant à la carte Arduino.&lt;br /&gt;
[[Image:HapticGlove_1.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Puis nous avons cousu du tissu conducteur sur le pouce, l&#039;index et le majeur. Pour chacun de ces morceaux de tissus, on fera correspondre un brin de fil conducteur.&lt;br /&gt;
[[Image:HapticGlove_2.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Nous fixons ensuite les vibreurs à l&#039;emplacement prévu. Ceux-ci sont autocollants donc pas besoin de colle spéciale. Nous laissons dépasser du fil électrique de chaque vibreur pour pouvoir les relier au fil conducteur.&lt;br /&gt;
* Nous effectuons ensuite la liaison entre le fil conducteur et les fils électriques de chaque coté du brin. Pour cela, nous enroulons le fil électrique sur lui-même pour former un petit cercle sur lequel nous rajoutons un bout de soudure, afin que le cercle tienne bien. Nous faisons ensuite un noeud avec le fil conducteur dans ce cercle.&lt;br /&gt;
[[Image:HapticGlove_5.jpg|300px|Haptic Glove v0.2]]&lt;br /&gt;
* Voilà un aperçu du résultat final&lt;br /&gt;
[[Image:HapticGlove_6.JPG|300px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
==Matériel==&lt;br /&gt;
* 1 glove (cotton, leather)&lt;br /&gt;
* [[Arduino]] Uno or Lilypad or [[Arduino FIO]]&lt;br /&gt;
* 1 XBee module or Bluetooth module for wireless communication&lt;br /&gt;
* 5 [[Vibration motor]]s&lt;br /&gt;
&lt;br /&gt;
Optional&lt;br /&gt;
* 1 [http://ardx.org/src/guide/2/ARDX-EG-SPAR-FR-WEB.pdf#page=34 Flex sensor]&lt;br /&gt;
* 1 [http://www.sparkfun.com/products/9267 Accelerometer ADXL335]&lt;br /&gt;
* 1 gyroscope (WiiMotion)&lt;br /&gt;
For finger contacts&lt;br /&gt;
* Conductive textiles&lt;br /&gt;
** http://www.sparkfun.com/products/10055&lt;br /&gt;
** http://www.sparkfun.com/products/10056&lt;br /&gt;
* Conductive threads &lt;br /&gt;
** http://www.sparkfun.com/products/8549&lt;br /&gt;
** http://www.sparkfun.com/products/8544&lt;br /&gt;
&lt;br /&gt;
[[Image:HapticGlovev0.jpg|500px|Haptic Glove v0.1]]&lt;br /&gt;
[[Image:Arduino_breadboard.JPG|500px|Haptic Glove v0.2]]&lt;br /&gt;
[[Image:HapticGlove_1.jpg|500px|Haptic Glove v0.2]]&lt;br /&gt;
[[Image:HapticGlove 2.jpg|500px|Haptic Glove v0.2]]&lt;br /&gt;
&lt;br /&gt;
==Source code==&lt;br /&gt;
&lt;br /&gt;
Pour la programmation de ce gant, nous avons utilisé d&#039;un coté l&#039;IDE Arduino et le langage de programmation d&#039;Arduino, d&#039;un autre coté un programme Java qui utilise la librairie [http://rxtx.qbang.org/wiki/index.php/Download | RXTX] (permet la communication via le port série).&lt;br /&gt;
&lt;br /&gt;
Pour piloter le gant, il suffit de : &lt;br /&gt;
* Charger [[File:motors_drive_2.pde|ce programme]] Arduino dans l&#039;Arduino,&lt;br /&gt;
* Intégrer le jar contenue dans l&#039;archive [[File:Hapticglove.zip]]&lt;br /&gt;
* Essayer avec ce bout de code :&lt;br /&gt;
 IGlove glove = GloveFactory.getNewGlove(&amp;quot;COM3&amp;quot;);&lt;br /&gt;
* Vous instanciez un nouveau Gant &#039;&#039;&#039;physique&#039;&#039;&#039; (un gant &amp;quot;virtuel&amp;quot; est également disponible et permet de tester votre application sans nécessiter de gant) sur le port &amp;quot;COM3&amp;quot; de votre ordinateur.&lt;br /&gt;
 glove.vibrate(FINGERS.THUMB, 200);&lt;br /&gt;
* La première valeur indique quel doigt faire vibrer. La seconde indique le temps de la vibration (en millisecondes).&lt;br /&gt;
*Vous pouvez remplacer THUMB (le pouce) par l&#039;une de ces 5 autres valeurs : &lt;br /&gt;
** FOREFINGER (index)&lt;br /&gt;
** MIDDLEFINGER (majeur)&lt;br /&gt;
** RINGFINGER (annulaire)&lt;br /&gt;
** LITTLEFINGER (auriculaire)&lt;br /&gt;
** ALL (tous les doigt en même temps)&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3366</id>
		<title>BTAPOG</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3366"/>
		<updated>2011-10-28T10:00:07Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Projet Tabletop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Article Bulletin Technique Septembre 2011 d&#039;APOG&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auteurs:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Titre: Salle Intelligence Ambiante à Polytech&#039;Grenoble.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
L&#039;intelligence ambiante (Ambient Intelligence : AmI) fait désormais partie du quotidien des usagers. Elle se retrouve dans tous les domaines d’activité : bâtiment intelligent avec maîtrise de l’énergie et la maintenance, grille électrique intelligente (smart grid), santé avec l’hospitalisation à domicile, transport et chaîne d’approvisionnement, sécurité publique et privée (homeland sécurity), culture et divertissement (infotainment) avec les jeux sérieux (serious games), ... Le développement d’applications AmI fait principalement appel à l’intégration de très nombreuses technologies, langages, patrons, modèles qui sont enseignées de manière séparée dans les cursus universitaires et des écoles d’ingénieur. L&#039;enseignement AmI met l&#039;accent sur le développement d&#039;applications pour une gamme variée d&#039;objets intelligents (du serveur IT au terminal 3G de l&#039;usager puis au capteur Zigbee/6LoWPAN enfoui).&lt;br /&gt;
&lt;br /&gt;
L&#039;enseignement de l&#039;intelligence ambiante requière un cadre expérimental pour mettre en pratique les technologies nécessaires au travers de projets de groupe d’élèves dans le contexte de domaines d&#039;applications variés. Les expérimentations peuvent à réaliser à échelle réduite dans des salles spécialisées.&lt;br /&gt;
&lt;br /&gt;
Cette année, Polytech&#039;Grenoble a ouvert une salle spécialisée. La salle AIR (Ambient Intelligence Room ainsi baptisée par les élèves) est une &#039;&#039;fablab&#039;&#039; (Factory Laboratory) destinée aux élèves ingénieurs de Polytech&#039;Grenoble et plus largement aux étudiants de l&#039;Université Joseph Fourier - Grenoble 1, pour inventer et pour réaliser des projets d&#039;application d&#039;intelligence ambiante dans le cadre de leur formation d&#039;ingénieur. Cette salle met à disposition des élèves toute sorte d&#039;équipement. Ces équipements peuvent aller de cartes Arduino bradées de quelques capteurs jusqu&#039;à des équipements multimédia comme des téléphones et tablettes Android, videoprojecteurs, téléviseurs, consoles de jeux, ... Certains équipements (comme 2 ARDrones de Parrot, fauteuil roulant ...) ont été offerts par de généreux partenaires.&lt;br /&gt;
&lt;br /&gt;
Plusieurs projets ont été réalisés cette année 2011. Voici quelques uns d&#039;entre eux :&lt;br /&gt;
&lt;br /&gt;
== Projet [[Projet &amp;quot;AMO&amp;quot;|AMO]] ==&lt;br /&gt;
Ce projet est réalisé en commun par des élèves de TIS, 3I et RICM.&lt;br /&gt;
&lt;br /&gt;
Le projet AmiWheelchair concerne l’assistance et le suivi de la personne handicapée se déplaçant à l’aide d’un fauteuil roulant manuel ou à assistance électrique à la propulsion sur ses lieux de vie (logement, travail, site urbaine, transport en commun) au moyen des technologies de l’informatique ambiante.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise à :&lt;br /&gt;
* instrumenter la personne pour monitorer son usage musculaire de son fauteuil au moyen d’EMG et d’accéléromètres ainsi que son effort au moyen de cardio-fréquencemêtre ;&lt;br /&gt;
* instrumenter le fauteuil  personne handicapée pour monitorer son usage musculaire de son fauteuil au moyen de gyroscopes, inclinomètre, compteurs de tour de roue, capteurs de vibration, …&lt;br /&gt;
* collecter les mesures acquises au moyen du téléphone 3G/Wifi de l’utilisateur. Le GPS intégré au téléphone fournit les positions géographiques pour le suivi spatial de l’utilisateur . Le téléphone sert également à dénoncer des obstacles explicitement par l’utilisateur. Les mesures et les dénonciations sont remontées via des liaisons 3G/Wifi vers un centre serveur qui les archive ;&lt;br /&gt;
*restituer aux médecins et aux urbanistes les mesures individuelles ou collectives concernant les usagers dans un objectif de support à la prise de décision (réglage du fauteuil, aménagement des accès handicapés sur les sites). &lt;br /&gt;
&lt;br /&gt;
La figure ci-dessous schématise les composants fonctionnels décrits ci-dessus, ainsi que les communications multimodales (ZigBee ou 6LoWPAN/RF, Bluetooth, 3G et Wifi) utilisés entre ceux-ci. Les composants doivent pouvoir supporter des intermitences dans les communications (perte de la 3G ou sortie d’un hotspot Wifi, ...)&lt;br /&gt;
&lt;br /&gt;
[[File:archiwheelchair.png]]&lt;br /&gt;
&lt;br /&gt;
Le projet participera aux concours :&lt;br /&gt;
* OpenWorld Contest par STMicroelectronics (http://www.stm32circle.com/hom/index.php)&lt;br /&gt;
* Défi H par Sogeti et LeMondeInformatique (http://www.miage.net/relevez-le-defi-h-le-1er-trophee-des-grandes-ecoles-et-universites-au-service-du-handicap.html)&lt;br /&gt;
* ImagineCup par Microsoft (http://www.imaginecup.com)&lt;br /&gt;
&lt;br /&gt;
== Projet [[Tabletop]] == &lt;br /&gt;
Auteurs : Christophe HAVARD &amp;amp; Renaud COLLIN&lt;br /&gt;
&lt;br /&gt;
L&#039;informatique devenant de plus en plus omniprésent, le projet Tabletop a pour vocation de s&#039;inscrire dans le domaine de [http://fr.wikipedia.org/wiki/Internet_des_objets l&#039;Internet des objets]. Rendre des objets du quotidien interactifs permet d&#039;étendre les interfaces homme-machine habituelles. Ainsi la [[Tabletop]] permet de rendre une simple table à manger interactive en embarquant un système d&#039;identification de ses usagers ([http://fr.wikipedia.org/wiki/Near_Field_Communication NFC]) et un trio vidéoprojecteur/projecteurs infrarouge/webcam permettant d&#039;utiliser la table comme surface tactile.&lt;br /&gt;
&lt;br /&gt;
En associant un tag visuel (&amp;quot;&#039;&#039;fiducial&#039;&#039;&amp;quot;) à des objets ceux-ci deviennent identifiables par la table, et définissent alors un nouveau contexte d&#039;utilisation auquel la Tabletop s&#039;adapte. L&#039;intérêt de cette technologie réside dans le fait de pouvoir utiliser des grandes, voire très grandes surfaces interactives (la table actuelle possède une diagonale de 60&amp;quot;/150cm) et utilisables par plusieurs entités à la fois (personnes, objets).&lt;br /&gt;
&lt;br /&gt;
La [[Tabletop]] est un produit à forte valeur ajoutée destinée principalement aux professionnels afin de servir de support de communication dynamique et  convivial.&lt;br /&gt;
L&#039;utilisation de la Tabletop au sein d&#039;un restaurant pour passer ses commandes et tenir compte des préférences de l&#039;utilisateur est un exemple d&#039;application.&lt;br /&gt;
&lt;br /&gt;
D&#039;autres usages sont possibles tels que le travail collaboratif, la consultation d&#039;offres proposant un contenu multimédia dans les agences immobilières ou de voyages, ou encore comme système de contrôle général en domotique.&lt;br /&gt;
&lt;br /&gt;
== Projet [[KiCTRL]] ==&lt;br /&gt;
Les interfaces homme-machine actuelles sont majoritairement basées sur le couple &amp;quot;clavier-souris&amp;quot;. Ce couple offre de grandes possibilités dépassant souvent les besoins des utilisateurs dans les tâches les plus élémentaires (consultation de mail, de la météo, des flux RSS) et son maniement est loin d&#039;être intuitif pour un novice. Constatant cela, le projet [[KiCTRL]] se propose de balayer ce mode d&#039;interaction pour proposer une navigation basées sur des gestes. Grâce au dispositif Kinect de Microsft, il est dorénavant possible de capter les mouvements d&#039;un ou plusieurs utilisateurs. Jusqu&#039;alors réservé a l&#039;univers vidéo ludique, [[KiCTRL]] introduit un nouvel usage de cet outil.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ce projet permet de rendre l&#039;informatique plus accessible à un publique réfractaire d&#039;un apprentissage long et fastidieux ainsi qu&#039;à un publique qui se voit marginalisé par l’impossibilité d&#039;utiliser le couple &amp;quot;clavier-souris&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Domaines d&#039;application possibles : handicap, rééducation fonctionnel, usager dans une foule, ...&lt;br /&gt;
&lt;br /&gt;
== Projet [[iSofa]] ==&lt;br /&gt;
A detailler en 10 lignes max + 1 photo&lt;br /&gt;
&lt;br /&gt;
== Conclusion &amp;amp; Perspectives pour 2012 ==&lt;br /&gt;
Favoriser les projets inter-départements dans Polytech&#039;Grenoble, recherche de partenariat avec des industriels pour des études avancés sur des projets d&#039;innovation.&lt;br /&gt;
&lt;br /&gt;
Mentionnez EXPERIMENTA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:tabletop1.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop2.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop3.jpg|table interactive multipoint&lt;br /&gt;
Image:isofa1.jpg|i-Sofa&lt;br /&gt;
Image:isofa2.jpg|i-Sofa&lt;br /&gt;
Image:touchkey.jpg|Concours NFC Forum 2010 TouchKey&lt;br /&gt;
Image:mrpri.jpg|Monsieur Prévention des Risques Industriels&lt;br /&gt;
Image:arduigrid-v0.0.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:arduigrid-v0.1.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:Arduinos.jpg|Assortiments de cartes de type &amp;quot;Arduino&amp;quot;&lt;br /&gt;
Image:armoire.jpg|Armoire Projets&lt;br /&gt;
Image:Planv0.png|Plan de la salle&lt;br /&gt;
Image:Kinect3.jpg|KiCTRL&lt;br /&gt;
Image:Kinect1.png|KiCTRL&lt;br /&gt;
Image:Kinect2.png|KiCTRL&lt;br /&gt;
Image:Kinect4.png|KiCTRL&lt;br /&gt;
Image:AmoWheelChair.png|AMO&lt;br /&gt;
Image:amowheelchair01.jpg|AMO&lt;br /&gt;
Image:amowheelchair02.jpg|AMO&lt;br /&gt;
Image:amowheelchair03.jpg|AMO&lt;br /&gt;
Image:amowheelchair04-igoe.jpg|AMO&lt;br /&gt;
Image:amowheelchair05-emg.jpg|AMO&lt;br /&gt;
Image:amowheelchair06-emg.jpg|AMO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3365</id>
		<title>BTAPOG</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3365"/>
		<updated>2011-10-28T09:56:13Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Article Bulletin Technique Septembre 2011 d&#039;APOG&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auteurs:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Titre: Salle Intelligence Ambiante à Polytech&#039;Grenoble.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
L&#039;intelligence ambiante (Ambient Intelligence : AmI) fait désormais partie du quotidien des usagers. Elle se retrouve dans tous les domaines d’activité : bâtiment intelligent avec maîtrise de l’énergie et la maintenance, grille électrique intelligente (smart grid), santé avec l’hospitalisation à domicile, transport et chaîne d’approvisionnement, sécurité publique et privée (homeland sécurity), culture et divertissement (infotainment) avec les jeux sérieux (serious games), ... Le développement d’applications AmI fait principalement appel à l’intégration de très nombreuses technologies, langages, patrons, modèles qui sont enseignées de manière séparée dans les cursus universitaires et des écoles d’ingénieur. L&#039;enseignement AmI met l&#039;accent sur le développement d&#039;applications pour une gamme variée d&#039;objets intelligents (du serveur IT au terminal 3G de l&#039;usager puis au capteur Zigbee/6LoWPAN enfoui).&lt;br /&gt;
&lt;br /&gt;
L&#039;enseignement de l&#039;intelligence ambiante requière un cadre expérimental pour mettre en pratique les technologies nécessaires au travers de projets de groupe d’élèves dans le contexte de domaines d&#039;applications variés. Les expérimentations peuvent à réaliser à échelle réduite dans des salles spécialisées.&lt;br /&gt;
&lt;br /&gt;
Cette année, Polytech&#039;Grenoble a ouvert une salle spécialisée. La salle AIR (Ambient Intelligence Room ainsi baptisée par les élèves) est une &#039;&#039;fablab&#039;&#039; (Factory Laboratory) destinée aux élèves ingénieurs de Polytech&#039;Grenoble et plus largement aux étudiants de l&#039;Université Joseph Fourier - Grenoble 1, pour inventer et pour réaliser des projets d&#039;application d&#039;intelligence ambiante dans le cadre de leur formation d&#039;ingénieur. Cette salle met à disposition des élèves toute sorte d&#039;équipement. Ces équipements peuvent aller de cartes Arduino bradées de quelques capteurs jusqu&#039;à des équipements multimédia comme des téléphones et tablettes Android, videoprojecteurs, téléviseurs, consoles de jeux, ... Certains équipements (comme 2 ARDrones de Parrot, fauteuil roulant ...) ont été offerts par de généreux partenaires.&lt;br /&gt;
&lt;br /&gt;
Plusieurs projets ont été réalisés cette année 2011. Voici quelques uns d&#039;entre eux :&lt;br /&gt;
&lt;br /&gt;
== Projet [[Projet &amp;quot;AMO&amp;quot;|AMO]] ==&lt;br /&gt;
Ce projet est réalisé en commun par des élèves de TIS, 3I et RICM.&lt;br /&gt;
&lt;br /&gt;
Le projet AmiWheelchair concerne l’assistance et le suivi de la personne handicapée se déplaçant à l’aide d’un fauteuil roulant manuel ou à assistance électrique à la propulsion sur ses lieux de vie (logement, travail, site urbaine, transport en commun) au moyen des technologies de l’informatique ambiante.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise à :&lt;br /&gt;
* instrumenter la personne pour monitorer son usage musculaire de son fauteuil au moyen d’EMG et d’accéléromètres ainsi que son effort au moyen de cardio-fréquencemêtre ;&lt;br /&gt;
* instrumenter le fauteuil  personne handicapée pour monitorer son usage musculaire de son fauteuil au moyen de gyroscopes, inclinomètre, compteurs de tour de roue, capteurs de vibration, …&lt;br /&gt;
* collecter les mesures acquises au moyen du téléphone 3G/Wifi de l’utilisateur. Le GPS intégré au téléphone fournit les positions géographiques pour le suivi spatial de l’utilisateur . Le téléphone sert également à dénoncer des obstacles explicitement par l’utilisateur. Les mesures et les dénonciations sont remontées via des liaisons 3G/Wifi vers un centre serveur qui les archive ;&lt;br /&gt;
*restituer aux médecins et aux urbanistes les mesures individuelles ou collectives concernant les usagers dans un objectif de support à la prise de décision (réglage du fauteuil, aménagement des accès handicapés sur les sites). &lt;br /&gt;
&lt;br /&gt;
La figure ci-dessous schématise les composants fonctionnels décrits ci-dessus, ainsi que les communications multimodales (ZigBee ou 6LoWPAN/RF, Bluetooth, 3G et Wifi) utilisés entre ceux-ci. Les composants doivent pouvoir supporter des intermitences dans les communications (perte de la 3G ou sortie d’un hotspot Wifi, ...)&lt;br /&gt;
&lt;br /&gt;
[[File:archiwheelchair.png]]&lt;br /&gt;
&lt;br /&gt;
Le projet participera aux concours :&lt;br /&gt;
* OpenWorld Contest par STMicroelectronics (http://www.stm32circle.com/hom/index.php)&lt;br /&gt;
* Défi H par Sogeti et LeMondeInformatique (http://www.miage.net/relevez-le-defi-h-le-1er-trophee-des-grandes-ecoles-et-universites-au-service-du-handicap.html)&lt;br /&gt;
* ImagineCup par Microsoft (http://www.imaginecup.com)&lt;br /&gt;
&lt;br /&gt;
== Projet [[Tabletop]] == &lt;br /&gt;
L&#039;informatique devenant de plus en plus omniprésent, le projet Tabletop a pour vocation de s&#039;inscrire dans le domaine de [http://fr.wikipedia.org/wiki/Internet_des_objets l&#039;Internet des objets]. Rendre des objets du quotidien interactifs permet d&#039;étendre les interfaces homme-machine habituelles. Ainsi la [[Tabletop]] permet de rendre une simple table à manger interactive en embarquant un système d&#039;identification de ses usagers ([http://fr.wikipedia.org/wiki/Near_Field_Communication NFC]) et un trio vidéoprojecteur/projecteurs infrarouge/webcam permettant d&#039;utiliser la table comme surface tactile.&lt;br /&gt;
&lt;br /&gt;
En associant un tag visuel (&amp;quot;&#039;&#039;fiducial&#039;&#039;&amp;quot;) à des objets ceux-ci deviennent identifiables par la table, et définissent alors un nouveau contexte d&#039;utilisation auquel la Tabletop s&#039;adapte. L&#039;intérêt de cette technologie réside dans le fait de pouvoir utiliser des grandes, voire très grandes surfaces interactives (la table actuelle possède une diagonale de 60&amp;quot;/150cm) et utilisables par plusieurs entités à la fois (personnes, objets).&lt;br /&gt;
&lt;br /&gt;
La [[Tabletop]] est un produit à forte valeur ajoutée destinée principalement aux professionnels afin de servir de support de communication dynamique et  convivial.&lt;br /&gt;
L&#039;utilisation de la Tabletop au sein d&#039;un restaurant pour passer ses commandes et tenir compte des préférences de l&#039;utilisateur est un exemple d&#039;application.&lt;br /&gt;
&lt;br /&gt;
D&#039;autres usages sont possibles tels que le travail collaboratif, la consultation d&#039;offres proposant un contenu multimédia dans les agences immobilières ou de voyages, ou encore comme système de contrôle général en domotique.&lt;br /&gt;
&lt;br /&gt;
== Projet [[KiCTRL]] ==&lt;br /&gt;
Les interfaces homme-machine actuelles sont majoritairement basées sur le couple &amp;quot;clavier-souris&amp;quot;. Ce couple offre de grandes possibilités dépassant souvent les besoins des utilisateurs dans les tâches les plus élémentaires (consultation de mail, de la météo, des flux RSS) et son maniement est loin d&#039;être intuitif pour un novice. Constatant cela, le projet [[KiCTRL]] se propose de balayer ce mode d&#039;interaction pour proposer une navigation basées sur des gestes. Grâce au dispositif Kinect de Microsft, il est dorénavant possible de capter les mouvements d&#039;un ou plusieurs utilisateurs. Jusqu&#039;alors réservé a l&#039;univers vidéo ludique, [[KiCTRL]] introduit un nouvel usage de cet outil.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ce projet permet de rendre l&#039;informatique plus accessible à un publique réfractaire d&#039;un apprentissage long et fastidieux ainsi qu&#039;à un publique qui se voit marginalisé par l’impossibilité d&#039;utiliser le couple &amp;quot;clavier-souris&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Domaines d&#039;application possibles : handicap, rééducation fonctionnel, usager dans une foule, ...&lt;br /&gt;
&lt;br /&gt;
== Projet [[iSofa]] ==&lt;br /&gt;
A detailler en 10 lignes max + 1 photo&lt;br /&gt;
&lt;br /&gt;
== Conclusion &amp;amp; Perspectives pour 2012 ==&lt;br /&gt;
Favoriser les projets inter-départements dans Polytech&#039;Grenoble, recherche de partenariat avec des industriels pour des études avancés sur des projets d&#039;innovation.&lt;br /&gt;
&lt;br /&gt;
Mentionnez EXPERIMENTA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:tabletop1.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop2.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop3.jpg|table interactive multipoint&lt;br /&gt;
Image:isofa1.jpg|i-Sofa&lt;br /&gt;
Image:isofa2.jpg|i-Sofa&lt;br /&gt;
Image:touchkey.jpg|Concours NFC Forum 2010 TouchKey&lt;br /&gt;
Image:mrpri.jpg|Monsieur Prévention des Risques Industriels&lt;br /&gt;
Image:arduigrid-v0.0.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:arduigrid-v0.1.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:Arduinos.jpg|Assortiments de cartes de type &amp;quot;Arduino&amp;quot;&lt;br /&gt;
Image:armoire.jpg|Armoire Projets&lt;br /&gt;
Image:Planv0.png|Plan de la salle&lt;br /&gt;
Image:Kinect3.jpg|KiCTRL&lt;br /&gt;
Image:Kinect1.png|KiCTRL&lt;br /&gt;
Image:Kinect2.png|KiCTRL&lt;br /&gt;
Image:Kinect4.png|KiCTRL&lt;br /&gt;
Image:AmoWheelChair.png|AMO&lt;br /&gt;
Image:amowheelchair01.jpg|AMO&lt;br /&gt;
Image:amowheelchair02.jpg|AMO&lt;br /&gt;
Image:amowheelchair03.jpg|AMO&lt;br /&gt;
Image:amowheelchair04-igoe.jpg|AMO&lt;br /&gt;
Image:amowheelchair05-emg.jpg|AMO&lt;br /&gt;
Image:amowheelchair06-emg.jpg|AMO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3364</id>
		<title>BTAPOG</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3364"/>
		<updated>2011-10-28T09:44:20Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Projet Tabletop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Article Bulletin Technique Septembre 2011 d&#039;APOG&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auteurs:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Titre: Salle Intelligence Ambiante à Polytech&#039;Grenoble.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
L&#039;intelligence ambiante (Ambient Intelligence : AmI) fait désormais partie du quotidien des usagers. Elle se retrouve dans tous les domaines d’activité : bâtiment intelligent avec maitrise de l’énergie et la maintenance, grille électrique intelligente (smart grid), santé avec l’hospitalisation à domicile, transport et chaine d’approvisionnement, sécurité publique et privée (homeland sécurity), culture et divertissement (infotainment) avec les jeux sérieux (serious games), ... Le développement d’applications AmI fait principalement appel à l’intégration de très nombreuses technologies, langages, patrons, modèles qui sont enseignées de manière séparée dans les cursus universitaires et des écoles d’ingénieur. L&#039;enseignement AmI met l&#039;accent sur le développement d&#039;applications pour une gamme variée d&#039;objets intelligents (du serveur IT au terminal 3G de l&#039;usager puis au capteur Zigbee/6LoWPAN enfoui).&lt;br /&gt;
&lt;br /&gt;
L&#039;enseignement de l&#039;intelligence ambiante requière un cadre expérimentale pour mettre en pratique les technologies nécessaires au travers de projets de groupe d’élèves dans le contexte de domaines d&#039;applications variés. Les expérimentations peuvent à réaliser à échelle réduite dans des salles spécialisées.&lt;br /&gt;
&lt;br /&gt;
Cette année, Polytech&#039;Grenoble a ouvert une salle spécialisée. La salle AIR (Ambient Intelligence Room ainsi baptisée par les élèves) est une &#039;&#039;fablab&#039;&#039; (Factory Laboratory) destinée aux élèves ingénieurs de Polytech&#039;Grenoble et plus largement aux étudiants de l&#039;Université Joseph Fourier - Grenoble 1, pour inventer et pour réaliser des projets d&#039;application d&#039;intelligence ambiante dans le cadre de leur formation d&#039;ingénieur. Cette salle met à disposition des équipements à disposition des élèves. Ces équipements peuvent aller de cartes Arduino bradées de quelques capteurs jusqu&#039;à des équipements multimedia comme des téléphones et tablettes Android, video projecteurs, televiseurs, consoles de jeux, ... Certains équipements (comme 2 ARDrones de Parrot, fauteuil roulant ...) ont été donnés par de généreux partenaires.&lt;br /&gt;
&lt;br /&gt;
Plusieurs projets ont été réalisés cette année 2011. Voici quelques uns d&#039;entre eux :&lt;br /&gt;
&lt;br /&gt;
== Projet [[Projet &amp;quot;AMO&amp;quot;|AMO]] ==&lt;br /&gt;
Ce projet est réalisé en commun par des élèves de TIS, 3I et RICM.&lt;br /&gt;
&lt;br /&gt;
Le projet AmiWheelchair concerne l’assistance et le suivi de la personne handicapée se déplaçant à l’aide d’un fauteuil roulant manuel ou à assistance électrique à la propulsion sur ses lieux de vie (logement, travail, site urbaine, transport en commun) au moyen des technologies de l’informatique ambiante.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise à :&lt;br /&gt;
* instrumenter la personne pour monitorer son usage musculaire de son fauteuil au moyen d’EMG et d’accéléromètres ainsi que son effort au moyen de cardio-fréquencemêtre ;&lt;br /&gt;
* instrumenter le fauteuil  personne handicapée pour monitorer son usage musculaire de son fauteuil au moyen de gyroscopes, inclinomètre, compteurs de tour de roue, capteurs de vibration, …&lt;br /&gt;
* collecter les mesures acquises au moyen du téléphone 3G/Wifi de l’utilisateur. Le GPS intégré au téléphone fournit les positions géographiques pour le suivi spatial de l’utilisateur . Le téléphone sert également à dénoncer des obstacles explicitement par l’utilisateur. Les mesures et les dénonciations sont remontées via des liaisons 3G/Wifi vers un centre serveur qui les archive ;&lt;br /&gt;
*restituer aux médecins et aux urbanistes les mesures individuelles ou collectives concernant les usagers dans un objectif de support à la prise de décision (réglage du fauteuil, aménagement des accès handicapés sur les sites). &lt;br /&gt;
&lt;br /&gt;
La figure ci-dessous schématise les composants fonctionnels décrits ci-dessus, ainsi que les communications multimodales (ZigBee ou 6LoWPAN/RF, Bluetooth, 3G et Wifi) utilisés entre ceux-ci. Les composants doivent pouvoir supporter des intermitences dans les communications (perte de la 3G ou sortie d’un hotspot Wifi, ...)&lt;br /&gt;
&lt;br /&gt;
[[File:archiwheelchair.png]]&lt;br /&gt;
&lt;br /&gt;
Le projet participera aux concours :&lt;br /&gt;
* OpenWorld Contest par STMicroelectronics (http://www.stm32circle.com/hom/index.php)&lt;br /&gt;
* Défi H par Sogeti et LeMondeInformatique (http://www.miage.net/relevez-le-defi-h-le-1er-trophee-des-grandes-ecoles-et-universites-au-service-du-handicap.html)&lt;br /&gt;
* ImagineCup par Microsoft (http://www.imaginecup.com)&lt;br /&gt;
&lt;br /&gt;
== Projet [[Tabletop]] == &lt;br /&gt;
L&#039;informatique devenant de plus en plus omniprésent, le projet Tabletop a pour vocation de s&#039;inscrire dans le domaine de [http://fr.wikipedia.org/wiki/Internet_des_objets l&#039;Internet des objets]. Rendre des objets du quotidien interactifs permet d&#039;étendre les interfaces homme-machine habituelles. Ainsi la [[Tabletop]] permet de rendre une simple table à manger interactive en embarquant un système d&#039;identification de ses usagers ([http://fr.wikipedia.org/wiki/Near_Field_Communication NFC]) et un trio vidéoprojecteur/projecteurs infrarouge/webcam permettant d&#039;utiliser la table comme surface tactile.&lt;br /&gt;
&lt;br /&gt;
En associant un tag visuel (&amp;quot;&#039;&#039;fiducial&#039;&#039;&amp;quot;) à des objets ceux-ci deviennent identifiables par la table, et définissent alors un nouveau contexte d&#039;utilisation auquel la Tabletop s&#039;adapte. L&#039;intérêt de cette technologie réside dans le fait de pouvoir utiliser des grandes, voire très grandes surfaces interactives (la table actuelle possède une diagonale de 60&amp;quot;/150cm) et utilisables par plusieurs entités à la fois (personnes, objets).&lt;br /&gt;
&lt;br /&gt;
La [[Tabletop]] est un produit à forte valeur ajoutée destinée principalement aux professionnels afin de servir de support de communication dynamique et  convivial.&lt;br /&gt;
L&#039;utilisation de la Tabletop au sein d&#039;un restaurant pour passer ses commandes et tenir compte des préférences de l&#039;utilisateur est un exemple d&#039;application.&lt;br /&gt;
&lt;br /&gt;
D&#039;autres usages sont possibles tels que le travail collaboratif, la consultation d&#039;offres proposant un contenu multimédia dans les agences immobilières ou de voyages, ou encore comme système de contrôle général en domotique.&lt;br /&gt;
&lt;br /&gt;
== Projet [[KiCTRL]] ==&lt;br /&gt;
Les interfaces homme-machine actuelles sont majoritairement basées sur le couple &amp;quot;clavier-souris&amp;quot;. Ce couple offre de grandes possibilités dépassant souvent les besoins des utilisateurs dans les tâches les plus élémentaires (consultation de mail, de la météo, des flux RSS) et son maniement est loin d&#039;être intuitif pour un novice. Constatant cela, le projet [[KiCTRL]] se propose de balayer ce mode d&#039;interaction pour proposer une navigation basées sur des gestes. Grâce au dispositif Kinect de Microsft, il est dorénavant possible de capter les mouvements d&#039;un ou plusieurs utilisateurs. Jusqu&#039;alors réservé a l&#039;univers vidéo ludique, [[KiCTRL]] introduit un nouvel usage de cet outil.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ce projet permet de rendre l&#039;informatique plus accessible à un publique réfractaire d&#039;un apprentissage long et fastidieux ainsi qu&#039;à un publique qui se voit marginalisé par l’impossibilité d&#039;utiliser le couple &amp;quot;clavier-souris&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Domaines d&#039;application possibles : handicap, rééducation fonctionnel, usager dans une foule, ...&lt;br /&gt;
&lt;br /&gt;
== Projet [[iSofa]] ==&lt;br /&gt;
A detailler en 10 lignes max + 1 photo&lt;br /&gt;
&lt;br /&gt;
== Conclusion &amp;amp; Perspectives pour 2012 ==&lt;br /&gt;
Favoriser les projets inter-départements dans Polytech&#039;Grenoble, recherche de partenariat avec des industriels pour des études avancés sur des projets d&#039;innovation.&lt;br /&gt;
&lt;br /&gt;
Mentionnez EXPERIMENTA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:tabletop1.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop2.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop3.jpg|table interactive multipoint&lt;br /&gt;
Image:isofa1.jpg|i-Sofa&lt;br /&gt;
Image:isofa2.jpg|i-Sofa&lt;br /&gt;
Image:touchkey.jpg|Concours NFC Forum 2010 TouchKey&lt;br /&gt;
Image:mrpri.jpg|Monsieur Prévention des Risques Industriels&lt;br /&gt;
Image:arduigrid-v0.0.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:arduigrid-v0.1.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:Arduinos.jpg|Assortiments de cartes de type &amp;quot;Arduino&amp;quot;&lt;br /&gt;
Image:armoire.jpg|Armoire Projets&lt;br /&gt;
Image:Planv0.png|Plan de la salle&lt;br /&gt;
Image:Kinect3.jpg|KiCTRL&lt;br /&gt;
Image:Kinect1.png|KiCTRL&lt;br /&gt;
Image:Kinect2.png|KiCTRL&lt;br /&gt;
Image:Kinect4.png|KiCTRL&lt;br /&gt;
Image:AmoWheelChair.png|AMO&lt;br /&gt;
Image:amowheelchair01.jpg|AMO&lt;br /&gt;
Image:amowheelchair02.jpg|AMO&lt;br /&gt;
Image:amowheelchair03.jpg|AMO&lt;br /&gt;
Image:amowheelchair04-igoe.jpg|AMO&lt;br /&gt;
Image:amowheelchair05-emg.jpg|AMO&lt;br /&gt;
Image:amowheelchair06-emg.jpg|AMO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3363</id>
		<title>BTAPOG</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=BTAPOG&amp;diff=3363"/>
		<updated>2011-10-28T08:31:53Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Projet Tabletop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Article Bulletin Technique Septembre 2011 d&#039;APOG&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Auteurs:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Titre: Salle Intelligence Ambiante à Polytech&#039;Grenoble.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
L&#039;intelligence ambiante (Ambient Intelligence : AmI) fait désormais partie du quotidien des usagers. Elle se retrouve dans tous les domaines d’activité : bâtiment intelligent avec maitrise de l’énergie et la maintenance, grille électrique intelligente (smart grid), santé avec l’hospitalisation à domicile, transport et chaine d’approvisionnement, sécurité publique et privée (homeland sécurity), culture et divertissement (infotainment) avec les jeux sérieux (serious games), ... Le développement d’applications AmI fait principalement appel à l’intégration de très nombreuses technologies, langages, patrons, modèles qui sont enseignées de manière séparée dans les cursus universitaires et des écoles d’ingénieur. L&#039;enseignement AmI met l&#039;accent sur le développement d&#039;applications pour une gamme variée d&#039;objets intelligents (du serveur IT au terminal 3G de l&#039;usager puis au capteur Zigbee/6LoWPAN enfoui).&lt;br /&gt;
&lt;br /&gt;
L&#039;enseignement de l&#039;intelligence ambiante requière un cadre expérimentale pour mettre en pratique les technologies nécessaires au travers de projets de groupe d’élèves dans le contexte de domaines d&#039;applications variés. Les expérimentations peuvent à réaliser à échelle réduite dans des salles spécialisées.&lt;br /&gt;
&lt;br /&gt;
Cette année, Polytech&#039;Grenoble a ouvert une salle spécialisée. La salle AIR (Ambient Intelligence Room ainsi baptisée par les élèves) est une &#039;&#039;fablab&#039;&#039; (Factory Laboratory) destinée aux élèves ingénieurs de Polytech&#039;Grenoble et plus largement aux étudiants de l&#039;Université Joseph Fourier - Grenoble 1, pour inventer et pour réaliser des projets d&#039;application d&#039;intelligence ambiante dans le cadre de leur formation d&#039;ingénieur. Cette salle met à disposition des équipements à disposition des élèves. Ces équipements peuvent aller de cartes Arduino bradées de quelques capteurs jusqu&#039;à des équipements multimedia comme des téléphones et tablettes Android, video projecteurs, televiseurs, consoles de jeux, ... Certains équipements (comme 2 ARDrones de Parrot, fauteuil roulant ...) ont été donnés par de généreux partenaires.&lt;br /&gt;
&lt;br /&gt;
Plusieurs projets ont été réalisés cette année 2011. Voici quelques uns d&#039;entre eux :&lt;br /&gt;
&lt;br /&gt;
== Projet [[Projet &amp;quot;AMO&amp;quot;|AMO]] ==&lt;br /&gt;
Ce projet est réalisé en commun par des élèves de TIS, 3I et RICM.&lt;br /&gt;
&lt;br /&gt;
Le projet AmiWheelchair concerne l’assistance et le suivi de la personne handicapée se déplaçant à l’aide d’un fauteuil roulant manuel ou à assistance électrique à la propulsion sur ses lieux de vie (logement, travail, site urbaine, transport en commun) au moyen des technologies de l’informatique ambiante.&lt;br /&gt;
&lt;br /&gt;
Ce projet vise à :&lt;br /&gt;
* instrumenter la personne pour monitorer son usage musculaire de son fauteuil au moyen d’EMG et d’accéléromètres ainsi que son effort au moyen de cardio-fréquencemêtre ;&lt;br /&gt;
* instrumenter le fauteuil  personne handicapée pour monitorer son usage musculaire de son fauteuil au moyen de gyroscopes, inclinomètre, compteurs de tour de roue, capteurs de vibration, …&lt;br /&gt;
* collecter les mesures acquises au moyen du téléphone 3G/Wifi de l’utilisateur. Le GPS intégré au téléphone fournit les positions géographiques pour le suivi spatial de l’utilisateur . Le téléphone sert également à dénoncer des obstacles explicitement par l’utilisateur. Les mesures et les dénonciations sont remontées via des liaisons 3G/Wifi vers un centre serveur qui les archive ;&lt;br /&gt;
*restituer aux médecins et aux urbanistes les mesures individuelles ou collectives concernant les usagers dans un objectif de support à la prise de décision (réglage du fauteuil, aménagement des accès handicapés sur les sites). &lt;br /&gt;
&lt;br /&gt;
La figure ci-dessous schématise les composants fonctionnels décrits ci-dessus, ainsi que les communications multimodales (ZigBee ou 6LoWPAN/RF, Bluetooth, 3G et Wifi) utilisés entre ceux-ci. Les composants doivent pouvoir supporter des intermitences dans les communications (perte de la 3G ou sortie d’un hotspot Wifi, ...)&lt;br /&gt;
&lt;br /&gt;
[[File:archiwheelchair.png]]&lt;br /&gt;
&lt;br /&gt;
Le projet participera aux concours :&lt;br /&gt;
* OpenWorld Contest par STMicroelectronics (http://www.stm32circle.com/hom/index.php)&lt;br /&gt;
* Défi H par Sogeti et LeMondeInformatique (http://www.miage.net/relevez-le-defi-h-le-1er-trophee-des-grandes-ecoles-et-universites-au-service-du-handicap.html)&lt;br /&gt;
* ImagineCup par Microsoft (http://www.imaginecup.com)&lt;br /&gt;
&lt;br /&gt;
== Projet [[Tabletop]] == &lt;br /&gt;
L&#039;informatique devenant de plus en plus omniprésent, le projet TableTop a pour vocation de s&#039;inscrire dans le domaine de [http://fr.wikipedia.org/wiki/Internet_des_objets l&#039;Internet des objets]. Rendre des objets du quotidien interactifs permet d&#039;étendre les interfaces homme-machine habituelles. Ainsi la [[Tabletop]] permet de rendre une simple table à manger interactive en embarquant un système d&#039;identification de ses usagers ([http://fr.wikipedia.org/wiki/Near_Field_Communication NFC]) et un trio vidéoprojecteur/projecteurs infrarouge/webcam permettant d&#039;utiliser la table comme surface tactile.&lt;br /&gt;
&lt;br /&gt;
En associant un tag visuel (&amp;quot;&#039;&#039;fiducial&#039;&#039;&amp;quot;) à des objets ceux-ci deviennent identifiables par la table, et définissent alors un nouveau contexte d&#039;utilisation auquel la TableTop s&#039;adapte. L&#039;intérêt de cette technologie réside dans le fait de pouvoir utiliser des grandes, voire très grandes surfaces interactives (la table actuelle possède une diagonale de 60&amp;quot;/150cm) et utilisables par plusieurs entités à la fois (personnes, objets).&lt;br /&gt;
&lt;br /&gt;
La [[Tabletop]] est un produit à forte valeur ajoutée destinée principalement aux professionnels afin de servir de support de communication dynamique et  convivial.&lt;br /&gt;
L&#039;utilisation de la TableTop au sein d&#039;un restaurant pour passer ses commandes et tenir compte des préférences de l&#039;utilisateur est un exemple d&#039;application.&lt;br /&gt;
&lt;br /&gt;
D&#039;autres usages sont possibles tels que le travail collaboratif, la consultation d&#039;offres proposant un contenu multimédia dans les agences immobilières ou de voyages, ou encore comme système de contrôle général en domotique.&lt;br /&gt;
&lt;br /&gt;
== Projet [[KiCTRL]] ==&lt;br /&gt;
Les interfaces homme-machine actuelles sont majoritairement basées sur le couple &amp;quot;clavier-souris&amp;quot;. Ce couple offre de grandes possibilités dépassant souvent les besoins des utilisateurs dans les tâches les plus élémentaires (consultation de mail, de la météo, des flux RSS) et son maniement est loin d&#039;être intuitif pour un novice. Constatant cela, le projet [[KiCTRL]] se propose de balayer ce mode d&#039;interaction pour proposer une navigation basées sur des gestes. Grâce au dispositif Kinect de Microsft, il est dorénavant possible de capter les mouvements d&#039;un ou plusieurs utilisateurs. Jusqu&#039;alors réservé a l&#039;univers vidéo ludique, [[KiCTRL]] introduit un nouvel usage de cet outil.&lt;br /&gt;
&lt;br /&gt;
Ainsi, ce projet permet de rendre l&#039;informatique plus accessible à un publique réfractaire d&#039;un apprentissage long et fastidieux ainsi qu&#039;à un publique qui se voit marginalisé par l’impossibilité d&#039;utiliser le couple &amp;quot;clavier-souris&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Domaines d&#039;application possibles : handicap, rééducation fonctionnel, usager dans une foule, ...&lt;br /&gt;
&lt;br /&gt;
== Projet [[iSofa]] ==&lt;br /&gt;
A detailler en 10 lignes max + 1 photo&lt;br /&gt;
&lt;br /&gt;
== Conclusion &amp;amp; Perspectives pour 2012 ==&lt;br /&gt;
Favoriser les projets inter-départements dans Polytech&#039;Grenoble, recherche de partenariat avec des industriels pour des études avancés sur des projets d&#039;innovation.&lt;br /&gt;
&lt;br /&gt;
Mentionnez EXPERIMENTA&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:tabletop1.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop2.jpg|table interactive multipoint&lt;br /&gt;
Image:tabletop3.jpg|table interactive multipoint&lt;br /&gt;
Image:isofa1.jpg|i-Sofa&lt;br /&gt;
Image:isofa2.jpg|i-Sofa&lt;br /&gt;
Image:touchkey.jpg|Concours NFC Forum 2010 TouchKey&lt;br /&gt;
Image:mrpri.jpg|Monsieur Prévention des Risques Industriels&lt;br /&gt;
Image:arduigrid-v0.0.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:arduigrid-v0.1.jpg|Déballage de l&#039;ArduiGrid&lt;br /&gt;
Image:Arduinos.jpg|Assortiments de cartes de type &amp;quot;Arduino&amp;quot;&lt;br /&gt;
Image:armoire.jpg|Armoire Projets&lt;br /&gt;
Image:Planv0.png|Plan de la salle&lt;br /&gt;
Image:Kinect3.jpg|KiCTRL&lt;br /&gt;
Image:Kinect1.png|KiCTRL&lt;br /&gt;
Image:Kinect2.png|KiCTRL&lt;br /&gt;
Image:Kinect4.png|KiCTRL&lt;br /&gt;
Image:AmoWheelChair.png|AMO&lt;br /&gt;
Image:amowheelchair01.jpg|AMO&lt;br /&gt;
Image:amowheelchair02.jpg|AMO&lt;br /&gt;
Image:amowheelchair03.jpg|AMO&lt;br /&gt;
Image:amowheelchair04-igoe.jpg|AMO&lt;br /&gt;
Image:amowheelchair05-emg.jpg|AMO&lt;br /&gt;
Image:amowheelchair06-emg.jpg|AMO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=3131</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=3131"/>
		<updated>2011-10-06T11:32:18Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|right|upright=0.5]]&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM 5: Christophe Havard (chef de projet) - havard.christophe@gmail.com, Renaud Collin - ren.collin@gmail.com, Sebastien Skorupski&lt;br /&gt;
* Intervenants externes : Elsa Neves ([http://fr.wikipedia.org/wiki/Institut_de_la_Communication_et_des_M%C3%A9dias ICM Grenoble])&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Le tabletop est une table &#039;&#039;&#039;tactile&#039;&#039;&#039; &#039;&#039;&#039;interactive&#039;&#039;&#039; d&#039;environ 60&amp;quot;. La technologie employée est dite &amp;quot;&#039;&#039;&#039;multipoint&#039;&#039;&#039;&amp;quot;, c&#039;est-à-dire qu&#039;elle permet à un nombre important d&#039;utilisateur d&#039;&#039;&#039;&#039;interagir en même temps&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Cette table fonctionne avec un Mac Mini et 2 systèmes d&#039;exploitation : Mac OSX et Windows 7.&lt;br /&gt;
Les applications clientes peuvent être développées sur plusieurs technologies dont : &lt;br /&gt;
* Java (MT4j)&lt;br /&gt;
* Flash AS3 (TUIO library)&lt;br /&gt;
* Python (PyMT)&lt;br /&gt;
* etc&lt;br /&gt;
&lt;br /&gt;
La table est également équipée d&#039;un lecteur NFC type ACR122.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multipoint (Flash/Java/C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC ([[Near Field Communication]]) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Table Tactile==&lt;br /&gt;
===Matériel===&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
===Installation matérielle===&lt;br /&gt;
- La surface vitrée de la table est recouverte de papier calque afin de capter l&#039;image du vidéo projecteur.&lt;br /&gt;
- Le bord supérieur de la table est percé afin de pouvoir fixer un support pour le vidéo-projecteur.&lt;br /&gt;
- Un miroir est placé de telle sorte à renvoyer l&#039;image du vidéo-projecteur vers la surface vitrée&lt;br /&gt;
- Des lampes infrarouges sont placés à l&#039;intérieur de la table afin de diffuser des ondes infrarouge vers la surface vitrée.&lt;br /&gt;
- La webcam est pointée vers la surface vitrée.&lt;br /&gt;
- Des plaques en bois sont découpées et placées autour de la table afin de la protéger des perturbations extérieures (lumière notamment).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Interieur_table.jpg| AIR NFC Tabletop 5&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
Image:TableTop 06.jpg|AIR NFC TableTop 4&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Installation logicielle===&lt;br /&gt;
* Tracker : CCV 1.4 (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Videos de demos===&lt;br /&gt;
* [http://www.youtube.com/watch?v=X1zus6saCcM Application Puzzle]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
== Module NFC ==&lt;br /&gt;
=== Communautée ===&lt;br /&gt;
Information sur la librairie open-source [http://www.libnfc.org/ libnfc]&lt;br /&gt;
&lt;br /&gt;
[http://code.google.com/p/libnfc/downloads/list Téléchargement de la librairie libnfc]&lt;br /&gt;
&lt;br /&gt;
[http://www.libnfc.org/api Documentation sur l&#039;API]&lt;br /&gt;
&lt;br /&gt;
[http://www.libnfc.org/community Forum de la librairie]&lt;br /&gt;
&lt;br /&gt;
[http://sberfini.developpez.com/ Tutoriel sur l&#039;utilisation de NFC sur Androïd]&lt;br /&gt;
&lt;br /&gt;
=== Matériel===&lt;br /&gt;
* ACR122 NFC reader : [http://www.nfc-reader.com/acr122-drivers.php drivers sur nfc-reader.com] ou [http://acs.com.hk/index.php?pid=drivers&amp;amp;id=ACR122U]&lt;br /&gt;
&lt;br /&gt;
* Nokia 6131 NFC : [http://www.nokia.fr/support/support-produits/nokia-6131-nfc Support en ligne]&lt;br /&gt;
&lt;br /&gt;
=== Environnement Logiciel : Nokia 6131 NFC ===&lt;br /&gt;
[http://www.forum.nokia.com/info/sw.nokia.com/id/ef4e1bc9-d220-400c-a41d-b3d56349e984/Nokia_6131_NFC_SDK.html Nokia 6131 SDK]. Le SDK propose deux type d&#039;installation : sous forme d&#039;une plugin eclipse ou d&#039;un framework&lt;br /&gt;
&lt;br /&gt;
=== Environnement Logiciel : libnfc ===&lt;br /&gt;
Ce document est basé sur le fichier README-Windows.txt disponible dans l&#039;archive libnfc-1.4.2 [www.libnfc.org]&lt;br /&gt;
&lt;br /&gt;
====Prérequis====&lt;br /&gt;
Afin de pouvoir interagir avec l&#039;ACR122 les logiciels suivants doivent-être téléchargés:&lt;br /&gt;
* [http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm64-gcc-4.5.1.exe/download MinGW-w64 compiler toolchain] &lt;br /&gt;
* [http://sourceforge.net/projects/libusb-win32/ LibUsb-Win32 0.1.12.2]&lt;br /&gt;
* [http://www.cmake.org CMake 2.6 ]&lt;br /&gt;
* [http://code.google.com/p/libnfc/downloads/list libnfc]&lt;br /&gt;
&lt;br /&gt;
====Installation====&lt;br /&gt;
Testée sous Windows XP/SP3 32 bit.&lt;br /&gt;
&lt;br /&gt;
* Installer MinGW .!!!Attention!!! La documentation officielle indique qu&#039;il faut sélectionner MinGW-w64 afin que MinGW puisse avoir accès aux librairie PCSC (Smart Card). &lt;br /&gt;
* Ajouter les répertoires suivant à votre PATH : c:\MinGW64\bin;c:\MinGW64\x86_64-w64-mingw32\lib32;c:\MinGW64\x86_64-w64-mingw32\include. pour ce faire :&lt;br /&gt;
- clic-droit sur le poste de travail/propriétés&lt;br /&gt;
- Dans l&#039;onglet avancé, cliquer sur Variables d&#039;environnements&lt;br /&gt;
- Modifier la variable PATH&lt;br /&gt;
* Décompresser l&#039;archive libusb-win32-bin dans c:\Program Files\LibUSB-Win32. C&#039;est dans ce répertoire que CMake cherchera LIBUSB lors de la compilation.&lt;br /&gt;
* Lire le libusb-win32-bin-README contenu dans le dossier bin afin de savoir où copier les deux fichiers .dll et .sys (dépend de votre architecture...)&lt;br /&gt;
* Installer CMake : Choisissez l&#039;option &amp;quot;Add Cmake to the system PATH&amp;quot; pendant l&#039;installation afin que CMake soi accessible depuis MinGW&lt;br /&gt;
* Extraire l&#039;archive libnfc archive versc:\NFC\libnfc-src&lt;br /&gt;
* Lancer un éditeur de texte et copier les instructions suivantes :&lt;br /&gt;
  cd c:\NFC\libnfc-build&lt;br /&gt;
  cmake -G &amp;quot;MinGW Makefiles&amp;quot; -DCMAKE_BUILD_TYPE=Release c:\NFC\libnfc-src&lt;br /&gt;
  mingw32-make&lt;br /&gt;
  cd ..&lt;br /&gt;
* Sauvegarder le fichier dans C:\NFC\make.bat&lt;br /&gt;
* Exécuter make.bat&lt;br /&gt;
* Copier le fichier c:\NFC\libnfc-build\libnfc\libnfc.dll vers c:\windows\system32&lt;br /&gt;
&lt;br /&gt;
===Créer son programme===&lt;br /&gt;
Il n&#039;est pas possible (à ma connaissance) de compiler directement un fichier utilisant la librairie nfc. &lt;br /&gt;
Pour compiler il faut éditer le fichier de configuration CMakeList.txt :&lt;br /&gt;
# Placer le fichier .c dans c:\NFC\libnfc-src\examples&lt;br /&gt;
# Editer examples\CMakeLists.txt et ajouter le nom du fichier .c dans la section SET &lt;br /&gt;
# Exécuter make.bat depuis c:\NFC\ &lt;br /&gt;
Le fichier exécutable se trouve dans libnfc-build\examples&lt;br /&gt;
&lt;br /&gt;
====Utiliser des librairies supplémentaires====&lt;br /&gt;
Prenons l&#039;exemple des sockets sous windows, afin de permettre la compilation d&#039;un programme les utilisant il faut (en plus de l&#039;inclusion de &amp;lt;winsock2.h&amp;gt;) utiliser la librairie ws2_32. Là encore il faudra éditer le fichier de configuration CMakeList.txt afin d&#039;expliciter les librairies à utiliser, de manière similaire à celle-ci:&lt;br /&gt;
    IF(WIN32)&lt;br /&gt;
        TARGET_LINK_LIBRARIES(monProgramme ws2_32)&lt;br /&gt;
        TARGET_LINK_LIBRARIES(monProgramme nfc)&lt;br /&gt;
        TARGET_LINK_LIBRARIES(monProgramme nfc-utils)&lt;br /&gt;
    ENDIF(WIN32)&lt;br /&gt;
Source complète : [[File:CMakeLists.txt]]&lt;br /&gt;
&lt;br /&gt;
== Blazeds ==&lt;br /&gt;
[http://opensource.adobe.com/wiki/display/blazeds/BlazeDS Blazeds] est un composant open source permettant d&#039;accéder à des objets distant via une application Flex. Pour son fonctionnement blazeds se base sur un serveur Tomcat côté client et côté serveur. &lt;br /&gt;
[http://www.adobe.com/devnet/livecycle/articles/blazeds_gettingstarted.html Getting start with Blazeds]&lt;br /&gt;
&lt;br /&gt;
== Liens externes ==&lt;br /&gt;
* (en) [http://www.nfc-forum.org/home/ NFC Forum]&lt;br /&gt;
* (en) [http://www.libnfc.org/ open source library for Near Field Communication (NFC)]&lt;br /&gt;
* (en) [http://nuigroup.com/ NUI Group(natural user interface group)]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=StarUML&amp;diff=1155</id>
		<title>StarUML</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=StarUML&amp;diff=1155"/>
		<updated>2011-02-22T16:09:34Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: Created page with &amp;quot;Le logiciel StarUML est un logiciel open-source cédé par son ancien éditeur sous licence GNU GPL, dédié aux plateformes Windows, il est développé en Delphi.   Ses principa…&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le logiciel StarUML est un logiciel open-source cédé par son ancien éditeur sous licence GNU GPL, dédié aux plateformes Windows, il est développé en Delphi. &lt;br /&gt;
&lt;br /&gt;
Ses principaux avantages sont sa implicité d&#039;installation et de prise en main, et la possibilité de générer le squelette des classes en langages Java, C++, C#, ActionScript3.0... De plus, le logiciel à été conçu en prévoyant l&#039;ajout de plugin supplémentaires afin de pouvoir être adapté simplement aux besoins évolutifs des ses utilisateurs. Enfin StarUML gère l&#039;exportation des données au format XMI, le standard pour l&#039;échange d&#039;informations de métadonnées UML basé sur XML, ainsi que l&#039;exportation au format jpg afin d&#039;intégrer les diagrammes au sein de documents.&lt;br /&gt;
&lt;br /&gt;
Concernant son organisation, le logiciel est divisé en 5 zones principales auxquelles est rajouté le menu de navigation, plus précisément :&lt;br /&gt;
- Le &amp;quot;model explorer&amp;quot;, représenté sous la forme d&#039;une arborescence, il permet de naviguer entre les différents diagrammes d&#039;un projet et leurs entités.&lt;br /&gt;
- La partie &amp;quot;properties&amp;quot;, permet de modifier rapidement les propriétés d&#039;une entité.&lt;br /&gt;
- La partie &amp;quot;toolbox&amp;quot;, elle fournie à l&#039;utilisateur les différentes entités plaçables sur un diagramme donné.&lt;br /&gt;
- L&#039;espace de travail, c&#039;est la zone la plus importante en terme de surface, elle contient le diagramme en cours d&#039;édition.&lt;br /&gt;
&lt;br /&gt;
Le style (couleur de fond, police d&#039;écriture) des différentes entités est personnalisable, ainsi que la forme des associations (oblique ou rectiligne). &lt;br /&gt;
&lt;br /&gt;
Le logiciel est fiable et fonctionnel, cependant aucun module de génération de code SQL n&#039;a été développé à l&#039;heure actuelle.&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=871</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=871"/>
		<updated>2011-02-07T15:57:08Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|right|upright=0.5]]&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=870</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=870"/>
		<updated>2011-02-07T15:56:36Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|right|upright=0.5]]&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=869</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=869"/>
		<updated>2011-02-07T15:56:24Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|right|upright=0.5]]&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=868</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=868"/>
		<updated>2011-02-07T15:56:08Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|right|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=867</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=867"/>
		<updated>2011-02-07T15:55:53Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|left|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Logo_AIR_TableTop.png&amp;diff=866</id>
		<title>File:Logo AIR TableTop.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Logo_AIR_TableTop.png&amp;diff=866"/>
		<updated>2011-02-07T15:55:22Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: uploaded a new version of &amp;quot;File:Logo AIR TableTop.png&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=865</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=865"/>
		<updated>2011-02-07T15:52:42Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=864</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=864"/>
		<updated>2011-02-07T15:52:31Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Logo_AIR_TableTop.png|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=File:Logo_AIR_TableTop.png&amp;diff=863</id>
		<title>File:Logo AIR TableTop.png</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=File:Logo_AIR_TableTop.png&amp;diff=863"/>
		<updated>2011-02-07T15:51:17Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
	<entry>
		<id>https://air.imag.fr/index.php?title=Tabletop&amp;diff=862</id>
		<title>Tabletop</title>
		<link rel="alternate" type="text/html" href="https://air.imag.fr/index.php?title=Tabletop&amp;diff=862"/>
		<updated>2011-02-07T15:50:32Z</updated>

		<summary type="html">&lt;p&gt;Renaud C: /* Logiciels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* UE/Module: Projet innovant de RICM4 option CM&lt;br /&gt;
* Enseignant: Didier Donsez&lt;br /&gt;
* Elèves RICM4: Christophe Havard (chef de projet), Renaud Collin, Sebastien Skorupski&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Les technologies utilisées sont Flash (AS3) pour le codage de l&#039;application, NFC pour l&#039;identification et le paiement des utilisateurs.&lt;br /&gt;
&lt;br /&gt;
Présentation commerciale du projet : [http://air.imag.fr/mediawiki/images/6/60/AIR_NFC_TableTop.pdf AIR_NFC_TableTop]&lt;br /&gt;
&lt;br /&gt;
Les actualités du projet en anglais sur [http://youforkmywife.wordpress.com/ notre blog]&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
Les objectifs du projet sont&lt;br /&gt;
# de réaliser la partie matériel d&#039;un tabletop à faible coût&lt;br /&gt;
# d&#039;évaluer les canevas de développement d&#039;IHM multitpoint (Flash/Android, C#/.NET/Windows7)&lt;br /&gt;
# de réaliser une application pour une table de restaurant (affichage des plats, commande, addition, enquête de satisfaction ...)&lt;br /&gt;
# d&#039;utiliser la technologie NFC (Near Field Communication) pour permettre aux utilisateurs de s&#039;identifier et payer via leur téléphone mobile&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ces informations peuvent être injectées dans un monde virtuelle d&#039;avatars. Inversement, les capteurs et les usagers peuvent être simulés et représentés dans le monde réel augmenté. Pour cela, vous utiliserez [http://diasuite.inria.fr DiaSuite].&lt;br /&gt;
&lt;br /&gt;
==Equipement==&lt;br /&gt;
* Table en verre IKEA (60&amp;quot;)&lt;br /&gt;
* Miroir&lt;br /&gt;
* Mac Mini&lt;br /&gt;
* Videoprojecteur short-throw&lt;br /&gt;
* Illuminateur IR&lt;br /&gt;
* Webcam PS3 modifiée (IR filter removed &amp;amp; visible light bandpass filter added)&lt;br /&gt;
* Lentille grand angle (m12/0.5mm mount, 1.8mm, angle of view = 170°)&lt;br /&gt;
* RFID Reader ([[ACS ACR 122]] RFID reader)&lt;br /&gt;
&lt;br /&gt;
[[File:TableTop_schema.jpg|center|upright=0.5]]&lt;br /&gt;
&lt;br /&gt;
==Construction==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:TableTop 02.jpg|AIR NFC TableTop 1&lt;br /&gt;
Image:TableTop 05.jpg|AIR NFC TableTop 2&lt;br /&gt;
Image:TableTop 03.jpg|AIR NFC TableTop 3&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Logiciels==&lt;br /&gt;
* CCV (Community Core Vision) [http://ccv.nuigroup.com CCV]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
Image:Test1.png|Community Core Vision&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premières Démos==&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobl_test-application-fire-air-nfc-tabletop_tech  Test Application &amp;quot;Fire&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobm_test-application-water-air-nfc-tabletop_tech  Test Application &amp;quot;Water&amp;quot;]&lt;br /&gt;
* [http://www.dailymotion.com/video/xgpobr_test-application-paint-air-nfc-tabletop_tech  Test Application &amp;quot;Paint&amp;quot;]&lt;/div&gt;</summary>
		<author><name>Renaud C</name></author>
	</entry>
</feed>