Vous êtes sur la page 1sur 46

UNIVERSITE DE FIANARANTSOA

ECOLE DE MANAGEMENT ET D’INNOVATION


TECHNOLOGIQUE

Mention : INFORMATIQUE

Parcours : SIGD / M2I

MINI MEMOIRE MASTER I

Développement d’un système de Reconnaissance d’écriture


manuscrite

Réaliser par :

- RABENANTENAINA Itokiana Valimbavaka


- RANIRIHARINOSY Daniel Yvan

Encadré par Dr ANDRIATRIMOSON Antonio Tsiory

Année universitaire : 2022-2023


ii
CURRICULUM VITAE 1

RABENANTENAINA Itokiana Valimbavaka


21 octobre 2000 à Mahitsy
Masculin - Célibataire
0347662392
Email : itokianarabenantenaina@gmail.com

EDUCATIONS
- 2022-2023 : Master I à l’EMIT Fianarantsoa.

- 2021-2022 : Troisième année en licence à la formation de Développement


d’Application

Internet/Intranet ou DAII à l’EMIT.

- 2020-2021 : Deuxième année en licence à la formation de Développement


d’Application

Internet/Intranet ou DAII à l’EMIT.

- 2019 -2022 : 1 ère année en licence à la formation de DAII à l’EMIT ou Ecole de


Management et d’Innovation Technologique

 2018-2019 : Obtention du diplôme Baccalauréat série C au Lycée de Mahitsy.

CONNAISSANCES EN INFORMATIQUE
- Bureautique : Word- Excel- Power Point- Internet- Installation logiciel.
- Langages de programmation : Java, C#, C, Pascal, Python.
- Systèmes de gestion de base : Access, MySQL, SQL server, Sqlite3.
- Technologies web : PHP, Html, JavaScript, Jsp.
- Framework : Laravel, CodeIgniter, Struts, ReactJS ...
- Méthode et Outil : - MERISE, SCRUM, XP
-UML, Git, Github,AWS,...

i
EXPERIENCES PROFESSIONNELLES
- Juin 2022 : Stage au sein de Meddoc Ampefiloha pour le thème de Conception et
réalisation d’une Application E-learning pour les Professionnels et acteur de la santé.
- Mars 2021 : Stage au sein de l’entreprise Index Consulting avec le
- Thème de gestion de vente et stock de Marchandise sous langage Java.
- Janvier 2021 : Conception et réalisation d’une application de gestion d’établissement
avec le langage PHP
- Janvier 2021 : Conception et réalisation d’une application de gestion de rapport de
stage avec le langage C#

- Décembre 2019 : -Voyage d’Etude à Antsirabe


-Conception et réalisation d’une application de gestion vente
d’appartement avec MS Accès.

CONNAISSANCES LINGUISTIQUES

Linguistique Lu Ecrit Parlé

Malagasy Très Très Bien


Bien Bien

Français Très Bien Bien


Bien

Anglais Bien Assez- Assez-Bien


Bien

CENTRE D’INTERET : codage, jeux vidéos, nouvelle technologie, jouer de la


guitare.

ii
CURRICULUM VITAE 2

RANIRIHARINOSY Daniel Yvan


Né le 12 Janvier 2000 à Fianarantsoa
draniriharinosy@gmail.com
+261348225297

ETUDES ET DIPLOMES
- 2021-2022 : Diplôme de Licence de Licence Professionnelle à l’Ecole de Management
et d’Innovation Technologique (EMIT) de l’Université de Fianarantsoa.
- 2018-2019 : Baccalauréat série C.
- 2017-2018 : Baccalauréat série A.
- DELF et DALF niveau B2.

COMPETENCES EN INFORMATIQUE
- Frameworks : JSP, ReactJs, CodeIgniter
- Langages de programmations : PHP, C#, C++, C, Python, Java, JavaScripts
- Méthode de conception : MERISE
- Langage de modélisation : UML
- Autres : VSCode, Eclipse Workspace, Netbeans IDE
- Bureautiques : Word, Excel, PowerPoint

EXPERIENCES
 2022-2023 : Mise en place d’un système de monitoring pour la nouvelle plateforme de
datawarehouse d’Orange Madagascar.
- 2019-2020 : Réalisation d’un site web dynamique au sein de l’Agence Capsule
Madagascar.
- 2017-2018 : Projet de gestion d’une bibliothèque avec Microsoft Access à l’EMIT.

DIVERS
- Sport : Football, tennis de table
- Loisirs : musique, documentaire/

iii
CONNAISSANCE LINGUISTIQUES
Aptitudes Compréhension Ecrite Orale

Niveaux TB B AB P TB B AB P TB B AB P

Malagasy X X X

Français X X X

Anglais X X X

Grille d’évaluation : TB : Très bien ; B : Bien ; AB : Assez bien ; P : Passable

iv
Avant-propos

Cette thèse présente mes travaux réalisés dans le cadre du projet M1 au sein de l’EMIT
fianarantsoa.
L’objectif de cette thèse est de concevoir un système de reconnaissance d’écriture manuscrite,
capable de connaitre une image en entrer contenant une lettre manuscrite et de le convertir en
numérique. Le système proposé est basé sur des modèles d’apprentissage profond supervisés.

v
Remerciement

- Il nous est particulièrement agréable avant de présenter notre travail, d’exprimer toute
notre gratitude envers les personnes qui de près ou de loin nous ont apporté leur
sollicitude. Ce présent ouvrage a été le fruit d’une collaboration de différents intervenants
à qui nous tenions présenté tous nos sincères remerciements. Plus particulièrement à ;
- Professeur HAJALALAINA Aimé Richard, Président de l’Université de Fianarantsoa ;
- Docteur RAKOTONIRAINY Hasina Lalaina, Directeur de l’Ecole de Management et
d’Innovation Technologique - Université de Fianarantsoa (EMIT-UF), de m’avoir
accueilli dans son Etablissement ;
- Docteur Arisetra RAZAFINIMARO Responsable de la Mention Informatique pour le
Master à l’EMIT-UF, qui nous donne des informations (Mini-Mémoire, etc..) et valide
notre thème.
- Docteur ANDRIATRIMOSON Antonio Tsiory pour l’encadrement.
- A tous les enseignants et les personnels de l’EMIT-UF. ;

Ces remerciements vont également à nos très chères et adorables familles qui sont
toujours été présents, avec leurs soutiens et leurs précieuses aides, et à tous ceux qui sont
concourus pour accumuler cet ouvrage.

Merci à vous tous !

vi
Liste des cartes et figures

Figure 1 Architecture d’un CNN............................................................................................................15


Figure 2 Précision.................................................................................................................................20
Figure 3 Courbe d'apprentissage..........................................................................................................20
Figure 4 Architecture du modèle..........................................................................................................21
Figure 5 Code lors de l'entrainement de model...................................................................................23
Figure 6 Perte d'entrainement.............................................................................................................24
Figure 7 Matrice de confusion..............................................................................................................26
Figure 8 Flask dans Reactjs...................................................................................................................27
Figure 9 Api Flask..................................................................................................................................27
Figure 10 Interface de l'application......................................................................................................28
Figure 11 Insertion de l'image..............................................................................................................28

1
Liste des tableaux

Tableau 2.1 : Comparaison entre le CNN, SVM, KNN

2
Liste des abréviations

CEDAR : Centre d'excellence pour l'analyse et la reconnaissance de documents


CER : Taux d'erreur de caractères
CNN : Réseaux de neurones convolutifs
GAN : Réseaux génératifs adverses
KNN : K-plus proches voisins
LSTM : Mémoire à court terme et long terme
MNIST : Modified National Institute of Standards and Technology
NLP : Traitement du langage naturel
RNA : Réseau de neurones artificiels
RNN : Réseaux de neurones récurrents
SVM : Machines à vecteurs de support

3
Glossaire

EMNIST : Base de données d'images de chiffres et de lettres manuscrits étendue


MNIST : Base de données d'images de chiffres manuscrits

4
Table des matières
CURRICULUM VITAE 1.........................................................................................................................i
EDUCATIONS......................................................................................................................................i
CONNAISSANCES EN INFORMATIQUE........................................................................................i
EXPERIENCES PROFESSIONNELLES............................................................................................ii
CONNAISSANCES LINGUISTIQUES..............................................................................................ii
CENTRE D’INTERET : codage, jeux vidéos, nouvelle technologie, jouer de la guitare...................ii
CURRICULUM VITAE 2......................................................................................................................iii
ETUDES ET DIPLOMES...................................................................................................................iii
COMPETENCES EN INFORMATIQUE..........................................................................................iii
EXPERIENCES..................................................................................................................................iii
DIVERS..............................................................................................................................................iii
CONNAISSANCE LINGUISTIQUES...............................................................................................iv
Avant-propos............................................................................................................................................v
Remerciement..........................................................................................................................................vi
Liste des cartes et figures..........................................................................................................................1
Liste des tableaux.....................................................................................................................................2
Liste des abréviations...............................................................................................................................3
Glossaire...................................................................................................................................................4
Introduction..............................................................................................................................................7
Partie I : Méthodes et matériels................................................................................................................8
Chapitre 1 : Etat de l’art.......................................................................................................................8
1.1 Méthodes traditionnelles :....................................................................................................8
1.2 Apprentissage automatique :................................................................................................9
1.3 Techniques avancées :........................................................................................................10
1.4 Bases de données et benchmarks :......................................................................................10
1.5 Problèmes et défis :.............................................................................................................11
1.6 Conclusion..........................................................................................................................11
Chapitre 2 : Méthodes et notations utilisées.......................................................................................13
2.1 Comparaison entre le CNN , SVM,KNN...........................................................................13
2.2 Définition d’un CNN..........................................................................................................14
2.3 Architecture d'un CNN.......................................................................................................15
2.4 Couche de convolution.......................................................................................................16
2.5 Couche de pooling..............................................................................................................16
2.6 Couche fully-connected......................................................................................................16
2.7 Exemples de CNNs.............................................................................................................16
Chapitre 3 : Matériels et outils...........................................................................................................18

5
3.1 Logiciel ou IDE :................................................................................................................18
3.2 Framework et librairie :......................................................................................................18
Partie II : Résultat...................................................................................................................................20
Chapitre 4 : Proposition......................................................................................................................20
Chapitre 5 : Mise en œuvre et implémentation...................................................................................21
5.1 Architecture du modèle.......................................................................................................21
5.2 Extrait de code lors de l’entrainement de model................................................................23
5.3 Visualiser l'évolution de la perte d'entraînement......................................................................24
5.4 Matrice de confusion..........................................................................................................26
5.5 Implémentation de l’api Flask dans ReactJs :....................................................................27
5.6 Création de l’api flask :......................................................................................................27
Chapitre 6 : Présentation de l’application développée.......................................................................28
Chapitre 7 : Forces..............................................................................................................................29
Chapitre 8 : Faiblesses........................................................................................................................31
Chapitre 9 : Recommandations et suggestions...................................................................................33
CONCLUSION......................................................................................................................................35
Bibliographie..........................................................................................................................................36
RESUME
ABSTRACT

6
Introduction

Depuis l'avènement de l'informatique, l'humanité s'est constamment efforcée de


concevoir des programmes capables de reconnaître de l'écriture manuscrite sur des supports
physiques. Les applications de la reconnaissance optique de caractères se déploient dans
divers secteurs, de la sphère bancaire avec la saisie automatique de chèques à la
reconnaissance de plaques d'immatriculation pour les radars automobiles. Cette technologie a
considérablement évolué, passant de la simple identification de caractères imprimés à des
défis plus complexes, notamment la reconnaissance fiable des caractères écrits de manière
manuscrite.

Aujourd'hui, la quête d'une reconnaissance efficace de l'écriture manuscrite représente un


enjeu majeur. Les applications potentielles de cette avancée sont vastes, touchant des
domaines tels que la numérisation de documents historiques, la gestion automatisée de
formulaires manuscrits, et même des applications médicales pour l'analyse de notes
manuscrites dans le domaine de la santé.

Cette évolution marque une étape cruciale dans le développement des systèmes de traitement
de l'information. L'objectif actuel est d'aller au-delà de la simple reconnaissance de formes
pour parvenir à une compréhension plus profonde du contenu écrit manuscrit. Ces progrès
ouvrent de nouvelles perspectives pour une intégration plus avancée et précise de la
reconnaissance de l'écriture manuscrite, renforçant ainsi les capacités des systèmes
informatiques à interagir de manière plus naturelle avec les utilisateurs et à traiter
efficacement un large éventail de données écrites. Cette évolution continue de redéfinir la
manière dont nous interagissons avec l'information écrite dans le monde numérique en
constante mutation.

7
Partie I : Méthodes et matériels
Chapitre 1 : Etat de l’art

L'écriture manuscrite, fondement séculaire de la communication humaine, transcende les


époques et demeure un moyen d'expression singulier. Dans le monde numérique
contemporain, la reconnaissance automatisée de lettres de l'alphabet manuscrites revêt une
importance capitale, jouant un rôle prépondérant dans des domaines aussi variés que la
numérisation des archives, la sécurité biométrique et l'interaction homme-machine. Ce défi
complexe interpelle les chercheurs et les ingénieurs, les invitant à explorer des voies
innovantes afin de concilier la richesse de la diversité calligraphique humaine avec les
exigences de la technologie.

Cette quête de décryptage visuel impose une réflexion approfondie, embrassant les frontières
de la vision par ordinateur, de l'apprentissage automatique et de la reconnaissance de formes.
Des avancées significatives ont été réalisées, propulsant la reconnaissance de lettres
manuscrites au-delà des méthodes traditionnelles pour embrasser les promesses des réseaux
de neurones, des algorithmes d'apprentissage automatique et des architectures innovantes.

Cette revue englobe ainsi l'évolution des approches, des défis rencontrés et des solutions
proposées dans le vaste domaine de la reconnaissance des lettres de l'alphabet manuscrites. À
travers cette exploration, nous dévoilerons les fondements technologiques qui alimentent cette
entreprise multidisciplinaire, soulignant l'importance cruciale de cette recherche dans la
transition entre le monde scriptural traditionnel et l'ère numérique contemporaine.

1.1 Méthodes traditionnelles :


