Académique Documents
Professionnel Documents
Culture Documents
UNIVERSITÉ D’ANTANANARIVO
----------------------
INSTITUT D’ENSEIGNEMENT SUPERIEUR D’ANTSIRABE – VAKINANKARATRA
-----------------------
MEMOIRE DE FIN D’ETUDES
en vue de l’obtention du diplôme de MASTER 2
UNIVERSITÉ D’ANTANANARIVO
----------------------
INSTITUT D’ENSEIGNEMENT SUPERIEUR D’ANTSIRABE – VAKINANKARATRA
-----------------------
MEMOIRE DE FIN D’ETUDES
en vue de l’obtention du diplôme de MASTER 2
i
ii
FISAORANA
Fa Andriamanitra tsy nitsahatra nandrotsaka ny fahasoavany tamiko. Ary tao anatin’izay 5
taona izay dia nizarany ny Fitiavany sy namonto Fitahiana ahy hatrany IZY. Natorony ahy
mandrakariva ny lalana tokony ho diaviko mba tsy hahavery ahy, ary na izany fotsiny aza dia ho
mandrakizay ny fankasitrahako Azy. Kanefa nanao mihoatra lavitra noho izany IZY. Ny
fahatontosan’ity boky ity dia milaza indrindra fa nanambina ary mbola hanambina ahy
Andriamanitra.
Hisaorako manokana ihany ko any fianakaviako sy ankohonako izay nanampy ahy na ara-tsaina na
ara-bola mba hahatontosa ity boky ity.
iii
Tsy ho adinoko ihany koa ny misaotra ireo namako sy ireo izay nanampy ahy na alavitra na akaiky.
Misaotra anareo rehetra
iv
REMERCIEMENTS
Je tiens également à apporter mes vifs remerciements aux personnes suivantes sans qui ce
travail n’aurait pas pu être réalisé :
J’adresse particulièrement ma profonde reconnaissance à ma famille qui m’a soutenu aussi bien
moralement que financièrement durant la réalisation de ce travail.
v
Et sans oublier, je remercie mes amis et tous ceux qui m’ont aidé de loin et de près.
vi
TABLE DES MATIERES
REMERCIEMENTS ..................................................................................................................................... v
NOTATIONS ................................................................................................................................................. x
GLOSSAIRE.................................................................................................................................................. 1
CHAPITRE 1 ................................................................................................................................................. 4
CHAPITRE 2 ............................................................................................................................................... 24
vii
2.2.5 Machine Learning ...................................................................................................................... 29
2.2.6 Deep Learning ............................................................................................................................ 32
2.3 Réseaux de neurones......................................................................................................................... 33
CHAPITRE 3 ............................................................................................................................................... 43
3.2.1 Méthodologie............................................................................................................................... 43
3.2.2 Modélisation................................................................................................................................ 45
3.3 Outils de développement .................................................................................................................. 46
CHAPITRE 4 ............................................................................................................................................... 57
viii
REALISATION DU PROJET ................................................................................................................... 57
4.1 Introduction....................................................................................................................................... 57
FAMINTINANA...................................................................................................................................... lxxvi
ix
NOTATIONS
1. Minuscules latines
I Largeur
J Hauteur
N Coefficient
2. Majuscules latines
F Transformé de Laplace
G Noyau de convolutif
H Fonction de seuil
I Image
P Prédicat
3. Minuscules grecques
R Interaction de sinusoïde
4. Notations spéciales
Im Image
x
5. Abréviations
AA Apprentissage Automatique
IA Intelligence Artificielle
JS JavaScrip
ML Machine Learning
NBR Nombre
RN Reseau neuronal
xi
RNA Reseau de Neurone Artificiel
xii
LISTES DES TABLEAUX ET DES FIGURES
xiii
Figure 2.07 : Le chiffre 3, 5 et 8 .................................................................................................... 37
Figure 2.08 : Autre façon d’écrire 3, 5 et 8 .................................................................................... 37
Figure 2.09 : Filtre.......................................................................................................................... 38
Figure 2.10 : Un réseau de neurone ............................................................................................... 40
Figure 3.01 : Schemas synoptique des technologies utilisees ........................................................ 46
Figure 3.02 : Une interface de Pycharm......................................................................................... 49
Figure 3.03 : Programme de base de Flask .................................................................................... 50
Figure 3.04 : Fonctionnement de systèmes de reconnaissance de formes ..................................... 54
Figure 4.01 : Logo de DetectApp ................................................................................................... 64
Figure 4.02 : L’arborescent du fichier............................................................................................ 65
Figure 4.03 : L’interface d’accueil de l’application Web DetectApp ............................................ 66
Figure 4.04 : L’interface de demande ............................................................................................ 67
Figure 4.05 : L’interface qui nous montre une sélection de dossier .............................................. 67
Figure 4.06 : Interface qui nous demande de lancer le traitement ................................................. 68
Figure 4.07 : Les deux cas lors de l’authentification ..................................................................... 69
xiv
GLOSSAIRE
Filtre Gaussienne : un filtre dont la réponse impulsionnelle est une fonction Gaussienne. C’est la
méthode du masque flou, utilisée pour augmenter la netteté des images floues.
Intelligence Artificielle : c’est un terme large qui désigne des systèmes ou des machines simulant
une forme d’intelligence humaine.
La Joconde : c’est le portrait de Mona Lisa, un tableau de l’artiste Leonard de Vinci, réalisée entre
1503 et 1506.
ONFIDO : une entreprise technologique qui aide les entreprises à vérifier l’identité des personnes à
l’aide d’un document d’identité base sur une photo, d’un selfie et d’algorithmes d’intelligence
artificielle.
OTSU : en vision par ordinateur, la méthode d’OTSU est utilisée pour effectuer un seuillage
automatique à partir de la forme de l’histogramme de l’image, ou la réduction d’une image à niveaux
de gris en une image binaire.
1
INTRODUCTION ET POSITION DU PROBLEME
Au temps de Leonard De Vinci, les images étaient faites à main nue. A travers l’histoire,
l’image servait toujours à représenter ou à faire un cliché de la réalité. Comme Leonard De Vinci
qui a dessiné La Joconde en représentant la beauté d’une femme des temps médiévale, l’image
d’aujourd’hui comprend et émet des messages aussi utiles que fonctionnels voire représentatifs. En
laissant la « main nue » au côté purement artistique, aujourd’hui la majeure partie des images que
nous utilisons s’obtiennent grâce à des appareils technologiques comme les appareils photos, les
télescopes ou encore les radars. Notre quotidien ne peut s’empêcher de l’utilisation des images. Le
cas du passeport permet l’exploitation de l’image dans son caractère informationnel. Les
technologies qui permettent de tirer des informations dans un passeport n’ont cessé d’évoluer.
Aujourd’hui, la zone lisible par machine ou MRZ est le paroxysme de cette évolution. Elle est
probablement la méthode la plus utilisée.
Cependant, la MRZ peut encore évoluer. A des fins d’efficacité et d’efficience, la MRZ peut
être imbriquée par une autre technologie qui peut certainement décupler ses capacités.
L’Intelligence Artificielle est aujourd’hui au cœur de toute chose, la MRZ n’y échappe pas.
Les problématiques qui se posent sont alors de savoir :
Pour pouvoir appréhender l’étendu de ces questions, certains objectifs seront fixés. Ce qui
nous amène aux axes suivants :
Pour avoir des éléments de réponses aux questions précédentes et de parvenir aux objectifs
qui étaient fixés précédemment, nous allons voir dans le chapitre premier le contour de la
connaissance sur la MRZ, l’image en général et le passeport. Dans le second chapitre, l’IA et ce qui
2
la concerne seront détaillés. Et enfin, dans le dernier chapitre, les conceptions et modélisations
mathématiques seront développées.
3
CHAPITRE 1
GENERALITES ET DEFINITIONS SUR L’IMAGE ET MRZ
1.1 Introduction
Le monde ne cesse de s’évoluer. Nombreuses sont les technologies qui n’arrêtent pas à nous
éblouir. La manipulation des images fait partie intégrante de ces dites technologies qui façonnent le
monde en perpétuelle évolution. On entend par image : une représentation analogique d’un être,
d’une chose ou des objets réels reproduits visuellement. Cependant, il existe des images qui stockent
des informations à des fins d’utilisation spécifique comme ceux qu’on retrouve souvent dans les
magasins, les livres, les permis de conduire et pratiquement dans les passeports.
Le passeport est un laisser-passer pour circuler d’un pays à un autre. Il existe une partie qui est
appelée zone lisible par machine ou Machine Readable Zone ou encore MRZ dans le contenu du
passeport. On la représente comme une image mais cette dernière cache des informations invisibles
à l’œil nu.
Pour mieux appréhender le sujet, on va voir en premier lieu les généralités sur l’image, en second
lieu les généralités sur la MRZ, en troisième lieu le traitement d’image proprement dit et à la fin du
chapitre la reconnaissance des formes.
L’utilité du projet :
Parce que dans un passeport sur la première page il y a deux partie, la zone d’inspection visuelle et
la zone lisible par machine. La première zone est lisible par contre la deuxième ne l’est pas vraiment,
cette dernière est représentée par des chevrons et des caractères et des chiffres. Etudier sur ce sujet
est une alternative intéressante.
Comment procéder ?
4
Faire une application web permettant de comparer celle d’un exemple de MRZ déjà scannée à celle
d’une MRZ entrainée par des réseaux de neurones. Puis déterminer si c’est une MRZ ou pas ?
Dans ce projet, on a pris la partie d’une MRZ d’un passeport. Mais une application de tout
reconnaitre sur la première page du passeport serai encore plus fiable et précise, donc c’est une
alternatif dans une prochaine étude.
Ce genre d’étude peut occuper plusieurs domaines mais sur l’industrie. Comme le code barre, code
QR, la MRZ peut être utilisée dans plusieurs domaines.
1.2.1 L’image
• Définition
Etymologiquement, image vient du mot latin imago qui signifie représentation, image artistique,
portrait.
Une image est une représentation visuelle, mentale de quelque chose qui peut être naturelle ou même
artificielle. Elle peut être soit visuelle ou non, soit tangible ou contextuelle. [1.04]
Un signal bidimensionnel borné et discret : c’est une image qui est acquise, créée, traitée et
sauvegardée sous forme de nombres à codage numérique (binaire) et géométrique appelés pixels,
qui est l’unité de base permettant de mesurer la définition d’une image. Chaque pixel est localisé
par deux coordonnées X et Y dans le repère image. La numérisation d’une image passe de l’état
physique vers une image numérique.
5
-Image matricielle ou Bitmap : Les images matricielles (en mode point, en anglais « bitmap
») sont celles que nous utilisons généralement pour restituer des photos numériques. Elles reposent
sur une grille de plusieurs pixels formant une image avec une définition bien précise. Lorsqu'on les
agrandi trop, on perd de la qualité « pixellisation ».
La définition : définie par le nombre de pixels sa hauteur H multipliée par sa largeur L exprimées
en pixels.
La taille : c’est la place nécessaire au stockage de l’image avec la règle suivante : Taille=Nbr d’octets
par pixel X définition (en octets)
Le codage : il s’agit du nombre de couleurs que peut prendre chaque pixel (en bits)
-Image vectorielle : son principe est de représenter les données de l’image par des formes
géométriques qui vont être décrites d’un point de vue mathématique. Leur avantage c’est qu’elles
peuvent être facilement redimensionnées. Leur codage dépend directement du logiciel qui a permis
de les créer. L’usage de ce type d’image concerne les schémas qu’il est possible de générer avec un
certain logiciel de dessins.
1.2.3 Le passeport
• Définitions
Le passeport est une pièce certifiant l’identité et la nationalité, délivrée par une autorité
administrative a un ressortissant pour lui permettre de se rendre à l’étranger.
Voici une petite histoire du passeport. Le passeport est né de la contraction entre « passer »
et « port », ce document est délivré par l’autorité de police pour permettre le passage des frontières
de certains pays. Il désigne le « passage », et « l’issue ».
6
Figure 1.01 : Illusion du premier passeport
Il s’agit d’une zone du passeport que les machines peuvent scanner et qui contient toutes les
informations personnelles, y compris : le nom, la date de naissance, nationalité ou pays de
citoyenneté, et le numéro de passeport.
Ces données sont lues par une machine qui scanne les documents afin de faire une
authentification dans les passeports et les frontières.
Un exemple de machine comme la ONFIDO qui collecte les données et les relient
directement à InvestGlass CRM
• L’évolution du passeport
7
Les différents types de passeport
-Le passeport ordinaire
-Le passeport grand voyage
-Le passeport temporaire
-Le passeport diplomatique
-Le passeport diplomatique urgent dont la validité est d’un an
-Le passeport de missions délivrés au agents civils et militaires valables 5 ans
-Le passeport de service
• Définitions
Une image est constituée d’un ensemble de points pixels (Picture Element). Il représente le
plus petit élément constituant d’une image numérique (on parle d’image numérique lorsque les
quantités physiques qui caractérisent l’image sont converties par des valeurs numériques).
L’ensemble de ces pixels est contenu dans un tableau à deux dimensions constituant l’image.
8
- L’axe Y est orienté de haut en bas (hauteur), contrairement aux notations conventionnelles en
mathématiques, ou l’axe Y est orienté vers le haut.
Dans une représentation informatique d’une image, il suffit de créer un tableau de pixels
dont chaque case est codée par un certain nombre de débits déterminant la couleur ou l’intensité de
pixels. La figure ci-dessous représente un réseau de pixels (l’élément gris encadré par la couleur
rouge correspond aux coordonnées i, j)
Le terme pixel est la contraction de l’anglais « Picture Element ». C’est le plus petit élément
de l’image. Sortie de l’appareil photo, une image est composée d’un nombre X de pixels. Un pixel
a une couleur exprimée (codée) en langage binaire mathématique (uniquement de 0 et 1). On
comprend donc tout de suite qu’il faut une quantité minimum de nuances pour avoir une bonne
qualité d’image.
L’image est codée en 8 bits par couche (28 = 256 niveaux) soit 8 pour le R, 8 pour le V et 8
pour le B au total 24 bits en RVB.
9
On passe au niveau de gris en considérant comme seule composante la luminosité. Il existe
plusieurs manières de convertir une image RGB en niveau de gris.
Cela équivaut aussi à affecter la couleur au niveau de gris à chacune des 3 composantes
RGB.
L’idéal est de faire ressortir la luminosité d’un pixel. Celle-ci vient principalement de la
présence de la couleur verte. On emploi souvent les coefficients suivants :
Dans ce cas on dispose d’une échelle de teintures de gris, et la plupart du temps on dispose
de 256 niveaux de gris avec :
Certaines images peuvent être codées sur deux octets ou plus (certaines images médicales,
des images astronomiques, …) ce qui peut poser des problèmes dans la mesure où les systèmes de
traitements d’images courants supposant l’utilisation des pixels d’un octet.
Notons au passage qu’un humain standard ne reconnait au plus que 64 niveaux de gris
représenter dans le schéma suivant.
• Filtre GAUSSIEN
L’intérêt du filtre gaussien est que l’on règle facilement le degré de filtrage à travers le
paramètre . On induit une forme de flou qui a pour avantage de retirer les petits défauts. D’un
point de vu signal, ces défauts correspondent à des variations importantes d’intensités sur une petite
longueur. Si on parlait d’un signal, on dirait que ce sont des « hautes fréquences ».
10
Le paramètre sigma s’appelle déviation standard, et détermine la largeur de la cloche
Gaussienne.
Par rapport au filtre moyenneur, le filtre Gaussienne a une grande importance aux pixels
proches du pixel central, et diminue cette importance au fur et à mesure que l’on s’éloigne de celui-
ci.
• Du continu au discret
Le noyau de Gauss est défini par un ensemble de coefficients qui sont des échantillons de la
Gaussienne 2D.
11
Il faut noter que plus le sigma est grand, plus la cloche Gaussienne est large et plus le flou
appliqué à l’image sera marqué.
Pour calculer le flou gaussien, il existe deux principes :
-produire de la convolution avec un noyau gaussien
-passage dans l’espace de Fourrier
Dans le premier cas : si l’on veut du flou qui prenne en compte un grand nombre de pixels autour
du pixel du destination, il est nécessaire d’augmenter le rayon du noyau (dans le cas d’un produit
de convolution standard avec un noyau gaussien). On applique le filtre de bruit gaussien dans la
figure suivante.
12
calcul enlevée. C’est pourquoi dans le pratique cette solution est rarement retenue et se contente
d’un masque peu étendu.
On constate simplement, sur l’exemple de filtrage de notre image que les contours des objets
sont réduits, le contraste après filtrage est moins.
La segmentation des images est une étape essentielle dans le traitement d’images et reste un
problème complexe. La segmentation est un processus de la vision par ordinateur, généralement
c’est la première étape de l’analyse d’image qui vient après le prétraitement. La segmentation est
l’extraction de caractéristique de l’objet, ce qui permet une distinction entre l’objet et le fond.
Elle aide à localiser et à délimiter les entités présentes dans l’image.il existe une multitude
de méthodes de segmentation dont l’efficacité reste difficile à évaluer.
De nombreux travaux ont été réalisés sur ce sujet, dans des domaines aussi variés que le
domaine médical, militaire, industriel, géophysique, etc.…C’est toujours un sujet d’actualité et un
problème qui reste ouvert ou l’on retrouve de nombreuses approches :
d. La transformé de Hough
13
e. La segmentation par étiquetage en composantes connexes
Toutes approches ces visent à l’extractions des caractères. Après de nombreuses années
passées à la recherche de méthode optimale, les chercheurs ont compris que la segmentation idéale
n’existait pas. Il n’existe pas d’algorithme universel de segmentation à chaque type d’images
correspond une approche scientifique. Une bonne méthode de segmentation sera donc celle qui
permettra d’arriver à une bonne interprétation.
On connait :
On cherche :
Une (ou des) partition(s) de ces données ayant des propriétés intéressantes par rapport aux
attributs et aux relations topologiques.
I= Ri
i=
14
Ri Rj =
P(Ri )=TRUE
P( Ri Rj)=FALSE (i j)
A chacune de ces régions, doit correspondre un objet dans l'image car, dans ce procédé
d'analyse d'images, l'objectif ultime est d'être en mesure de décomposer une image en un groupe
d'objets distincts. En général, ces objets ont des propriétés qui leur sont propres par rapport à l'image
elle-même. Ainsi, il est possible de distinguer de tels objets par différentes mesures telles :
-leurs contours
-leur texture
L’intérêt de détecter des régions est de pouvoir les manipuler ensuite pour extraire des
caractéristiques de forme, de position, de taille...
Dans le chapitre précédent, nous avons vu que la distribution des niveaux de gris dans
l'image constitue déjà une information précieuse que l'on peut mettre à profit pour identifier des
régions particulières de l'image. Donc le seuillage a pour objectif de segmenter une image en
plusieurs classes en n'utilisant que l'histogramme. On suppose donc que l'information associée à
l'image permet à elle seule la segmentation, c’est à dire qu'une classe est caractérisée par sa
distribution de niveaux de gris. A chaque pic de l'histogramme est associée une classe. Nous avons
vu qu’il existe de très nombreuses méthodes de seuillage d'un histogramme. La plupart de ces
méthodes s'appliquent correctement si l'histogramme contient réellement des pics séparés. De plus,
ces méthodes ont très souvent été développées pour traiter le cas particulier de la segmentation en
deux classes(bimodale). L’approche la plus simple est celle où on ne fait intervenir qu’un seuil (on
dira que l’image est alors formée d’un fonds et d’un objet). Elle consiste à tester pour chaque pixel
de l'image si sa valeur est supérieure ou inférieure à un certain seuil, et produit une image binaire
regroupant les résultats.
15
Il existe plusieurs méthodes pour calculer de manière automatique la valeur du seuil à
appliquer. L'une des plus répandue est la méthode d'Otsu. Elle consiste à faire l'hypothèse que
l'image contient deux classes, décrites chacune par une partie de l'histogramme de l'image. La
qualité du seuillage est quantifiée en mesurant la variance des niveaux de gris de chaque classe. On
cherche la valeur de seuil qui minimise les variances des deux classes. La figure ci-dessous montrent
la binarisation par la méthode OTSU d’un seuil = 136 et d’un seuil = 102.
➢ Seuillage a hystérésis
Le seuillage à hystérésis est une méthode un peu plus perfectionnée, qui permet d'améliorer
la détection des contours des zones contrastées, tout en évitant de détecter des zones du fond. Le
principe est d'utiliser deux seuils : un seuil « haut » et un seuil « bas ». On sélectionne d’abord
l'ensemble des pixels au-dessus du seuil haut, puis l'ensemble des pixels au-dessus du seuil bas. On
ne garde ensuite que les composantes connexes du seuil bas qui contiennent au moins un pixel au-
16
dessus du seuil haut. En pratique, cette détection peut se faire soit par reconstruction géodésique,
soit par étiquetage des composantes connexes de l'image des seuils bas et détection des étiquettes
présentes dans l'image des seuils hauts. L’exemple ci-dessous nous montre le seuillage par
hystérésis.
17
L’extraction de contours, d’un point de vue algorithmique, est une fonction économique qui permet
d’alléger considérablement les processus de reconnaissance et localisation d’objet. Un contour peut
être défini comme une "marche d'escalier" si le contour est net, comme une "rampe" si le contour
est plus flou ou comme un "toit" s'il s'agit d'une ligne sur un fond uniforme.
18
Figure 1.13 : Filtre de Canny
19
présence de droites. Voici quelques figures de la transformée de Hough par la méthode de canny
avec la valeur sigma=2.
Figure 1.14 : Deux image représentant l’image originael et une image dont sigma=2
L’image de la transformée de Hough où les 2 pics en carré rouge
Figure 1.16 : Le résultat du parcours et le tracé des lignes par la transformée de Hough
20
Figure 1.17 : Résultat du traitement, connexion 45
Canny avec sigma =4
21
Figure 1.19 : Transformée de Hough
Dans cette partie nous distinguons que la détection de contours est très satisfaisante,
puisqu’ on a pu avoir les bords extérieurs du carré et le triangle avec la valeur de sigma égale à 4.
Nous avons finalement opté, pour la détection la plus simple, c'est-à-dire simplement en appliquant
un filtre de Canny. Car les résultats observés en faisant des prétraitements n’étaient pas
convaincants. La détection de contours avec Canny n'est certes pas parfaite mais honorable, et tous
les prétraitements appliqués n'apportent aucun plus dans cette détection de contours.
22
1.4 Conclusion
Pour conclure, ce chapitre nous a permis de voir ce que c’est une image et ce que l’on peut
faire avec. Dans ce projet, l’image en question est la zone lisible par machine d’un passeport. La
MRZ classe en elle des données que l’on ne peut voir. Cela nécessite un traitement pour mieux
travailler dans l’image, avec des filtres et des traitements de l’image, on peut manipuler facilement
l’image et faciliter l’extraction des données.
Mais ces données d’images peuvent être reconnues facilement et traiter facilement. On va voir
dans le chapitre suivant l’immense capacite qu’on peut faire d’une image. Cela va se faire avec
l’intelligence artificielle.
23
CHAPITRE 2
L’INTELLIGENCE ARTIFICIELLE
2.1 Introduction
Tout au long de la vie, l’évolution quel qu’en soit le domaine ne cesse de surprendre
l’humanité. Par ailleurs, les humains sont avides d’une qualité plus performante dans l’utilisation
des machines pour exécuter tâches rapides et précis.
Paru récemment et gagne de plus en plus en notoriété, l’intelligence artificielle est un moyen
simple pour exécuter les taches, mémoriser les données et optimiser les réponses. Son utilisation est
l’une des idées les plus révolutionnaires pour le monde et surtout pour l’économie.
Gestation de l’IA (1943-1955) : Pendant cette période furent menés les premiers travaux qui
peuvent être considères comme les débuts de l’intelligence artificielle (même si le terme n’existait
pas encore). On peut citer les travaux de McCulloch et Pitt qui ont introduit en 1943 un modèle de
neurones artificiels. Quelques années après, Hebb proposa une règle pour modifier des connections
entres neurones, et Minsky et Edmonds construisirent le premier réseau de neurones. Ce fut aussi
durant cette période que Turing publia son fameux article dans lequel introduit le test de Turing.
Naissance d’IA (1956) : C’est durant cette année qu’un petit groupe d’informaticiens
intéressés par l’étude de l’intelligence se réunirent pour une conférence sur ce thème. Cette
conférence dura deux mois, et permit de poser les fondements de l’intelligence artificielle (nom qui
fut choisi `a l’issue de cette conférence).
Espoirs grandissants (1952-1969) : Ce fut une période très active pour le jeune domaine de
l’IA. Un grand nombre de programmes furent développés pour résoudre des problèmes d’une grande
diversité. Les programmes Logic Theorist (par Newell et Simon) et Geometry Theorem Prover
(Gelernter) furent en mesure de prouver certains théorèmes mathématiques (tous déjà connus, mais
24
en trouvant parfois une preuve plus élégante). Le General Problem Solver de Newell et Simon
réussissait quant à lui à résoudre des puzzles simples avec un raisonnement semblable au
raisonnement humain. Samuel créa un programme jouant (à un niveau moyen) aux dames. Des
étudiants de Minsky travaillèrent sur les petits problèmes (“microworlds”) tels que les problèmes
d’analogie (problèmes du même type que ceux des tests de QI), donnant naissance au programme
ANALOGY, ou encore les manipulations de cubes (le 3 fameux “blocks world”) avec l’idée
d’augmenter la complexité petit à petit pour développer des agents intelligents. McCarthy publia un
article devenu célèbre dans lequel il traite des programmes qui ont du sens commun. La recherche
sur les réseaux de neurones fut également poursuivie. Ce fut aussi l’époque du Shakey, le premier
robot à être capable de raisonner sur ses propres actions.
Premières Déceptions (1966-1973) : Il devint durant ces années de plus en plus évident que
les prédictions faites par les chercheurs en IA avaient été beaucoup trop optimistes. Ce fut le cas par
exemple pour la traduction automatique. Les chercheurs n’avaient compte que 5 ans pour réaliser
un traducteur automatique, mais se sont vite rendu compte que leur approche purement syntaxique
n’était pas suffisante (pour bien traduire un texte, il faut d’abord le comprendre). Cet échec a
provoqué l’annulation en 1966 de tout le financement du gouvernement américain pour les projets
de traduction automatique. De grandes déceptions se produisirent également lorsque les chercheurs
en IA essayèrent d’appliquer leurs algorithmes aux problèmes de grande taille, et découvrirent alors
qu’ils ne fonctionnaient pas, par manque de mémoire et de puissance de calcul. Ce fut une des
critiques adressées à l’IA dans le rapport de Lighthill de 1973, qui provoqua l’arrêt du financement
de la quasi-totalité des projets en IA de Grande Bretagne. Et comme si cela ne suffisait pas, Minsky
et Papert prouvèrent dans leur livre “Perceptrons” de 1969 que les réseaux de neurones de l’époque
ne pouvaient pas calculer certaines fonctions pourtant très simples, ce qui mit en cause toute la
recherche en apprentissage automatique, entraînant une crise dans cette branche de l’IA.
Systèmes Experts (1969-1979) : Le premier système expert, appelé DENDRAL, fut créé en
1969 pour la tache spécialisée consistant à déterminer la structure moléculaire d’une molécule étant
donné sa formule et les résultats de sa spectrométrie de masse. DENDRAL, comme tous les
systèmes experts, est basé sur un grand nombre de règles heuristiques élaborées par des experts
humains. Après le succès du DENDRAL, d’autres systèmes d’experts furent créés, notamment le
système MYCIN, qui réalisait un diagnostic des infections sanguines. Avec 450 règles, MYCIN
réussissait à diagnostiquer à un niveau proche des experts humains et considérablement meilleur
que celui les jeunes médecins.
25
L’IA dans l’Industrie (1980-present) : Au début des années 80, l’entreprise DEC commença
à utiliser un système expert d’aide à la configuration de systèmes informatiques, ce qui leur permit
d’économiser des dizaines de millions de dollars chaque année. Beaucoup de grandes Enterprise
commencèrent alors à s’intéresser à l’IA et à former leurs propres équipes de recherche. Les Etats-
Unis et le Japon financèrent de gros projets en IA, et la Grande Bretagne relança son programme de
financement.
Le retour des réseaux de neurones (1986-present) : Au milieu des années 80, quatre groupes
de chercheurs ont découvrirent indépendamment la règle d’apprentissage “back-propagation” qui
permit le développement de réseaux de neurones capables d’apprendre des fonctions très complexes
(curieusement, cette règle avait déjà été proposée en 1969, mais n’avait eu aucun écho dans la
communauté scientifique). Depuis, l’apprentissage automatique est devenu l’un des domaines les
plus actifs de l’IA, et a été appliqué avec suces à de nombreux problèmes pratiques (comme par
exemple la fouille de données).
L’IA Moderne (1987-present : L’intelligence artificielle est devenue au fil du temps une
matière scientifique de plus en plus rigoureuse et formelle. La plupart des approches étudiées
aujourd’hui sont basées sur des théories mathématiques ou des études expérimentales plutôt que sur
l’intuition, et sont appliquées plus souvent aux problèmes issus du monde réel. [2.01]
2.2.2 Définitions
L’IA a déjà des performances exceptionnelles dans certains domaines, ce qui a donné lieu à
une série d’applications permettant d’accomplir des tâches que les méthodes traditionnelles ne
peuvent pas résoudre. Quelques applications représentatives dans les domaines de la santé, du
langage et de la finance sont présentées ci-dessous :
• Santé
Aujourd’hui, les smartwatches peuvent surveiller nos données de santé telles que
l’électrocardiographie, le taux d’oxygène dans le sang et l’état du sommeil. L’IA peut ensuite
analyser de manière exhaustive notre état de santé et fournir des conseils de santé personnalisés. Les
26
montres peuvent également surveiller la stabilité de marche et ainsi prédire si les personnes âgées
risquent de tomber et prévenir les accidents. Dans le diagnostic du cancer, l’IA est capable d’étudier
un nombre considérable de données de tomographie assistée par ordinateur et de prédire avec une
grande précision les cancers, comparable à celle d’experts dans ce domaine. Ainsi un excellent
modèle d’IA, une fois validé, peut être appliqué à tous les patients du monde entier à défaut d’un
médecin expérimenté proche.
• Langue
L’IA fait également une grande différence dans le domaine des langues. Grâce aux logiciels
de traduction actuels, tous les textes peuvent être lus par tous quelle que soit la langue d’origine.
Les communications entre les personnes en sont également facilitées dans le monde professionnel
lors de collaborations ou dans le monde personnel lors de déplacements. L’assistant vocal est
courant dans la vie quotidienne. Il peut répondre à toutes sortes de questions et nous aider à contrôler
divers produits intelligents en les appelant simplement facilitant ainsi notre quotidien.
• Finance
L’IA peut aider les institutions financières à analyser les enregistrements financiers (débit
ou crédit) d’emprunteurs, afin d’établir des modèles de comportement pour les personnes devant
emprunter. Les vérifications des données, de potentielles erreurs ou fraudes sont ainsi
automatiquement effectuées, réduisant les délais et les réponses erronées.
27
Figure 2.01 : Représentation de l’apprentissage de l’IA
• Apprentissage supervisé
Les données étiquetées désignent les éléments de données qui ont été marqués d’une ou
plusieurs étiquettes identifiant des propriétés, des caractéristiques, des classifications ou des objets
spécifiques. L’apprentissage supervisé permet d’établir un modèle de correspondance entre les
entrées et les sorties sur l’ensemble de données d’exemples étiquetés, puis de prédire le résultat
d’une nouvelle entrée en fonction des relations entrée-sortie que l’on a vue auparavant.
28
• Apprentissage non supervisé
Les données non étiquetées font référence aux éléments de données qui n’ont pas été
étiquetés avec des étiquettes identifiant les caractéristiques, les propriétés ou les classifications.
L’apprentissage non supervisé permet de rechercher automatiquement des caractéristiques et des
structures à partir de données non étiquetées, de regrouper les données en divers clusters, d’identifier
des règles d’association et de réduire les dimensions pour réaliser des tâches telles que la
segmentation, la détection de motifs et la détection d’anomalies.
Contrairement aux deux méthodes précédentes, les données ne sont plus obligatoires pendant
l’apprentissage par renforcement. Il s’agit d’un processus consistant à recevoir des récompenses
quantifiées de l’environnement avec différentes actions pour mettre à jour les paramètres du modèle.
Autrement dit, l’apprentissage par renforcement est une approche d’apprentissage par "essai-erreur"
qui consiste à interagir constamment avec l’environnement pour obtenir la meilleure stratégie en
maximisant la récompense. "État, action, récompense" sont les trois éléments clés de l’apprentissage
par renforcement. Le modèle observe le résultat de la décision à chaque étape, ce qui conduit à la
décision suivante pour gagner l’objectif final. Le jeu et le robot sont les domaines les plus utilisés
de cette méthode actuellement.
29
Figure 2.03 : Un exemple de machine Learning
La machine Learning est une forme d’intelligence artificielle (IA) qui est axée sur la création
des systèmes qui apprennent, ou améliorent leurs performances, en fonction des données qu’ils
traitent. [2.0
Le machine Learning et l'IA sont souvent abordés ensemble et ces termes sont parfois utilisés
de manière interchangeable bien qu'ils ne renvoient pas exactement au même concept. Une
distinction importante est que, même si l’intégralité du machine learning repose sur l’intelligence
artificielle, cette dernière ne se limite pas au machine learning.
Aujourd’hui, nous utilisons le machine learning dans tous les domaines. Lorsque nous
interagissons avec les banques, achetons en ligne ou utilisons les médias sociaux, des algorithmes
de machine learning entrent en jeu pour optimiser, fluidifier et sécuriser notre expérience. Le
machine learning et la technologie qui l’entoure se développent rapidement, et nous commençons
seulement à entrevoir ses capacités.
Aujourd’hui, nous utilisons le machine learning dans tous les domaines. Lorsque nous
interagissons avec les banques, achetons en ligne ou utilisons les médias sociaux, des algorithmes
de machine learning entrent en jeu pour optimiser, fluidifier et sécuriser notre expérience.
Les algorithmes de machine learning supervisé sont les plus couramment utilisés. Avec ce
modèle, un data scientist sert de guide et enseigne à l’algorithme les conclusions qu’il doit tirer.
Tout comme un enfant apprend à identifier les fruits en les mémorisant dans un imagier, en
apprentissage supervisé, l’algorithme apprend grâce à un jeu de données déjà étiqueté et dont le
résultat est prédéfini.
30
Comme exemples de machine learning supervisé, on peut citer des algorithmes tels que la
régression linéaire et logistique, la classification en plusieurs catégories et les machines à vecteurs
de support.
Le machine learning non supervisé utilise une approche plus indépendante dans laquelle un
ordinateur apprend à identifier des processus et des schémas complexes sans un quelconque guidage
humain constant et rigoureux. Les machines Learning non supervisé impliquent une formation basée
sur des données sans étiquette ni résultat spécifique défini.
• Par exemple, la maintenance prédictive peut permettre aux fabricants, aux sociétés
énergétiques et à d’autres secteurs d’activité de prendre des initiatives, et de garantir la
fiabilité et l’optimisation de leurs opérations. Dans un champ pétrolier avec des centaines de
foreuses en fonctionnement, les modèles de machine learning peuvent détecter les
équipements susceptibles de tomber en panne très prochainement, puis d’en informer les
équipes de maintenance à l’avance. Non seulement cette approche optimise la productivité,
mais elle augmente également la performance, la disponibilité et la longévité des actifs. Elle
minimise aussi les risques pour les travailleurs, diminue les responsabilités et améliore la
conformité aux réglementations.
31
• Les avantages de la maintenance prédictive s’étendent au contrôle et à la gestion des stocks.
Éviter les temps d’arrêt imprévus des équipements en mettant en œuvre une maintenance
prédictive permet aux entreprises de prévoir avec plus de précision le besoin en pièces de
rechange et les réparations, ce qui réduit considérablement les dépenses d’investissement et
d’exploitation.
• Les entreprises peuvent s’appuyer sur l’énorme potentiel du machine learning pour valoriser
sur le plan commercial le volume considérable de données disponibles aujourd’hui.
Cependant, des flux de travail inefficaces peuvent les empêcher de tirer le meilleur profit de
cette technologie.
• Pour que toute l’entreprise en bénéficie, le machine learning doit intégrer une plateforme
complète qui contribue à simplifier les opérations et à déployer des modèles à grande échelle.
La solution appropriée doit permettre aux organisations de centraliser tous les travaux de
data science sur une plate-forme collaborative et d’accélérer l’utilisation et la gestion des
outils, des structures et des infrastructures open source.
Le deep Learning est une technique de machine Learning qui permet de résoudre des
problèmes en utilisant un grand niveau d’abstraction. [2.02].
L’idée du deep Learning consiste à utiliser plusieurs couches de neurones afin de laisser la
machine apprendre des formes contenues dans nos données. C’est une technique inspirée par la
biologie qui propose un algorithme pour résoudre les problèmes en donnant nos données brutes à
l’ordinateur qui se charge tout seul de les découper en sous problèmes et d’apprendre à résoudre ces
problèmes tout seul à partir d’exemples.
Le deep Learning fonctionne très bien pour des données ”continues” comme des images, du
son. Avec les techniques classiques comme les arbres de décisions par exemple, on a besoin de
choisir les paramètres qui représentent notre problème.
32
Figure 2.04 : Un exemple de deep learning
Exemple : on souhaite prédire si quelqu’un a survécut sur le Titanic, cela va dépendre de son âge,
son sexe, sa cabine, etc. Il y a donc un travail spécifique à faire sur chaque problème pour
sélectionner les features. Avec le deep Learning en théorie, il n’y a plus besoin de faire ce travail
puisqu’on pourrait créer un réseau de neurones capable d’apprendre directement à partir des données
de bases.
2.3.1 Théorie
Comment l'homme fait-il pour raisonner, parler, calculer, apprendre, ... ? Cette question a
mobilisé les chercheurs en intelligence artificielle pendant plusieurs dizaines d’années. Deux types
d'approches pour essayer de répondre à cette question de manière automatique ont été
essentiellement explorés :
• Procéder d'abord à l'analyse logique des tâches relevant de la cognition humaine et tenter
de les reconstituer par programme : ce sont les algorithmes ou les systèmes automatiques
qui ont notamment été étudiés dans la partie II.
• Puisque la pensée est produite par le cerveau, étudier comment celui-ci fonctionne. C'est
cette approche qui a conduit à l'étude de réseaux de neurones formels.
C’est le second point, les « réseaux de neurones » qui seront étudiés ici.
33
Les neurones artificiels s’inspirent des neurones du cerveau, les neurones reçoivent les
signaux qui sont des impulsions électriques par l’intermédiaire de dendrites, en fait des extensions
ramifiées de la cellule et envoient l'information par de longs prolongements, les axones. Les contacts
entre deux neurones, de l'axone à une dendrite, se font par l'intermédiaire des synapses. Lorsqu'un
potentiel d'action atteint la terminaison d'un axone, des neuromédiateurs sont libérés et se lient à des
récepteurs postsynaptiques présents sur les dendrites. L'effet peut être excitateur ou inhibiteur.
Chaque neurone intègre en permanence jusqu'à un millier de signaux synaptiques.
Les réseaux de neurones, aussi appelés réseaux neuro-mimétiques sont ce qu'il y a de plus
efficace pour mettre en place la cognition dans un programme. Qu’est-ce que la cognition ? La
cognition caractérise des outils tels que la reconnaissance de caractères, la reconnaissance vocale,
ou encore la reconnaissance d'images. Les réseaux de neurones sont à la base de tous ces outils.
Mais ce n'est pas tout : leurs capacités vont bien au-delà de la simple cognition ; en effet ces réseaux
peuvent également être utilisés pour la synthèse vocale, ou l'improvisation de mélodies appuyée par
une musique déjà existante. Ils peuvent également être utilisés dans des cas comme les IDS
(Intrusion Detection System), ou encore pour donner "vie" à des robots virtuels ou non. Le robot
Mars Pathfinder qui roula sur le sol martien est un bon exemple : l'un des principes qui régissent ce
robot sont les réseaux neuromimétiques. La particularité de ces réseaux réside dans le fait qu’ils
sont capables d’apprendre une fonction qui prend n variables en entrée, et retourne m variables en
sortie (les variables étant des nombres réels). Ce sont de telles fonctions qui régissent les actions
d’un robot : prenons par exemple Mars Pathfinder. Pour se déplacer, le « cerveau » du robot prend
en entrée les informations de ses capteurs qui lui disent sa position, les obstacles, etc. et doit
retourner en sortie des instructions pour ses moteurs, par exemple. Un réseau de neurones prend
tous les signaux de capteurs en entrée et à partir de ses entrées et de ce qu’il a déjà en mémoire, est
capable de donner les bons ordres à ses actionneurs : le réseau agit donc comme une fonction à
plusieurs variables. Pour l’instant, les réseaux neuronaux paraissent semblables aux systèmes
experts (qui ne sont que des programmes écrits une fois pour toutes et incapables d’évoluer). Mais
les réseaux neuro-mimétiques sont des usines à apprendre, elles évoluent sans cesse (pour peu qu'on
leur demande) et si par exemple un jour, un paramètre venait à changer, contrairement aux systèmes
experts, les réseaux neuro-mimétiques s'adapteraient automatiquement sans intervention humaine :
c’est la magie de l’apprentissage, ce que sont capables de faire les neurones. Mais avant de passer à
34
l’apprentissage proprement dit, voyons d’abord comment un neurone est représenté sous forme
robotique.
35
Figure 2.06 : Réseaux de neurones multicouches
On voit donc un réseau formé de trois couches de neurones. La première couche est
constituée de 3 neurones et s’appelle la couche d’entrée. Tous les neurones de cette couche prennent
leurs entrées de trois variables x0, x1 et x2. Leurs sorties sont reliées aux neurones de la couche
secondaire, la couche cachée. Les neurones de la couche cachée prennent leurs entrées des neurones
de la couche d’entrée et leurs sorties sont combinées pour calculer la sortie finale du réseau S. On
voit que ce réseau modélise une fonction qui prend 3 variables en entrée et en retourne une en sortie.
A chaque trait sur la figure ci-dessus est associé une liaison avec un poids.
Lorsqu’on présente aux neurones d’entrées différentes valeurs, le calcul successif des sorties
de neurones de toutes les couches permet de calculer les sorties correspondantes. A chaque liste
d’entrées correspond donc une liste de sorties que le réseau peut calculer. Mais comment déterminer
ces poids dans le but de faire une approximation de la fonction que l’on veut reproduire avec le
réseau ? Et pourquoi parle-t-on des capacités d’évolution de ces réseaux ?
36
de paramètres composant les couches du modèle est important, plus la précision de la prédiction est
élevée. Si le nombre de paramètres internes est limité, il est préférable d’utiliser plus de couches
mais moins de neurones par couche. Les paramètres du modèle CNN peuvent être considérablement
réduits grâce à de nouvelles idées comme la perception locale et le partage des paramètres. En outre,
avec les progrès de l’électronique et des technologies de l’information, en particulier le
développement des GPU (processeurs graphiques) et l’application de capteurs à grande échelle pour
l’acquisition massive de données, il est désormais possible d’entraîner le modèle CNN avec de plus
en plus de couches et de réduire l’erreur de prédiction au fil du temps. [2.03]
• La reconnaissance d’image
Prenons tout d’abord un cas très simple, où l’on demande à notre programme de
reconnaissance d’image de différencier les chiffres suivant écrits à la main.
37
La valeur des pixels des images ci-dessus est différente de la valeur des pixels des images
présentées plus haut, alors qu’elles représentent les mêmes chiffres. Il existe effectivement un
nombre immense de manières d’écrire un trois ou un cinq. Mais d'une certaine façon, notre cerveau
parvient à interpréter ces différentes combinaisons de pixels comme étant le même chiffre et de
reconnaître d'autres images comme étant des chiffres différents. De la même manière, un ordinateur
devra calculer une combinaison des pixels d’une image pour reconnaître ce qu’elle représente. Pour
cela, imaginons que les pixels d’une image en noir et blanc ne sont en réalité que des nombres
rationnels compris entre 0 et 1. Un pixel noir est représenté par le chiffre 1 et un pixel blanc par 0.
Un pixel gris foncé aura par exemple une valeur de 0.88. Une des manières les plus simples pour
déterminer de quel chiffre il s’agit est d’appliquer des filtres sur cette image.
• Filtre
38
que les filtres soient eux aussi juste une grille de chiffres. Plus un pixel du filtre est rouge, plus le
nombre correspondant est positif. Plus il est bleu, plus il est négatif. Pour calculer le résultat d’un
filtre sur notre image, il suffit de multiplier la valeur du premier pixel de l’image par le premier
pixel du filtre, la valeur du deuxième pixel de l’image par le deuxième pixel du filtre et ainsi de
suite. Il faut ensuite faire la somme de ces produits et on obtient le résultat. Cette opération est
répétée pour chaque filtre et le filtre ayant donné le plus grand résultat correspondra généralement
au chiffre représenté sur l’image. Effectivement, si les pixels noirs d’une image, avec une valeur
approchante 1, sont multipliés par des nombres positifs (les pixels rouges du filtre) et que les pixels
multipliés par des nombres négatifs (les pixels bleus du filtre) sont blancs, donc proches de zéro,
alors le résultat donné par ce filtre sera maximal. De manière plus formelle, pour une image de
28×28 pixels (comme représenté ci-dessous), voici à quoi correspondra le résultat d’un filtre
appliqué sur une image :
En réalité, additionner les produits des 𝑝𝑛 et 𝑓𝑛 revient à faire le produit matriciel entre 𝑃 et 𝐹. On
peut donc écrire :
𝑟𝑒𝑠𝑢𝑙𝑡𝑎𝑡 = 𝑃. F
En l’écrivant ainsi, cela nous évite d’écrire cette énorme somme. De plus, les produits matriciels
sont souvent bien optimisés, et demandent donc moins de temps de calcul que si nous donnions à
notre programme toutes les opérations à faire l’une après l’autre. Ces optimisations viennent surtout
39
du fait que les opérations matricielles peuvent être effectuées sur la carte graphique de l’ordinateur,
qui permet de faire énormément de calculs simples, mais simultanément. Pour plus de cohérence,
nous allons désormais appeler ces résultats des sorties (ou output en anglais). Remarque : pour
calculer les 10 différentes sorties pour chacun des 10 filtres, il n’est pas nécessaire de faire 10
opérations. Il suffit de mettre tous les filtres dans la même matrice de taille 784×10. De cette
manière, le produit entre 𝑃 et 𝐹 donnera une matrice de 1×10 contenants les 10 sorties Yn.
De cette manière, le calcul de l’application des 10 filtres sur une image s’écrit simplement :
𝑌=𝑃∙𝐹
Cela facilite grandement l’écriture mathématique et réduit donc également la longueur du
code nécessaire pour décrire ces opérations.
« Les réseaux de neurones nécessitent de nombreuses opérations matricielles, qui sont accélérées
d’un facteur dix lorsqu’elles sont distribuées sur les milliers de cœurs de GPU.
Voici une autre manière de visualiser ce que l’on vient de faire : [2.04]
2.4 L’apprentissage
40
que l’on peut représenter par de tels réseaux, on dispose d’un pack d’échantillons (un échantillon
étant une liste d’entrées et la liste de sorties correspondantes). Il suffit de présenter au réseau un
exemple (un échantillon) d’entrées et les sorties correspondantes pour qu’il l’« apprenne ». Que se
passe t’il quand un réseau a appris l’échantillon ? Il suffit alors de lui présenter comme valeurs
d’entrée les entrées présentes dans l’échantillon pour qu’il sorte après calcul une approximation des
valeurs de sorties qui étaient dans l’échantillon : le réseau a appris cet échantillon. Le réseau est
capable d’apprendre plusieurs échantillons ; ce sont les neurones qui réalisent cette fonction
mémoire, car ils enregistrent les poids correspondants. Plus il y a de neurones dans un réseau et plus
on pourra enregistrer d’échantillons différents tout en gardant une précision de sortie suffisante. On
peut apprendre le même échantillon plusieurs fois pour augmenter cette précision. Quand tous les
échantillons ont été présentés et que les valeurs de sorties sont satisfaisantes, le réseau réalise alors
l’approximation de la fonction considérée. Le principal avantage des réseaux sur les systèmes
classiques est qu’ils peuvent donner des sorties satisfaisantes pour des entrées qui n’ont jamais été
données en exemple. Leur second avantage est qu’ils peuvent apprendre en temps réel ; imaginons
par exemple un réseau qui s’occuperait de la surveillance d’une chaîne de production. Les capteurs
envoient leurs données au réseau (les capteurs sont des entrées) qui détermine à l’aide de ces
informations si un défaut (« présence défaut » est une sortie du réseau) est près de se produire sur
la chaîne et l’arrête alors. Si un défaut est quand même signalé par des capteurs externes ou par un
opérateur (par l’intermédiaire de l’arrêt d’urgence, par exemple) se produit alors que le réseau ne
l’avait pas prévu, le réseau apprend alors que les entrées qu’il avait au moment du défaut
correspondent effectivement à une possibilité de défaut et qu’il doit être signalé grâce à la sortie
correspondante. Ainsi, alors que les concepteurs du réseau n’avaient pas pensé ou pas prévu un
défaut dans ces conditions, le réseau l’apprend et sera capable de le signaler si le même cas se répète,
ce qui permet de prédire les erreurs futures et d’éviter l’interruption prolongée de la production,
dans ce cas. Il existe bien évidemment des algorithmes qui permettent de trouver les poids et de les
modifier à partir des échantillons.
2.5 Conclusion
Ce second chapitre nous a permis d’élargir la connaissance sur l’intelligence artificielle. Bien
que le monde nous propose plusieurs alternatif sur l’évolution dans le numérique, l’initiation dans
l’intelligence artificielle est une alternative importante. Certes la détection du caractère par l’OCR
41
était une option déjà étudiée, mais ici l’intelligence artificielle excelle l’attente sur l’authentification
et précision.
Bien sûr, cela se fera à l’aide d’un apprentissage profond qui est le deep Learning et que
celui-ci est une option plus mathématique et surtout statistique dans la manipulation de données.
Voyons dans le prochain chapitre la conception de l’utilisation de l’IA dans une détection d’image.
42
CHAPITRE 3
CONCEPTION ET MODELISATION MATHEMATIQUE DU PROJET DETECTAPP
3.1 Introduction
Dans les deux premiers chapitres, on a parlé de l’image, de la zone lisible par machine d’un
passeport, le traitement d’image et reconnaissance de forme. On a également parlé de la nouvelle
technologie qu’est l’intelligence artificielle, dont l’utilisation de l’apprentissage profond, la machine
Learning et le réseau de neurone.
Ces termes sont développés et expliqués dans chaque chapitre, et surtout, on les a détaillés
afin d’être mieux interprétés. Le véritable objectif de ce projet est la démonstration de l’assistance
de l’intelligence artificielle dans la détection d’une zone lisible par machine. Pour cela, il nous est
utile l’assistance par une bonne étude mathématique et un choix d’outils performant et efficace.
3.2.1 Méthodologie
-Collecte des données : Rassemblement d’ensemble de données d'images de passeports avec des
MRZ clairement visibles. Recherche des bases de données publiques et collecte des images ou
utilisation des données existantes si disponibles.
-Prétraitement des données : un prétraitement sur les images pour les préparer à la détection de la
MRZ. Cela peut inclure le redimensionnement des images, la normalisation des couleurs,
l'amélioration du contraste, etc.
-Annotation des données : Si les images ne sont pas déjà annotées avec les coordonnées de la MRZ,
on devrait annoter manuellement chaque image en marquant la région de la MRZ. On peut utiliser
des outils d'annotation d'images disponibles, tels que LabelImg ou RectLabel.
43
-Séparation des données : Division des données annotées en ensembles d'entraînement, de validation
et de test. L'ensemble d'entraînement est utilisé pour entraîner le modèle, l'ensemble de validation
est utilisé pour ajuster les hyperparamètres et l'ensemble de test est utilisé pour évaluer les
performances finales.
-Entraînement du modèle : Entraînement du modèle sur l'ensemble d'un entraînement annoté. Cela
implique de présenter les images au modèle, de faire des prédictions, de comparer les prédictions
avec les annotations pour calculer la perte et d'ajuster les poids du modèle en utilisant des
algorithmes d'optimisation tels que la descente de gradient.
-Évaluation du modèle : Évaluation des performances finales du modèle sur l'ensemble de test.
Mesure des métriques telles que la précision, le rappel, la précision moyenne (mAP) pour évaluer
la qualité de la détection de la MRZ.
-Utilisation du modèle : Utilisation du modèle entraîné pour détecter automatiquement la MRZ dans
de nouvelles images de passeport. On peut combiner la détection de la MRZ avec des techniques
OCR (reconnaissance optique de caractères) pour extraire le texte de la MRZ.
Il est important de noter que cette méthodologie est une approche générale et peut varier en
fonction des spécificités du projet, des contraintes de données et des objectifs de performance.
44
3.2.2 Modélisation
-Couche de base pré-entraînée : Pour bénéficier d'une meilleure performance et d'une convergence
plus rapide, on peut utiliser une couche de base pré-entraînée, telle que VGG16, ResNet, Inception,
etc. Cette couche de base est généralement pré-entraînée sur un grand ensemble de données, comme
ImageNet, et peut capturer des caractéristiques visuelles générales.
-Ajout de couches spécifiques à la détection : Il faut ensuite des couches supplémentaires spécifiques
à la tâche de détection d'objets après la couche de base pré-entraînée. Ces couches peuvent inclure
des couches convolutives, de regroupement (pooling), des couches de détection d'objets (par
exemple, des couches de détection de boîtes englobantes), etc. Ces couches aident à extraire des
caractéristiques spécifiques à la détection de la MRZ.
-Réglage des hyperparamètres : Les hyperparamètres, tels que le taux d'apprentissage, la taille du
lot, le nombre d'époques, etc., doivent être réglés pour obtenir les meilleures performances du
modèle. On peut effectuer des ajustements itératifs et utiliser des techniques d'optimisation, comme
la recherche par grille ou la recherche aléatoire, pour trouver les meilleurs hyperparamètres.
-Évaluation et amélioration : Par étape, on analyse d’abord les performances du modèle en utilisant
des métriques telles que la précision, le rappel, la précision moyenne (mAP), etc. Ensuite, on analyse
les résultats et identifie les domaines d'amélioration.
45
-Validation et test : On valide le modèle en utilisant un ensemble de données de validation distinct
pour évaluer sa capacité à généraliser sur de nouvelles données. Ensuite, On teste le modèle sur un
ensemble de données de test indépendant pour évaluer ses performances finales.
Il est important de noter que la modélisation de la détection de la MRZ d'un passeport est un
processus complexe qui nécessite une compréhension approfondie des concepts de vision par
ordinateur et d'apprentissage automatique. La modélisation peut impliquer plusieurs itérations
pour trouver l'architecture, les hyperparamètres et les techniques de prétraitement les plus appropriés
pour n’importe quel projet spécifique.
46
• Langage Python
-Historiques :
Python est un langage de programmation créé en 1989 par Guido Van Rossum, aux
Pays Bas. Le nom Python vient d’un hommage à la série télévisée Monty Python’s Flying Circus
dont G. Van Rossum est fan. La première version publique de ce langage a été publiée en 1991.
[3.01]
-Caractéristiques :
Il est orienté objet. C’est-à-dire qu’il est possible de concevoir en Python des entités qui
miment celles du monde réel (une cellule, une protéine, un atome, etc.) avec un certain nombre de
règles de fonctionnement et d’interactions.
Python est un langage interprété, c’est-à-dire que chaque ligne de code est lue puis
interprétée afin d’être exécutée par l’ordinateur.
• Interpréteur
• Présentation
Python est un langage de programmation open source. C’est un langage interprété c’est-à-
dire que le code source en python est traduit par un interpréteur. En pratique, Python est un logiciel
installé dans un système (Windows, Linux, Mac, …), et se présente sous la forme d’un exécutable.
• Comparaison
47
Tableau 3.01 : Comparaison de avantages et inconvénients des langages choisis
Python Il est multiplateforme. C’est-à-dire Il est plus lent que les scripts compilés,
qu’il fonctionne sur de nombreux et peu adapté pour le développement de
systèmes d’exploitation. Il est logiciels pour mobiles.
gratuit. On peut l’installer sur autant
d’ordinateurs que vous voulez
(même sur le téléphone). C’est un
langage interprété. Un script Python
n’a pas besoin d’être compilé pour
être exécuté. Il est très utilisé en bio-
informatique et plus généralement
en analyse de données.
48
3.3.2 IDE ou Interface
• Pycharm
• Flask
Flask est un microframework c’est-à-dire qu’il ne fait pas tout. Un Framework est un
ensemble de modules qui vont faciliter la programmation de sites Web dynamiques.
Les serveurs http ne savent pas interpréter Python. Donc, il faut ajouter un module au serveur
ce module est Flask. Le WSGI est intégré dans Flask, ce qui rend possible l’utilisation de Python.
Les Templates sont des fichiers html dans lequel on place des sections de code jinja2, qui
ressemble fortement à Python.
49
Figure 3.03 : Programme de base de Flask
50
Framework Description Atouts
• Le système d’authenticité
• La documentation : Django
possède une très bonne
documentation anglaise.
51
Framework Description Atouts
-Sa faiblesse
Django en tant que cadre ne permet pas,
seul, l'intégration d'AJAX côté client
web. C'est un choix de l'équipe de
développement qui préfère laisser à
l'utilisateur le choix de la bibliothèque
AJAX à combiner avec Django.
• OpenCV
OpenCV a été lancé chez Intel en 1999 par Gary Bradsky. La première version est arrivée
un peu plus tard en l'an 2000. OpenCV signifie essentiellement Open Source Computer Vision
Library. Bien qu'il soit écrit en C/C++ optimisé, il possède des interfaces pour Python et Java ainsi
que C++. OpenCV se vante d'une base d'utilisateurs actifs dans le monde entier, son utilisation
52
augmentant de jour en jour en raison de l'essor des applications de vision par ordinateur. OpenCV-
Python est l'API python pour OpenCV. Vous pouvez le considérer comme un wrapper python autour
de l'implémentation C++ d'OpenCV. OpenCV-Python est non seulement rapide (puisque l'arrière-
plan est constitué de code écrit en C/C++) mais est également facile à coder et à déployer (grâce au
wrapper Python au premier plan). Cela en fait un excellent choix pour exécuter des programmes à
forte intensité de calcul
• Numpy
• Matplotlib
C’est une bibliothèque Python utilisée pour créer des graphiques et des tracés 2D à l'aide de
scripts Python. Bien que le concurrent le plus coriace de Python, R, soit meilleur, mais comme nous
avons choisi python pour les tâches ML, nous utiliserons matplotlib pour la visualisation des
données.
• Pillow
PIL (Python Imaging Library) est une bibliothèque de fonctions prédéfinies sur Python pour la
manipulation des images. Elle n’est pas pré-intégrée au logiciel.
• Tenserflow
53
• Keras
Keras est une bibliothèque de réseaux neuronaux de haut niveau, écrite en Python et capable
de s'exécuter sur TensorFlow ou Theano. Il a été développé dans le but de permettre une
expérimentation rapide. Pouvoir passer de l'idée au résultat avec le moins de retard possible est la
clé d'une bonne recherche. Utilisez Keras si vous avez besoin d'une bibliothèque d'apprentissage en
profondeur qui : • Permet un prototypage facile et rapide (grâce à une modularité totale, un
minimalisme et une extensibilité). • Prend en charge à la fois les réseaux convolutifs et les réseaux
récurrents, ainsi que les combinaisons des deux. • Prend en charge les schémas de connectivité
arbitraires (y compris la formation multi-entrées et multi-sorties). • Fonctionne de manière
transparente sur le CPU et le GPU.
3.4 Architecture
54
3.5 Les étapes d’entrainement
3.5.1 La numérisation
À partir des informations du monde physique, On peut construire une représentation des
données directement manipulable par la machine ou/et prendre les données téléchargées puis les
traiter afin de pouvoir les manipuler.
3.5.2 Le prétraitement
Il s’agit de la phase finale de la préparation des données. Elle fournit un certain nombre de
caractéristiques ou paramètres (les fameux attributs) en utilisant des algorithmes de sélection et/ou
d’extraction d’attributs.
3.5.4 Apprentissage
3.5.5 Classification
Cette phase est le noyau de la Reconnaissance des formes. En utilisant les modèles
(paramètres) obtenus lors de l’apprentissage, le classificateur assigne à chaque forme inconnue sa
ou ses formes les plus probables
Cette phase a pour but de corriger les résultats de la classification en utilisant des outils
spécifiques au domaine d’application. Par exemple pour un système de reconnaissance de textes
manuscrits, le classificateur se charge de classer chaque caractère séparément, alors que le post
traitement appliqué un correcteur orthographique sur tout le texte pour valider et éventuellement
55
corriger le résultat de la classification. Bien que facultative, cette phase permet d’améliorer
considérablement la qualité de la reconnaissance.
3.6 Conclusion
En guise de conclusion, il est nécessaire avant un projet de faire des études mathématiques
depuis des ressources et de faire des choix optimaux pour les outils. Dans ce chapitre un
approfondissement de chaque détail afin de bien mener le projet était obligatoires.
Chaque étape doit être respecté et à ne pas prendre à la légère. Puisque le but initial de ce
projet est d’obtenir une réponse favorable et optimale. Maintenant, entrons dans le vif du sujet, là
où on va réaliser le projet, c’est-à-dire le chapitre final.
56
CHAPITRE 4
REALISATION DU PROJET DETECTAPP
4.1 Introduction
Le traitement d’image est l’un des technologies les plus utilisées de nos jours, que ce soit
dans le domaine de l’industrie ou de l’éducation et même dans la santé. L’intelligence artificielle
n’est un coup de pouce, pour avoir une amélioration et résultat optimisé.
Dans ce projet, l’étude est sur la détection d’une zone lisible par machine d’un passeport.
Ceci est une perspective positive, c’est pourquoi dans ce projet on va parler sur la réalisation du
projet. Le projet est nommé DetectApp parce que tout d’abord c’est une détection du MRZ, c’est
également une comparaison de détection avec une réseaux de neurone de détections. Donc dans le
programme, on va expliquer et éclaircir tous les étapes et fonctionnement du projet qui est
DetectApp.
Voici une démarche pour une détection de MRZ avec OCR, une détection sans intelligence
artificielle en utilisant des techniques de traitement d'images et de vision par ordinateur :
-Détection des contours : On utilise des algorithmes de détection des contours, tels que
l'algorithme de Canny, pour extraire les contours significatifs de l'image prétraitée. Les contours
peuvent aider à identifier les zones d'intérêt potentielles, y compris la MRZ.
- Filtrage des contours : On applique des filtres ou des critères supplémentaires pour éliminer
les contours indésirables et ne conserver que ceux qui pourraient correspondre à la MRZ. On
peut utiliser des techniques telles que la taille des contours, la forme ou la position relative pour
effectuer cette étape.
57
-Segmentation de la MRZ : À l'aide des contours filtrés, on utilise des techniques de
segmentation d'image pour isoler et extraire la zone correspondant à la MRZ. Cela peut être
réalisé en utilisant des méthodes telles que la recherche de rectangles ou la détection de lignes.
-OCR (Reconnaissance optique de caractères) : Une fois qu’on a isolé la MRZ, on peut
appliquer des algorithmes OCR pour extraire les caractères et les informations du texte à partir
de cette zone. Il existe plusieurs bibliothèques Python disponibles, comme Tesseract, qui
peuvent aider dans cette tâche.
D’abord, on importe l’image dans un fichier. Puis on fait un traitement d’image pour que
l’image soit plus accessible à manipuler. Puis c’est là qu’on fait la vérification, c’est-à-dire comparer
avec celle du réseau de neurone programmé au préalable dans le programme. Et enfin montrer le
résultat si c’est bien un passeport ou pas.
Importer l’image
Traitement de
l’image
Authentification de l’image
avec les images entrainées
Affichage
58
4.2.2 Organigramme
Dans cette partie, on parle de l’authentification de l’image par rapport au réseau de neurone avec
des données entrainées. Cela se fait en plusieurs étapes ci- présent :
Etape 5 : comparer les deux donnes, si elles ont les mêmes caractéristiques, donc c’est un passeport
si non ce n’est pas un passeport
DEBUT
IMPORTATION DE
L’IMAGE(Im)
TRAITEMENT DE L’IMAGE EN
EXTRAISANT LES MRZ(Ime)
PRESENCE DU RESEAU
DE NEURONE
ENTRAINE(rne)
SI FIN
Ime= rne
59
-l’organigramme générale, qui celle de l’application
L’application DetectApp est une application qui nous permet d’importer une image, de le
comparer au réseau de neurone dans une modèle prétraitée afin de savoir au final s’il s’agit belle et
bien d’une zone lisible par machine d’un passeport.
Donc on a :
CHARGEMENT D’IMAGE
AUTHENTIFICATION SI
L’IMAGE ET UNE MRZ
SI NON COMPARAISON
AVEC LE RESEAU
DE NEURONE
CE N’EST PAS UN
PASSEPORT
FIN
C’EST UN PASSEPORT
60
4.3 L’entrainement, validation et test
On doit avoir plusieurs données dans le répertoire afin d’avoir un large choix d’images à
entrainer. Cela aide beaucoup dans l’apprentissage car plus il y a de données plus la réponse sera
précise.
Pour cela, dans le répertoire il y a deux catégories de données, qui sont les données où il y a
les MRZ puis ceux qui ont l’absence des MRZ.
Ainsi que
Il faut également bien indiquer le chemin vers le répertoire contenant les images.
train_data_dir = 'chemin/vers/le/repertoire/des/donnees'
train_data_dir
-Puis paramétrer l’entrainement c’est-à-dire paramétrer le nombre des classes, la taille de l’images
d’entrée, et augmenter les données d’entrainement
-définir le modèle
model = tf.keras.Sequential()
-Mettre les couches de convolutions et pooling, puis connecter les couches.
61
4.3.3 Validations
L’ajout d’une étape de validation à la fin de chaque époque d'entraînement nous permettra de
surveiller la performance du modèle sur des données distinctes de celles utilisées pour
l'entraînement.
validation_data_dir = 'chemin/vers/le/repertoire/des/donnees/validation'
4.3.4 Le test
Comme test, on a utilisé la méthode evaluate () de Keras. Cette méthode permet d'évaluer
les performances du modèle sur un ensemble de données de test distinct.
Comme pour les étapes précédentes, il est nécessaire de bien noter le chemin vers le test
test_data_dir = 'chemin/vers/le/repertoire/des/donnees/test'
Pour implanter les extensions, il y a deux choix à faire. Soit on va dans le CMD qui est une
terminale, soit on le fait dans le terminal de l’éditeur. En utilisant pip install.
-OpenCV : OpenCV (Open Source Computer Vision) est une bibliothèque libre de vision par
ordinateur. Cette bibliothèque est écrite en C et C++ et peut être utilisée sous Linux, Windows et
Mac OS X. Des interfaces ont été développées pour Python, Ruby, Matlab et autre langage. OpenCV
est orienté vers des applications en temps réel. Un des buts d’OpenCV est d’aider les gens à
construire rapidement des applications sophistiquées de vision à l’aide d’infrastructure simple de
vision par ordinateur. La bibliothèque d’OpenCV contient plus de 500 fonctions.
-Tensorflow, et Keras : deux bibliothèques qui nous aideront dans l’entrainement du réseau de
neurone
-Flask : le Framework qui nous aidera sur le côté front de l’application web
Rappelons que pour coder un réseau de neurones avec Python pour la détection de la MRZ,
on peut utiliser une bibliothèque d'apprentissage automatique comme TensorFlow ou Keras.
62
Voici les étapes nécessaires dans ce projet :
-la collecte de données : les données sont téléchargées via google, des images de passeports avec
MRZ. Pour la préparation, on a redimensionné les images, ainsi que normalisé les pixels, et enfin
préparé les étiquettes de la MRZ.
-Importation des bibliothèques : il est nécessaire d’importer des bibliothèques telle que
TensorFlow ou Keras, ainsi que d'autres bibliothèques utiles comme NumPy pour le traitement des
données et Matplotlib pour la visualisation.
- Construction du modèle : il faut définir l'architecture de votre réseau de neurones. Vous pouvez
utiliser une architecture CNN qui consiste en des couches convolutives pour extraire les
caractéristiques des images, des couches de regroupement pour réduire la dimensionnalité, et des
couches entièrement connectées pour la classification.
- Préparation des données d'entraînement : On divise l’ensemble de données en ensembles
d'entraînement, de validation et de test. On prépare les données d'entraînement en les
redimensionnant et en les normalisant, et on convertit les étiquettes de la MRZ en un format
approprié pour l'entraînement.
- Entraînement du modèle : Il faut entraîner le réseau de neurones en utilisant les données
d'entraînement préparées. On définit la fonction de perte appropriée, l'optimiseur et les métriques
d'évaluation. On utilise des boucles d'entraînement pour itérer sur les données et ajuster les poids
du réseau.
- Validation et ajustement du modèle : On évalue les performances du modèle en utilisant les
données de validation. Si les résultats ne sont pas satisfaisants, on ajuste les hyperparamètres du
modèle, tels que la taille du lot (batch size), le taux d'apprentissage (Learning rate), le nombre de
couches, etc.
- Test du modèle : On évalue les performances du modèle sur l'ensemble de données de test pour
mesurer sa précision et son efficacité.
- Utilisation du modèle pour la détection de la MRZ : On utilise le modèle entraîné pour prédire
la présence et les coordonnées de la MRZ dans de nouvelles images de passeport. On peut également
combiner la détection de la MRZ avec des techniques OCR pour extraire le texte de la zone détectée.
63
DetectApp est une application web qui sert a priori à détecter uniquement des caractères de
la MRZ d’un passeport. C’est une application que comporte un réseau de neurone convolutif
programmé au préalable. Cette application reconnaisse une vrai MRZ grâce à son entrainement.
• Le logo
Voice le logo de l’application web de Detectapp. Le logo a été fait sur Canva.
• Les couleurs
• Police
Font-family : Papyrus
• La fonctionnalité
- Fichiers .py contenant les programmes python comme le programme du réseau de neurone, …
64
- Fichiers .css, .js pour la customisation de l’application en utilisant Bootstrap
Les interfaces sont réalisées à l’aide du mélange du langage python, HTML et du Bootstrap.
L’interface d’accueil est représentée par un titre de bien venu, du logo et un bouton de lancement.
Voici la représentation de l’interface d’accueil dès le début du programme.
65
Figure 4.03 : L’interface d’accueil de l’application Web DetectApp
Dans cette partie en nous a fait choisir une photo de MRZ qui n‘est pas encore traiter. Puis
le programme le traite et le compare avec celle du réseau de neurone programmé dans le système.
66
Figure 4.04 : L’interface de demande
67
Figure 4.06 : Interface qui nous demande de lancer le traitement
Dans cette dernière partie, il y a deux figures qui montre si la MRZ correspond vraiment de
celle d’un passeport ou non.
68
Figure 4.07 : Les deux cas lors de l’authentification
Les réseaux de neurones à convolution demandent plus de temps de calcul qu’un simple
réseau de neurone linéaire. Entraîner le programme peut donc nécessiter une dizaine de minutes de
calculs, c’est pourquoi on a créé un programme qui retient ce qu’il a appris (les weights) dans un
fichier. Le réseau sera donc déjà entraîné au préalable du programme, dans google colab (parce
l’intelligence artificielle demande certaine capacité au PC).
En réalité on a séparé le tout en deux programmes, l’un servant à apprendre (ajuster les
weights) et l’autre servant faire une comparaison et être évaluer une autre image qui va être traitée
et détectée à son tour avant d’être comparée à celle du réseau de neurone qui était déjà entrainée,
validée et testée avant de faire le modèle.
69
4.6 Conclusion
En bref, ce dernier chapitre est le corps de ce projet. Ici on a parlé des réseaux de neurone,
du traitement d’image. La zone lisible par machine d’un passeport renferme des informations
spécifiques et spéciales qui lui diffère du visa qui est un document dont le MRZ y est aussi présent.
Ce chapitre nous a permis également de voir l’utilité du réseau de neurone dans le traitement
d’image, pour avoir une perspective optimale et évolutionnaire. Certes, une MRZ peut être
authentifiée facilement par une détection d’image et vision ordinateur simple mais ici, l’alternative
sur l’intelligence artificielle souligne une précision frappante et plus sure.
70
CONCLUSION ET PERSPECTIVES
En définitive, ce projet nous a permis de voir une facette d’utiliser la détection d’une zone
lisible par machine d’un passeport autrement. En effet, l’utilisation de réseaux de neurone qui est
une intelligence artificielle est une belle assistance dans le traitement d’image. Cette technologie est
parfaitement extraordinaire pour le futur du numérique.
Face au problématique existant sur le passeport, comme des faux passeports, des passeport
dupliquées. Dans ce projet nous avons étendue sur les généralités et historiques de l’image, de la
zone lisible par machine et du traitement d’image. Puis on a amplement consacré sur l’intelligence
artificielle, afin d’avoir une aperçue sur la méthode dont on va procéder pour le projet, Ensuite, on
a fait l’étude et calcul sur manière pour enfin obtenir l’application web DetectApp.
Pour optimiser ce projet, avoir un camera de bonne qualité, ajouter plus de données seraient
plus bénéfiques. Mais malheureusement pour raison financière, les données utilisées sont
insuffisantes, ainsi qu’une performance de machine s’impose pour faire l’apprentissage. Mais bien
sûr, utiliser google colab était une alternative enrichissant car c’est une remarquable technologie
pour s’initier dans l’intelligence artificielle. De plus google colab est une plateforme connue pour
son efficacité, sa richesse en information et ressources, relation avec GitHub et performance absolue
dans l’exécution.
Dans ma précédente mémoire de licence, l’utilisation du deep Learning ou apprentissage
profond était une perspective idéale pour l’évolution et l’optimisation de l’authentification de
données, celle du passeport. Une petite vision du monde et une attention particulière pour notre
pays, qui n’est autre que Madagascar, rime à dire que la perspective de numériser les documents
d’identités et avoir des bases de données ne fait pas plus de mal que de bien. Malgré qu’avoir des
archives en papier est quelque peu utile, l’évolution dans le numérique sera favorable et opportun
pour le développement du pays.
71
ANNEXES
La partie supérieure c’est la zone d’inspection visuelle et la seconde partie est la zone lisible par
machine
import cv2
import Output
img = cv2.imread('sary4mrz.jpg')
i=0
d = pytesseract.image_to_data(img, output_type=Output.DICT)
print(d['text'])
Ce code demande l’extraction du MRZ est de les présenter sous forme de dictionnaire dans le
terminal CMD.
class Person():
def __int__(self, hair_color, eye_color, height, Weight):
lxxii
self.hair_color = hair_color
self.eye_color = eye_color
self.height_color = height
self.weight = Weight
IMC_KB9 = KB9.getIMC()
print(IMC_KB9)
Pour s’initier dans l’intelligence artificielle.
lxxiii
REFERENCES
[1.01] https://www.lefigaro.fr/langue-francaise/actu-des-mots/d-ou-vient-le-passeport
20210309 (05 Juin 2023)
[1.03] https://www.idemia.com/fr/perspective/un-passeport-moderne-pour-une-vie-moderne
(06 Juin 2023)
[2.09] https://www.oracle.com/fr/artificial-intelligence/machine-learning/what-is-
machinelearning/?fbclid=IwAR1PQLPFx8uua2ecV_cRkfXF20PiE-
aNQfWi_yW037dZ6_qKvkm5NfYqa-E( 20 Juillet 2023)
[2.02] Orpheo , “Deep learning c’est quoi?”, page 1, edition 12 Aout 2019
[2.03] Xihe Ge, “Bref introduction aux réseaux de neurone”, page 9, publier le Juillet 2022
[2.04] Nicolas Schmid, « Reconnaissance dimage par reseau de neuron », Page 3 a page 6,
Novembre 2018
[3.01] Patrick Fuchs et Pierre Poulain, « cours Python », Page 09, édition du 29 Aout 2022
lxxiv
FICHE DE RENSEIGNEMENTS
Nom : ANDRIAMAHEFA
E-mail : anthoniehanitsoa@gmail.com
Nombre de pages : 92
Nombre de tableaux : 02
Nombre de figures : 38
Téléphone : 0340440371
Mail : rajandre55@gmail.com
lxxv
FAMINTINANA
Ity tetikasa ity dia nampianatra bebe kokoa momba ny faritra mora vakin'ny milina sy ny
fianarana ny maha-zava-dehibe ny faharanitan-tsaina artifisialy eto amin'izao tontolo izao ary
indrindra amin'ny hoavin'ny nomerika. Efa tena ilaintsika amin’ny zava-drehetra ny fanodinana
sary, eny fa na dia ny fanakatonana ny finday aza. Midika izany fa ny fahafantarana an'ity
tontolon'ny evolisiona ity dia ho safidy tsara indrindra sy mahasoa ho antsika. Ankoatr'izay, ny
fahalalana ny tambajotra momba ny neurone dia feno sy azo atokisana hianarana momba ny
faharanitan-tsaina artifisialy. Ny fampiasana google colab hanaovana faharanitan-tsaina dia
mamaha olana ihany koa.
RESUME ET MOTS CLES
Ce projet nous a permis à renseigner davantage sur la zone lisible par machine ainsi que
d’apprendre l’utilité de l’intelligence artificielle dans le monde et surtout sur le futur du numérique.
Nous pouvons constater nous même que tout est traitement d’image actuellement, même le
verrouillage de nos téléphones. Cela signifie que connaitre ce monde de l’évolution sera une option
optimale et favorable. En outre, le réseau de neurone est un domaine riche et rassurant pour s’initier
dans l’intelligence artificielle. L’utilisation de google colab pour faire l’intelligence artificielle était
également une initiative convenable.
Mots clés : traitement d’image, reconnaissance de forme, zone lisible par machine, réseau de
neurone, authentification, intelligence artificielle.
This project has enabled us to find out more about the machine-readable zone, as well as
learning about the usefulness of artificial intelligence in the world, and above all about the future of
digital technology. We can see for ourselves that everything is image processing these days, even
the locks on our phones. This means that knowing this world of evolution will be an optimal and
favorable option. What's more, the neural network is a rich and reassuring field in which to learn
about artificial intelligence. The use of google colab for artificial intelligence was also an
appropriate initiative.