Implémentation sur mobile

Implémentation sur mobile

L’application est développée pour fonctionner sur téléphone mobile avec le système d’exploitation Android. L’outil de développement utilisé est le SDK Android détaillé en Annexe 3. Comme illustré sur le Tableau III, on a choisi de développer l’application en se basant sur une configuration de la plupart des smartphones existant sur le marché actuel. Le fonctionnement général de l’application est assez simple comme le montre la figure. L’image d’une équation est prise en photo avec l’appareil photo ou téléchargéedepuis la galerie du téléphone. Cette image est ensuite analysée pour déterminer le type de l’équation et la résoudre. Comme illustré par laFigure 3.2, l’écran d’accueil de l’application comporte 3 boutons, un bouton affiche un écran de configuration pour optimiser la reconnaissance, un bouton pour prendre en photo une équation et un bouton pour lancer la reconnaissance.

Architecture générale de l’application

Pour optimiser la transmission et le traitement de données, on doit doter l’application d’une bonne architecture. L’architecture utilisée est l’architecture de type 3 tiers, architecture à trois niveaux ou architecture à trois couches. Comme illustré sur laFigure 3.6, l’architecture de l’application est composée de 3 couches: • Couche présentation: toute action provenant de l’utilisateur telle que la capture, la reconnaissance sont lancées via cette couche. Elle correspond à la partie de l’application visible et interactive avec l’utilisateur. • Couche de traitement : elle correspond à la mise en œuvre de l’ensemble des règles de gestion et logique applicative. Elle correspond à la partie fonctionnelle de l’application, celle qui implémente la logique et qui décrit les opérations que l’application opère sur les données en fonction des requêtes des utilisateurs, effectuées au travers de la couche présentation.

Implémentation proprement dit de l’application sur mobile

L’image de l’application capture est assez grande et peut comporter d’autres informations qui ne sont pas utiles. Un système de sélection de l’équation a été mis en place pour diminuer la taille de l’image à traiter et aussi pour cibler facilement l’équation à traiter comme illustré sur laFigure 3.7. Le seuillage de l’image est assez difficile parce que le niveau du seuil choisi détermine les données qui vont être traitées. La formule (3.1) utilisée sur chaque pixel de l’image initial pour obtenir l’image binarisée est: Apres l’opération de seuillage, l’image est symbolisée par un tableau de booleancomme illustré en Annexe 2 ceci dans le but de minimiser l’espace mémoire occupé par chaque caractère car un boolean n’occupe que 1 octet comme illustré sur le Tableau IV.

La segmentation d’un caractère dans l’image nécessite une segmentation de colonne et une segmentation de ligne. Dans cette étude, les textes à segmenter seront des équations mathématiques, donc pour des cas particuliers de forme d’équation, il sera nécessaire de réitérer ces deux opérations pour isoler les variables et constantes composant les fonctions. Après une opération de segmentation de ligne et de colonne, on a des blocs d’éléments de l’équation qui nécessitent encore plusieurs niveaux de segmentation. Prenons par exemple une équation comportant une fraction illustrée par laFigure 3.8, tous les éléments de la fraction seront englobés en un même bloc après une opération de segmentation de ligne et de colonne par projections horizontale et verticale. Il sera donc nécessaire de refaire la segmentation du bloc de fraction pour localiser le numérateur et le dénominateur ainsi que la barre de fraction.

Nous avons vu au chapitre précédent les différentes caractéristiques qu’on va utiliser pour différencier un caractère d’un autre. Pour leur implémentation, on va réduire au maximum les données à traiter sans pour autant perdre les informations nécessaires. A ce stade, il y a encore des confusions entre certains caractères. Ces confusionsse posent surtout dans le cas des nombres 3, 5, 6, 8, 9. Pour pallier à ce problème, on a implémenté un algorithme de détection des concavités. Comme évoqué au chapitre 2, les concavités peuvent être localisées en envoyant un certain nombre de « sondes » vers le caractère. Pour l’implémentation, on détecte le premier pixel trouvé à gauche et à droite du caractère, c’est-à-dire à 30%, 60 %, 90 % de sa hauteur comme illustrée .

Cours gratuitTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *