PAGE WIKI ETUDIANTS 2012-13 SIGNATURES: Difference between revisions
(21 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Projet reconnaissance de signature 2012-2013 |
|||
=Description du projet= |
|||
== |
==Membres du projet== |
||
Florian FOURURE - RICM5 - Polytech Grenoble - ffourure@free.fr |
Florian FOURURE - RICM5 - Polytech Grenoble - ffourure@free.fr |
||
Line 14: | Line 14: | ||
Joachim SEGALA - RICM5 - Polytech Grenoble - joachim.segala@gmail.com |
Joachim SEGALA - RICM5 - Polytech Grenoble - joachim.segala@gmail.com |
||
== Description du projet== |
|||
Ce projet consiste a créer une application Android de reconnaissance de signature. Pour cela, nous devons utiliser le projet de reconnaissance de signature réalisé l'année d'avant (2011/2012) [[PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES|Page wiki du projet de reconnaissance de signature 2011/2012]]. Ce projet utilise une tablette graphique et un écran de DS3. Nous devons donc changer le code pour l'adapter à Android. |
Ce projet consiste a créer une application Android de reconnaissance de signature. Pour cela, nous devons utiliser le projet de reconnaissance de signature réalisé l'année d'avant (2011/2012) [[PAGE_WIKI_ETUDIANTS_2011-12_SIGNATURES|Page wiki du projet de reconnaissance de signature 2011/2012]]. Ce projet utilise une tablette graphique et un écran de DS3. Nous devons donc changer le code pour l'adapter à Android. |
||
==Gestion de projet== |
|||
===Repartition des taches=== |
|||
Nous avons fonctionné en plusieurs petites équipe. Chaque équipe avait un objectif précis. A savoir : |
|||
Equipe IHM : Rolly, Qikai |
|||
Equipe Acquisition : Rolly, Mickael, Qikai |
|||
Equipe Noyau (Decision/Traitement des données/BD) : Soriya, Joachim, Florian |
|||
Ensuite les membres de chaque équipe "naviguer" lorsqu'il y avais des problèmes et nécessité de l'aide. |
|||
===Mode de fonctionnement=== |
|||
===Gantt prévisionnel=== |
===Gantt prévisionnel=== |
||
Voici le gantt prévisionnel que nous avons réalisé. Il se compose de deux diagrammes. Le Gantt en lui même pour voir les différentes taches ainsi que leur durée. Le diagramme de ressources, pour voir la répartition des taches. |
Voici le gantt prévisionnel que nous avons réalisé. Il se compose de deux diagrammes. Le Gantt en lui même pour voir les différentes taches ainsi que leur durée. Le diagramme de ressources, pour voir la répartition des taches. |
||
Line 22: | Line 38: | ||
[[File:Ressource_prev.png|thumb|center|upright=3|alt=Distribution des ressources prévisionnel|Distribution des ressources prévisionnel]] |
[[File:Ressource_prev.png|thumb|center|upright=3|alt=Distribution des ressources prévisionnel|Distribution des ressources prévisionnel]] |
||
=Description Logicielle= |
|||
⚫ | |||
⚫ | |||
Pour réaliser l'Interface Homme machine une pré-étude des l'IHM du projet de 2011/2012. |
Pour réaliser l'Interface Homme machine une pré-étude des l'IHM du projet de 2011/2012. |
||
Ensuite cette étape ce décomposeras en 4 parties : |
Ensuite cette étape ce décomposeras en 4 parties : |
||
==Aquisition d'une signature== |
|||
=====Réalisation des interfaces abstraite ===== |
|||
Pas encore réalisé. |
|||
Développeur : Rolly / Florian(à 50%) |
|||
=== |
===Acquisition=== |
||
⚫ | |||
Pas encore réalisé. |
|||
⚫ | |||
⚫ | |||
===Interpolation === |
|||
Développeur : Rolly / Florian (à 50%) |
|||
===Transformation des données === |
|||
===Enregistrement des données === |
|||
==Comparaison de signatures== |
|||
=====Réalisation des interfaces concrètes===== |
|||
Pas encore réalisé. |
|||
Développeur : Rolly / Florian (à 50%) |
|||
===== Implémentation===== |
|||
Pas encore réalisé. |
|||
Développeur : Rolly / Florian (à 50%) |
|||
====Noyau==== |
|||
En plus de réaliser la portabilité de l'application sur Android, le projet prévois en plus de modifié les méthodes de calcul des distances entre deux signatures. |
En plus de réaliser la portabilité de l'application sur Android, le projet prévois en plus de modifié les méthodes de calcul des distances entre deux signatures. |
||
=====Prise en main de l'ancien noyau===== |
|||
L'année dernière, la comparaison des signatures reposait sur les coordonnées dans le plan de chaque point ainsi que le temps d'acquisition et la pression exercée. Nous n'avons pas repris cette méthode car elle nécessite une normalisation des signatures qui consiste à faire pivoter les signatures afin qu'elles aient la même orientation, puis modifier la taille pour qu'elles aient la même. Sans cette normalisation, les 2 signatures ne peuvent pas être comparées car elles sont considérées comme étant différentes. |
L'année dernière, la comparaison des signatures reposait sur les coordonnées dans le plan de chaque point ainsi que le temps d'acquisition et la pression exercée. Nous n'avons pas repris cette méthode car elle nécessite une normalisation des signatures qui consiste à faire pivoter les signatures afin qu'elles aient la même orientation, puis modifier la taille pour qu'elles aient la même. Sans cette normalisation, les 2 signatures ne peuvent pas être comparées car elles sont considérées comme étant différentes. |
||
Line 61: | Line 68: | ||
Le calcul des angles pose un problème : pour des valeurs comprises entre 0° et 360° les angles proches de 0° (la ligne droite) génère une erreur. Pour des mesures allant de -180° à 180° c’est le demi-tour qui génère une erreur. Nous avons décidé de garder la seconde solution car il et rare de faire un demi-tour dans une signature, contrairement à la ligne droite. |
Le calcul des angles pose un problème : pour des valeurs comprises entre 0° et 360° les angles proches de 0° (la ligne droite) génère une erreur. Pour des mesures allant de -180° à 180° c’est le demi-tour qui génère une erreur. Nous avons décidé de garder la seconde solution car il et rare de faire un demi-tour dans une signature, contrairement à la ligne droite. |
||
===Calcul de distance=== |
|||
Après avoir récupérer tous les points, nous calculons la liste des angles générés et l'accélération, chaque signature compte 1000 points, ces points sont générés par interpolation de la méthode B-Spline. Nous construisons 2 courbes pour chaque signature, une courbe sur les angles et une courbe d'accélération. |
Après avoir récupérer tous les points, nous calculons la liste des angles générés et l'accélération, chaque signature compte 1000 points, ces points sont générés par interpolation de la méthode B-Spline. Nous construisons 2 courbes pour chaque signature, une courbe sur les angles et une courbe d'accélération. |
||
Line 70: | Line 77: | ||
Développeur : Joachim / Soriya |
Développeur : Joachim / Soriya |
||
=====Diagramme de classes/Diagramme de séquence===== |
|||
Pas encore réalisé. |
|||
⚫ | |||
Développeur : Joachim / Soriya |
|||
Nous ne sommmes basé sur le travail des années précédantes et avons choisi [http://fr.wikipedia.org/wiki/Weka_(apprentissage_automatique) Weka ]comme logiciels d'apprentissage automatique. |
|||
=====Implémentation Android===== |
|||
Pas encore réalisé. |
|||
Le premier problème que nous avons rencontré que le Weka n'est pas compatible avec android. Nous avons utilisé une version "strippé" de weka présent sur le lien gitHub suivant [https://github.com/rjmarsan/Weka-for-Android https://github.com/rjmarsan/Weka-for-Android]. |
|||
Développeur : Joachim / Soriya |
|||
Notre prise de décision utilise les données suivantes |
|||
====Acquisition==== |
|||
* Angle formé un triplé de point |
|||
⚫ | |||
* l'accélération entre les points de saisie |
|||
⚫ | |||
⚫ | |||
Nous avons pu ainsi mettre en place dans un premier temps un système d'authentification. |
|||
=====Etude de faisabilité ===== |
|||
[[Image:WekaSchema_authentification_2013.png|thumb|center|upright=3|WekaSchema_authentification_2013]] |
|||
Pas encore réalisé. |
|||
Pour obtenir une identification nous avons repris le système de l'authentification que nous itérons sur chacun des profils |
|||
Développeur : Mickaël / Qikai |
|||
[[Image:WekaSchema_identification_2013.png|thumb|center|upright=3|WekaSchema_identification_2013.png]] |
|||
=====Prototype===== |
|||
[[File:WekaSchema_identification2_2013.png|thumb|center|upright=3|WekaSchema_identification2_2013.png]] |
|||
Pas encore réalisé. |
|||
Le profil obtenant le meilleur score est considéré comme le profils identifié. |
|||
Développeur : Mickaël / Qikai |
|||
=Source= |
|||
⚫ | |||
Par la suite il faudra implémenté un petit module de prise de décision, c'est celui-ci qui décideras, en fonction d'un seuil, au autre, si une signature est accepter ou pas. Ainsi d'autre critères d'acceptation pourrons être rajouté. |
Latest revision as of 12:22, 22 March 2013
Projet reconnaissance de signature 2012-2013
Description du projet
Membres du projet
Florian FOURURE - RICM5 - Polytech Grenoble - ffourure@free.fr
Qikai GU - RICM5 - Polytech Grenoble - qikai.gu88@gmail.com
Rolly NGOUALA - RICM5 - Polytech Grenoble - rollyngouala@gmail.com
Mickaël NICOLACCINI - RICM5 - Polytech Grenoble - m.nicolaccini@gmail.com
Soriya PRAK - RICM5 - Polytech Grenoble - soriya-prak@hotmail.fr
Joachim SEGALA - RICM5 - Polytech Grenoble - joachim.segala@gmail.com
Description du projet
Ce projet consiste a créer une application Android de reconnaissance de signature. Pour cela, nous devons utiliser le projet de reconnaissance de signature réalisé l'année d'avant (2011/2012) Page wiki du projet de reconnaissance de signature 2011/2012. Ce projet utilise une tablette graphique et un écran de DS3. Nous devons donc changer le code pour l'adapter à Android.
Gestion de projet
Repartition des taches
Nous avons fonctionné en plusieurs petites équipe. Chaque équipe avait un objectif précis. A savoir :
Equipe IHM : Rolly, Qikai
Equipe Acquisition : Rolly, Mickael, Qikai
Equipe Noyau (Decision/Traitement des données/BD) : Soriya, Joachim, Florian
Ensuite les membres de chaque équipe "naviguer" lorsqu'il y avais des problèmes et nécessité de l'aide.
Mode de fonctionnement
Gantt prévisionnel
Voici le gantt prévisionnel que nous avons réalisé. Il se compose de deux diagrammes. Le Gantt en lui même pour voir les différentes taches ainsi que leur durée. Le diagramme de ressources, pour voir la répartition des taches.
Description Logicielle
Interface Homme Machine
Pour réaliser l'Interface Homme machine une pré-étude des l'IHM du projet de 2011/2012. Ensuite cette étape ce décomposeras en 4 parties :
Aquisition d'une signature
Acquisition
Vue que le projet change de support d'acquisition, toutes les données enregistrées ne sont pas forcément accessible. Par exemple la pression d'un point n'est pas forcément récupérable sur Android. Cependant d'autre données peuvent, peut-être, être récupérées. Il faut donc faire une étude de faisabilité afin de savoir quelles données notre application va capter. Ensuite un prototype (non relié au reste de l'application) doit être réalisé afin de l'intégrer ensuite à l'application.
Interpolation
Transformation des données
Enregistrement des données
Comparaison de signatures
En plus de réaliser la portabilité de l'application sur Android, le projet prévois en plus de modifié les méthodes de calcul des distances entre deux signatures.
L'année dernière, la comparaison des signatures reposait sur les coordonnées dans le plan de chaque point ainsi que le temps d'acquisition et la pression exercée. Nous n'avons pas repris cette méthode car elle nécessite une normalisation des signatures qui consiste à faire pivoter les signatures afin qu'elles aient la même orientation, puis modifier la taille pour qu'elles aient la même. Sans cette normalisation, les 2 signatures ne peuvent pas être comparées car elles sont considérées comme étant différentes.
Cette année, nous avons décidé de basé nos calculs sur les angles formés entre 3 points et l'accélération entre 2 points. Nous n'avons ainsi pas besoin d'effectuer une normalisation car les angles sont conservés quelque soit la forme de la signature.
Comme l’année précédente nous effectuons un traitement sur les données acquises afin d’obtenir un nombre de point fixe, dans notre cas 1000 points par signature issus de l’interpolation. La classe Vecteur permet de calculer l’angle formé par un triplet de points et l’accélération entre 2 points.
Le calcul des angles pose un problème : pour des valeurs comprises entre 0° et 360° les angles proches de 0° (la ligne droite) génère une erreur. Pour des mesures allant de -180° à 180° c’est le demi-tour qui génère une erreur. Nous avons décidé de garder la seconde solution car il et rare de faire un demi-tour dans une signature, contrairement à la ligne droite.
Calcul de distance
Après avoir récupérer tous les points, nous calculons la liste des angles générés et l'accélération, chaque signature compte 1000 points, ces points sont générés par interpolation de la méthode B-Spline. Nous construisons 2 courbes pour chaque signature, une courbe sur les angles et une courbe d'accélération.
Pour le calcul de distance, nous disposons d'une courbe modèle et nous construisons les autres courbes grâce aux acquisitions. La méthode du Dynamic Time Warping nous permet de calculer la distance entre nos 2 séries de données, ici nos courbes. Plus la distance retournée est faible, plus les courbes sont similaires. A l’inverse, un résultat élevé indique des courbes différentes.
Développeur : Joachim / Soriya
Prise de décision
Nous ne sommmes basé sur le travail des années précédantes et avons choisi Weka comme logiciels d'apprentissage automatique.
Le premier problème que nous avons rencontré que le Weka n'est pas compatible avec android. Nous avons utilisé une version "strippé" de weka présent sur le lien gitHub suivant https://github.com/rjmarsan/Weka-for-Android.
Notre prise de décision utilise les données suivantes
- Angle formé un triplé de point
- l'accélération entre les points de saisie
Nous avons pu ainsi mettre en place dans un premier temps un système d'authentification.
Pour obtenir une identification nous avons repris le système de l'authentification que nous itérons sur chacun des profils
Le profil obtenant le meilleur score est considéré comme le profils identifié.