Vous êtes sur la page 1sur 94

N° d’inscription : 101 Année universitaire : 2021-2022

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

Domaine : Sciences de l’Ingénieur


Mention : AUTOMATISME ET INFORMATIQUE
Parcours : AUTOMATISME ELECTRONIQUE ET INFORMATIQUE INDUSTRIELLE

Par : ANDRIAMAHEFA Hanitsoa Anthonie

Titre : ASSISRANCE D’UNE INTELLIGENCE ARTIFICIELLE DANS UNE


DETECTION DE ZONE LISIBLE PAR MACHINE D’UN PASSEPORT(MZR)
Soutenu le , devant les Membres du Jury composés de :
Président de Jury : Madame RANAIVOSOA Mamitiana Lalaonirina Olivette
Examinateurs :
Monsieur ANDRIANTSITOHERINTSOA Ravelojaona
Monsieur RANAIVOSOA Rija
Monsieur RALAHIARIJAONA Zandrison Richard
Encadreur pédagogique : Monsieur RAJAONARIVELO Jean André
N° d’inscription : 101 Année universitaire : 2021-2022

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

Domaine : Sciences de l’Ingénieur


Mention : AUTOMATISME ET INFORMATIQUE
Parcours : AUTOMATISME ELECTRONIQUE INFORMATIQUE INDUSTRIELLE

Par : ANDRIAMAHEFA Hanitsoa Anthonie

Titre : : ASSISRANCE D’UNE INTELLIGENCE ARTIFICIELLE DANS UNE


DETECTION DE ZONE LISIBLE PAR MACHINE D’UN PASSEPORT(MZR)
Soutenu le , devant les Membres du Jury composés de :
Président de Jury : Madame RANAIVOSOA Mamitiana Lalaonirina Olivette
Examinateurs :
Monsieur ANDRIANTSITOHERINTSOA Ravelojaona
Monsieur RANAIVOSOA Rija
Monsieur RALAHIARIJAONA Zandrison Richard
Encadreur pédagogique : Monsieur RAJAONARIVELO Jean André
AVANT PROPOS
Le traitement d’image est aujourd’hui au cœur d’un débat d’importance significative. Autant
dire que, l’homme au cours de son évolution a toujours besoin d’être représenté et de représenter ce
qu’il voit. L’image est certainement la tradition la plus vieille encore perpétuée jusqu’à aujourd’hui
parce qu’elle est d’une importance cruciale dans le fait qu’elle informe a priori et rappelle à forte
priori. La preuve est que les premières écritures des temps anciens comme les hiéroglyphes étaient
ou du moins ressemblaient à des images. Traiter une image ne signifie plus simplement à l’heure
actuelle regarder et lire avec les yeux nus. En effet, encore beaucoup d’informations sont cachées
dans certaines images à utilisations spécifiques (les images dans les passeports en font certainement
partie) où des machines sont nécessaires pour en extraire ces informations.
Comme certaines technicités fréquentes aujourd’hui, la manipulation des images peut être
automatisée. Il y a toute une panoplie de méthodes pour exploiter automatiquement et utiliser
optimalement ces images, mais la MRZ fait partie de ceux qui sont à la première place dans les
recommandations. Au sein de ce processus, l’impétrant doit maitriser un ensemble de technique
spécifiques et aiguisées. On note par exemple : la maitrise du développement Back-End, la base des
données (dans le cadre de ce mémoire, celle-ci est remplacée par la maitrise de l’Intelligence
Artificielle), l’électronique, l’Automatisme voire la Biométrie. Chacun de ces disciplines sont aussi
importantes les unes comme les autres. Cependant, les maitriser est une chose alors que les mettre
ensemble de façon harmonieuse en est une autre.
Au sein du parcours AEII (Automatisme Electronique Informatique Industrielle), les
étudiants sont amenés à aiguiser leurs compétences en Informatique, en Electronique et Electricité,
et également en Automatisme. Cela dit, pendant au moins 5 années d’études ces étudiants balancent
entre la pratique et les théories pour devenir des vrais polytechniciens. Toutefois, les recherches
individuelles sont toujours au rendez-vous pour se perfectionner. Parce que le monde est en
continuelle évolution, le développement de compétence doit suivre également le rythme.
Parmi les technologies du moment qui prônent par-dessus tout la recherche individuelle,
l’Intelligence Artificielle a subséquemment la plus de notoriété. Elle a boosté l’efficacité de
beaucoup de technologies ces 5 dernières années. Les petites machines à utilisation simple ont pris
de l’envergure en étant imbriquées par l’Intelligence Artificielle.
Ce mémoire d’étude démontre surtout la valeur ajoutée qu’apporte une IA dans la MRZ à
utilisation dans une passeport.

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 mitafotafo ihany koa ireto olona vaolaza manaraka ireto:

• Andriamatoa, RAVELOMANANA Mamy Raoul, filohan’ny Oniversiten’Antananarivo.


• Andriamatoa ANTSONANTENAINARIVONY Ononamandimby, talen’ny Institut
d’Enseignement Superieur du Vakinankaratra, izay nanaiky nandray ahy hianatra ato.
• Ramatoa, RANAIVOSOA Lalaoniriana Mamitiana Olivette, lehiben’ny
sampampampianarana Automatisme sy Informatique ety amin’IESAV, izay sady filohan’ny
mpitsara ity boky ity, izay tsy nikely soroka izy nanome torohevitra ahy na tamin’ny
fianarako amin’ny ankampobeny na tamin’ny fanaovana ity boky ity. Misaotra Madama.
• Andriamatoa RAJAONARIVELO Jean André, Assistant d’Enseignement Supérieur et de
Recherches, izay na dia eo aza ny asa aman-draharaha iantsoroany dia nandany fotoana
mihitsy izy mba hanoroana hevitra sy hanampiana ahy mba hahavitana ity boky ity.
Fankasitrahana lehibe no atolotro azy.
• Ankasitrahiko ihany koa ireto manaraka ireto:

- Andriamatoa ANDRIANTSITOHERINTSOA Ravelojaona


-Andriamatoa RANAIVOSOA Rija
-Andriamatoa RALAHIARIJAONA Zandrison Richard
, izay nanaiky nandany fotoana hitsara ity boky ity.

• Fankasitrahana mitafotafo ihany koa no atolotro ireo mpampianatra sy mpandraharaha


rehetra eto amin’ ny Institut d’Enseignement Superieur d’Antsirabe Vankinankaratra. Fa
itodihako manokana kosa ireo izay ao amin’ny sampampampianarana Automatisme sy
Informatique izay misy ahy.

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

Pendant 5 années d’études, Dieu n’a cessé de me donner sa Grace, me combler de


Bénédiction et me partager son Amour. Il m’a toujours montré la voie à suivre, et seulement pour
cela, je Lui serai éternellement reconnaissante. Mais bien sûr, Il en a fait plus. La reliure de ce
mémoire est la preuve que Dieu est et sera toujours de mon côté.

Je tiens également à apporter mes vifs remerciements aux personnes suivantes sans qui ce
travail n’aurait pas pu être réalisé :

• Monsieur RAVELOMANANA Mamy Raoul, Professeur titulaire, président de l’Université


d’Antananarivo.
• Monsieur ANTSONANTENAINARIVONY Ononamandimby, Directeur de l’institut
d’Enseignement Supérieur D’Antsirabe Vankinakaratra, de nous avoir accueillie dans son
institut.
• Madame RANAIVOSOA Mamitiana Lalaonirina Olivette, cheffe de la mention
Automatisme et Informatique à l’IESAV, qui a également l’honneur de présider ce jury,
merci pour ses précieux conseils tant dans mon cursus que dans la réalisation de ce mémoire,
elle n’a économisé ni temps, ni énergie pour nous venir en aide. Merci Madame.
• Monsieur RAJAONARIVELO Jean André, Assistant d’Enseignement Supérieur et de
Recherches, qui est malgré ses occupations m’a consacré son temps et m’a donné ses
conseils et aides pour terminer ce travail. Je tiens à lui adresser toute ma gratitude.
• Je tiens à témoigner toute ma reconnaissance à :

- Monsieur ANDRIANTSITOHERINTSOA Ravelojaona


-Monsieur RANAIVOSOA Rija
-Monsieur RALAHIARIJAONA Zandrison Richard
, qui ont consacré leurs temps précieux pour juger ce travail.

• Mes vifs remerciements s’adressent également à tous les enseignants et personnels de


l’Institut d’Enseignement Supérieur d’Antsirabe Vakinankaratra en général et ceux du
parcours Automatisme Electronique et Informatique industrielle en particulier.

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.

Merci beaucoup à tous

vi
TABLE DES MATIERES

AVANT PROPOS .......................................................................................................................................... i

FISAORANA ................................................................................................................................................ iii

REMERCIEMENTS ..................................................................................................................................... v

TABLE DES MATIERES .......................................................................................................................... vii

NOTATIONS ................................................................................................................................................. x

LISTES DES TABLEAUX ET DES FIGURES ...................................................................................... xiii

GLOSSAIRE.................................................................................................................................................. 1

INTRODUCTION ET POSITION DU PROBLEME................................................................................ 2

CHAPITRE 1 ................................................................................................................................................. 4

GENERALITES ET DEFINITIONS SUR L’IMAGE ET LA MRZ ....................................................... 4


1.1 Introduction......................................................................................................................................... 4

1.2 Généralités ........................................................................................................................................... 5

1.2.1 L’image ......................................................................................................................................... 5


1.2.2 Types d’image ............................................................................................................................... 5
1.2.3 Le passeport .................................................................................................................................. 6
1.3 Traitement d’images ........................................................................................................................... 8

1.3.1 Une image numérique .................................................................................................................. 8


1.3.2 Reconnaissance de forme ........................................................................................................... 10
1.3.3 Segmentation des images ............................................................................................................ 13
1.4 Conclusion ......................................................................................................................................... 23

CHAPITRE 2 ............................................................................................................................................... 24

L’INTELLIGENCE ARTIFICIELLE ...................................................................................................... 24


2.1 Introduction....................................................................................................................................... 24

2.2 Historique de l’intelligence artificielle ............................................................................................ 24

2.2.1 Quelques étapes importantes dans l’histoire de l’IA : ............................................................... 24


2.2.2 Définitions ................................................................................................................................... 26
2.2.3 L’application de l’IA................................................................................................................... 26
2.2.4 La méthode de l’IA ..................................................................................................................... 27

vii
2.2.5 Machine Learning ...................................................................................................................... 29
2.2.6 Deep Learning ............................................................................................................................ 32
2.3 Réseaux de neurones......................................................................................................................... 33

2.3.1 Théorie ........................................................................................................................................ 33


2.3.2 Le neurone biologique ................................................................................................................ 33
2.3.3 Ses atouts..................................................................................................................................... 34
2.3.4 Le neurone virtuel....................................................................................................................... 35
2.3.5 Les réseaux.................................................................................................................................. 35
2.3.6 Réseau de neurone convolutif .................................................................................................... 36
2.3.7 Réseau de neurone linéaire ........................................................................................................ 37
2.4 L’apprentissage ................................................................................................................................. 40

2.5 Conclusion ......................................................................................................................................... 41

CHAPITRE 3 ............................................................................................................................................... 43

CONCEPTION ET MODELISATION MATHEMATIQUE DU PROJET DETECTAPP ................ 43


3.1 Introduction....................................................................................................................................... 43

3.2 Méthode ............................................................................................................................................. 43

3.2.1 Méthodologie............................................................................................................................... 43
3.2.2 Modélisation................................................................................................................................ 45
3.3 Outils de développement .................................................................................................................. 46

3.3.1 Les technologies .......................................................................................................................... 46


3.3.2 IDE ou Interface ......................................................................................................................... 49
3.3.3 Les librairies correspondantes.................................................................................................... 52
3.4 Architecture....................................................................................................................................... 54

3.5 Les étapes d’entrainement ............................................................................................................... 55

3.5.1 La numérisation .......................................................................................................................... 55


3.5.2 Le prétraitement .......................................................................................................................... 55
3.5.3 . Calcul des représentations ........................................................................................................ 55
3.5.4 Apprentissage .............................................................................................................................. 55
3.5.5 Classification............................................................................................................................... 55
3.5.6 Le post traitement ....................................................................................................................... 55
3.6 Conclusion ......................................................................................................................................... 56

CHAPITRE 4 ............................................................................................................................................... 57

viii
REALISATION DU PROJET ................................................................................................................... 57
4.1 Introduction....................................................................................................................................... 57

4.2 La détection de MRZ ........................................................................................................................ 57

4.2.1 Schéma synoptique ..................................................................................................................... 58


4.2.2 Organigramme ............................................................................................................................ 59
4.3 L’entrainement, validation et test ................................................................................................... 61

4.3.1 Les données ................................................................................................................................. 61


4.3.2 Les données à entrainer.............................................................................................................. 61
4.3.3 Validations .................................................................................................................................. 62
4.3.4 Le test .......................................................................................................................................... 62
4.4 Les configurations ............................................................................................................................. 62

4.4.1 Les extensions et bibliothèques .................................................................................................. 62


4.4.2 L’intégration de réseaux de neurone ......................................................................................... 62
4.5 L’application Web DetectApp ......................................................................................................... 63

4.5.1 La charte graphique ................................................................................................................... 63


4.5.2 Le structure du fichier ................................................................................................................ 64
4.5.3 La représentation de l’interface d’accueil ................................................................................. 65
4.5.4 La représentation de l’interface du traitement .......................................................................... 66
4.5.5 La représentation de l’interface d’authentification................................................................... 68
4.5.6 Le réseau de neurone convolutif ................................................................................................ 69
4.6 Conclusion ......................................................................................................................................... 70

CONCLUSION ET PERSPECTIVES ...................................................................................................... 71

ANNEXES ................................................................................................................................................. lxxii

REFERENCES ........................................................................................................................................ lxxiv

FICHE DE RENSEIGNEMENTS .......................................................................................................... lxxv

FAMINTINANA...................................................................................................................................... lxxvi

RESUME ET MOTS CLES .................................................................................................................. lxxvii

ABSTRACT AND KEYS WORDS....................................................................................................... lxxvii

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

N Valeur de niveau de gris

P Prédicat

3. Minuscules grecques

 Sigma, degré de filtrage

Θ Teta, interaction de sinusoïde

R Interaction de sinusoïde

4. Notations spéciales

Im Image

Ime Image traitée

Rne Réseau de neurone entrainé

x
5. Abréviations

AA Apprentissage Automatique

AJAX Asynchronous JavaScrip and XML

API Application programming Interface

CNN Reseau de neurones convolutifs

CRM Customer Relationship Managment

CPU Central Processing Unit

CSS Cascading Style Sheet

GPU Graphics Processing Unit

HTML Hyper Text Markup Language

IA Intelligence Artificielle

IDS Intrusion Detection System

JS JavaScrip

LPE Ligne de partages des Eaux

ML Machine Learning

MRZ Machine Readable Zone

NBR Nombre

OCR Optical Character Recognition

OPENCV Optimized Computer Vision

PIL Python Imaging Library

PIXEL Picture Element

RGB Red Green Blue

RN Reseau neuronal

xi
RNA Reseau de Neurone Artificiel

RNN Recurrent Neuronal Network

RVB Rouge Vert Bleu

SGD Descente de Gradient Stochastique

SSD Single Shot MultiBox Detector

URL Uniform Ressource Locators

WSGI Web Server Gateway Interface

YOLO You Only Look Once

xii
LISTES DES TABLEAUX ET DES FIGURES

1. Liste des tableaux

Tableau 3.01 : Comparaison de avantages et inconvénients des langages choisis ................................. 48

Tableau 3.02 : Difference entre flask et Django ....................................................................................... 50

2. Liste des figures

Figure 1.01 : Illusion du premier passeport ..................................................................................... 7


Figure 1.02 : Une MRZ ou zone lisible par machine ....................................................................... 7
Figure 1.03 : Un passeport Malagasy ............................................................................................... 8
Figure 1.04 : Réseau de pixels ......................................................................................................... 9
Figure 1.05 : 64 niveaux de gris ..................................................................................................... 10
Figure 1.06 : Cloche Gaussienne ................................................................................................... 11
Figure 1.07 : Echantillon de la Gaussienne 2D .............................................................................. 11
Figure 1.08 : Filtre de bruits gaussien ............................................................................................ 12
Figure 1.09 : Méthode OTSU seuil=136 ........................................................................................ 16
Figure 1.10 : Méthode de OTSU seuil= 102 .................................................................................. 16
Figure 1.11 : Seuillage par hystérésis ............................................................................................ 17
Figure 1.12 : Différentes formes de contours................................................................................. 18
Figure 1.13 : Filtre de Canny ......................................................................................................... 19
Figure 1.14 : Deux image représentant l’image originael et une image dont sigma=2 ................. 20
Figure 1.15 : Transformé de Hough, pic dominant ........................................................................ 20
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 ....................................................................... 21
Figure 1.18 : Détections de contours entre Canny et Hough ......................................................... 21
Figure 1.19 : Transformée de Hough ............................................................................................. 22
Figure 1.20 : Résultat du traitement, distance de connexion 42 .................................................... 22
Figure 2.01 : Représentation de l’apprentissage de l’IA ................................................................ 28
Figure 2.02 : Trois types d’algorithmes d’apprentissage automatiques ......................................... 28
Figure 2.03 : Un exemple de machine Learning ............................................................................ 30
Figure 2.04 : Un exemple de deep learning ................................................................................... 33
Figure 2.05 : Le neurone virtuel ..................................................................................................... 35
Figure 2.06 : Réseaux de neurones multicouches .......................................................................... 36

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

3. Liste des annexes

Annexe 1 : Les deux parties d’un passeport

Annexe 2 : Détection de la zone lisible par machine (extrait de code)

Annexe 3 : exemple pour faire une classification

xiv
GLOSSAIRE

Application Web : c’est un logiciel qui s’exécute dans le navigateur web.

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.

Hiéroglyphe : caractères, signe des plus anciennes écritures Égyptiennes

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 :

• Quels caractères de l’IA garantissent-ils la perpétuelle évolution de la MRZ ?


• Comment peut-on imbriquer une technologie complexe comme l’IA dans une technologie
déjà avancée telle que la MRZ ?

Pour pouvoir appréhender l’étendu de ces questions, certains objectifs seront fixés. Ce qui
nous amène aux axes suivants :

• Optimisation de l’authentification de la vérification du passeport.


• Amélioration de la sécurité dans le fait que certaines informations spécifiques et précises
peuvent être stockés dans les images.
• Prouver que l’IA est l’avenir de la technologie.

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 :

Avant d’apprendre et de mieux comprendre ce mémoire, il est impératif d’éclaircir certains


domaines. Le projet consiste à détecter la partie de la zone lisible par machine d’un passeport. C’est-
à-dire la partie inferieur du passeport. Cette partie cache des informations et a une représentation
particulière à celle du visa.

Pourquoi cette partie et pas un autre ?

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 ?

Limite du projet et le secteur qu’il peut occuper ?

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 Généralités sur l’image

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]

1.2.2 Types d’image

L’image est une représentation bidimensionnelle d’un objet tridimensionnel de nature


diverse. Elle contient en chaque point une intensité lumineuse qui varie de façon uniforme entre le
blanc et le noir. Il existe deux types d’images : image analogique et image numérique.

• Une image analogique

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.

• 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 ».

Comme le précise le thésaurus, le terme « passeport » apparait dans la langue de Molière au


début de XVème siècle, et signifie Certificat délivré par l’autorité. On l’utilisait pour la libre
circulation des marchandises. L’ancêtres de nos laisser passer devient quelques années plus tard un
sauf-conduit émis par l’autorité qui garantit la liberté de circulation d’une personne. [1.01]

6
Figure 1.01 : Illusion du premier passeport

• La zone lisible par machine ou MRZ

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

La fonctionnalité de InvestGlass : InvestGlass recueille les données des passeports des


clients afin de faciliter l’embarquement. Cela se fait par le biais de la vérification d’identité
ONFIDO ou SUMSUB qui permet l’acquisition des détails du passeport du client, tels que le nom,
la date de naissance et la nationalité, ainsi que leur photo numérique. On pouvait facilement mettre
en place des formulaires numériques InvestGlass et ensuite envoyer les informations à une API de
passeport tierce comme SUBMUB. Cette dernière vérifiera naturellement l’authenticité du
passeport. [1.02]

Figure 1.02 : Une MRZ ou zone lisible par machine

• 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

De 1994 à 2020, le passeport a changé de format et de texture. De simple document de


voyage papier, il est devenu un document électronique renfermant ce qui nous rend unique,
biométrie pour une expérience voyageur à la fois plus sure et plus fluide. [1.03]

Figure 1.03 : Un passeport Malagasy

1.3 Traitement d’images

1.3.1 Une image numérique

• 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.

Les axes de l’image sont orientés de façon suivante :

- L’axe X est orienté à droite (largeur)

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)

Figure 1.04 : Réseau de pixels

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.

• Image en niveau de gris

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.

Le plus simple est de faire : gris=rouge + vert + bleu

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 :

Gris= 0, 299 · rouge+ 0, 587 · vert + 0, 114 · bleu

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 :

0 → noir, ............127 → gris moyen, ......, 255 → blanc

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.

Figure 1.05 : 64 niveaux de gris

1.3.2 Reconnaissance de forme

• 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.

Figure 1.06 : Cloche Gaussienne

• Du continu au discret

Le noyau de Gauss est défini par un ensemble de coefficients qui sont des échantillons de la
Gaussienne 2D.

Figure 1.07 : Echantillon de la Gaussienne 2D


Etant donné que les images numériques sont composées de valeurs discrètes, le noyau
gaussien sera composé aussi de valeurs discrètes :

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.

Figure 1.08 : Filtre de bruits gaussien


L’avantage de passer dans l’espace de Fourrier, c’est que l’on peut appliquer un flou
gaussien de n’importe quel rayon (dans ce cas, ce n’est plus vraiment d’un rayon) pour un même
temps d’exécution.
Pour appliquer, nous avons un noyau de convolution G et une image I, et G*I le produit de
convolution entre G et I.
Alors, si on note F la transformée de Fourrier, on a la propriété suivante :
F(G*I) = F(G).F(I)
Le produit de convolution (opération lente) se transforme en produit simple (opération
rapide). Pour un noyau gaussien, l’avantage étant que F(G) est une formule connue.
Le filtre Gaussien donne un meilleur lissage et une meilleure réduction du bruit que le filtre
moyenneur il préserve mieux l’information contenue dans l’image que les moyennes. On considère
souvent que le filtre gaussien est le meilleur compromis entre lissage et préservation de
l’information, ce qui implique pour un masque de convolution très étendu et donc une charge de

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.

1.3.3 Segmentation des images

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.

La segmentation des images est le procède qui conduit à un découpage de l’image en un


nombre fini de régions (ou segments) bien définies qui correspondent à des objets, des parties objets
ou des groupes d’objets qui apparaissent dans une image. C’est une transformation très utile en
vision artificielle.

Une erreur dans la segmentation de la forme à reconnaitre augmente forcement le risque


d’une mauvaise reconnaissance.

Essentiellement, l’analyse de l’image fait appel à la segmentation ou l’on va tenter d’associer


a chaque pixel de l’image un label en s’appuyant sur l’information portée (le plus souvent des
modèles géométriques).

• Les principes de la segmentation

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 :

a. Segmentation par régions

b. Segmentation par seuillage

c. Segmentation par contours

d. La transformé de Hough

13
e. La segmentation par étiquetage en composantes connexes

f. La segmentation par LPE

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.

a. La segmentation par régions

La segmentation va consister à regrouper les pixels de l’image en régions (composantes


connexes). Ces régions vérifiant un critère d’homogénéité (par exemple sur le niveau de gris ou sur
la texture, …). On cherche par ce traitement à obtenir une description l’images en régions, elle peut
être situe dans le cadre le plus général de la segmentation de données.

Le problème de base de la segmentation de données est le suivant :

On connait :

-un ensemble d’entités

-un ensemble d’attributs caractérisant ces entités

-des relations topologiques entre ces entités

-des attributs relationnels entre ces entités

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.

En général, la segmentation peut être définie comme un partitionnement en régions Ri


connexes. Suivant un prédicat P telle que :

I= Ri

i=

Ri est une région connexe

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 :

- leur aspect connexe

-leur couleur cohérente

-leurs contours

-leur texture

-des informations apriori

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...

b. La segmentation par seuillage

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.

➢ Détection automatique de seuil

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.

Figure 1.09 : Méthode OTSU seuil=136

Figure 1.10 : Méthode de OTSU 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.

Figure 1.11 : Seuillage par hystérésis


c. Segmentation par contours
De nombreux problèmes pratiques d'analyse d'image nécessitent une analyse préalable où il
faut découper l'image en régions homogènes séparées par des contours. En général les régions
homogènes sont des régions où l'intensité lumineuse varie lentement en fonction des coordonnées
spatiales. Les contours séparant ces régions sont des portions de l'image de faible largeur (largeur
de l'ordre d’un pixel) où les variations d'intensité sont importantes. Il existe une multitude de
méthodes pour détecter les contours, d’où une autre approche de segmentation des images est la
recherche des contours des régions. Les différentes méthodes de détection des contours utilisés sont
Sobel, Prewitt, Robert, Canny. Ces méthodes ont été proposées pour détecter des transitions dans
les images.
➢ Détections de contours
Le but de la détection de contours est de repérer les points d'une image numérique qui
correspondent à un changement brutal de l'intensité lumineuse. La détection des contours d'une
image réduit de manière significative la quantité de données et élimine les informations qu'on peut
juger moins pertinentes, tout en préservant les propriétés structurelles importantes de l’image.

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.

Figure 1.12 : Différentes formes de contours


La détection de contours dans notre cas permet de déterminer les limites d’objets pour la
segmentation, dont le but est la séparation des objets dans l’image.
➢ Détection de contours par méthode de Canny
Cet algorithme a été conçu pour être optimal suivant trois critères : - Bonne détection : faible
taux d'erreur dans la signalisation des contours - Bonne localisation : minimisation des distances
entre les contours détectes et les contours réels - Clarté de la réponse : une seule réponse par contour
et pas de faux positifs. La détection des contours par Canny se déroule en plusieurs étapes. Tout
d'abord il s'agit de réduire le bruit de l'image afin d'optimiser la détection des contours. Ceci permet
de réduire de fortes réponses lors du calcul du gradient, conduisant ainsi à de faux positifs. Un filtre
Gaussien est utilisé afin de " lisser " l'image originale et donc de réduire le bruit. Le filtre de Canny
est basé sur l’algorithme de Sobel, il dispose d’étapes supplémentaires qui permettent de travailler
sur des images plus complexes. Cette méthode permet, en changeant l’intensité de détection de
contour, d’éliminer les défauts de linéarisation et du bruit et en même temps d’avoir des contours
larges. La largeur est importante pour l’algorithme de localisation par corrélation qui suit cet
algorithme de détection de contour. Nous présentons dans ce qui suit les images obtenues par les
différentes valeurs de  avec un seuil = [3e-03 6e-02] ainsi la combinaison des deux valeurs pour
différencier la détection des contours.

18
Figure 1.13 : Filtre de Canny

Donc on remarque avec = 4 et un seuil = [0.005, 0.1] on obtient un contour fin


d. La transformé de Hough
La transformée de Hough est une technique de reconnaissance de formes inventée en 1962
par Paul Hough. Cette technique nous permet de reconnaître les lignes (droite), les cercles ou
n'importe quelle forme. L’application la plus simple permet d’identifier la présence de lignes dans
une image. Elle peut être très facilement étendue à la reconnaissance de cercle aux d’autres modèles
mathématiques simples. Il existe également une transformée généralisée de Hough. Le Principe est
le suivant. Par un point donné peut passer une infinité de droite y=a.x+b (ou r = x cosθ + y sinθ en
coordonnées polaires). Si l’on trace r en fonction de θ, on obtient une sinusoïde représentant
l’ensemble des droites de paramètre (r, θ) passant par ce point. C’est ce que l’on appelle « espace
de Hough ». Si l’on trace alors une autre sinusoïde par un autre point, l’intersection des deux
sinusoïdes donne la valeur de (r, θ) de la droite passant par ces deux points. On va donc chercher à
tracer pour l’ensemble des points chacune des sinusoïdes correspondantes dans l’espace de Hough.
On cherchera alors à savoir quels sont les lieux ou les courbes qui se croisent pour en déduire la

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.15 : Transformé de Hough, pic dominant

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

Figure 1.18 : Détections de contours entre Canny et Hough

21
Figure 1.19 : Transformée de Hough

Figure 1.20 : Résultat du traitement, distance de connexion 42

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.

Dans ce second chapitre, on va voir premièrement l’historique de l’intelligence artificielle


dont des faits seront cités. Puis deuxièmement, on va parler du « réseau de neurone ». Et enfin, on
entamera quelque notion dans le deep Learning et la machine Learning.

2.2 Historique de l’intelligence artificielle

2.2.1 Quelques étapes importantes dans l’histoire de l’IA :

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’intelligence artificielle est de concevoir des systèmes capables de reproduire le


comportement de l’humain dans ses activités de raisonnement. Le but de l’IA est de modéliser de
l’intelligence prise comme phénomène.

2.2.3 L’application de l’IA

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.

D’autres domaines, tels que l’industrie de l’Internet, la sécurité publique, le service à la


clientèle, l’éducation, la culture, le tourisme, le jeu, la logistique, les nouvelles énergies, la
pharmacie, la fabrication et la construction connaissent également des changements spectaculaires
grâce à la transformation digitale et à l’IA.

2.2.4 La méthode de l’IA

27
Figure 2.01 : Représentation de l’apprentissage de l’IA

Figure 2.02 : Trois types d’algorithmes d’apprentissage automatiques


L’apprentissage automatique est la méthode d’IA la plus célèbre, qui permet à un système ou
à un logiciel d’apprendre des connaissances à partir de données acquises. Comme le montre la figure
1, les réseaux neuronaux (RN) sont contenus dans l’apprentissage automatique (AA) et ils sont tous
contenus dans l’intelligence artificielle (IA). L’apprentissage automatique fait appel à des
connaissances telles que la théorie des probabilités, les statistiques, la théorie de l’approximation,
l’analyse convexe et de nombreux autres sujets pluridisciplinaires. L’approche "basée sur les
données" est l’idée centrale de l’apprentissage automatique qui permet aux algorithmes de faire des
prédictions et de prendre des décisions en fonction de l’analyse et de l’interprétation des données.
Pour l’instant, l’apprentissage automatique peut être divisé en trois catégories :

• 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.

• Apprentissage par performance

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.

Le réseau de neurones artificiels (RNA) est actuellement l’un des algorithmes


d’apprentissage supervisé les plus représentatifs.

2.2.5 Machine Learning

Le machine Learning est une technique d’apprentissage automatisé. C’est un ensemble de


techniques qui permettent à partir de données de faire apprendre automatiquement à un ordinateur
la solution. [2.02]

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.

-La Machine Learning a deux approches d’apprentissage :

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.

• Machine Learning supervisée

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.

• Machine Learning non supervisée

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.

Pour continuer avec l’analogie de l’enseignement scolaire, le machine learning non


supervisé s’apparente à un enfant qui apprend à identifier un fruit en observant des couleurs et des
motifs, plutôt qu’en mémorisant les noms avec l’aide d’un enseignant. L’enfant cherche des
similitudes entre les images et les sépare en groupes, en attribuant à chaque groupe sa propre
étiquette. Comme exemples d’algorithmes de machine learning non supervisé, on peut citer la mise
en cluster de k-moyennes, l’analyse de composants principaux et indépendants, et les règles
d’association.

-Le pouvoir de la prédiction

• Autre atout intéressant du machine learning consiste en ses capacités prédictives.


Auparavant, les décisions d’entreprise étaient souvent fondées sur des résultats historiques.
Aujourd’hui, le machine learning utilise des analyses enrichies pour prédire ce qui va se
passer. Les entreprises peuvent prendre des décisions prospectives et proactives au lieu de
s’appuyer sur des données antérieures.

• 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.

-potentiel du Machine Learning

• 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.

2.2.6 Deep Learning

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 Réseaux de neurones

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.

2.3.2 Le neurone biologique

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.

2.3.3 Ses atouts

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.

2.3.4 Le neurone virtuel

Un neurone en robotique est représenté sous cette forme :

Figure 2.05 : Le neurone virtuel


On voit le neurone (le cercle central) qui réalise l’intégration des signaux, des entrées notées
xn. A chaque entrée correspond un poids. Ce poids est utilisé dans le traitement de l’information ;
en effet, le neurone réalise la somme pondérée de toutes les entrées : N = x1 * w1 + x2 * w2 + … +
xn * wn.
Le neurone virtuel 78 On fait ensuite passer la valeur N à travers une fonction H. H peut être
une fonction de seuil, tel que H(N) peut prendre les valeurs 0 ou 1 par exemple, suivant les valeurs
de N, ou peut encore être une fonction plus compliquée, on peut considérer pour l’instant que la
fonction H est une fonction de seuil). Le neurone est l’unité de base des réseaux neuronaux, c’est
lui qui « réalise les calculs ». Mais seul, il est inutile. C’est pour cela qu’on associe plusieurs
neurones dans des réseaux de neurones.

2.3.5 Les réseaux

Un réseau de neurones est formé de la liaison de plusieurs neurones agencés en couches,


comme présenté sur cette figure :

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 ?

2.3.6 Réseau de neurone convolutif

L’apprentissage profond est un type de réseaux neuronaux composés de plusieurs couches


cachées qui permettent d’extraire les caractéristiques des données avec plusieurs degré
d’abstraction. Par exemple, les réseaux de neurones convolutionnels (CNN) prennent les pixels
d’une image de visage en entrée. Les couches du réseau extraient les caractéristiques de l’images,
en commençant par les caractéristiques globales (segment de courbe, bord orienté, couleur, forme
du visage) en allant jusqu’à des caractéristiques plus détaillées (œil, nez, bouches). Le réseau
retourne alors un score permettant d’identifier à qui appartient le visage. En général, plus le nombre

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]

2.3.7 Réseau de neurone linéaire

• 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.

Figure 2.07 : Le chiffre 3, 5 et 8


Il est facile pour nous, humains, de différencier ces trois chiffres, respectivement : trois, cinq
et huit. Cela semble évident car nous avons appris à analyser les informations que notre rétine envoie
à notre cerveau dès notre plus jeune âge, et nous pouvons même reconnaître des images bien plus
complexes comme par exemple des visages. Mais pour apprendre à un ordinateur à reconnaître des
images, il va nous falloir comprendre de manière plus approfondie ce qu’est réellement la
reconnaissance d’image. Prenons ces trois autres chiffres écrits à la main :

Figure 2.08 : Autre façon d’écrire 3, 5 et 8

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

Figure 2.09 : Filtre


Nous avons ici 10 filtres, un pour chaque chiffre, qui représentent là où devraient se trouver
les pixels les plus foncés de l’image (en rouge) et là où ils devraient être le plus clair possible (en
bleu), pour que l’image corresponde à tel ou tel chiffre. Par exemple pour le zéro, on constate qu’il
y a un cercle rouge rempli de bleu, ce qui signifie qu’il faut, pour qu’une image corresponde à un
zéro, que les pixels situés dans la périphérie soient noirs, et que ceux du centre soient blancs. Ces
10 filtres ci-dessus ont été calculés de manière à ce qu’ils différencient de la manière la plus exacte
possible les chiffres de 0 à 9.
Voici comment l’ordinateur va procéder pour définir à quel chiffre correspond une image :
il va appliquer chaque filtre l’un après l’autre sur notre image, et le filtre donnant le meilleur résultat
(celui pour lequel la partie rouge du filtre correspond le mieux aux pixels noirs de l’image)
correspondra en général au chiffre représenté sur l’image. Par exemple, si on applique chacun des
10 filtres à une image représentant un 3, ce sera probablement le filtre 3 qui donnera le meilleur
résultat. Le problème consiste donc à calculer le résultat de chaque filtre sur notre image. Imaginons

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 :

Pn représente un pixel de l’image et Fn pixel du filtre qui va multiplier ce pixel de l’image.


Pour éviter d’avoir à écrire ces longues additions il est également possible de mettre tous ces
nombres dans des matrices 𝑃 et 𝐹.

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]

Figure 2.10 : Un réseau de neurone

2.4 L’apprentissage

On a vu précédemment qu’un réseau était capable d’approximer n’importe quelle fonction,


pour peu qu’on lui mette les poids nécessaires aux neurones appropriés. Pour la plupart des fonctions

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.

Pourquoi dans ce troisième chapitre ? On va voir chaque aspect de méthode et modélisation


du projet. Alors en premier lieux, on va développer ce que c’est la méthode. Puis en second lieu, on
va mettre en évidence tous les outils de développement. Ensuite l’architecture et à la fin les étapes
de l’entrainement.

3.2 Méthode utilisée

3.2.1 Méthodologie

La méthodologie générale pour un projet de détection de la MRZ d'un passeport pourrait


inclure les étapes suivantes :

-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.

-Choix du modèle : Sélection d’un modèle d'apprentissage automatique adapté à la détection


d'objets, comme les réseaux de neurones convolutifs (CNN). Utilisation des architectures
prédéfinies, telles que YOLO (You Only Look Once) ou Faster R-CNN, ou création de modèle en
utilisant des bibliothèques telles que TensorFlow ou PyTorch.

-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.

-Validation et ajustement du modèle : Évaluation des performances du modèle en utilisant


l'ensemble de validation. Si les résultats ne sont pas satisfaisants, on ajuste les hyperparamètres du
modèle, tels que le taux d'apprentissage, la taille du lot, le nombre d'épochès, etc., pour améliorer
les performances.

-É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.

-Amélioration et itérations : Si les performances du modèle ne sont pas satisfaisantes, on peut


effectuer des itérations supplémentaires en ajustant le pipeline de prétraitement, en collectant plus
de données, en utilisant des techniques d'augmentation des données, en explorant différentes
architectures de modèle, etc.

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

La modélisation pour la détection de la MRZ d'un passeport implique de choisir une


architecture de réseau de neurones convolutifs (CNN) adaptée à la tâche de détection d'objets. Voici
une approche utilisée pour modéliser la détection de la MRZ :

-Choix de l'architecture : Il existe différentes architectures CNN populaires pour la détection


d'objets, telles que YOLO (You Only Look Once), Faster R-CNN, SSD (Single Shot MultiBox
Detector), etc. Chaque architecture a ses propres avantages et inconvénients en termes de précision,
vitesse d'exécution, complexité, etc. Il faut choisir une architecture qui convient aux projets et aux
contraintes spécifiques.

-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.

-Entraînement et ajustement des poids : Il est nécessaire d’entraîner le modèle en utilisant un


ensemble de données annotées, où chaque image est annotée avec les coordonnées de la MRZ. On
peut utiliser des techniques d'optimisation, telles que la descente de gradient stochastique (SGD) ou
l'optimisation d'Adam, pour ajuster les poids du modèle et minimiser la perte entre les prédictions
et les annotations.

-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.

3.3 Outils de développement

3.3.1 Les technologies

Ci-dessous un schéma synoptique des outils utilisés :

Figure 3.01 : Schemas synoptique des technologies utilisees

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

La transformation en langage machine se fait au moment de l'exécution du programme et


c’est un interpréteur qui traduit le programme, ligne par ligne. Comme pour les langages compilés,
il est nécessaire de disposer d'un interpréteur approprié pour chaque langage utilisé. Un programme
écrit en langage Python doit être traité par un interpréteur Python.

• 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

Langages Avantages Inconvénients

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.

Java Il est typé. Toutes les variables Il consomme beaucoup plus de


doivent être déclaré avec un type, le mémoire que le C++ et ses simulations
compilateur vérifie que les sont lentes. En plus, il n’est pas le
utilisations des variables sont langage le plus facile à apprendre.
compatibles avec leur type, il est
compilé, il est interprété

C C a l’avantage de permettre le Entre autres, le langage ne supporte pas


développement de logiciels pouvant la programmation orientée objet (c’est
fonctionner sur différentes pour cela que le langage C++ a été créé)
plateformes sans trop de et n’est pas très facile à apprendre
modifications. En plus, il est assez
simple et peut donc être intégré sur
presque n’importe quel
microprocesseur moderne.

48
3.3.2 IDE ou Interface

• Pycharm

PyCharm est un IDE ou Integrated Development Environment. C’est un logiciel permettant


d'intégrer dans une même fenêtre tous les éléments utiles à la programmation en python : un éditeur
de texte pour écrire des scripts, une console pour exécuter des programmes, ainsi qu'un explorateur
de fichiers pour parcourir le projet en cours. Pour utiliser PyCharm, il est nécessaire que Python soit
installé sur votre ordinateur.

Figure 3.02 : Une interface de 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

• Pourquoi Flask pas Django

Voici un tableau de comparaison entre flask et Django

Tableau 3.02 : Difference entre flask et Django

Framework Description Atouts

Flask Flask est un micro Framework open Il est léger.


source de développement Web avec
Son objectif c’est de maintenir le noyau simple
python, micro Framework parce qu’il
mais extensible.
est Leger. Flask est basé sur 2 modules
qui sont jinja2 et werkzeug. Ces
modules servent à fonctionner le serveur
de développement, simplifie l’écriture
des tests unitaires, moteur de Template
pour le rendu HTML, supporte les
cookies sécurisés (session), entièrement
compatible avec WSGI 1.0, se base sur
l'Unicode, documentation complète,
déploiement aisé sur plusieurs
hébergeurs, et l’ajout de fonctionnalités
via les extensions. From flask signifie
que « flask » est une package tandis que

50
Framework Description Atouts

Flask import Flask, le second « Flask » est une


classe.

App est une variable et « (__name__) »


est pour créer un Template.

If __name__== ‘’__main__’’ c’est pour


exécuter un fichier.

Les forces de Django :


Django C’est un cadre de développement web
open source en Python qui rend le • Les vues génériques

développement plus simple et rapide. Il s'agit de vues permettant de traiter les


Les grands sites publics fondes par cas les plus courants du développement
Django sont comme Pinterest et web de manière très simple. Elles
Instagram. permettent par exemple de lister des
objets avec une gestion de la pagination,
de lister des objets organisés par date
avec des URL du type
(année)/(mois)/(jour)/élément à
afficher.
Plus d'informations sont disponibles
dans la documentation sur les vues
génériques.

• Le système d’authenticité

• Création d’un page statique

• La documentation : Django
possède une très bonne
documentation anglaise.

51
Framework Description Atouts

• Les exceptions : les exceptions


Django
et backtraces Python sont bien
gérées dans Django et
apparaissent dans les pages
d'erreur 500, en mode débogage.
On peut avoir une bonne idée
des variables d'environnement et
du code ayant provoqué
l'exception. Des efforts sont
menés pour inclure d'autres

• Outils comme la barre de


débogage de Symfony (Django
Debug Toolbar).

-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.

3.3.3 Les librairies correspondantes

• 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

C’est un package Python composé d'objets de type tableau multidimensionnel et d'une


collection NumPy nous permettra de traiter des tableaux et d'effectuer des opérations liées à l'algèbre
linéaire.

• 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

La principale bibliothèque Open Source pour le développement et l'entraînement de modèles


de machine Learning. TensorFlow est une plate-forme Open Source dédiée à la machine Learning.
Elle propose un écosystème complet et flexible d'outils, de bibliothèques et de ressources
communautaires permettant aux chercheurs d'avancer dans le domaine du machine Learning, et aux
développeurs de créer et de déployer facilement des applications qui exploitent cette technologie,
aussi construisez et entraînez facilement des modèles de machine Learning à l'aide d'API intuitives
de haut niveau comme Keras, ce qui permet une itération immédiate des modèles et un débogage
facile.

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

Le schéma suivant représente un fonctionnement de reconnaissance de forme :

Figure 3.04 : Fonctionnement de systèmes de reconnaissance de formes

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

Le prétraitement consiste à sélectionner dans l’espace de représentation l’information


nécessaire au domaine d’application. Cette sélection passe souvent par l’élimination du bruit, la
normalisation des données, ainsi que par la suppression de la redondance

3.5.3 . Calcul des représentations

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

L’apprentissage ou entraînement, est une partie importante du système de reconnaissance.


Le classificateur étant généralement une fonction paramétrique, l’apprentissage va permettre
d’optimiser les paramètres du classificateur pour le problème à résoudre, en utilisant des données
d’entraînement. Lorsque les données d’entraînement sont préalablement classées, l’apprentissage
est dit supervisé, sinon il est non supervisé.

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

3.5.6 Le post traitement

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.

4.2 La détection de MRZ

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 :

-Prétraitement de l'image : On commence par prétraiter l'image du passeport en utilisant des


techniques telles que la normalisation des couleurs, le redimensionnement et l'amélioration du
contraste. Cela aidera à améliorer la qualité de l'image et facilitera la détection ultérieure de la
MRZ.

-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.

4.2.1 Schéma synoptique

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.

Le Schéma synoptique du projet montre les étapes :

Importer l’image

Traitement de
l’image

Authentification de l’image
avec les images entrainées

Comparaison avec les


image entrainées

Affichage

58
4.2.2 Organigramme

Dans le projet, chaque épate présente un organigramme

-L’organigramme de l‘authentification de la comparaison

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 1 : début du programme

Etape 2 : importation de l’image dans le fichier de l’ordinateur, nommée Im

Etape 3 : traiter l’image, puis le renommer Ime

Etape 4 : prendre le réseau de neurone qui est Rne

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

Etape 6 : fin du programme

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 :

Etape 1 : qui est le début du programme

L’étape 2 : chargement de l’image

Etape 3 : authentification avec celle du MRZ de réseau de neurone

Etape 4 : si oui dans c’est un passeport si non c’est un autre document

Etape 5 : fin du programme


DEBUT

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

4.3.1 Les données

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.

4.3.2 Les données à entrainer

Pour entraîner un modèle de reconnaissance de la zone de lecture de machine (MRZ) d'un


passeport à partir d'une photo de passeport, on a besoin d'un ensemble de données étiqueté contenant
des images de passeports avec les zones MRZ annotées.
-Dans le code de l’entrainement, les bibliothèques suivantes sont toutes nécessaires.

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

-Ensuite charger les images à entrainer à partir du répertoire

-définir le modèle

model = tf.keras.Sequential()
-Mettre les couches de convolutions et pooling, puis connecter les couches.

-Et pour finir compiler le modèle avant de l’entrainer.

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'

4.4 Les configurations

4.4.1 Les extensions et bibliothèques

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.

Dans le projet les extensions nécessaires sont :

-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.

-Numpy : pour traiter les données

-Matplotlib : est une bibliothèque de visualisation

-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

4.4.2 L’intégration de réseaux de neurone

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.

4.5 L’application Web DetectApp

4.5.1 La charte graphique

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.

Figure 4.01 : Logo de DetectApp

• Les couleurs

Couleur primaire : dorée et noire

Couleur secondaire : beige et marron

• Police

Font-family : Papyrus

• La fonctionnalité

Elle représente une page d’accueil, dont le logo y fait partie.

4.5.2 Le structure du fichier

L’arborescent du fichier est constitué de :

- Fichiers .py contenant les programmes python comme le programme du réseau de neurone, …

- Fichiers .html rassemblant les codes HTML de l’application

64
- Fichiers .css, .js pour la customisation de l’application en utilisant Bootstrap

- Fichiers .jpg, .png qui contiennent les images de l’application

Les interfaces sont réalisées à l’aide du mélange du langage python, HTML et du Bootstrap.

Figure 4.02 : L’arborescent du fichier

4.5.3 La représentation de l’interface d’accueil

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

4.5.4 La représentation de l’interface du traitement

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

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

4.5.5 La représentation de l’interface d’authentification

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

4.5.6 Le réseau de neurone convolutif

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

Annexe 1 : Les deux parties d’un passeport

La partie supérieure c’est la zone d’inspection visuelle et la seconde partie est la zone lisible par
machine

Annexe 2 : Detection de MRZ d’un passeport

import cv2

import pytesseract from pytesseract

import Output

img = cv2.imread('sary4mrz.jpg')

i=0

pytesseract.pytesseract.tesseract_cmd = 'C:/Program Files/Tesseract-OCR/tesseract.exe'

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.

Annexe 3 : Exemple de classification

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

def getIMC(self) -> object:


return self.weight / (self.height * self.height)

KB9 = Person(hair_color='noir', eye_color='noir', height=1.81, weight=81)


type(KB9)

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.02] https://www.investglass.com/fr/which-information-does-the-passport-include/ (05 Juin


2023)

[1.03] https://www.idemia.com/fr/perspective/un-passeport-moderne-pour-une-vie-moderne
(06 Juin 2023)

[1.04] https://www.larousse.fr/dictionnaires/francais/image/41604 (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.01] Bellman, “Cours IA”, page 03 a page 05, édition

[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

Prénoms : Hanitsoa Anthonie

Adresse de l’auteur : Lot 0708F67 Ambohimena

Téléphone : 034 53 302 69

E-mail : anthoniehanitsoa@gmail.com

Titre du mémoire : ASSISTANCE D’UNE INTELLIGENCE ARTIFICIELLE DANS UNE


DETECTION DE ZONE LISIBLE D’UN PASSEPORT

Nombre de pages : 92

Nombre de tableaux : 02

Nombre de figures : 38

Encadreur pédagogique : RAJAONARIVELO Jean André, Enseignant Chercheur

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.

ABSTRACT AND KEYS WORDS

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.

Vous aimerez peut-être aussi