Вы находитесь на странице: 1из 70

REPUBLIQUE TUNISIENNE

MINISTERE DE L’ENSEIGNEMENT SUPERIEUR


ET DE LA RECHERCHE SCIENTIFIQUE
UNIVERSITE TUNIS EL MANAR

FACULTE DES SCIENCES DE TUNIS


DEPARTEMENT DES SCIENCES DE L'INFORMATIQUE

RAPPORT
De Projet de Fin d’Etudes

SUJET
Augmentation d’une base d’apprentissage
Pour le Deep Learning

Présenté par :
Gouadria Oumaima

Encadré par :

Mme Doggaz Narjes

Organisme d’accueil : ADDIXO

Année Universitaire 2019-2020


Remerciements
Je tiens à exprimer toute ma reconnaissance à mon encadrante Madame Narjes Doggaz. Je
la remercie de m’avoir encadré, orienté, aidé et conseillé.
J’adresse mes sincères remerciements à tous les professeurs et les jurys, et toutes les
personnes qui par leurs paroles, leurs écrits, leurs conseils et leurs critiques ont guidé mes
réflexions et ont accepté à me rencontrer et répondre à mes questions.
Je remercie ma très chère Maman, Mabrouka qui a toujours été là pour moi, « Vous avez tout
sacrifié pour votre fille n’épargnant ni santé ni efforts. Vous m’avez donné un magnifique
modèle de labeur et de persévérance. Je suis redevable d’une éducation dont je suis fière ».
Table des matières

Introduction Générale.................................................................................................................1
Chapitre 1 : Présentation générale et état de l’art.......................................................................3
1.1. Introduction.................................................................................................................3
1.2. Présentation de l’ADDIXO.......................................................................................3
1.3. Problématique.............................................................................................................3
1.4. Deep Learning.............................................................................................................4
1.5. Etat de l’art..................................................................................................................6
1.5.1. Opérateurs d’augmentation.......................................................................................6
1.5.2. Les réseaux génératifs adversaires GAN................................................................14
1.6. Conclusion................................................................................................................16
Chapitre 2 : Implémentation.....................................................................................................17
2.1. Introduction....................................................................................................................17
2.2. Choix des technologies..................................................................................................17
2.2.1. Python  .................................................................................................................17
2.2.2. Tensorflow ............................................................................................................17
2.2.3. Keras ...................................................................................................................18
2.2.4. Pandas .................................................................................................................18
2.2.5. Numpy .................................................................................................................18
2.2.6. Scikit-Learn ..........................................................................................................18
2.2.7. Matplotlib ..............................................................................................................18
2.2.8. Scipy ...................................................................................................................18
2.2.9. Open CV .............................................................................................................19
2.2.10. Django ................................................................................................................19
2.3. Présentation de la base d’apprentissage.........................................................................19
2.4. Augmentation par les opérateurs de transformation d’images......................................20
2.4.1. Rotation...................................................................................................................20
2.4.2. Injection du bruit Speckle Noise............................................................................21
2.4.3. Injection du bruit poivre et sel (Salt and Pepper Noise)........................................21
2.4.4. Injection de bruit Gaussien (Gaussian Noise).........................................................22
2.4.5. Shadow (ombre)......................................................................................................22
2.4.6. Shade color..............................................................................................................23
2.4.7. Enhancement (Renforcement)................................................................................23
2.4.8. Blur (Flou)..............................................................................................................25
2.5. SRGAN (Super Résolution GAN).................................................................................27
2.6. Interface graphique :......................................................................................................28
2.7. Conclusion.....................................................................................................................29
Chapitre 3 : Test et évaluation..................................................................................................30
3.1. Introduction....................................................................................................................30
3.2. Les réseaux de neurones convolutionnels CNN............................................................30
3.3. Notre modèle CNN........................................................................................................31
3.4. Résultats de notre CNN pour la base d’ADDIXO.......................................................32
3.5. Résultats de notre CNN pour la nouvelle base d’apprentissage....................................34
3.6. Conclusion.....................................................................................................................38
Conclusion Générale et Perspectives........................................................................................39
Bibliographie.............................................................................................................................41
Liste des figures

Figure 1 : Mécanisme de fonctionnement des réseaux de neurones ..........................................5


Figure 2 : Rotation d’un point.....................................................................................................6
Figure 3: Rotation d’une image .................................................................................................7
Figure4 : Flip d’une image .........................................................................................................7
Figure5 : Translation d’une image .............................................................................................8
Figure 6 : Specle Noise...............................................................................................................9
Figure7 : Bruit poivre et sel d’une image.................................................................................10
Figure8 : Bruit Gaussian d’une image .....................................................................................10
Figure 9 : Ombre d’une image..................................................................................................11
Figure 10 : Shade color d’une image .......................................................................................11
Figue 11: Zoom ........................................................................................................................12
Figure12 : Contraste d’une image ............................................................................................12
Figure13 : Brillance .................................................................................................................13
Figure 14 : Image avec Sharpening..........................................................................................13
Figure 16 : Random erasing .....................................................................................................14
Figure 17 : Architecture des méthodes GAN............................................................................15
Figure 18 : Image initiale..........................................................................................................20
Figure 19: Rotation avec angle a=60°.......................................................................................21
Figure 20: Effet du Speckle noise.............................................................................................21
Figure 21 : Image avec bruit poivre et sel.................................................................................22
Figure 22: Effet de l’opérateur bruit gaussien.........................................................................22
Figure 23. : Effet de l’opérateur shadow (ombre).....................................................................23
Figure 24 : Effet d’opérateur Shade color avec 2 couleurs différents......................................23
Figure 25: Effet du contraste....................................................................................................24
Figure 26 : Effet du Brillance...................................................................................................24
Figure 27 : Effet du sharpness..................................................................................................24
Figure 28 : Effet du flou............................................................................................................25
Figure 29[1] : Architecture du générateur et du discriminateur...............................................27
Figure30 : Différence entre image de faible résolution et super résolution..............................28
Figure 31 : L’interface web.......................................................................................................29
Figure32 : Architecture d’un CNN ..........................................................................................30
Figure 33 : Visualisation de la pression et de la perte pour la base de données originale........34
Figure 34 : Visualisation de la pression et de la perte pour la nouvelle base l’agrandissement
...................................................................................................................................................37
Liste des tableaux

Tableau 1 : Tableau récapitulatif des opérateurs utilisés..........................................................26


Tableau 2: Résultat de CNN pour la base d’apprentissage avant d’agrandissement...............33
Tableau 3: Résultat de CNN pour la nouvelle base d’apprentissage......................................36
Tableau 4: Résultat du CNN....................................................................................................37

Liste des annexes

Annexe 1...................................................................................................................................43
Introduction Générale

Le contrôle qualité est une tâche importante dans le processus d’un système de production. Il
vise à vérifier que le produit correspond bien au cahier des charges initial et respecte bien
certaines normes techniques. C’est un élément clé du processus de création de valeur pour
l’entreprise.