1.1.1. Méthodes basées sur des règles : Ces approches utilisent des règles
spécifiques pour identifier chaque lettre. Cependant, elles peuvent être limitées
en termes de généralisation et de flexibilité.

1.1.2. Extraction de caractéristiques manuelles : Les caractéristiques comme les


moments, les profils de pixels et les contours sont extraites à partir des images
des lettres pour être utilisées dans des algorithmes de classification.

Les approches traditionnelles reposaient sur des techniques de traitement d'image et


de caractéristiques manuelles. Les méthodes traditionnelles débutent souvent par
l’extraction de caractéristiques pertinentes à partir des images d’écriture manuscrite.

8
Les techniques telles que l’extraction des contours, la détection des lignes, et
l’utilisation de descripteurs de texture ont été largement employées. Ces
caractéristiques sont cruciales pour représenter de manière significative
l’information contenue dans l’image. De plus des méthodes comme les
classificateurs traditionnels ont été utilisées. Une fois les caractéristiques extraites,
des classificateurs traditionnels tels que les machines à vecteurs de support (SVM),
les k-plus proches voisins (k-NN) et les arbres de décision sont couramment utilisés.
Ces algorithmes ont démontré leur efficacité dans la classification de l’écriture
manuscrite en se basant sur les caractéristiques extraites. Des méthodes telles que la
segmentation de caractères, l'extraction de traits et l'utilisation de classificateurs
basés sur des règles ont été largement utilisées. Cependant, ces approches étaient
souvent sensibles aux variations individuelles de l'écriture.

1.2 Apprentissage automatique :


L'apprentissage automatique, un sous-domaine de l'intelligence artificielle, révolutionne de
nombreux secteurs en permettant aux machines d'apprendre à partir de données et d'améliorer
leurs performances sans une programmation explicite.

 Réseaux de neurones artificiels : Les réseaux de neurones, en particulier les réseaux


de neurones convolutifs (CNN), sont largement utilisés pour la reconnaissance
d'images, y compris celle des lettres manuscrites.
 Machines à vecteurs de support (SVM) : Les SVM sont utilisées pour la
classification en apprenant à séparer les différentes classes de lettres manuscrites dans
un espace multidimensionnel.
 Forêts aléatoires et k-plus proches voisins (KNN) : Ces méthodes sont souvent
utilisées pour la classification de caractères en se basant sur des caractéristiques
extraites des images.

Les méthodes d'apprentissage automatique appliquées aux RNA comprennent notamment


l'apprentissage supervisé, où le réseau est formé sur des données étiquetées pour prédire des
résultats spécifiques, et l'apprentissage non supervisé, où le réseau identifie des structures
ou des schémas dans des données non étiquetées. Ces modèles peuvent également bénéficier
de l'apprentissage par renforcement pour améliorer leurs performances en prenant des
décisions séquentielles dans des environnements dynamiques. L'intégration de
l'apprentissage automatique dans les RNA permet d'aborder des tâches complexes telles que
la reconnaissance de la parole, la vision par ordinateur, la traduction automatique et bien
d'autres, ouvrant ainsi la voie à des applications novatrices dans divers secteurs. En
exploitant la capacité des RNA à apprendre des représentations hiérarchiques et abstraites,
l'apprentissage automatique contribue à relever des défis complexes et à améliorer les
performances des systèmes intelligents.
Son avènement a considérablement transformé la reconnaissance d'écriture manuscrite. Les
réseaux de neurones, en particulier les réseaux neuronaux convolutionnels (CNN) et les

9
réseaux de neurones récurrents (RNN), ont démontré des performances significatives. Des
architectures comme Long Short-Term Memory (LSTM) ont été adaptées pour traiter la
séquence temporelle des caractères.

1.3 Techniques avancées :


o Réseaux de neurones récurrents (RNN) : Ces réseaux sont utiles pour traiter
les séquences de lettres, ce qui est important pour la reconnaissance de
l'écriture manuscrite.
o Réseaux adverses génératifs (GAN) : Les GAN peuvent être utilisés pour
augmenter les ensembles de données et améliorer la robustesse des modèles.
o Transformers : Ces architectures, originellement développées pour le
traitement du langage naturel, sont également appliquées avec succès à la
vision par ordinateur.

1.4 Bases de données et benchmarks :


 MNIST : Bien qu'initialement conçue pour les chiffres, la base de données
MNIST est souvent utilisée comme point de départ pour la reconnaissance de
caractères.
 EMNIST : Une extension de MNIST qui inclut des lettres majuscules et
minuscules.
 IAM Handwriting Database : Une base de données plus complexe qui contient
des mots manuscrits.
Le développement de vastes ensembles de données annotés, tels que l'IAM
Handwriting Database et CEDAR, a considérablement impulsé la recherche en fournissant
des données cruciales pour l'entraînement et l'évaluation des modèles de reconnaissance de
l'écriture manuscrite. Les évaluations utilisent fréquemment des mesures telles que le taux de
reconnaissance des caractères et les taux d'erreurs. Ces ensembles de données jouent un rôle
essentiel en offrant une diversité de styles d'écriture, de variations contextuelles et de
scénarios d'utilisation réalistes, permettant ainsi aux modèles d'apprendre à généraliser de
manière plus efficace. L'IAM Handwriting Database, par exemple, contient des milliers de
documents manuscrits issus de diverses sources, offrant ainsi une représentation riche des
défis liés à la reconnaissance de l'écriture. De même, le CEDAR (Center of Excellence for
Document Analysis and Recognition) fournit une variété d'ensembles de données,
encourageant la recherche dans des domaines spécifiques tels que la reconnaissance d'écriture
manuscrite et la segmentation de documents.
Les évaluations de modèles de reconnaissance de l'écriture manuscrite reposent fréquemment
sur des mesures telles que le taux de reconnaissance des caractères (CER - Character Error
Rate) et les taux d'erreurs. Le CER mesure la proportion d'erreurs de reconnaissance par
caractère dans le texte généré par le modèle par rapport au texte de référence. Ces mesures
fournissent une évaluation quantitative de la performance des modèles, permettant aux

10
chercheurs et aux praticiens de comparer différentes approches et de mesurer les progrès dans
le domaine. En mettant l'accent sur ces évaluations, la communauté de recherche vise à
améliorer continuellement les modèles de reconnaissance de l'écriture manuscrite, renforçant
ainsi leur applicabilité dans des applications du monde réel, allant de la transcription
automatique de documents à la reconnaissance de l'écriture dans des environnements
interactifs.

1.5 Problèmes et défis :


La reconnaissance de l'écriture manuscrite, bien que bénéficiant de progrès
significatifs, demeure confrontée à des défis intrinsèques. La variabilité des styles d'écriture,
qu'ils soient dus à des différences individuelles ou à des contextes spécifiques, pose un défi
majeur en termes d'entraînement de modèles capables de généraliser efficacement. De plus, la
disponibilité limitée de données annotées peut entraver le développement de modèles de
reconnaissance robustes, notamment dans des langues ou des contextes spécifiques moins
représentés. Ces défis soulignent la nécessité de méthodes novatrices qui puissent traiter la
diversité inhérente à l'écriture manuscrite tout en étant capables de fonctionner avec des
ensembles de données limités. Cependant, au milieu de ces défis, des opportunités émergent.
L'intégration de techniques de traitement du langage naturel (NLP) offre une avenue
prometteuse. En comprenant le contexte entourant l'écriture manuscrite, tel que l'intention de
l'auteur, le contenu du texte et les relations sémantiques, les modèles peuvent atteindre une
compréhension plus approfondie. L'utilisation de techniques NLP permet d'aller au-delà de la
simple reconnaissance de caractères pour embrasser une compréhension plus riche et nuancée
de l'information écrite. Ainsi, les défis actuels de la reconnaissance de l'écriture manuscrite
peuvent également être envisagés comme des opportunités d'innovation, incitant les
chercheurs à explorer des solutions holistiques et intégrées pour relever ces défis et débloquer
de nouveaux horizons d'applications pratiques.
Malgré les progrès significatifs, la reconnaissance d'écriture manuscrite fait face à des défis
tels que la variabilité des styles d'écriture et la gestion de données limitées. Les opportunités
résident dans l'intégration de techniques de traitement du langage naturel pour une
compréhension contextuelle plus approfondie.

1.6 Conclusion
En conclusion, l'évolution de la reconnaissance de l'écriture manuscrite reflète un
passage significatif des méthodes traditionnelles vers une utilisation intensive de
l'apprentissage automatique, marquant ainsi une ère de progrès considérables. L'intégration de
techniques avancées, telles que les Réseaux de Neurones Artificiels, a permis d'améliorer
sensiblement la précision et la flexibilité des systèmes de reconnaissance. Cependant, des
défis subsistent, tels que la variabilité des styles d'écriture et la gestion de données limitées,
invitant les chercheurs à se pencher sur des solutions novatrices. Les recherches futures
devraient se concentrer sur la résolution de ces défis persistants, en mettant l'accent sur des

11
approches hybrides qui exploitent la complémentarité des méthodes traditionnelles et des
techniques d'apprentissage automatique. L'exploration de synergies entre ces différentes
approches offre un potentiel prometteur pour atteindre des performances encore meilleures,
ouvrant la voie à des applications plus sophistiquées de la reconnaissance de l'écriture
manuscrite dans des domaines tels que la santé, la finance et la gestion de documents. En
résumé, bien que d'énormes progrès aient été réalisés, le champ de la reconnaissance
d'écriture manuscrite est en constante évolution, promettant des avancées continues grâce à
des recherches innovantes et des collaborations interdisciplinaires.
De plus la reconnaissance d'écriture manuscrite a connu une évolution remarquable, passant
des approches traditionnelles à l'utilisation intensive de l'apprentissage automatique. Les
recherches futures devraient se concentrer sur la résolution des défis persistants et
l'exploration de synergies entre différentes méthodes pour des performances encore
meilleures.

12
Chapitre 2 : Méthodes et notations utilisées
2.1 Comparaison entre le CNN, SVM, KNN
Voici un tableau simplifié pour la comparaison entre les réseaux de neurones artificiels
(CNN), les machines à vecteurs de support (SVM) et les méthodes basées sur les forêts
aléatoires et k-plus proches voisins (KNN) en termes de certaines caractéristiques clés :
Tableau 2.1 : Comparaison entre le CNN, SVM, KNN
Caractéristique CNN SVM Forêts aléatoires et
KNN
Capacité à Excellente, Bonne avec des Peut être limitée,
apprendre des particulièrement pour caractéristiques bien dépend de
représentations les images conçues l'ingénierie des
complexes caractéristiques
Performance avec Excellente, conçu Bonne, mais peut être Peut être sensible à la
des données de pour les données de limitée avec une dimensionnalité
grande dimension grande dimension dimensionnalité élevée
comme les images élevée
Interprétabilité Moins interprétable Plus interprétable Offre une certaine
en raison de la grâce aux marges de interprétabilité avec
complexité séparation l'importance des
caractéristiques
Sensibilité à la taille Peut nécessiter une Peut bien fonctionner Peut-être robuste
des données grande quantité de avec des ensembles avec des ensembles
données de données plus de données de taille
petits moyenne
Utilisation typique Vision par Classification avec Classification basée
ordinateur, des caractéristiques sur des
reconnaissance bien définies caractéristiques
d'images extraites
Complexité du Complexité élevée, Moins complexe que Moins complexe que
modèle nécessite plus de les CNN les CNN, plus simple
ressources que les SVM
Temps Souvent plus long en Généralement plus Peut être rapide, en
d'entraînement raison de la rapide que les CNN particulier pour KNN
complexité
Robustesse au bruit Peut être sensible au Peut-être robuste Peut être sensible au
surajustement avec avec des ensembles bruit, dépend de la

13
des données limitées de données plus méthode spécifique
petits
Popularité dans la Très populaire, en Populaire pour la Populaire pour
communauté particulier pour la classification diverses applications
vision par ordinateur traditionnelle de classification

Pour notre modèle prédictif, nous avons opté pour l'utilisation de réseaux de neurones à
convolution (CNN), comme indiqué dans le tableau ci-dessus. Cette décision découle du fait
que les CNN sont reconnus comme étant parmi les modèles les plus performants et innovants
dans le domaine de la vision par ordinateur.
La justification de ce choix pour la reconnaissance de lettres manuscrites est la suivante :

Les lettres manuscrites présentent une diversité importante en termes de style, d'orientation et
de dimensions. Les CNN excellent dans l'apprentissage automatique de caractéristiques
hiérarchiques à partir de données complexes telles que l'écriture manuscrite. Grâce à leurs
couches de convolution, les CNN peuvent automatiquement identifier des traits, des contours,
et des motifs spécifiques aux lettres, s'adaptant ainsi de manière dynamique à la diversité des
écritures.

La capacité intrinsèque des CNN à extraire des caractéristiques pertinentes à différents


niveaux d'abstraction se traduit par une amélioration de la performance dans la reconnaissance
de lettres manuscrites par rapport à d'autres méthodes telles que le k-Nearest Neighbors
(KNN), qui souvent nécessite une ingénierie manuelle des caractéristiques, ou les machines à
vecteurs de support (SVM), qui peuvent être moins efficaces pour capturer des informations
complexes inhérentes à la variabilité des écritures manuscrites.

En résumé, le choix des CNN dans ce contexte est justifié par leur capacité intrinsèque à
s'adapter de manière efficace aux nuances et à la variabilité inhérente des lettres manuscrites,
automatisant ainsi le processus d'apprentissage des caractéristiques nécessaires pour une
reconnaissance précise.

Après avoir exposé les raisons de la performance des CNN, nous allons maintenant explorer
leur fonctionnement.

2.2 Définition d’un CNN


Le réseau de neurones convolutifs, ou CNN pour faire court, est un type spécialisé de modèle
de réseau de neurones conçu pour travailler avec des données d’images bidimensionnelles,

14
bien qu’ils puissent être utilisés avec des données unidimensionnelles et tridimensionnelles.
Ces réseaux sont capables d'apprendre à extraire des caractéristiques locales, c'est-à-dire des
structures qui se répètent à travers l'image.
Au centre du réseau de neurones convolutifs se trouve la couche convolutionnelle qui donne
son nom au réseau. Cette couche effectue une opération appelée « convolution ».
Une convolution est la simple application d’un filtre à une entrée qui entraîne une activation.
L’application répétée d’un même filtre à une entrée produit une carte d’activations appelée
carte de fonctionnalités (Feauture map), indiquant les emplacements d’une fonctionnalité
détectée dans une entrée, telle qu’une image.
Les CNNs ont été initialement développés pour la reconnaissance d'images. Le premier CNN
a été créé en 1989 par Yann LeCun. Il a été formé pour reconnaître des caractères manuscrits
et des digits. Les CNNs ont été créés à partir d'un réseau de neurones formé de plusieurs
couches. Chaque couche est formée de neurones qui sont connectés aux neurones de la couche
suivante. Ils sont entraînés en fournissant des images et en demandant au réseau de les classer.
Le réseau apprend les caractéristiques des images au fur et à mesure qu'il les voit.
Les CNNs sont entraînés sur de grandes bases de données d'images et ont montré une
meilleure performance que les algorithmes de vision par ordinateur existants. Ils ont ensuite
été adoptées par de nombreux domaines, notamment la reconnaissance de la parole, la vision
3D, la vision par ordinateur médicale et l'apprentissage automatique

2.3 Architecture d'un CNN


La première couche de convolution détecte les features de l'image, comme les contours,
les formes et les textures. Les couches suivantes détectent des features plus complexes à partir
des features détectés par la couche précédente. La dernière couche de convolution est
généralement suivie d'une couche fully connected qui combine les features détectés par les
couches de convolution et les utilise pour classifier l'image.
Les couches convolutionnelles peuvent être suivies de couches convolutionnelles
supplémentaires ou de couches de regroupement (pooling). Avec chaque couche, le
CNN augmente dans sa complexité, en identifiant de plus grandes portions de l’image. Les
couches précédentes se concentrent sur des caractéristiques simples, telles que les couleurs et
les bords. Au fur et à mesure que les données d’image progressent dans les couches du CNN,
il commence à reconnaître des éléments ou des formes plus précises de l’objet jusqu’à ce qu’il
identifie finalement l’objet visé.

15
Figure 1 Architecture d’un CNN

2.4 Couche de convolution


La couche de convolution est la composante clé des réseaux de neurones, convolutifs, elle
constitue toujours au moins leur première couche. Les couches de convolution sont formées
de ce qu'on appelle des filtres. Les filtres sont des tableaux de valeurs appelées feature maps.
Chaque couche de convolution prend en entrée une image et produit une feature map. Chaque
feature map est obtenue en appliquant le filtre à l'image. Par exemple, si l'image est de taille
5x5 et que le filtre est de taille 3x3, la feature map sera de taille 3x3. La couche de
convolution reçoit donc en entrée plusieurs images et calcule la convolution de chacune
d'entre elles avec chaque filtre. Les filtres correspondent exactement aux features que l'on
souhaite retrouver dans les images.

2.5 Couche de pooling


Ce type de couche est souvent placé entre deux couches de convolution : elle reçoit en entrée
plusieurs feature maps, et applique à chacune d'entre elles l'opération de pooling. Une couche
de pooling, agit comme une couche de réduction. Elle divise l'image en blocs et ne garde que
le maximum de chaque bloc. Cela permet de réduire la dimension de l'image tout en
conservant les caractéristiques les plus importantes. On obtient en sortie le même nombre de
feature maps qu'en entrée, mais celles-ci sont bien plus petites.

2.6 Couche fully-connected


Les CNNs sont généralement formés de plusieurs couches de convolution et de pooling,
suivies par une couche fully-connected qui combine les features extraites par les couches
précédentes pour classifier l'image, elle renvoie un vecteur de taille N, où N est le nombre de
classes dans notre problème de classification d'images. Chaque élément du vecteur indique la
probabilité pour l'image en entrée d'appartenir à une classe.
Par exemple, s'il s'agit bien d'un problème de classification de pommes et d'orange, le vecteur
final sera de taille 2 : chaque élément donne la probabilité d'appartenir soit à la classe pomme,
soit à la classe orange. Ainsi, le vecteur [ 0.8 , 0.2 ] signifie que l'image à 80% de chances de
représenter une pomme.

16
La couche fully connected constitue toujours la dernière couche d'un réseau de neurones,
convolutif ou non, elle n'est donc pas caractéristique d'un CNN. Ce type de couche reçoit un
vecteur en entrée et produit un nouveau vecteur en sortie. Pour cela, elle applique une
combinaison linéaire puis éventuellement une fonction d'activation aux valeurs reçues en
entrée.

2.7 Exemples de CNNs


Diverses architectures de CNNs disponibles ont joué un rôle clé dans la création
d’algorithmes qui alimentent l’IA dans son ensemble. Certains d’entre eux ont été énumérés
ci-dessous :
LeNet : est une des premières architectures de CNN développée. Il est composé de
sept couches de neurones : trois couches de convolution, une couche de pooling, une couche
de normalisation, une couche de sortie fully-connected et une couche de classification. LeNet
a été entraîné sur de nombreuses tâches de vision par ordinateur, y compris la classification
d'images, la détection d'objets et la reconnaissance de chiffres manuscrits. Il a également été
utilisé pour d'autres tâches d'apprentissage automatique, telles que la classification de texte et
la classification de signaux audio.
AlexNet : est composé de 5 couches de convolution et 3 couches fully-connected. Il
utilise des techniques d'apprentissage profond telles que l'utilisation de couches de pooling, de
dropout et de normalisation récurrente.
VGGNet : est une famille de modèles de réseaux de neurones convolutifs de grande
profondeur (19 couches) construits par Visual Geometry Group (VGG) à l'Université
d'Oxford. Ils ont été introduits dans le papier "Very Deep Convolutional Networks for Large-
Scale Image Recognition" en 2014. La VGGNet est composée de 16 (VGG-16) ou 19 (VGG-
19) couches de convolution et de pooling, suivies de 3 ou 4 couches de réseaux fully-
connected à la fin. Les couches de pooling sont remplacées par des strided convolutions dans
certaines versions.
ResNet : ResNet est un réseau de neurones profond (152 couches) composé de
plusieurs blocs de modules de raccourcissement de chemin, introduit dans le papier "Deep
Residual Learning for Image Recognition" en 2015. Un module de raccourcissement de
chemin (shortcut) est composé de plusieurs couches de convolution et de pooling, suivies
d'une addition nulle de l'entrée de module à sa sortie. La structure des raccourcissements de
chemin permet de résoudre le problème de l'apprentissage profond (vanishing / exploding
gradients).
Il existe plusieurs autres modèles tels que GoogleNet et ZFNet.
Les réseaux de neurones convolutifs sont capables d’apprendre des modèles complexes dans
les données et d’obtenir des performances de pointe sur une variété de tâches. Ils sont
efficaces également pour capturer les caractéristiques spatiales et temporelles des vidéos.
Mais ils sont des systèmes de calcul intensifs qui nécessitent des GPUs pour un entrainement
efficace.

17
Chapitre 3 : Matériels et outils
Cette partie détaille l’ensemble des outils dont nous avons eu besoin pour le développement
de notre projet. Des langages de programmation aux librairies et bibliothèques utilisées, vous
trouverez ci-dessous tous les éléments qui nous ont permis d’avancer

3.1 Logiciel ou IDE :


- Anaconda
- Jupiter
- Spyder
- Visual Studio Code

3.2 Framework et librairie :


- Python : C’est le langage programmation pour l’API REST, en passant par le CNN.

- Flask : C’est un framework open-source de développement web en Python. Son but


principal est d'être léger, afin de garder la souplesse de la programmation Python,
associé à un système de templates. Nous l’avons choisi pour sa simplicité d’utilisation
et la qualité de ses fonctionnalités. Il nous permet de faire le lien entre notre interface
(javascript + html + css), notre système d’extraction de caractères (python) et notre
modèle prédictif. Nous avons choisi cette framework pour l’API REST en raison de sa
légèreté et sa flexibilité.

- ReactJs : C’est’un librairie javascript permet de développer facilement des


applications front-end. Nous avons choisi cette librairie en raison de sa performance et
sa simplicité.

- Tensorflow : c’est un outil open source d'apprentissage automatique développé par


Google. Il s’agit de l’un des outils les plus utilisés en IA dans le domaine de

18
l'apprentissage machine. Nous avons eu recours à cet outil pour la création du modèle
prédictif.

- Keras : c’est une bibliothèque open source écrite en python et permettant d'interagir
avec les algorithmes de réseaux de neurones profonds et de machine learning,
notamment Tensorflow.

- NumPy : c’est une extension du langage de programmation Python, destinée à


manipuler des matrices ou tableaux multidimensionnels ainsi que des fonctions
mathématiques opérant sur ces tableaux. Essentiellement nécessaire à la réalisation de
ce projet, nous y avons eu recours dans presque toutes les parties.

- OpenCV : c’est une bibliothèque graphique libre, spécialisée dans le traitement


d'images en temps réel. Toute la chaine de traitement d’image repose sur ses
fonctionnalités.

- Matplotlib : c’est une bibliothèque du langage de programmation Python destinée à


tracer et visualiser des données sous formes de graphiques. Elle peut être combinée
avec les bibliothèques python de calcul scientifique tel que NumPy. Indispensable
pour chaque étape nécessitant un minimum de visualisation, comme l’extracteur de
lettre par exemple.

- Tensorboard : c’est un outil de visualisation permettant d’observer de manière


interactive les graphes tensorflow. Très utile pour observer les courbes d’apprentissage
du modèle en temps réel.

19
Partie II : Résultat
Chapitre 4 : Proposition
Nous avons consacré des efforts pour obtenir une précision(accuracy) de 97 % et une perte
(loss) de 0,0671. Apres 15 époques d'entrainement.

Figure 2 Précision

Voici le courbe d’apprentissage

20
Figure 3 Courbe d'apprentissage

Chapitre 5 : Mise en œuvre et implémentation


5.1 Architecture du modèle

Figure 4 Architecture du modèle

21
Architecture de réseau de neurone
Cette architecture définit un modèle de réseau de neurones convolutionnel (CNN) en utilisant
l'approche fonctionnelle avec la bibliothèque Keras. Voici une explication détaillée de chaque
couche :

a) Conv2D (Couche de convolution) :


- Filtres : 32 filtres sont utilisés dans cette couche.
- Taille du noyau : Chaque filtre a une taille de noyau de (5, 5).
- Remplissage : Le remplissage est défini comme 'same', ce qui signifie que le remplissage
est ajouté de manière à ce que la sortie ait la même hauteur/largeur que l'entrée.
- Activation : La fonction d'activation utilisée est la tangente hyperbolique (tanh).

b) MaxPooling2D (Couche de max-pooling) :


- Strides : Les strides (pas) pour le max-pooling sont définis à 2, ce qui signifie que la
fenêtre de pooling se déplace de 2 pixels à chaque étape.
- Note : Cette couche réduit la dimension spatiale (hauteur et largeur) de la sortie de la
couche précédente.
c) Conv2D (Deuxième couche de convolution) :
- Filtres : 48 filtres sont utilisés dans cette couche.
- Taille du noyau : Chaque filtre a une taille de noyau de (5, 5).
- Remplissage : 'same'.
- Activation : tanh.
d) MaxPooling2D (Deuxième couche de max-pooling) :
- Strides : 2.
e) Conv2D (Troisième couche de convolution) :
- Filtres : 64 filtres sont utilisés dans cette couche.
- Taille du noyau : (5, 5).
- Remplissage : 'same'.
- Activation : tanh.
f) Flatten (Couche d'aplatissement) :

22
- Cette couche aplatisse la sortie tridimensionnelle de la couche précédente en un vecteur
unidimensionnel. Elle est nécessaire pour connecter les couches convolutionnelles à des
couches entièrement connectées.
g) Dense (Couche entièrement connectée) :
- Unités : 512 neurones.
- Activation : tanh.
h) Dense (Deuxième couche entièrement connectée) :
- Unités : 84 neurones.
- Activation : tanh.
i) Dense (Couche de sortie) :
- Unités : 26 neurones, correspondant au nombre d'étiquettes de classe dans le problème.
- Activation : softmax, utilisée pour obtenir une distribution de probabilité sur les classes.

En résumé, ce modèle est destiné à être utilisé pour la classification de données d'images en
26 classes différentes, en particulier pour des images en niveaux de gris de taille 28x28 pixels.
La fonction d'activation tanh est utilisée dans les couches de convolution et entièrement
connectées, et la couche de sortie utilise softmax pour obtenir des probabilités normalisées.

5.2 Extrait de code lors de l’entrainement de model

23
Figure 5 Code lors de l'entrainement de model

5.3 Visualiser l'évolution de la perte d'entraînement

Figure 6 Perte d'entrainement

24
Visualiser l'évolution de la perte d'entraînement au fil des époques est une pratique courante
dans l'apprentissage machine, en particulier lors de l'entraînement de modèles de réseaux de
neurones. Cette visualisation fournit des informations cruciales sur la performance et le
comportement du modèle pendant le processus d'apprentissage. Voici quelques raisons pour
lesquelles il est utile de le faire :

- Suivi de la convergence : En observant la perte d'entraînement au fil des époques, on


peut déterminer si le modèle converge vers une solution optimale. Une diminution
constante de la perte indique une convergence, tandis qu'une stagnation pourrait
signaler un problème.

- Identification de l'overfitting ou du sous-ajustement : Une différence significative


entre les courbes d'entraînement et de validation peut indiquer un surajustement
(overfitting) si la perte d'entraînement continue de diminuer tandis que la perte de
validation augmente. Un sous-ajustement peut être identifié par une perte
d'entraînement et de validation élevée.

