Chapitre 1
Introduction Générale
1.1 Contexte et Motivation
La sécurité des systèmes d’information est devenue un domaine de recherche
d’une très grande importance. La conception d’un système d’identification fiable,
efficace et robuste est une tâche prioritaire. L’identification de l’individu est es-
sentielle pour assurer la sécurité des systèmes et des organisations. Elle consiste
à rechercher l’identité de la personne qui se présente dans une base de données
et peut servir à autoriser l’utilisation des services. Elle peut également être uti-
lisée par les forces de l’ordre. Pour répondre à ces besoins, la biométrie semble
être une solution pratique. En effet, cette technique connaît un développement
fulgurant, entraînant le développement de méthodes biométriques très variées
telles que l’étude des empreintes digitales et des signatures.
La signature manuscrite d’un individu représente un bon compromis : tout
en étant relativement fiable, elle est facile à acquérir et elle est socialement bien
acceptée comme mode d’identification. La signature est un moyen utilisé depuis
longtemps pour authentifier des documents et responsabiliser les individus face à
des engagements. La signature est donc reconnue comme un mode de validation
associé à l’identité d’une personne.
Plusieurs systèmes ont été développés à ce jour afin d’automatiser la vérifi-
cation des signatures, et on peut diviser ces méthodes en deux classes suivant
le mode d’acquisition de l’image des signatures : en ligne et hors ligne. Dans le
cas en ligne, la signature est capturée à l’aide d’un périphérique de saisie spé-
cial (comme un tablet numérique connecté à un ordinateur, par exemple). Cette
méthode permet d’utiliser des informations dynamiques telles que la vitesse,
la position, la pression et/ou l’inclinaison du stylet. Ces systèmes ne peuvent
pas être utilisés pour vérifier des signatures déjà apposées sur des documents
(comme les chèques bancaires, par exemple).
Inversement, lors de la vérification de la signature en mode hors ligne, la
signature est obtenue une fois le processus d’écriture terminé, en numérisant un
document contenant la signature et en le représentant sous forme d’une image
1
numérique. Les informations dynamiques sur la création de la signature (telles
que la position du stylo et la vitesse dans le temps) sont perdues, ce qui rend le
problème très difficile.
Dans ce projet, notre objectif est d’établir un système de vérification de
signature en utilisant Swin Transformer afin d’améliorer le taux de vérifica-
tion.Notre travail a été validé sur la base de données CEDAR.
1.2 Objectifs de l’Etude
Dans cet article, nous proposons un système de vérification automatique de
signatures manuscrites. L’utilisation d’un tel système peut contribuer à renforcer
la sécurité et à automatiser des processus nécessitant une vérification d’identité
manuscrite. Voici quelques-uns des objectifs clés d’un tel système :
— Améliorer la sécurité des transactions en vérifiant l’authenticité des si-
gnatures sur les chèques, les contrats, les documents financiers, etc. Cela
aide à prévenir la fraude et les transactions non autorisées.
— Utiliser la signature comme moyen de vérification d’identité dans des
contextes tels que l’accès sécurisé, les autorisations de système, les ser-
vices en ligne, etc.
— Détecter et prévenir les tentatives de fraude impliquant des signatures
contrefaites ou falsifiées.
— Simplifier et accélérer les processus administratifs en automatisant la vé-
rification des signatures, éliminant ainsi le besoin d’intervention humaine
dans de nombreuses situations.
— Faciliter la transition vers des systèmes d’archivage électronique en per-
mettant la vérification automatique des signatures sur des documents
numérisés.
— Minimiser les erreurs humaines associées à la vérification manuelle des
signatures, en particulier dans des environnements où un grand volume
de documents doit être traité.
La mise en œuvre réussie de ces objectifs peut apporter des avantages si-
gnificatifs aux entreprises, aux institutions financières, aux agences gouverne-
mentales et à d’autres entités qui dépendent de la vérification des signatures
manuscrites.
1.3 Structure du Rapport
Les chapitres qui composent ce rapport sont les suivants :
– Chapitre 1 : Présentation de techniques d’Apprentissage Au-
tomatique et profond : ce chapitre fournira une base solide sur les
concepts fondamentaux de l’intelligence artificielle (IA), de l’apprentis-
sage automatique (ML) et de l’apprentissage profond (DL). L’accent sera
mis sur les techniques et algorithmes pertinents pour la vérification des
signatures manuscrites, permettant au lecteur de comprendre les outils
2
utilisés dans ce domaine.
– Chapitre 2 : Etat de l’Art en Vérification des Signatures : ce
chapitre explorera en détail les différentes techniques et approches uti-
lisées dans le processus de vérification des signatures manuscrites. Les
méthodes traditionnelles et les approches basées sur l’IA seront compa-
rées et contrastées, mettant en évidence les avantages et les limites de
chaque approche.
– Chapitre 3 : Approche Proposée ce chapitre décrira la méthodo-
logie employée dans ce rapport, en détaillant les étapes de collecte de
données, de prétraitement, de développement de modèles et d’évalua-
tion. Les architectures spécifiques des modèles d’IA et les algorithmes
d’apprentissage utilisés seront expliqués en détail. Dans ce chapitre nous
présenterons également les résultats obtenus, y compris les performances
du système proposé en matière de vérification des signatures manuscrites.
Les résultats seront discutés en relation avec les travaux existants, souli-
gnant les contributions et les points forts de l’approche proposée.
– Chapitre 4 : Conclusion : le rapport se conclura par une synthèse
des conclusions principales, des perspectives d’avenir et des implications
potentielles de cette recherche dans le domaine de la vérification des
signatures manuscrites.
3
Chapitre 2
Présentation de techniques
d’Apprentissage Automatique
et profond
2.1 Introduction
Ce chapitre explore les fondements théoriques et les applications pratiques
de l’intelligence artificielle, avec un accent particulier sur l’apprentissage auto-
matique, l’apprentissage en profondeur et les réseaux de neurones. Nous débu-
tons par examiner les connexions étroites entre ces domaines.Nous discuterons
également des distinctions critiques entre l’apprentissage automatique et l’ap-
prentissage en profondeur.De plus, l’exploration des méthodes d’apprentissage
supervisé et non supervisé .
2.2 Confluence des Techniques d’IA
La façon la plus simple d’envisager l’intelligence artificielle, l’apprentissage
automatique, l’apprentissage profond et les réseaux neuronaux est de les consi-
dérer comme une série de systèmes d’IA du plus grand au plus petit, chacun
englobant le suivant. L’intelligence artificielle est le système primordial. L’ap-
prentissage automatique est un sous-ensemble de l’IA. L’apprentissage profond
est un sous-domaine de l’apprentissage automatique et les réseaux de neurones
constituent l’épine dorsale des algorithmes d’apprentissage profond. C’est le
nombre de couches de nœuds, ou la profondeur, des réseaux de neurones qui
distingue un seul réseau de neurones d’un algorithme d’apprentissage en pro-
fondeur, qui doit en avoir plus de trois.
4
Figure 2.1 – La différence entre AI, ML et DL?.
2.3 L’intelligence artificielle (IA)
L’intelligence artificielle , le terme le plus large des trois, est utilisée pour
classer les machines qui imitent l’intelligence humaine et les fonctions cognitives
humaines comme la résolution de problèmes et l’apprentissage. L’IA utilise les
prédictions et l’automatisation pour optimiser et résoudre des tâches complexes
que les humains ont historiquement effectuées, telles que la reconnaissance fa-
ciale et vocale, la prise de décision et la traduction.
2.4 L’apprentissage automatique (ML)
L’apprentissage automatique est un sous-ensemble de l’intelligence artificielle
qui permet l’optimisation. Lorsqu’il est configuré correctement, il vous aide à
faire des prédictions qui minimisent les erreurs résultant de la simple suppo-
sition. Par exemple, des entreprises comme Amazon utilisent l’apprentissage
automatique pour recommander des produits à un client spécifique en fonction
de ce qu’il a consulté et acheté auparavant.
Voir Figure 2.1 pour une comparaison entre l’IA, ML et le DL.
L’apprentissage automatique classique ou « non profond » dépend de l’in-
tervention humaine pour permettre à un système informatique d’identifier des
modèles, d’apprendre, d’effectuer des tâches spécifiques et de fournir des résul-
tats précis. Les experts humains déterminent la hiérarchie des fonctionnalités
pour comprendre les différences entre les entrées de données, ce qui nécessite
généralement des données plus structurées pour être apprises.
5
2.5 L’apprentissage profond (DL)
L’apprentissage profond est un sous-ensemble de l’apprentissage automa-
tique qui utilise des réseaux neuronaux multicouches , appelés réseaux neuro-
naux profonds, pour simuler le pouvoir de décision complexe du cerveau humain.
2.5.1 Principaux modèles en apprentissage profond
Dans ce chapitre, nous allons definir les différents types des réseaux de neu-
rones.
Réseaux de Neurone
Les réseaux de neurones, ou réseaux de neurones artificiels, sont constitués
de couches nodales contenant une couche d’entrée, une ou plusieurs couches ca-
chées et une couche de sortie. Chaque nœud, ou neurone artificiel, se connecte à
un autre et possède un poids et un seuil. Si la sortie d’un nœud est supérieure à
la valeur de seuil spécifiée, ce nœud est activé et envoie des données à la couche
suivante du réseau. Dans le cas contraire, aucune donnée n’est transmise à la
couche suivante du réseau. « En profondeur » dans le terme « apprentissage en
profondeur » fait simplement référence au nombre de couches d’un réseau de
neurones. Un réseau de neurones composé de plus de trois couches (incluant les
entrées et les sorties) peut être considéré comme un algorithme d’apprentissage
en profondeur ou un réseau de neurones profonds. Un réseau de neurones qui
ne comporte que deux ou trois couches est simplement un réseau de neurones
de base.
— Neurones : les neurones (voir Figure 2.2 pour une illustration de la
structure du neurone), aussi appelés noeuds ou unités, dans un réseau de
neurones artificiels, imitent le fonctionnement des neurones biologiques.
Chaque neurone reçoit des entrées, effectue un calcul et produit une sor-
tie. La sortie est souvent passée à travers une fonction d’activation, qui
détermine si le neurone doit être activé ou non, en fonction du poids des
entrées et du biais associé.
— Couches :Un réseau neuronal de base comporte des neurones artificiels
interconnectés en trois couches (voir Figure2.3) :
Couche d’entrée : Les informations du monde extérieur entrent
dans le réseau neuronal artificiel par la couche d’entrée. Les nœuds d’en-
trée traitent les données, les analysent ou les catégorisent, et les trans-
mettent à la couche suivante.
Couche cachée : Les couches cachées prennent leurs entrées de la couche
d’entrée ou d’autres couches cachées. Les réseaux neuronaux artificiels
peuvent avoir un grand nombre de couches cachées. Chaque couche ca-
chée analyse la sortie de la couche précédente, la retravaille et la transmet
à la couche suivante.
6
Figure 2.2 – Illustration du neurone artificiel?.
Figure 2.3 – Les types de couches dans un réseau de neurones?.
Couche de sortie : La couche de sortie donne le résultat final de tous
les traitements de données effectués par le réseau neuronal artificiel. Il
peut avoir des nœuds uniques ou multiples. Par exemple, si nous avons
un problème de classification binaire (oui/non), la couche de sortie aura
un nœud de sortie qui fournira le résultat sous forme de 1 ou 0. Cepen-
dant, si nous avons un problème de classification multi-classes, la couche
de sortie peut être constituée de plus d’un nœud de sortie.
— Poids et Biais : Dans un réseau de neurones,un poids représente les
connexions entre un nœud et un autre .Ces poids peuvent être positif
si un nœud en stimule un autre, ou négatif si un nœud réprime l’autre.
Chaque neurone peut aussi inclure un terme de biais, qui est ajouté à la
somme pondérée des entrées pour aider le modèle à mieux s’adapter aux
données en permettant de décaler la fonction d’activation.
7
Convolutional Neural Networks (CNNs)
Les réseaux de neurones convolutifs (CNNs) sont un type de réseau de neu-
rones profonds particulièrement efficace pour le traitement et l’analyse d’images
(voir Figure 2.4 pour un exemple d’architecture d’un CNN).
Figure 2.4 – Un exemple d’une architecture d’un CNN?.
— But :Le but principal des CNNs est d’extraire automatiquement des ca-
ractéristiques importantes des images pour effectuer diverses tâches de
vision par ordinateur telles que la reconnaissance d’images, la détection
d’objets, la segmentation d’images, et plus encore. Ils sont conçus pour
reconnaître des motifs visuels avec des niveaux de complexité variables,
allant des bords simples et des textures à des formes et objets plus com-
plexes.
— Opération de convolution :L’opération de convolution (voir Figure
2.5 est le cœur d’un réseau de neurones convolutif (CNN), principalement
responsable du traitement des images. Pour une image couleur, celle-ci
est représentée comme une matrice tridimensionnelle correspondant aux
canaux rouge, vert et bleu (RVB). Un élément clé de cette opération est
le filtre ou noyau, généralement une matrice 3x3, qui parcourt l’image.
À chaque position, une opération de produit scalaire est effectuée entre
les pixels de l’image et les valeurs du filtre, produisant une valeur pour
la carte de caractéristiques, aussi appelée carte d’activation ou feature
map. Cette carte résume les caractéristiques détectées à chaque position
du filtre sur l’image, capturant ainsi des éléments essentiels comme les
bords ou les textures. Une fois cette opération terminée sur toute l’image,
il est courant d’appliquer une fonction de rectification linéaire (ReLU)
pour introduire de la non-linéarité, améliorant ainsi la capacité du modèle
8
à apprendre des caractéristiques complexes.
Figure 2.5 – Opération de convolution?.
— Pooling :Les couches de pooling, également appelée couches de sous-
échantillonnage, permettent de réduire la dimensionnalité, c’est-à-dire
de réduire le nombre de paramètres d’entrée. Comme pour la couche de
convolution, l’opération de pooling balaie un filtre sur toute l’entrée, à la
différence que ce filtre n’a aucun poids. Au lieu de cela, le noyau applique
une fonction d’agrégation aux valeurs du champ réceptif, remplissant
ainsi la matrice de sortie. Il existe deux principaux types de pooling :
Max pooling : à mesure que le filtre se déplace sur l’entrée, il sélectionne
le pixel ayant la valeur maximale pour l’envoyer à la matrice de sortie.
Soit dit en passant, cette approche a tendance à être plus souvent utilisée
que l’average pooling.
Figure 2.6 – Opération de max pooling?.
Average pooling : à mesure que le filtre se déplace sur l’entrée, il calcule
la valeur moyenne dans le champ réceptif pour l’envoyer à la matrice de
sortie (voir Figure 2.7 ).
9
Figure 2.7 – Opération d’average pooling?.
Recurrent Neural Networks (RNNs)
Un réseau neuronal récurrent (RNN) est un type de réseau neuronal artifi-
ciel qui utilise des données séquentielles ou des données de séries chronologiques.
Ces algorithmes d’apprentissage profond sont couramment utilisés pour des pro-
blèmes ordinaux ou temporels, tels que la traduction linguistique, le traitement
du langage naturel (NLP), la reconnaissance vocale et le sous-titrage d’images.
Figure 2.8 – Illustration d’un réseau de neurones récurrent?.
— But :Le principal objectif des RNNs est de traiter des séquences de don-
nées en conservant une mémoire des entrées antérieures. Cette capacité
à garder une trace de l’information passée leur permet d’être particuliè-
rement efficaces pour des tâches telles que la prédiction de la prochaine
lettre dans une phrase ou la génération de texte.
— Connexions récurrentes :Les connexions récurrentes (voir Figure 2.9)
sont ce qui distingue les RNNs des autres types de réseaux de neurones.
Dans un RNN, les sorties d’une couche à un moment donné sont réutili-
sées comme entrées de cette même couche pour le traitement des éléments
10
suivants de la séquence. Cela crée une boucle de rétroaction qui permet
au réseau de prendre en compte non seulement l’entrée actuelle mais aussi
ce qui a été traité précédemment.
Figure 2.9 – Illustration des connexions recurrentes?.
— Long Short-Term Memory (LSTM), Gated Recurrent Unit (GRU)
et Transformer : Pour surmonter le problème de la disparition des gra-
dients que rencontrent souvent les RNNs standards dans le traitement
des longues séquences, des architectures spéciales telles que LSTM et
GRU ont été développées (voir Figure 2.10) :
LSTM : Le réseau LSTM ajoute une structure de "cellules" qui inclut
des portes pour réguler le flux d’information. Ces portes, appelées portes
d’oubli, d’entrée et de sortie, permettent à la cellule de décider quelles
informations retenir ou éliminer, ce qui améliore grandement sa capacité
à apprendre des dépendances à long terme.
GRU : Les unités de GRU simplifient le modèle LSTM en combinant
les portes d’entrée et d’oubli en une seule "porte de mise à jour". Elles
incluent également une "porte de réinitialisation" qui détermine com-
bien de l’information passée doit être oubliée. Cela rend les GRU moins
complexes à calculer que les LSTM tout en conservant une performance
comparable pour de nombreuses tâches.
Transformers : Les Transformers, initialement développés pour le trai-
tement du langage naturel, ont été adaptés avec succès à diverses tâches,
y compris le traitement des images. La figure 2.10 illustre un exemple
d’architecture d’un model transformer.
— But :Le but principal des Transformers est de modéliser les dépen-
dances sans se limiter à la proximité des éléments dans une séquence.
Cette caractéristique les rend très efficaces pour analyser des sé-
quences longues et complexes, qu’il s’agisse de texte ou d’images,
où les interactions à longue distance entre les éléments sont cruciales
pour la compréhension globale.
— Mécanisme du Self-Attention :Le mécanisme de self-attention est le
cœur du fonctionnement des Transformers. Il permet à chaque élément
11
Figure 2.10 – Comparaison entre les différents modèles récurrents?.
d’une séquence d’examiner et de répondre à tous les autres éléments,
indépendamment de leur position relative. Pour les images, cela si-
gnifie que chaque portion de l’image (traitée comme un "mot" ou
"token") peut être analysée en tenant compte de son contexte global,
permettant ainsi au modèle de reconnaître des motifs et des relations
qui seraient difficiles à détecter par des approches plus locales comme
les CNN.
— Encodage de position : Pour compenser le manque de traitement sé-
quentiel intrinsèque, les Transformers utilisent un encodage de posi-
tion. Cela leur permet de tenir compte de l’ordre des données dans une
séquence. Dans le contexte des images, cela pourrait se traduire par
des informations sur l’emplacement relatif des patchs d’image, aidant
le modèle à comprendre comment les différentes parties de l’image se
rapportent les unes aux autres spatialement.
2.5.2 Fonctions principales dans les modèles d’apprentis-
sage profond
Les fonctions principales des modèles basés sur l’apprentissage profond peuvent
être résumées comme suit :
— Passage en avant : Le passage en avant consiste à calculer la sortie d’un
réseau de neurones en faisant progresser les entrées à travers les diffé-
rentes couches du réseau. Chaque couche applique des transformations
spécifiques (par exemple, multiplications matricielles suivies de fonctions
d’activation) aux données entrantes pour obtenir la sortie qui est ensuite
passée à la couche suivante. Le résultat final de ce passage est souvent la
prédiction du modèle.
— Rétropropagation :La rétropropagation est une méthode pour mettre à
jour les poids du réseau en calculant le gradient de la fonction de perte par
12
rapport à chaque poids. Elle se base sur la règle de la chaîne pour retracer
les erreurs à partir de la sortie jusqu’à l’entrée du réseau, permettant ainsi
d’optimiser les poids pour minimiser l’erreur de prédiction.
— Optimisation :Les optimiseurs sont des algorithmes utilisés pour ajuster
les poids d’un modèle d’apprentissage automatique afin de minimiser la
fonction de perte et d’améliorer les performances
— Fonctions d’activation : Les fonctions d’activation sont des fonctions ma-
thématiques appliquées à la sortie d’une couche neuronale pour transfor-
mer les valeurs et les rendre plus appropriées pour la couche suivante. Il
existe plusieurs types d’activation, voir Figure 2.11 pour plus de détails.
Figure 2.11 – Les types d’activation d’un neurone?.
— Régularisation :La régularisation est une technique pour prévenir le sur-
ajustement (overfitting), où le modèle performe bien sur les données d’en-
traînement mais pauvrement sur de nouvelles données non vues.
Ces sont quelques-uns des concepts fondamentaux et types de modèles en ap-
prentissage profond, accompagnés des opérations principales qui les rendent
fonctionnels. L’apprentissage profond a trouvé des applications dans divers do-
maines, notamment la vision par ordinateur, le traitement du langage naturel,
la reconnaissance vocale, et plus encore, ce qui a conduit à des avancées signifi-
catives dans la technologie de l’IA.
2.5.3 L’apprentissage profond en vision par ordinateur
Le domaine de la vision par ordinateur a été transformé par l’apprentissage
profond, qui a considérablement amélioré la classification d’images, la détection
d’objets et la segmentation sémantique. Ces tâches sont cruciales pour inter-
préter et comprendre les données visuelles, et l’apprentissage profond a réalisé
des progrès remarquables dans leur performance ces derniers temps. Examinons
chaque tâche (voir la figure 2.12) et comment les techniques d’apprentissage
profond sont utilisées.
– La classification d’images :
— Tâche : identifier automatiquement l’objet principale d’une image en
attribuant une étiquette de classe à l’image entière (voir Figure 2.12).
13
Figure 2.12 – comparaison entre la segmentation sémantique, la classification
et la localisation, la détection d’objets et la segmentation d’instance ?.
— Entraînement : les modèles d’apprentissage profond sont entraînés
sur des ensembles de données étiquetés pour différencier les classes en
ajustant les paramètres internes grâce à la rétropropagation et à la
descente de gradient.
– Détection d’Objet :
— Tâche : Localiser et identifier plusieurs objets dans une image avec
une étiquette de classe et une boîte de délimitation (voir Figure 2.12).
— Entraînement : Les modèles de détection d’objets sont entraînés sur
des ensembles de données qui contiennent des annotations de boîtes de
délimitation pour les objets dans les images. L’entraînement implique
l’optimisation à la fois de la prédiction de classe de l’objet et des
coordonnées de la boîte de délimitation.
– Segmentation Sémantique
— Tâche :Assigner une étiquette de classe à chaque pixel de l’image, ce
qui permet de comprendre quelle partie de l’image correspond à quel
objet/élément (voir Figure 2.12).
— Exemples d’architectures :Les architectures comme U-Net (voir Fi-
gure 2.13) ou Fully Convolutional Networks (FCN) sont fréquemment
utilisées.
— Entraînement : Les modèles de segmentation sémantique sont entraî-
nés sur des ensembles de données où chaque pixel est étiqueté selon
sa classe correspondante. Le réseau apprend à générer des prédictions
pixel par pixel pendant l’entraînement.
– Segmentation d’Instance :
— Tâche :Identifier individuellement chaque instance d’objets multiples
de la même classe dans l’image, en assignant un masque unique à
chaque objet (voir Figure 2.12).
— Exemple d’architectures :Mask R-CNN (voir Figure 2.14 est un exemple
14
Figure 2.13 – L’architecture du modèle U-Net?.
typique d’architecture utilisée pour la segmentation d’instance.
— Entraînement : Pour la segmentation d’instance, un ensemble de don-
nées avec des masques annotés, des étiquettes de classe et des identi-
fiants d’instance est requis. COCO et Cityscapes sont des ensembles
de données courants qui fournissent des annotations au niveau des
pixels.
Figure 2.14 – L’architecture du modèle Mask R-CNN?.
De nombreuses publications ont étudié différentes méthodes d’apprentissage
profond pour l’analyse de la rétinopathie diabétique (DR). Dans la section sui-
vante, nous discuterons de certaines des techniques utilisées dans le développe-
ment de l’apprentissage profond pour l’analyse de la DR. Nous mettrons éga-
lement en évidence les différentes tâches nécessaires pour l’analyse de la DR, y
compris la segmentation des vaisseaux sanguins rétiniens, la prédiction, l’iden-
tification, la reconnaissance et la classification.
15
2.6 Différences entre l’Apprentissage Profond et
l’Apprentissage Automatique
La distinction fondamentale entre l’apprentissage automatique (ML) et l’ap-
prentissage profond (DL) s’articule autour de la méthode d’apprentissage des
algorithmes et du volume de données qu’ils nécessitent.
L’apprentissage profond se distingue par sa capacité à automatiser le proces-
sus d’extraction de caractéristiques, réduisant ainsi le besoin d’intervention ma-
nuelle. Cette automatisation permet aux modèles de DL de gérer et d’apprendre
efficacement à partir de vastes ensembles de données, lui conférant l’aptitude
à évoluer avec l’augmentation des données. Cette caractéristique est particuliè-
rement pertinente dans le contexte actuel, où une grande partie des données
des organisations est non structurée. L’apprentissage profond excelle donc dans
l’analyse et l’apprentissage à partir de données non structurées, ouvrant des
voies nouvelles et passionnantes dans le domaine de l’IA
2.7 Les Types d’Apprentissages
Il existe plusieurs types d’apprentissage profond (voir Figure 2.15), nous
citons par la suite les types les plus utilisés.
2.7.1 L’Apprentissage Supervisé
est une approche d’apprentissage automatique définie par son utilisation
d’ensembles de données étiquetés. Ces ensembles de données sont conçus pour
former ou « superviser » des algorithmes afin de classer les données ou de pré-
dire les résultats avec précision. À l’aide d’entrées et de sorties étiquetées, le
modèle peut mesurer sa précision et apprendre au fil du temps.L’apprentissage
supervisé peut être divisé en deux catégories principales lors de l’extraction de
connaissances : la classification et la régression.
2.7.2 L’apprentissage non supervisé
utilise des algorithmes d’apprentissage automatique pour analyser et regrou-
per des ensembles de données non étiquetés. Ces algorithmes découvrent des mo-
dèles cachés dans les données sans nécessiter d’intervention humaine (ils sont
donc "non supervisés").Les modèles d’apprentissage non supervisés sont utili-
sés pour trois tâches principales : le clustering, l’association et la réduction de
dimensionnalité.
2.7.3 L’Apprentissage Semi-Supervisé
L’apprentissage semi-supervisé est une branche du machine learning qui com-
bine l’apprentissage supervisé et non supervisé, en utilisant à la fois des données
étiquetées et non étiquetées pour entraîner des modèles d’intelligence artificielle
16
(IA) sur des tâches de classification et de régression.Les méthodes d’apprentis-
sage semi-supervisées sont particulièrement utiles dans les situations où il est
difficile ou coûteux d’obtenir un volume suffisant de données étiquetées, mais
où les données non étiquetées sont relativement faciles à acquérir en revanche.
Dans de tels cas, ni les méthodes d’apprentissage entièrement supervisées ni non
supervisées ne fourniront des solutions adéquates.
2.7.4 L’Apprentissage Par Renforcement
L’apprentissage par renforcement (RL) est une technique de machine lear-
ning (ML) qui entraîne les logiciels à prendre des décisions en vue d’obtenir
les meilleurs résultats. Elle imite le processus d’apprentissage par tâtonnements
employé par les êtres humains pour atteindre leurs objectifs. Les actions logi-
cielles qui contribuent à la réalisation de votre objectif sont renforcées, tandis
que les actions qui nuisent à celle-ci sont ignorées. Les algorithmes de RL uti-
lisent un paradigme de récompense et de punition lorsqu’ils traitent les données.
Ils apprennent du retour d’information de chaque action et découvrent par eux-
mêmes les chemins de traitement optimaux pour atteindre les résultats finaux.
Les algorithmes sont également capables de différer la gratification. La meilleure
stratégie globale peut exiger des sacrifices à court terme ; ainsi, l’approche la plus
efficace qu’ils découvrent peut inclure des punitions ou des retours en arrière.
Le RL est une méthode puissante qui aide les systèmes d’intelligence artificielle
(IA) à obtenir des résultats optimaux dans des environnements invisibles.
Figure 2.15 – Les différents types d’apprentissage automatique ?.
17
2.8 Apports de l’apprentissage profond
L’utilisation de l’apprentissage profond apporte un certain nombre d’avan-
tages à l’instar de :
— Le système réalisé peut atteindre une meilleure performance.
— Le coût est réduit par rapport aux autres méthodes traditionnelles.
— Le système est puissant et plus rapide, il peut traiter de grandes quantité
de données.
L’apprentissage profond a apporté d’importants progrès dans divers domaines,
en exploitant des architectures de réseaux neuronaux profonds pour apprendre
des représentations complexes à partir de données.
2.9 Limites de l’apprentissage profond
Parmi les limites de l’apprentissage profond, on peut citer ? :
— Qualité des données : Les systèmes d’apprentissage profond sont basés
sur l’observation des données et sont donc limités par la quantité et la
qualité fournies. S’il n’y a pas suffisamment de données ou s’il y a un
biais, l’algorithme peut ne pas être suffisamment précis et reproduire le
biais dans les résultats.
— Manque d’adaptabilité : Une fois qu’un modèle d’apprentissage profond
est formé, il ne peut généralement fournir que des résultats précis pour
le même problème en utilisant le même type de données.
— Ressources informatiques : Les modèles d’apprentissage profond néces-
sitent beaucoup de puissance de calcul. La raison pour laquelle l’appren-
tissage profond est plus populaire aujourd’hui qu’il y a dix ans est en
grande partie due à la disponibilité de processeurs et de GPU multi-
cœurs. Ces modèles sont également gourmands en ressources en termes
de RAM et de stockage. Les données évoluant si rapidement, les disques
durs traditionnels risquent de ne pas être en mesure de suivre le rythme,
d’où le besoin de disques SSD.
2.10 Conclution
Dans ce chapitre, nous avons présenté un bref aperçu de l’apprentissage au-
tomatique et profond. Dans le chapitre suivant, nous explorerons les systèmes
existants de reconnaissance ou de vérification automatique de signatures ma-
nuscrites.
18
Chapitre 3
Approche Proposée
3.1 Introduction
Ce chapitre présente l’approche proposée, reposant sur un modèle à architec-
ture profonde. Nous commencerons par décrire l’environnement de travail, puis
détaillerons notre méthodologie à l’aide d’un flux de travail, avant d’expliquer
les techniques spécifiques de collecte et de traitement des données.
3.2 Environnement de travail
Dans cette section, nous présentons les choix techniques liés à l’environne-
ment logiciel utilisé pour implémenter notre modèle.
Environnement de développement : Ce projet a été implémenté sur Google
Colab Pro.
Colab Pro est un service Jupyter Notebook hébergé ne nécessitant aucune
configuration locale. Il fournit un accès gratuit à des ressources informatiques
puissantes, y compris les GPU et TPU. Colab est particulièrement adapté aux
projets de machine learning, de data science et à l’enseignement.
19
Figure 3.1 – Logo Colab
Langage de programmation et bibliothèques utilisées :
Python est un langage de programmation de haut niveau, open-source et
multi-plateforme. Il est aujourd’hui le langage le plus utilisé dans les domaines
du machine learning, deep learning, data science et intelligence artificielle. Sa
richesse réside dans l’abondance de bibliothèques spécialisées.
Les principales bibliothèques utilisées dans notre projet sont :
— PyTorch : bibliothèque open-source développée par Meta, permettant
l’entraînement de modèles d’apprentissage profond via des calculs tenso-
riels performants.
— timm : collection de modèles SOTA en vision par ordinateur, accompa-
gnés d’utilitaires pour la formation et la validation.
— matplotlib : outil de visualisation de données.
— pandas : bibliothèque pour la manipulation et l’analyse de données struc-
turées.
— NumPy : support du calcul scientifique, en particulier la manipulation
de tableaux multidimensionnels.
— Scikit-learn : bibliothèque regroupant de nombreux algorithmes d’ap-
prentissage automatique (SVM, KNN, random forest...).
Figure 3.2 – Logo Python
20
Figure 3.3 – Logo PyTorch
3.3 Architecture générale du système proposé
Cette section présente les étapes de la méthodologie adoptée, inspirée du
processus CRISP-DM (Cross-Industry Standard Process for Data Mining). Les
étapes principales sont : acquisition et prétraitement des données, modélisation,
entraînement, validation et test du modèle.
Figure 3.4 – Méthodologie d’entraînement et d’évaluation d’un modèle de
reconnaissance de signatures manuscrites
21
3.4 Compréhension et prétraitement des données
3.4.1 Source de données
Le dataset utilisé dans ce projet provient de Kaggle?. Il s’agit de la base
CEDAR, composée de signatures hors ligne. Chaque individu a fourni 24 si-
gnatures authentiques, soit un total de 1 320, et a tenté de falsifier les signatures
de trois autres personnes, générant 1 320 contrefaçons. Les signatures sont nu-
mérisées à 300 dpi, binarisées et prétraitées pour la suppression du bruit et la
normalisation de l’inclinaison.
3.4.2 Chargement des données
Les images sont organisées dans deux dossiers :
— full_org : contient les signatures authentiques (classe 1).
— full_forg : contient les contrefaçons (classe 0).
Le chargement est effectué via la classe ImageFolder de la bibliothèque
torchvision, qui permet d’associer automatiquement les images à leur étiquette
à partir de la structure des dossiers.
3.4.3 Prétraitement des données
Les transformations appliquées incluent :
1. Inversion horizontale aléatoire (probabilité 0.5).
2. Inversion verticale aléatoire (probabilité 0.5).
3. Modification aléatoire des couleurs.
4. Redimensionnement à 256 × 256 pixels.
5. Recadrage centré à 224 × 224 pixels.
6. Conversion en tenseur normalisé.
7. Normalisation selon les moyennes et écarts-types d’ImageNet.
8. Application du Random Erasing pour augmenter la robustesse du mo-
dèle.
3.4.4 Division des données
Une validation croisée K-Fold avec k = 2 est utilisée. Les données sont donc
divisées en deux groupes égaux. À chaque itération :
— Un groupe est utilisé comme test.
— L’autre est divisé à nouveau : 80% pour l’entraînement, 20% pour la
validation.
Ce processus garantit que chaque observation est utilisée pour le test et la
validation au moins une fois, assurant ainsi une évaluation fiable du modèle.
22
3.5 Modélisation
3.5.1 Swin Transformer
Le Swin Transformer (Shifted Window Transformer), introduit par Liu
et al. en 2021 ?, est un modèle hiérarchique de type Transformer adapté à la
vision par ordinateur.
Contrairement aux Vision Transformers (ViT) classiques, qui traitent les
images patch par patch de manière globale, le Swin Transformer introduit :
— Des fenêtres locales non superposées.
— Des mécanismes d’attention par fenêtre, avec un décalage pour permettre
la communication entre fenêtres.
— Une représentation hiérarchique via fusion de patchs.
Figure 3.5 – Architecture du Swin Transformer ?.
23
Caractéristiques principales
— Fenêtres décalées : permettent une meilleure capture des relations spa-
tiales sans augmenter la complexité.
— Encodage hiérarchique : transforme progressivement les patchs via
des couches de Transformer.
— Agrégation multi-échelle : renforce la compréhension globale et locale.
— Excellentes performances sur des tâches de classification, détection
et segmentation, notamment sur des images haute résolution.
— Flexibilité : facilement adaptable à diverses tâches de vision.
24