Les techniques d’intelligence artificielle (IA) et plus particulièrement les techniques


d’apprentissage profond (Deep Learning) ont été appliquées avec succès dans différents
domaines et notamment le contrôle qualité.

L’entreprise ADDIXO cherche à développer un système intelligent de contrôle qualité


permettant la détection des pièces défectueuses. Pour ce faire, des méthodes d’apprentissage
et plus particulièrement du Deep Learning seront utilisées. Une des phases cruciales de
l’apprentissage est la phase d’apprentissage du modèle et le choix de la base d’apprentissage.

L’objectif de la phase d’apprentissage est d’utiliser les données disponibles pour identifier des
règles de décision permettant de prédire le résultat à propos de données futures. Dans notre
cas les données disponibles sont les pièces défectueuses et les pièces non défectueuses. Afin
de tirer profit de Deep Learning, il est nécessaire de disposer d’une grande base de données
d’apprentissage (Dataset). Or, généralement dans le domaine du contrôle qualité, nous ne
disposons que d’une base limitée d’échantillons. Pour pallier cet inconvénient, il est donc
nécessaire d’agrandir la base d’apprentissage et de créer de nouvelles données
d’apprentissage.

C’est dans le cadre que se suite notre projet de fin d’études. L’objectif de ce travail consiste à
augmenter la taille de la base d’apprentissage initiale en générant de nouvelles images. Pour
ce faire, des transformations mathématiques seront effectuées sur les images originales de la
base d’apprentissage client. Ces transformations seront effectuées entre autres par le biais de
certains opérateurs de traitement d’images.

Notre projet consiste donc à augmenter la taille de la base d’apprentissage initiale en générant
de nouvelles images par le biais de filtres et d’opérateurs géométriques. La base
d’apprentissage fournie par ADDIXO est une base relative au domaine du contrôle qualité

1
Elle est composée d’un ensemble de pièces non défectueuses et des pièces non défectueuses
Le but étant d’apprendre si une pièce contient des défauts de fabrication ou non.

Notre rapport est décomposé en trois chapitres. Dans le premier chapitre, nous présentons le
contexte de notre travail. Nous commençons par présenter la société d’accueil ainsi que la
problématique. Ensuite, nous donnons les notions de base du Deep Learning. Enfin nous
présentons quelques techniques utilisées dans la littérature, pour l’agrandissement des bases
d’apprentissages.

Nous détaillons dans le second chapitre l’implémentation des différents opérateurs utilisés, la
méthode SRGAN ainsi que l’interface graphique développée.

Dans le troisième chapitre intitulé ’’Tests et évaluations’’, nous présentons les résultats
obtenus suite à l’agrandissement de la base d’apprentissage. Ensuite, nous analysons et
évaluons les résultats obtenus.

Enfin nous présentons la conclusion générale ainsi que les perspectives de notre travail.

2
Chapitre 1 : Présentation générale et état de l’art

1.1. Introduction

Nous commençons par présenter la société d’accueil, à savoir la société ADDIXO. Ensuite,
nous expliquons notre problématique qui consiste à agrandir une base d’apprentissage dans le
but d’avoir de bonnes performances pour un apprentissage par le Deep Learning. Enfin, nous
terminons par un état de l’art sur les méthodes d’augmentation de base d’apprentissage.

1.2. Présentation de l’ADDIXO

ADDIXO [3] est une entreprise de développement des machines industrielles, spécialisée
dans l’ingénierie des solutions multi-techniques à forte valeur ajoutée pour l'industrie 4.0.

ADDIXO met en œuvre son savoir-faire dans l'ingénierie mécanique, automatique, et


informatique embarqué et applicative avec ses propres produits pour fournir à ses clients
industriels :

 Des équipements de production et de tests à très fort contenu technologique (Smart


Equipements).

 Des solutions de digitalisation de l’usine (Smart Factory).

ADDIXO aide ses clients, confrontés à une accélération des innovations et des
transformations technologiques, en l’accompagnant de leurs projets d’ingénierie grâce à son
savoir-faire dans la gestion des projets R&D et à ses ressources compétitives de haute qualité.

1.3. Problématique

Le contrôle qualité est une tâche importante dans le processus d’un système de production. Il
vise à vérifier qu’un produit correspond bien au cahier des charges initial et respecte bien
certaines normes techniques. C’est un élément clé du processus de création de valeur pour
l’entreprise. 

3
Les techniques d’intelligence artificielle (IA) et plus particulièrement les techniques
d’apprentissage profond (Deep Learning) ont été appliquées avec succès dans différents
domaines et notamment le contrôle qualité. 
L’entreprise ADDIXO cherche à développer un système intelligent de contrôle qualité
permettant la détection des pièces défectueuses. Pour ce faire, des méthodes d’apprentissage
et plus particulièrement de Deep Learning seront utilisées. 
L’objectif de la phase d’apprentissage est d’utiliser les données disponibles pour identifier des
règles de décision permettant de prédire le résultat à propos de données futures. Dans le cadre
de notre projet, les données disponibles sont les pièces défectueuses et les pièces non
défectueuses. Afin de tirer profit du Deep Learning, il est nécessaire de disposer d’une grande
base de données d’apprentissage (Dataset). Or, généralement, dans le domaine du contrôle
qualité, nous ne disposons que d’une base limitée d’échantillons. Pour pallier cet
inconvénient, il est donc nécessaire d’agrandir la base d’apprentissage et de créer de nouvelles
données d’apprentissage. 

C’est dans ce cadre que se situe notre projet de fin d’études. L’objectif de ce travail consiste à
augmenter la taille de la base d’apprentissage initiale en générant de nouvelles images. Pour
ce faire, des transformations mathématiques seront effectuées sur les images originales de la
base d’apprentissage client. Ces transformations seront effectuées entre autres par le biais de
certains opérateurs de traitement d’images.

1.4. Deep Learning

Le deep Learning ou apprentissage profond est un type d'intelligence artificielle dérivé de


la machine Learning (apprentissage automatique) où la machine est capable d'apprendre par
elle-même, contrairement à la programmation où elle se contente d'exécuter à la lettre des
règles prédéterminées. [5]
Comment fonctionne le deep Learning ?
Le deep Learning s'appuie sur les réseaux de neurones artificiels ou Neural Network. C’est un
système informatique qui s’inspire du fonctionnement du cerveau humain. Cette technologie
d’intelligence artificielle ou d’apprentissage profond se développe à une grande vitesse, et ses
cas d’usage se multiplient dans tous les secteurs. Selon les experts, l’IA est amenée à
bouleverser tous les aspects de notre société dans les années à venir.

4
Un réseau de neurones artificiels est un système informatique matériel ou logiciel dont le
fonctionnement est équivalent à celui des neurones du cerveau humain.[7]

Figure 1 : Mécanisme de fonctionnement des réseaux de neurones [7]

Un réseau de neurones repose sur un grand nombre de processeurs travaillant en parallèle et


organisés en couches. La première couche reçoit les entrées d’informations brutes, un peu
comme les nerfs optiques de l’être humain lorsqu’il traite des signaux visuels. Puis chaque
couche reçoit les sorties d’informations de la couche précédente .La dernière couche produit
les résultats du système.
Applications du deep Learning

 La Reconnaissance et classification d'image


 La traduction automatique
 La recommandation personnalisée
 L’identification de pièces défectueuses
 Les chatbots
 L’exploration spatiale
 Les robots intelligents
 Le diagnostic médical
 La prédiction financière et trading automatisé
5
 La modération automatique des réseaux sociaux
 Les voitures autonomes
 La détection de malwares ou de fraudes [5]

1.5. Etat de l’art

Avoir un grand ensemble de données est crucial pour les performances du modèle
d'apprentissage en profondeur. Cependant, nous pouvons améliorer les performances du
modèle en augmentant les données.

C’est une technique pour créer artificiellement de nouvelles données d'entraînement à partir
des données d'entraînement existantes.

L'augmentation des données images est peut-être le type d'augmentation de données le plus
connu et implique la création de versions transformées d'images dans l'ensemble de données
d'apprentissage qui appartiennent à la même classe que l'image d'origine.
Les transformations comprennent une gamme d'opérations du domaine de la manipulation
d'images, telles que les opérateurs de décalages, de retournements, et bien plus encore.

Dans cette partie on va identifier tous les opérateurs et les méthodes d’agrandissement des
bases d’images.

1.5.1. Opérateurs d’augmentation

Plusieurs opérateurs d’augmentation existent dans la littérature. Ces opérateurs sont des
opérateurs mathématiques qui permettent de porter des transformations sur l’image.
La rotation
Une rotation est une isométrie qui permet de tourner les images autour d’un point et d’un
certain angle. [10]

Figure 2 : Rotation d’un point[10]

6
La rotation illustrée par la figure2 est notée R (O, a) où O est le centre et ‘a’ l’angle. Le
centre de rotation est un point invariant. Il existe deux sens de rotation possibles :
Le sens des aiguilles d’une montre et le sens contraire aux aiguilles d’une montre. Dans le cas
du sens des aiguilles d'une montre : dans ce cas l'angle est négatif. Il varie de 0 à -360°.
Le sens contraire des aiguilles d'une montre : est le sens trigonométrique. Dans ce sens l'angle
de rotation est positif et varie de 0 à 360°.
Des valeurs particulières de l'angle de rotation conduisent à des situations très particulières.
Ainsi une rotation d’angle égal à 0°, 360° ou -360° fait correspondre chaque point d'une
image à lui-même. [10]

Figure 3: Rotation d’une image [9]

Le retournement (flip)
Les retournements (flips) sont aussi des rotations avec des angles particuliers. Si l’angle de
rotation est égal à 180° ou -180° on parle de flip vertical. Si l’angle de rotation est égal à 90°
ou -90° c’est un flip horizontal.

Figure4 : Flip d’une image [9]

7
La translation
La translation permet de glisser l’image. Soit un point de coordonnées (x, y). Si (x, y) subit
une translation (a, b), sa nouvelle position (x’, y’) vérifie :
 x’=x+a
 y’=y+b

Figure5 : Translation d’une image [9]

Bruit (Noise)
Généralement il est souhaitable que la luminosité de l'image soit uniforme, sauf lorsqu’elle
change pour former une image. Il existe alors des facteurs qui tendent à produire une
Variation de la luminosité d'une image affichée même en l'absence de détail d’image. Cette
variation est généralement aléatoire et n'a pas de schéma particulier. Dans de nombreux cas, il
réduit la qualité de l’image. Il est particulièrement important lorsque les images contiennent
des objets très petits et présentent un contraste relativement faible. Cette variation aléatoire de
la luminosité de l'image est appelée « Bruit ». La présence de bruit donne à une image un
aspect marbré, granuleux, texturé ou neigeux.

Également il est possible de traiter des détails de scène non pertinents comme s'il s'agissait de
bruit d'image (par exemple, des textures de réflexion de surface). Les caractéristiques du bruit
dépendent de sa source, comme l'opérateur qui réduit le mieux ses effets.
De nombreux packages de traitement d'image contiennent des opérateurs pour ajouter
artificiellement du bruit à une image. La corruption délibérée d'une image avec du bruit nous

8
permet de tester la résistance d'un opérateur de traitement d'image au bruit et d'évaluer les
performances de divers filtres de bruit.

Speckle Noise (Bruit de chatoiement ou de taches)

Specle noise ou bruit de chatoiement est l’apparition des pixels clairs et sombres. Ce type de
bruit est couramment observé dans le radar (micro-ondes ou millimètre, Systèmes de
détection des ondes) bien qu’elle puisse apparaître dans tout type d’image détectée utilisant un
rayonnement cohérent.

Figure 6 : Specle Noise

Salt and Pepper Noise (Bruit poivre et sel)

Salt and Pepper Noise ou bruit poivre et sel, apparait sous la forme de points blancs et noirs
réparties aléatoirement sur l’image. Beaucoup de facteurs peuvent causer ce type de bruit
comme les capteurs comportant des pixels défectueux, ou lors de la transmission de l’image
ou la conversion analogique numérique.

9
Figure7 : Bruit poivre et sel d’une image

Gaussian Noise (Bruit Gaussien)


Le bruit gaussien est un bruit statistique ayant une fonction de densité de probabilité égale à la
distribution normale, également connue sous le nom de distribution gaussienne. Une fonction
gaussienne aléatoire est ajoutée à la fonction Image pour générer ce bruit.

Figure8 : Bruit Gaussian d’une image [9]

Shadow (ombre)
L'opérateur "shadow" représente un flou très complexe et une nouvelle coloration de la forme
de transparence de l'image donnée. Cet opérateur prendra une image normale et la convertira
en une image d’ombre.

10
Figure 9 : Ombre d’une image

Shade color
Généralement les ombres sont toujours noires comme l’effet de l’opérateur shadow par des
objets opaques. Si un objet Translucide est sélectionné, les ombres prennent la couleur de
l'objet qui les projette.

Figure 10 : Shade color d’une image [12]

Zoom
Zoom signifie agrandir une image dans un sens où les détails de l'image sont devenus plus
visibles et clairs.

11
Figue 11: Zoom [11]

Contraste
L’amélioration de contraste est l’amélioration de la perceptibilité des objets. Cet opérateur
améliore la différence de luminosité entre les objets et leurs arrière-plans. Les améliorations
de contraste sont généralement effectuées sous la forme d'un étirement de contraste suivi
d’une amélioration tonale, bien que celles-ci puissent être réalisées en une seule étape.
Les améliorations tonales améliorent la luminosité dans les zones d'ombre (sombre), de tons
moyens (gris) ou de surbrillance (clair).
Si le contraste est élevé alors les noirs sont trop noirs et les blancs trop blancs. Au contraire si
le contraste est très faible les pixels sont une nuance de gris moyen.

Figure12 : Contraste d’une image [11]

Brillance (Brightness)
L'augmentation de la luminosité rend chaque pixel de l'image plus clair. Inversement, une
diminution de la luminosité rend chaque pixel de l'image plus sombre. Cette modification peut
améliorer la visibilité des zones excessivement sombres ou claires de l'image, mais sature
l'image si elles sont prises trop loin.

12
Figure13 : Brillance [11]

Sharpness
Le principe de cet opérateur est d'assombrir les pixels sombres et éclaircir les pixels clairs.
Ainsi, les contours, les détails et le bruit sont renforcés et les zones uniformes sont
inchangées.[8]

Figure 14 : Image avec Sharpening

Flou (Blur)

Une autre source de perturbation des images est le flou. Les filtres de flou consistent à
modifier la valeur du pixel pour qu'elle se rapproche de celle des pixels voisins. Les
différences entre pixels voisins sont donc réduites. Le bruit, les contours et les détails sont
atténués et l'image est "lissée".[8]

13
Figure 15 : image flou [13]

Random erasing

Random erasing ou effacement aléatoire il permet d’effacer aléatoirement à chaque fois une
zone de l’image. Il sélectionne au hasard une partie rectangulaire et efface les pixels de cette
partie.

Figure 16 : Random erasing [14]

1.5.2. Les réseaux génératifs adversaires GAN

Les Réseaux Génératifs Adversaires (GAN) ont eu un énorme succès depuis qu'ils ont été
introduits en 2014 par Ian J. Goodfellow. Ce sont des classes d’algorithme d’apprentissage
non supervisé qui génèrent des images avec un fort degré de réalisme.

14
Que sont donc les réseaux génératifs adversaires ?

Les GANs sont des modèles dits génératifs qui sont différents des techniques
traditionnelles d’analyse de données comme la classification. Alors que cette technique
vise à apprendre à discriminer les données issues de différentes classes, les algorithmes
génératifs visent à faire le contraire : les méthodes GAN cherchent à générer des données
qui lui seraient associées.
Concrètement, l’architecture d’un GAN est composée de deux réseaux de neurones, mis en
compétition. Le premier appelé le générateur, crée un échantillon de données. Le deuxième
réseau, c’est le discriminateur, tente de détecter si cet échantillon est original ou s’il s’agit
d’un résultat du générateur. [4]

Le générateur apprend à générer des données plausibles. Les instances ou les images générées
deviennent des exemples d'entraînement négatifs pour son adversaire le discriminateur.
Le discriminateur apprend à distinguer les fausses données du générateur des vraies données.
Le discriminateur pénalise le générateur pour produire des résultats imaginables.
Lorsque l'entraînement commence, le générateur produit évidemment de fausses données et le
discriminateur apprend rapidement à dire que c'est faux. [4]
Le générateur et le discriminateur sont tous deux des réseaux de neurones. La sortie du
générateur est connectée directement à l'entrée du discriminateur.
Les GAN peuvent avoir de multiples cas d’usage. Il est possible de s’en servir pour imiter du
contenu multimédia, des textes ou encore des discours. [16].
De manière générale, la principale utilité d’un GAN est de créer des données à partir de rien
[20].

15
Figure 17 : Architecture des méthodes GAN [6]

Il existe plusieurs méthodes GAN pour le traitement d'images dont nous citons à titre
d'exemples CycleGAN, Super Résolution GAN (SRGAN), Stacked GAN (SGAN), …

1.6. Conclusion

Nous avons commencé par présenter, dans ce chapitre, le contexte de notre travail. Ensuite,
nous avons présenté quelques opérateurs de transformation d'images utilisés dans
l'augmentation des bases d'images.
Enfin, nous avons présenté GAN (Generative Adversarial Network) qui est un outil
relativement nouveau et puissant pour effectuer la génération non supervisée de nouvelles
images.

16
Chapitre 2 : Implémentation

2.1. Introduction

Le choix des techniques spécifiques et des opérateurs d'augmentation des données utilisées
pour un ensemble de données d'apprentissage doit être choisi dans le cadre de contrôle
qualité.

Nous commençons dans ce chapitre par présenter les choix technologiques effectués. Ensuite,
nous présentons les caractéristiques de la base d’apprentissage d’ADDIXO, les opérateurs
d’augmentation et la méthode SRGAN utilisée Enfin, nous présentons l’interface graphique
que nous avons développé afin de faciliter la manipulation de nos données.

2.2. Choix des technologies

Toutes les parties ce projet sont implémentées en python

2.2.1. Python 

Python est un langage de programmation orienté objet. Sa force majeure est qu’il propose des
milliers de modules qui nous permettent de gagner un temps précieux durant le d
´développement de nos applications.

Python dispose de quelques librairies spécialisées pour l’IA comme Numpy et Pandas.
Concernant le domaine de l'apprentissage automatique et l’apprentissage en profondeur,
Python offre une pléthore de librairies de très grande qualité.

2.2.2. Tensorflow

Tensorflow est une bibliothèque open source d’apprentissage automatique développé par
Google en 2015 et en évolution jusqu’à ce jour-là. L’apprentissage en profondeur
spécialement les réseaux de neurones sont implémentés avec cette bibliothèque.

17
2.2.3. Keras

Keras [20] est une API python d’apprentissage en profondeur interfaciable avec Tensorflow,
CNTK et Theano permet l’expérimentation rapide. Il Permet le prototypage rapide et facile. Il
supporte à la fois les réseaux convolutifs (CNN) et les réseaux récurrents ainsi que la
combinaison des deux comme dans le cas des GANs.

2.2.4. Pandas

Pandas est une bibliothèque python open source permettant l’analyse et la manipulation des
donnée. Elle est rapide, puissante, flexible et facile à utiliser.

2.2.5. Numpy

Numpy est une bibliothèque python qui permet d’effectuer des calculs numériques.

2.2.6. Scikit-Learn

Scikit-Learn est une bibliothèque open source pour l’analyse des données écrite en python.
Elle contient un grand nombre d’implémentations pour beaucoup d’algorithme d’IA. Elle est
basée sur d’autre bibliothèque python comme Pandas et Numpy.

2.2.7. Matplotlib

Matplotlib est une bibliothèque python permettant de tracer et visualiser des données sous
formes de graphiques. C’est une librairie puissante et compatible avec beaucoup de
plateforme.

18
2.2.8. Scipy

Scipy est une bibliothèque Python open source permet le calcul scientifique et technique, elle
contient des modules d’optimisation, d’intégration et d’algèbre linière et de traitement
d’image.

2.2.9. Open CV

Open CV est une bibliothèque python open source qui permet le traitement d’image en temps
réel.

2.2.10. Django

Django est un Framework Python de développement web de haut niveau. Il encourage le


développement rapide et propre. Il est gratuit, open source, sécurisé et maintenable. Il prend
en charge la plupart des taches du développement web, on peut alors concentrer sur l'écriture
de page ou application web.

Nous avons utilisé Django pour développer une interface qui nous permet de manipuler
facilement notre Base d'apprentissage et de pouvoir changer d'une manière conviviale les
paramètres des différents opérateurs utilisés pour l'agrandissement de la base. Nous avons
utilisé Django pour développer une interface qui nous permet de manipuler facilement notre
Base d'apprentissage et de pouvoir changer d'une manière conviviale les paramètres des
différents opérateurs utilisés pour l'agrandissement de la base.

2.3. Présentation de la base d’apprentissage

ADDIXO nous a fourni une base d’apprentissage de 172 images représentants des
composants de pièces automobiles. La base est composée de 104 images défectueuses et 68
images de pièces non défectueuses. Les images sont des images couleur de taille 640*480.

Il est à noter que la taille de cette base est très réduite. En effet, pour que les réseaux de
neurones profonds soient efficaces, ils résistent une énorme quantité de données. D’où
l'intérêt de l'agrandissement de la base d'apprentissage.

19
Nous notons que les images d’ADDIXO sont confidentielles. C’est pourquoi, nous avons
utilisés d’autres images tout le long de ce rapport.

2.4. Augmentation par les opérateurs de transformation d’images

Les transformations traditionnelles consistent à utiliser une combinaison de transformations


affines pour manipuler les données d'apprentissage. Pour chaque image d'entrée, nous
générons une ou plusieurs images "dupliquées" qui sont pivotées, retournées, ombrées, ...

Nous présentons dans ce qui suit les opérateurs de transformation que nous avons utilisé pour
agrandir notre base d'apprentissage.

Il est intéressant de noter que nous devons choisir les opérateurs dans le cadre du contrôle
qualité. Par conséquent, nous avons utilisé les opérateurs qui ne suppriment et n’altère aucune
partie de l’image originale pour garantir une classification correcte. Ainsi, les opérateurs tels
que la translation le zoom et Random erasing.

2.4.1. Rotation

Nous avons appliqué, sur notre base, l’opérateur rotation avec un angle égale à 60° (Figure
19). Cet opérateur génère une image avec une rotation de 60° pour chaque image de la base
d’apprentissage.

Figure 18 : Image initiale

20
Figure 19: Rotation avec angle a=60°

2.4.2. Injection du bruit Speckle Noise

Nous avons appliqué, sur notre base, l’opérateur specle noise. Nous avons fait varier la
quantité de Specle Noise entre 0.001 et 0,1 en générant 10 images avec des quantités de bruit
différentes. La figure 19 illustre l’effet de cet opérateur.

Ainsi, nous avons pu multiplier la taille de notre base initiale par 10

Figure 20 : Effet du Speckle noise

2.4.3. Injection du Bruit poivre et sel (Salt and Pepper Noise)


Nous avons appliqué, sur notre base, l’opérateur bruit poivre et sel (figure 21). Nous avons
fait varier la quantité de Salt and Pepper Noise entre 0,1 et 0.3 en générant 10 images avec des
quantités de bruit différentes.

Ainsi, nous avons pu multiplier la taille de notre base initiale par 10

21
Figure 21 : Image avec bruit poivre et sel

2.4.4. Injection du Bruit Gaussien (Gaussian Noise)

Nous avons appliqué, sur notre base, l’opérateur Gaussian noise (figure 22).. Nous avons fait
varier la quantité de Gaussian Noise entre 1 et 100 en générant 10 images avec des quantités
de bruit différentes.

Ainsi, nous avons pu multiplier la taille de notre base initiale par 10

Figure 22: Effet de l’opérateur bruit gaussien

2.4.5. Shadow (ombre)


Nous avons appliqué, sur notre base, l’opérateur Shadow. Nous avons fait varier la quantité
de Shadow entre 0.01 et 0.5 en générant 10 images avec des quantités d’ombre différentes
(Figure 23).

Ainsi, la taille de notre base initiale a été multipliée par 10 .

22
Figure 23. : Effet de l’opérateur shadow (ombre)

2.4.6. Shade color 

Nous avons appliqué, sur notre base, l’opérateur Shade color (figure 24). Nous avons fait
varier la quantité de Shade color entre 0.3 et 0.5 en générant 10 images avec de couleurs et de
Shade color quantité différentes.

Ainsi, nous avons pu multiplier la taille de notre base initiale par 10.

Figure 24 : Effet d’opérateur Shade color avec 2 couleurs différents

2.4.7. Enhancement (Renforcement) 

Nous avons appliqué, sur notre base, l’opérateur Enhancement. Cet opérateur contient le
contraste, la brillance et la Sharpness. Nous avons fait varier la quantité de contraste entre 0.5
et 1.7 en générant 10 images avec des quantités de contraste différentes (figure 25), la quantité
de brillance entre 0.6 et 1,4 en générant 10 images avec des quantités de brillance différentes
(figure 26) et la quantité de sharpness entre 0.1 et 5 en générant 10 images avec des quantités
de Sharpness différentes(figure27).

Ainsi, pour cet opérateur, nous avons pu multiplier la taille de notre base initiale par 30.

23
Figure 25: Effet du contraste

Figure 26 : Effet du Brillance

Figure 27 : Effet du sharpness

2.4.8. Blur (Flou)

Nous avons appliqué, sur notre base, l’opérateur Shade color. Nous avons fait varier la
quantité de flou entre 2 et 6 en générant 10 images avec de quantité de flou différentes (Figure
28).

Ainsi, avec l’opérateur blur nous avons pu multiplier la taille de notre base initiale par 10.

24
Figure 28 : Effet du flou

Nous résumons dans le tableau 1 les différents opérateurs que nous avons utilisés dans le
cadre de notre travail ainsi que le nombre d'images générées pour chaque opérateur.

Tableau récapitulatif des opérateurs utilisés :

Détails et caractéristiques
Nom opérateur Description opérateur Opérateur par défaut Nombre images générées
(par défaut)

Rotation Ajoute des retournements Max. Angle=60° 1 image (pour chaque


des images angle)

25
Specle_Noise Ajoute du bruit Min specle. Noise=0.0001 10 images
granulaire
Max specle. Noise=0.1

Salt Pepper_ Apparition des pixels Min s.p. noise=0.1 10 images


noirs et blancs sur les
Noie images Max s.p. noise=0.3

Noise (Bruit)

Gaussian_Noi Ajoute du bruit avec une Min G. noise =1 10 images


se distribution gaussienne
Max G. noise =100

Shade_Color Ajoute un ombre coloré Min Shade_Color=0.3 10 images


aux images
Max Shade_Color=0.5

Shadow (ombre) Ajoute un ombre aux Min shadow =0.01 10 images


images
Max shadow =0.5
Contraste Ajoute du contraste aux Min contraste =0.5 10 images
images
Max contraste=1.7

Enhancement Brightness Ajoute de la lumière aux Min Brightness=0.6 10 images


images
(Renforcement) Max Brightness=1.4

Sharpness Retourne des images Min sharpness=0.1 10 images


nettes
Max sharpness=5

Blur Retourne des images Min blur =2 10images


floues
Max blur=6

Tableau 1 : Tableau récapitulatif des opérateurs utilisés

2.5. SRGAN (Super Résolution GAN)

La méthode GAN super-résolution [1] applique un réseau profond en combinaison avec un

réseau adversaire, elle prend une image d'entrée à basse résolution (LR) et génère une image

super-résolue (SR).

L'idée centrale de la méthode SRGAN consiste à entraîner un générateur, comme le montre la

figure 29, dans le but de tromper le discriminateur qui est formé pour distinguer les images

26
SR de celles à haute résolution (HR). Plus précisément, le réseau discriminateur utilise

l'image HR comme variable, qui guide le réseau pour distinguer les images réelles SR. Nous

aurons comme sortie des images de super résolution.

Figure 29[1] : Architecture du générateur et du discriminateur

La figure 30 montre la différence entre une image basse résolution et une image super
résolution. L’étape la super résolution permet d'augmenter la densité des pixels pour améliorer
la netteté des images

Figure30 : Différence entre image de faible résolution(image gauche) et super


résolution(image droite)

27
Maintenant, que nous avons détaillé les différentes méthodes utilisées pour l'agrandissement
de notre base d'apprentissage, nous présentons l'interface graphique que nous avons
développé.

2.6. Interface graphique :

Afin de faciliter la manipulation de notre base d'apprentissage, l'ajustement et le test des


différents opérateurs d'agrandissement avec différentes valeurs, nous avons développé une
interface utilisateur (figure 32). Notre interface a comme but de permettre à l'utilisateur
d'effectuer les différentes tâches d'une manière simple et conviviale. A partir de l’interface,
l’utilisateur peut changer :

 Le chemin d’accès à la base de données d’origine el l’emplacement de la nouvelle


base d’apprentissage.

 Le nombre des images générées pour chaque image d’origine.

 Le choix des opérateurs d’agrandissement.

Figure 31 : L’interface web

28
2.7. Conclusion

Nous avons détaillé dans ce chapitre, les opérateurs de transformation d'images que nous
avons sélectionné pour l'agrandissement de la base d'apprentissage pour le contrôle qualité
d'ADDIXO.

ADDIXO dispose d’un Dataset de 172 images dont 104 images défectueuses et 68 images
non défectueuses. Nous avons sélectionné les opérateurs d’agrandissement dans le cadre de
contrôle qualité. En effet, les opérateurs choisis ne doivent rien couper de l’image pour
garantir une classification correcte et une performance maximale. En plus, des opérateurs de
transformation d'images, nous avons utilisé la méthode SRGAN qui permet d'améliorer la
résolution des images. L'application de ces méthodes d'agrandissement, nous a permis de
passer d'une base d'une taille de 172 images à une base de taille 15652 images. Ainsi, nous
avons pu multiplier la taille de notre base par un facteur de YY.

A l’aide du Framework Django nous avons développé une interface graphique pour manipuler
l’agrandissement de la base d’apprentissage.

29
Chapitre 3 : Test et évaluation

3.1. Introduction

Nous commençons par présenter le réseau de neurones convolutionnel (CNN) que nous avons
utilisé pour évaluer l'impact de l'agrandissement de la base d'apprentissage sur l'apprentissage
par Deep Learning. Ensuite, nous analysons et évaluons les résultats obtenus.

3.2. Les réseaux de neurones convolutionnels CNN

Un réseau de neurones convolutionnel (Convolutional Neural Network : CNN) est un


algorithme Deep Learning.

Les réseaux de neurones convolutionnels(figure32) sont une nouvelle technologie


d’apprentissage automatique. Ils sont à ce jour les modèles les plus performants pour classer
des images. A l’aide de cette technologie et sa capacité de lire des images suivant le nombre
des pixels, beaucoup d’entreprise de nos jours s’appuient sur cette technique pour avoir plus
de données.

La première partie d’un CNN est la partie convolutive à proprement parler. Elle fonctionne
comme un extracteur de caractéristiques des images. Une image est passée à travers une
succession de filtres, ou noyaux de convolution, créant de nouvelles images appelées cartes de
convolutions. Certains filtres intermédiaires réduisent la résolution de l’image par une
opération de maximum local. Au final, les cartes de convolutions sont mises à plat et
concaténées en un vecteur de caractéristiques. [18]

Ce dernier est ensuite branché en entrée d’une deuxième partie, constituée de couches
entièrement connectées (perceptron multicouche). Le rôle de cette partie est de combiner les
caractéristiques du vecteur de caractéristiques pour classer l’image. [18]

30
Figure32 : Architecture d’un CNN [18]

Une architecture CNN est formée par un empilement de couches de traitement indépendantes
[18] :

 La couche de convolution (CONV) qui traite les données d'un champ récepteur.

 La couche de pooling (POOL), qui permet de compresser l'information en réduisant la taille


de l'image intermédiaire (souvent par sous-échantillonnage).

 La couche de correction (ReLU), souvent appelée par abus 'ReLU' en référence à la fonction
d'activation (Unité de rectification linéaire).

 La couche "entièrement connectée" (FC), dans laquelle tous les nœuds contenus se
connectent à tous les nœuds de la couche suivante.

 La couche de perte (LOSS), la dernière couche dans le CNN.

3.3. Notre modèle CNN

Nous avons créé un simple CNN pour tester l’effet de l’agrandissement de la base
d’apprentissage sur les performances d’un CNN.

Nous avons travaillé seulement avec deux classes d’images (pièces défectueuses et pièces non
défectueuses). Nous avons subdivisé notre base en un ensemble d’entraiment (train) et un
ensemble de test (test), l’ensemble de traitement est composé de 70% du nombre des images
de la base d’apprentissage et l’ensemble de test de 30% du nombre d’image.

Nous avons importé le modèle d’apprentissage par transfert du CNN. C’est un modèle
pratique car il est livré avec des réseaux neuronaux prédéfinis

Cette techniques et appelées apprentissage par transfert ou  transfert Learning, car on exploite
la connaissance acquise sur un problème de classification général pour l’appliquer de nouveau
à un problème particulier comme une initialisation du modèle [19].

Nous avons utilisé exactement le vgg16 car il contient seulement 16 couches et des filtres
3×3.

31
Ensuite nous avons ajouté 3 couches supplémentaires, on peut les modifier selon nos besoins
et nous avons fixé le nombre d’époche à 7, c’est un hyperparamètre qui définit le nombre de
fois que l'algorithme d'apprentissage fonctionnera sur l'ensemble de données d'apprentissage.

3.4. Résultats de notre CNN pour la base d’ADDIXO

Nous avons entrainé notre modèle avec la base d’apprentissage originale d’ADDIXO qui
contient seulment 172 images et nous avons obtenu les résultats suivantes :

 Une valeur de pésision (accurancy ou acc) égale à 78%

 Une valeur de perte (loss) égal à 0.43

32
Epoche Ensemble Ensemble de test
d’entrainment

Epoche 1 Loss = 1.62 Loss = 0.68

Acc =0.49 Acc =0.39

Epoche 2 Loss = 0.82 Loss = 0.58

Acc =0.47 Acc =0.92

Epoche 3 Loss = 0.76 Loss = 0.72

Acc =0.54 Acc =0.39

Epoche 4 Loss = 0.88 Loss = 0.56

Acc =0.51 Acc =0.64

Epoche 5 Loss = 0.66 Loss = 0.55

Acc =0.64 Acc =0.64

Epoche 6 Loss = 0.62 Loss = 0.48

Acc =0.69 Acc =0.78

Epoche 7 Loss = 0.53 Loss = 0.43

Acc =0.68 Acc =0.78

Résultat Accrancy = 78%

Loss =0.43

Tableau illustratif des résultats de CNN pour la base d’apprentissage d’ADDIXO (172 images)

33
Tableau 2 :Résultat de CNN pour la base d’apprentissage avant d’agrandissement

La courbe de la figure 33 démontre l’évolution de la valeur de la précision et la valeur de


perte pour l’ensemble d’entrainement et l’ensemble de test de la base originale d’ADDIXO
composée de 172 images.

34
Figure 33 : Visualisation de la précision et de la perte pour la base de données originale

3.5. Résultats de notre CNN pour la nouvelle base d’apprentissage

On entraine le modèle maintenat avec la nouvelle base d’apprentissage


aprésl’agrandissement de la base par l’application de 10 opérateurs mathematique et la
méthode SRGAN . la nouvelle base générrée contient 15652 images et nous avons obtenu les
résultats suivantes :

 Une valeur de pésision (accurancy ou acc) égale à 94,62%

 Une valeur de perte (loss) égal à 0.16

35
Tableau illustratif des résultats de CNN pour la nouvelle base d’apprentissage

Epoche Ensemble d’entrainment Ensemble de test


Epoche 1 Loss = 0.47 Loss = 0.20

36
Acc =0.78 Acc =0.92
Epoche 2 Loss = 0.28 Loss = 0.15
Acc =0.89 Acc =0.93
Epoche 3 Loss = 0.23 Loss = 0.14
Acc =0.91 Acc =0.97
Epoche 4 Loss = 0.18 Loss = 0.20
Acc =0.92 Acc =0.92
Epoche 5 Loss = 0.16 Loss = 0.08
Acc =0.93 Acc =0.97
Epoche 6 Loss = 0.14 Loss = 0.10
Acc =0.94 Acc =0.92
Epoche 7 Loss = 0.12 Loss = 0.16
Acc =0.94 Acc =0.94
Résultat Accurancy = 94%

Loss=0.16
Tableau 3 : Résultat de CNN pour la nouvelle base d’apprentissage

Nous constatons que l’augmentation du nombre des images augmente la valeur de la


précision de 78% à 94% et diminue la valeur de perte de 0.43 à 0.16.

La figure 34 illustre les résultats de la précision et de la perte après agrandissement de la base.


Nous constatons une nette évolution de valeur de la précision et la valeur de perte pour
l’ensemble d’entrainement et l’ensemble de test de la nouvelle base d’apprentissage .

37
Figure 34 : Visualisation de la précision et de la perte pour la nouvelle base l’agrandissement

CNN (16+3 couches/7 Base de données avant Base de données après


epoches ) l’augmentation l’augmentation
Précision 78% 94%
Perte 0.43 0.16
Tableau 4 : Résultat du CNN

Le tableau 4 illustre l'impact de l'agrandissement de la base d'apprentissage sur les


performances du Deep Learning. En effet, nous constatons que la mesure de précision est
passé d'une valeur de 78% pour une base de taille 172 à 94% pour une base de 15652 images
obtenue après agrandissement.

La valeur de perte est passé de 43% pour une base de 172 images à 16% pour la même base
après agrandissement (15652 images).

38
3.6. Conclusion

Nous avons créé un CNN pour la classification d’image. Notre CNN se compose de 16
couches de vgg16 et nous avons ajouté 3 couches et le nombre d’epoches est égale à 7. Nous
avons testé notre modèle avec la base d’apprentissage d’ADDIXO qui comporte seulement
172 images puis avec la nouvelle base d’apprentissage qui comporte 15652 images suite à
l’application des opérateurs d’agrandissement.

Il est évident d’après nos résultats que l’agrandissement de la base améliore la performance de
notre CNN. Ainsi, la précision passe de 78% à 94% et la perte diminue de 0.43 à 0.16 .

39
Conclusion Générale et Perspectives

Ce travail rentre dans le cadre de notre projet de fin d’études en licence fondamentale
informatique à la faculté des sciences de Tunis. Il consiste à agrandir une base d’apprentissage
pour le contrôle qualité dans le but d’améliorer les performances de l’utilisation des
techniques de deep Learning et plus particulièrement CNN.
Avoir un grand nombre de données est crucial pour les performances des modèles de deep
Learning.
La société d’accueil ADDIXO dispose d’une base d’apprentissage de 172 dont images 104
images de pièces défectueuses et 68 images de pièces non défectueuses. Afin de tirer profit du
Deep Learning, il est nécessaire de disposer d’une grande base d’apprentissage (Dataset). Or,
généralement dans le domaine du contrôle qualité, nous ne disposons que d’une base limitée
d’échantillons. Pour pallier cet inconvénient et améliorer les performances du deep Learning
nous avons utilisé 10 opérateurs d’agrandissement de la base d’apprentissage. Les opérateurs
que nous avons utilisé dans le cadre de contrôle qualité sont : Rotation, Specle Noise, Salt
and Pepper Noise, Gaussian Noise, Shadow, Shade color, Contraste, Brillance, Sharpness et
Flou. Chaqu’un de ces opérateurs génère 10 images différentes pour chaque image de la base
d’apprentissage.
Les opérateurs choisis ne doivent rien couper de l’image pour garantir une classification
correcte et une performance maximale. Ainsi les opérateurs tels que la translation le zoom et
Random erasing n’ont pas été utilisés.
L'application des opérateurs de transformation d'images choisis, nous a permis de passer d'une
base d'apprentissage de taille 172 images à une base de taille 15652 images.
Pour une classification performante nous avons utilisé la méthode SRGAN ou GAN-Super
Résolution qui génère des images de super résolution.
Afin de tester l'impact de l'agrandissement de la base d'apprentissage sur les performances du
Deep Learning, nous avons adapté les paramètres d'un CNN à notre base d'apprentissage et
nous l'avons entraîné sur la base d'apprentissage de départ (172 images) et la base après
agrandissement (15652 images). Les résultats de classification d’images obtenus avant et
après l’agrandissement de la base d’apprentissage ont montré l’amélioration des performances
de notre CNN. Ainsi, la précision du modèle passe de 78% à 94% et la valeur de perte