- Optimisation des hyperparamètres : En ajustant les hyperparamètres (comme le taux


d'apprentissage), vous pouvez observer comment la perte d'entraînement réagit. Des
changements brusques ou une oscillation de la perte peuvent indiquer que les
hyperparamètres doivent être ajustés.

- Réglage du modèle : En fonction de la visualisation, vous pouvez décider d'apporter


des modifications au modèle, telles que l'ajout de couches, la modification de la taille
des couches, ou l'application de techniques de régularisation.

- Évaluation des performances générales : La perte d'entraînement n'est qu'un indicateur


parmi d'autres de la performance du modèle. Cependant, elle peut donner des
informations utiles sur la capacité du modèle à apprendre les motifs dans les données
d'entraînement.

En résumé, visualiser l'évolution de la perte d'entraînement permet aux praticiens de prendre


des décisions éclairées pour améliorer et ajuster leur modèle pendant le processus
d'apprentissage, ce qui contribue à obtenir un modèle plus performant et généralisable.

25
5.4 Matrice de confusion
La matrice de confusion est un outil visuel utile pour évaluer la performance d'un modèle de
classification en fournissant des informations sur le nombre de prédictions correctes et
incorrectes pour chaque classe. Les valeurs de la matrice sont généralement le nombre
d'occurrences pour chaque combinaison de classe prédite et classe réelle. La heatmap facilite
l'identification visuelle des tendances et des erreurs du modèle.

Figure 7 Matrice de confusion

26
5.5 Implémentation de l’api Flask dans ReactJs :

Figure 8 Flask dans Reactjs

5.6 Création de l’api flask :

Figure 9 Api Flask

27
Chapitre 6 : Présentation de l’application développée
Interface applicative avec ReactJs:

Figure 10 Interface de l'application

Insertion d’une image soit on glisse l’image par-dessus la zone indiquée, soit on clic ce
dernier :

Figure 11 Insertion de l'image

28
Partie III : Discussions
Chapitre 7 : Forces

Notre modèle démontre une capacité de prédiction des écritures manuscrites avec une
précision remarquable de 97% grâce aux performances du réseau de neurone
convolutif(CNN). En outre, la base de données EMNIST (Extended MNIST) présente
plusieurs avantages significatifs pour la reconnaissance de lettres manuscrites, se distinguant
avantageusement par rapport à d'autres bases de données similaires. Les éléments suivants
illustrent ces avantages :

- Diversité des caractères : EMNIST englobe une gamme étendue de caractères,


comprenant à la fois des chiffres et des lettres (majuscules et minuscules), élargissant
ainsi la variété des données par rapport à la base de données MNIST, qui se limite
exclusivement aux chiffres.

- Compatibilité avec MNIST : EMNIST suit le même modèle de conversion que


MNIST, assurant ainsi une homogénéité dans la structure d'image et les paramètres.
Cette caractéristique favorise une compatibilité directe avec tous les classificateurs et
systèmes initialement conçus pour MNIST.

- Tâches de classification plus complexes : Grâce à la diversité des caractères, les tâches
de classification avec EMNIST sont généralement plus complexes, offrant une
représentation plus fidèle des défis réels de la reconnaissance des caractères
manuscrits.

- Évolutivité : La variante EMNIST permet une extension aisée de la reconnaissance de


caractères à des ensembles de données plus vastes, tels que des collections de lettres
manuscrites, offrant une flexibilité appréciable.

- Validation du modèle : EMNIST facilite la validation des modèles de reconnaissance


de caractères en permettant la comparaison des résultats de classification entre les
chiffres convertis de la base de données NIST et ceux de la base de données MNIST,
renforçant ainsi la confiance dans la performance du modèle.

- Tâches mixtes : La possibilité d'intégrer à la fois des chiffres et des lettres dans un
ensemble de données unique permet la création de modèles capables de traiter un large

29
éventail de caractères, améliorant ainsi leur adaptabilité dans des scénarios du monde
réel.

- Données de l'écriture manuscrite : Dérivée du NIST Special Database 19, EMNIST


incorpore des données de l'écriture manuscrite, conférant une valeur substantielle à la
base de données pour des applications de reconnaissance de caractères dans des
contextes variés.

En résumé, EMNIST présente une diversité de caractères, une compatibilité avec MNIST, des
tâches de classification plus complexes, et une validation pratique du modèle, en faisant ainsi
un choix pertinent pour la reconnaissance de lettres manuscrites. Néanmoins, la sélection de la
base de données devra également s'aligner sur les besoins spécifiques de l'application et le
contexte d'utilisation.

30
Chapitre 8 : Faiblesses

Notre modèle de reconnaissance de caractères manuscrits ne prend pas en compte la


séquence des caractères écrits malgré la précision de 97%, cela peut entraîner plusieurs
faiblesses, notamment :

- Perte de contexte : En ignorant la séquence des caractères, le modèle ne tient pas


compte du contexte global d'un mot ou d'une phrase. Cela peut conduire à des
erreurs de reconnaissance, surtout lorsque la signification d'un caractère dépend de
sa position dans la séquence.

- Ambiguïté : Certains caractères peuvent avoir plusieurs formes ou significations en


fonction de leur position dans un mot. Sans considérer la séquence, le modèle peut
avoir du mal à résoudre ces ambiguïtés, ce qui peut entraîner des erreurs de
prédiction.

- Absence de cohérence : La séquence des caractères est essentielle pour maintenir la


cohérence dans la reconnaissance des mots ou des phrases. Un modèle qui ignore la
séquence peut produire des résultats incohérents, car il ne tient pas compte de la
logique d'écriture.

- Difficulté avec les noms propres : Les noms propres, tels que les noms de personnes
ou de lieux, peuvent être difficiles à reconnaître correctement sans prendre en
compte la séquence. La reconnaissance de noms propres peut être améliorée en
tenant compte du contexte dans lequel ils apparaissent.

- Problèmes avec l'écriture manuscrite cursive : Si les caractères sont écrits en cursif ou
de manière jointe, la séquence devient cruciale pour interpréter correctement les
mots. Un modèle qui ne prend pas en compte la séquence peut avoir du mal avec ce
type d'écriture.

- Vulnérabilité aux erreurs de segmentation : Sans considération de la séquence, le


modèle peut être vulnérable aux erreurs de segmentation, c'est-à-dire la mauvaise

31
délimitation des caractères dans un mot. Cela peut entraîner des confusions entre
différents caractères ou la fusion incorrecte de caractères distincts.
- Performance limitée pour la reconnaissance de phrases entières : Si le modèle est
utilisé pour la reconnaissance de phrases entières, son incapacité à comprendre la
séquence peut limiter sa capacité à fournir des résultats précis et cohérents.

Pour surmonter ces faiblesses, il est souvent bénéfique d'utiliser des modèles de
reconnaissance de séquences, tels que les réseaux de neurones récurrents (RNN) ou les
réseaux de neurones récurrents bidirectionnels (Bi-RNN), qui sont conçus pour capturer les
dépendances séquentielles dans les données.

32
Chapitre 9 : Recommandations et suggestions
Malgré la faiblesse liée au fait que le modèle ne prend pas en compte la séquence de
caractères écrits dans la reconnaissance de caractères manuscrits, voici quelques
recommandations et suggestions pour améliorer la performance du modèle :

- Utilisation de modèles de séquences : Adopter des modèles de reconnaissance de


séquences tels que les réseaux de neurones récurrents (RNN), les réseaux de neurones
récurrents bidirectionnels (Bi-RNN) ou les transformeurs. Ces modèles sont conçus
pour capturer les relations séquentielles et peuvent améliorer la compréhension du
contexte.

- Intégration de la mémoire à court terme : Les modèles basés sur des mécanismes de
mémoire à court terme, comme les LSTM (Long Short-Term Memory) ou les GRU
(Gated Recurrent Unit), peuvent aider à conserver des informations importantes sur la
séquence, améliorant ainsi la précision de la prédiction.

- Ensemble de modèles : Utiliser un ensemble de modèles peut souvent atténuer les


faiblesses individuelles de chaque modèle. La combinaison de modèles qui se
spécialisent dans la reconnaissance de caractères isolés avec des modèles de séquences
peut améliorer la robustesse globale du système.

- Prétraitement des données : Appliquer des techniques de prétraitement des données,


telles que la normalisation, la détection et la correction des erreurs de segmentation,
peut contribuer à améliorer la qualité des données et réduire les erreurs dues à
l'absence de séquence.

- Ensemble de données diversifié : Enrichir l'ensemble de données en incluant une


variété de styles d'écriture, de langues et de contextes peut aider le modèle à
généraliser plus efficacement et à mieux traiter les variations dans la séquence.

- Évaluation fréquente : Effectuer des évaluations régulières de la performance du


modèle sur des données de test variées peut aider à identifier les domaines spécifiques
où le modèle peut avoir des difficultés en raison de l'absence de séquence.

33
- Amélioration de la segmentation : Mettre l'accent sur l'amélioration des techniques de
segmentation des caractères, en particulier dans le contexte de l'écriture manuscrite
cursive, peut contribuer à réduire les erreurs de séparation entre les caractères.

- Collecte de données supplémentaires : Envisager de collecter des données


supplémentaires spécifiquement conçues pour traiter les faiblesses identifiées. Cela
pourrait inclure des données d'écriture manuscrite cursive ou des données avec des
variations de séquences plus complexes.

- Feedback utilisateur : Incorporer un mécanisme de feedback utilisateur peut permettre


d'améliorer le modèle en tenant compte des retours d'utilisateurs sur les erreurs de
reconnaissance rencontrées dans des scénarios réels.

- Continuité de la recherche : Suivre les dernières avancées en matière de modèles de


reconnaissance de caractères et intégrer les techniques émergentes qui peuvent
résoudre plus efficacement le problème de l'absence de séquence.

En combinant ces recommandations, il est possible de renforcer la capacité du modèle à traiter


les séquences de caractères manuscrits de manière plus contextuelle et précise.

34
CONCLUSION

Les progrès significatifs réalisés, en particulier grâce aux approches basées sur l'apprentissage
profond, ouvrent des perspectives prometteuses pour une utilisation plus étendue de la
reconnaissance d'écriture manuscrite. Des applications allant de la numérisation des
documents à la facilitation de l'interaction homme-machine témoignent du potentiel
transformationnel de cette technologie.
Cependant, la nécessité d'adapter ces systèmes à différentes langues et contextes d'écriture a
également engendré des difficultés dans le développement de solutions universelles. De plus,
la gestion efficace des grandes quantités de données nécessaires pour former des modèles
précis s'est avérée être un défi constant. Il est donc crucial de poursuivre la recherche et le
développement pour rendre la reconnaissance d'écriture manuscrite plus précise, robuste et
universellement applicable. Mais aussi, la faible performance des machines peut être attribuée
à la complexité inhérente de la diversité des styles d'écriture, des variations individuelles et
des contextes d'utilisation. Cela souligne la nécessité d'investir dans des méthodes
d'apprentissage plus avancées, intégrant des modèles sémantiques et contextuels, afin
d'améliorer la capacité des systèmes à interpréter de manière plus précise et intelligente
l'écriture manuscrite.

Par ailleurs, élargir les capacités du logiciel au-delà de la simple reconnaissance de caractères
individuels représente un enjeu important. La transformation complète de documents
manuscrits en entiers, avec une compréhension du contexte et de la structure, constitue un défi
significatif. Les approches actuelles, souvent axées sur la segmentation et l'identification de
motifs, doivent évoluer vers des modèles plus sophistiqués capables de saisir la signification
globale d'un texte manuscrit.
En fin de compte, ce mémoire souligne l'importance continue de la reconnaissance d'écriture
manuscrite dans le paysage technologique actuel. Les implications potentielles en termes de
gain d'efficacité, d'accessibilité et de numérisation des données sont significatives. Les
résultats de cette étude peuvent guider les futurs efforts de recherche et d'innovation dans le
domaine, contribuant ainsi à l'avancement de cette technologie et à son intégration réussie
dans divers secteurs de la société moderne.

35
Bibliographie

 https://blent.ai/blog/a/cnn-comment-ca-marche
 https://medium.com/@mspeciale46/deep-learning-and-emnist-how-to-use-a-convolutional-
neural-network-for-image-recognition-81acbcfa99eb
 https://brohrer.github.io/how_convolutional_neural_networks_work.html
 https://medium.com/@RaghavPrabhu/understanding-of-convolutional-neural-network-cnn-
deep-learning-99760835f148
 https://keras.io
 https://keras.io/why-use-keras/
 https://www.learnopencv.com/image-classification-using-convolutional-neural-networks-in-
keras/
 https://scikit-learn.org/stable/supervised_learning.html#supervised-learning
 https://cloudxlab.com/blog/numpy-pandas-introduction/
 https://www.tensorflow.org
 https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/
 https://buildmedia.readthedocs.org/media/pdf/pyspellchecker/latest/pyspellchecker.pdf
 https://drivendata.github.io/cookiecutter-data-science/
 http://flask.pocoo.org
 https://ngrok.com
 https://openclassrooms.com/fr/courses/1654786-creez-vos-applications-web-avec-flask
 https://developer.mozilla.org/fr/docs/Tutoriel_canvas

36
RESUME

L'importance des ensembles de données dans le domaine de la reconnaissance d'écriture


manuscrite est soulignée, avec un accent particulier sur la diversité des écritures et des styles
pour assurer la généralisation des modèles. Des ensembles de données populaires tels que
IAM Handwriting Database et MNIST sont mentionnés. Ce mini-mémoire aborde également
les applications pratiques de la reconnaissance d'écriture manuscrite, notamment la
transcription automatique de documents, la numérisation d'archives historiques et la saisie de
données sur des appareils mobiles. La reconnaissance d'écriture manuscrite a évolué avec
l'émergence de techniques d'apprentissage profond, exploitant des modèles tels que les
réseaux de neurones récurrents et convolutionnels. Ces avancées ont permis des applications
pratiques variées, de la transcription automatique de documents à la numérisation d'archives.
Cependant, des défis persistent, notamment la variabilité de l'écriture et la nécessité de
modèles robustes. Malgré cela, ces progrès ouvrent des opportunités prometteuses pour des
applications plus étendues et des améliorations continues.

ABSTRACT

The importance of datasets in the field of handwriting recognition is emphasized, with


particular emphasis on the diversity of scripts and styles to ensure the generalization of
models. Popular datasets such as IAM Handwriting Database and MNIST are mentioned. This
mini-memory also covers practical applications of handwriting recognition, including
automatic transcription of documents, digitization of historical archives and data entry on
mobile devices. Handwriting recognition has evolved with the emergence of deep learning
techniques, exploiting models such as recurrent and convolutional neural networks. These
advances have enabled various practical applications, from the automatic transcription of
documents to the digitization of archives. However, challenges remain, including the
variability of writing and the need for robust models. Despite this, these advances open up
promising opportunities for broader applications and continuous improvements.

37
38

Vous aimerez peut-être aussi