40
diminue de 0.43 à 0,16. Nous avons constaté que l’augmentation du nombre des images
améliore les performances du modèle d’apprentissage profond.
Finalement on a créé une interface web pour la manipulation des données et des opérateurs à
l’aide du Framework Django.

41
Bibliographie
Sites web consultés

[1] : ///https://openaccess.thecvf.com/content_cvpr_2017/papers/Ledig_Photo-
Realistic_Single_Image_CVPR_2017_paper.pdf [consulté le 16/03/2020]
[2] : //https://towardsdatascience.com/dataaugmentationtechniquesinpythonf216ef5eed69
[Consulté le 1/02/2020]
[3] : Site officiel d’Addixo //https://www.addixo.com/[consulté le13/07/2020]
[4] : //https://dataanalyticspost.com/Lexique/reseau-antagoniste-generatif//
[Consulté le 12/05/2020]
[5] : //https://www.futurasciences.com/tech/definitions/intelligence-artificielle-deep-learning-
17262/ [Consulté le 10/07/2020]
[6] : https://mc.ai/learning-generative-adversarial-networks-gans/[consulté le 25/5/2020]//
[7] : //https://www.lebigdata.fr/reseau-de-neurones-artificiels-definition[consulté 7/05/2020]
[8] ://https://www.sites.univrennes2.fr/artsspectacle/cian/image_numFlash/pdf/chap5_tout52p
df?fbclid=IwAR2OKElsgTCpzJJZkFuyTQmIlMznB_mEVFDaiK2XZlK6wLPXQH-
ImJ78oUk [consulté le 10/07/2020]
[9] ://https://nanonets.com/blog/data-augmentation-how-to-use-deep-learning-when-you-
have-limited-data-part-2/ [consulté le 10/03/2020]
[10] : //http://warmaths.fr/MATH/Resum3/nivVLa%20Rotation.htm [consulté le 15 /07/2020]
[11]://https://medium.com/@pierre_guillou/data-augmentation-par-fastai-v1-e2e69e071ccc
[consulté le 07/03/2020]
[12]://https://www.123couleurs.fr/exp%C3%A9riences/exp%C3%A9riences-vision/ev-
ombrescolor%C3%A9es/ [consulté le 05/06/2020]

42
[13]:// https://fr.wiktionary.org/wiki/flou [consulté le 05/06/2020]
[14]://https://www.groundai.com/project/random-erasing-data-augmentation/2 [consulté le
05/06/2020]
[15]://
https://www.codeflow.site/fr/article/how-to-build-a-deep-learning-model-to-predict-
employee-retention-using-keras-and
tensorflow#:~:text=Keras%20est%20une%20API%20de,plus%20rapide%20et%20plus
%20facile. [Consulté le 10/07/2020]
[16]://https://www.lebigdata.fr/gan-definition-tout-savoir?fbclid=IwAR2Jx-
PBwnhpefdNSJvhg2xV74i-CHcJuymDyh6cY_t-1mBTWn0wjPIsNJg [consulté le
15/07/2020]
[17] ://https://helpx.adobe.com/fr/photoshop/using/adjusting-image-sharpness-blur.html
[consulté le 15/07/2020]
[18]://http://dspace.univ-tlemcen.dz/bitstream/112/12235/1/Classification-des-images-avec-
les-reseaux-de-neurones.pdf [consulté le 02 /072020]
[19] : // https://blog.octo.com/classification-dimages-les-reseaux-de-neurones-convolutifs-en-
toute-simplicite/[consulté le 02 /072020]
[20]://https://www.lebigdata.fr/gan-definition-tout-savoir [consulté le 15/07/2020]

43
Annexe 1

Implémentation de la méthode SRGAN en Python :


Dans le script config.py on définit le dossier d’image
config.TRAIN.img_path = " mon data /"

44
Le script model.py contient notre modèle SRGAN

45
46
L’entrainement s’effectue par le script main.py, Au terminal on exécute la commande
suivante
Python train.py

L’évaluation s’effectue aussi par le script main.py, au terminal on exécute la commande


suivante
Python train.py --mode=evaluate

47
Importations des bibliothèques pour le CNN

48
Implémentation de la rotation en python :

49
Implémentation de Speckle Noise en python :

50
51
Implémentation du Salt/Pepper Noise en Python :

52
Implémentation du Gaussian noise en python :

53
Implémentation d’ombre en python :

54
Implémentation du Shade color en Python :

55
Implémentation du renforcement en python :

56
Implémentation du flou en python :

57
58
Création de notre modèle de CNN

59
‫ملخص‬

‫ في هذا المجال لدينا‬.‫ بما في ذلك مراقبة الجودة‬، ‫ بنجاح في مختلف المجاالت‬، ‫ وخاصة تقنيات التعلم العميق‬، ‫تم تطبيق• تقنيات الذكاء االصطناعي‬
‫فقط قاعدة بينات• محدود‬

‫يتكون هذا المشروع من توسيع قاعدة التعلم من خالل توليد صور جديدة من خالل العوامل الرياضية وطريقة أس أرجان من أجل تحسين أداء‬
‫تقنيات• التعلم العميق وعلى وجه الخصوص سي إن‬

‫ سي إن إن‬، ‫ توسيع القاعدة‬، ‫ التعلم العميق‬:‫العالمات‬

Résumé
Les techniques d’intelligence artificielle (IA) et plus particulièrement les techniques
d’apprentissage profond (Deep Learning) été appliquées avec succès dans différents domaines
et notamment le contrôle qualité. Ce domaine nous ne disposons que d’une base limitée
d’échantillons.

Ce projet consiste à agrandir une base d’apprentissage en générant des nouvelles images par
des opérateurs mathématiques et la méthode SRGAN dans le but d’améliorer les
performances es techniques de deep Learning et plus particulièrement CNN.
Mots clés : l’apprentissage profond, Agrandissement de la base, CNN

Abstract

Artificiel intelligence (AI) techniques, and in particular Deep Learning techniques, have been
successfully applied in different areas, including qualité control. In This area we have only a
limited data.
This Project consists in data augmentation by generating new images by mathematical
operators and the SRGAN method in order to improve performance of deep Learning and
more particularly CNN.

Keywords : Deep Learning, data augmentation, CNN

60
61

Вам также может понравиться