Vous êtes sur la page 1sur 26

Université Mohammed V de Rabat Royaume du Maroc

Ecole Nationale Supérieure d’Informatique et


d’Analyse des Systèmes

Master Sciences de Données et Big data

Projet federateur sous Le théme :

Détection et classification des maladies des agrumes


Utilisation des réseaux de neurones convolutifs

Réaliser par : Encadré par :


EL MAJJODI Ayoub
Mr.Azeddine Elhassouny
.

Septembre 2018
Table des matières

1 Introduction 5

2 Etat de l’art 7
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 classification des images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3 Apprentissage en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.1 Intelligence artificielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.2 Apprentissage automatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.3.1.3 Apprentissage en profondeur . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4 Réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1.1 Réseaux de neurone : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1.2 Convolution : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.4.1.3 Les réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2 Architecture de réseaux de neurones convolutifs . . . . . . . . . . . . . . . . . . . . . . 10
2.4.2.1 Couche de convolutions (CONV) . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.2.2 Couche de pooling (POOL) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4.2.3 Couche entièrement connectée (FC) . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Méthodes et approches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 Application 18
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2 Descriptiom de jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

1
PFA SDBD

3.3 Le modèle de réseau de neurones convolutifs utilisé . . . . . . . . . . . . . . . . . . . . . . . . 19


3.3.1 Le Modèle AlexNet : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1.1 Entrée : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.3.1.2 L’Architecture d’AlexNet : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.4 Framework utilisé : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
3.4.1 Tensorflow : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

2
Table des figures

2.1 La relation entre l’intelligence artificielle, le ML et deep learning . . . . . . . . . . . . . . . . . 8


2.2 Exemple de neurone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.3 Architecture d’un réseau de neurones convolutif . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.4 Couche de convolution (CONV) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 Illustration de couche pooling (Max-Pool) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6 Illustration de couche pooling (average pooling) . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.7 le filtre de Sobel pour l’extraction des contours . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.8 Images avant et après filtre de Sobel :a) avant, b)aprés . . . . . . . . . . . . . . . . . . . . . . 13
2.9 Réseau de neurones à trois couches utilisé dans le classificateur . . . . . . . . . . . . . . . . . . 14
2.10 résultat après classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.11 Les étapes de la méthode de Jianwei Qin et al . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.12 extraction des régions d’intérêt pour chaque maladie . . . . . . . . . . . . . . . . . . . . . . . 16
2.13 Résultat de classification de la méthode proposée . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1 La taille de l’image utilisée dans l’entrée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20


3.2 L’Architecture d’AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Exemple de tenseur (Tensor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.4 Exemple de graphe de calcul (c = Relu(Wx + b)) . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.5 Exemple de graphe en python et Tensorflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3
PFA SDBD

3.6 Exécution d’un graphe de calcul . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Liste des tableaux

3.1 Le nom et le nombre des images pour chaque type de maladie . . . . . . . . . . . . . . . . . . 19

4
Chapitre 1

Introduction

Les agrumes représentent la source la plus importante de vitamine c, qui apporte divers avantage à la santé.
Au Maroc, l’industrie des agrumes joue un rôle socio-économique important. Au niveau social, il contribue de
manière substantielle à l’amélioration des revenus des agriculteurs, Sur le plan économique, les exportations
d’agrumes, qui oscillent autour d’une moyenne de 500.000 T par an. Par ailleurs, ce secteur assure le maintien
en d’un important outil de conditionnement et de transformation et joue un rôle précurseur vis-à-vis des autres
secteurs agricoles en matière d’adoption des innovation technologique. Cependant, la production d’agrumes est
fortement effectuée par nombreuses maladies dans plusieurs régions qui connue par une importante production.
Ces maladies sont divisées en groupes tel que : [1]

— Maladies à virus :

• Tiresteza

• Psorosis

• Citrus greenig (Huanglongbing)

• Exocortis

• ....

— Maladies cryptogamiques :

• Gommose

• Alternariose

• Melanose

• Septoriose

• Greasy spot

5
PFA SDBD

• ...

— Affectation génétiques

— Affectation physiologique

Alors un système automatisé pour la détection et la classification de ces maladies, peut aider à éviter la
détection manuelle qui est difficile, coûts et prend beaucoup de temps, augmenter la qualité et parer des
pertes de rendement considérables.
Avec le développement de technologie de vision par ordinateur et d’apprentissage automatique, les cher-
cheurs se concentrent sur la détection et la classification des maladies des plantes, basée sur le traitement
d’images, l’apprentissage automatique et l’apprentissage en profondeur, etc ...
L’objectif de ce travail est de proposer une solution pour la détection et la classification des maladies
des agrumes, basé sur l’image de chaque maladie ,en utilisant de réseaux neuronaux convolutifs (convolution
neural network).
Nous commençons par écrire un état de l’art et une comparaison de deux méthode qui sont présentées
dans [2] et [3] . dans le chapitre 3, on va montrer la partie expérimentale de notre travail , et l’architecture
utilisée. En fin, on termine par une conclusion .

6
Chapitre 2

Etat de l’art

2.1 Introduction
Dans ce chapitre, nous allons définir, la classification des image , l’apprentissage en profondeur, réseau de
neurones convolutifs. Et nous allons terminer par État de l’art des méthodes existantes pour la classification
des maladies des agrumes.

2.2 classification des images

2.2.1 Définition

La classification automatique des images consiste à attribuer automatiquement une classe à une image
à l’aide d’un système de classification. On trouve ainsi la classification d’objet, de scènes, de textures, la
reconnaissance de visage, d’empreintes digitales et de caractères. Il existe deux principe types d’apprentissage :
l’apprentissage supervisé et l’apprentissage non-supervisé. Dans l’approche supervisé chaque image est associé
à une étiquette qui décrit se classe d’appartenance. Dans l’approche non-supervisé les données disponibles ne
possèdent pas d’étiquettes.
L’objectif de la classification d’image est d’élaborer un système capable d’affecter une classe automatique-
ment à une image. Ainsi, ce système permet d’effectuer une tâche d’expertise qui peut s’avérer coûteuse à
acquérir pour un être humain en raison notamment de contraintes physique comme la concertation, la fatigue
ou le temps nécessité par un volume important de données images.

7
PFA SDBD

2.3 Apprentissage en profondeur

2.3.1 Définitions

Pour définir l’apprentissage en profondeur, nous devons illustrer d’autre termes :

2.3.1.1 Intelligence artificielle

L’intelligence artificielle (IA) est l’ensemble théories et de techniques mises en œuvre en vue de réaliser
des machines capables de simuler l’intelligence humain.

2.3.1.2 Apprentissage automatique

Apprentissage automatique (machine learning, ML), champ d’étude de IA, concerne la conception, l’ana-
lyse, le développement et l’implémentation de méthodes permettent à une machine d’évaluer par un processus
systématique, et ainsi de remplir des tâches difficiles ou problématiques par des moyens algorithmiques plus
classiques.

2.3.1.3 Apprentissage en profondeur

Le Deep learning est un nouveau domaine de recherche du ML. qui été introduit dans le but de rapprocher
le ML de son objectif principale : intelligence artificielle. Il concerne les algorithme inspiré par la structure et
le fonctionnement du cerveau. Ils peuvent apprendre plusieurs de représentation dans le but de modéliser des
relations complexes entre les donnés.

Figure 2.1 – La relation entre l’intelligence artificielle, le ML et deep learning

8
PFA SDBD

le Deep learning est basé sur l’idée des réseaux de neurones artificielles et il est taille pour gérer de la
large quantités de données en ajoutant des couches au réseau. Un modèle de deep learning a la capacité
d’extraire des caractéristique à partir des données brutes grâce aux multiples couches de traitement composé
de multiples transformation linéaires et non linéaires.

2.4 Réseaux de neurones convolutifs

2.4.1 Définitions

2.4.1.1 Réseaux de neurone :

Réseau de neurones (Neural Networks NN) : sont essentiellement des modèles mathématique permettent
de résoudre un problème d’optimisation. Une neurone prend une entrée (x), fait un calcul (multiple-le avec une
variable w et ajoute une autre variable b) pour produire une valeur (z = wx + b). Cette valeur est transmise
à une fonction appelée fonction d’activation (f) pour produire la sortie finale (activation) d’un neurone.
Il existe de nombreux types de fonctions d’activation, l’une des fonction d’activation les plus répandues est
Sigmoid :

Le neurone qui utilise la fonctions sigmoïde comme fonction d’activation sera appelé neurone Sigmoïde
(Sigmoid neuron). Les neurones sont nommés selon la fonction d’activation, car il ya plusieurs des fonctions
d’activation comme Relu, Tanh. Un neurone peur être connecté à plusieurs neurones comme ceci :

Figure 2.2 – Exemple de neurone

2.4.1.2 Convolution :

Est un outil mathématique simple qui est très largement utilisé pour le traitement d’image, ce qui
explique que les réseaux de neurones à convolution soient particulièrement bien adaptés à la reconnaissance

9
PFA SDBD

d’image. La convolution agis comme un filtrage. On définit une taille de fenêtre qui va se balader à travers
toute l’image.

2.4.1.3 Les réseaux de neurones convolutifs

Sont à ce jour les modèles les plus performants pour classer des images. Désignés par l’acronyme
CNN, de l’anglais Convolutional Neural Network, ils comportent deux parties bien distinctes. En entrée, une
image est fournie sous la forme d’une matrice de pixels. Elle a 2 dimensions pour une image en niveaux de
gris, La couleur est représentée par une troisième dimension de profondeur 3 pour représenter les couleurs
fondamentales RGB.
La première partie d’un CNN est la partie convolutive. Elle fonctionne comme un extracteur de caractéristique
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ésolutions de
l’image par une opérations de maximum local. Au final, les cartes de convolutions sont mises à plat et
concaténées en un vecteur de caractéristique.

Figure 2.3 – Architecture d’un réseau de neurones convolutif

2.4.2 Architecture de réseaux de neurones convolutifs

Une architecture CNN est formée par un empilement de couches de traitement :

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

• la couche entièrement connecté (FC), qui est une couche de type perceptron.

10
PFA SDBD

2.4.2.1 Couche de convolutions (CONV)

La couche de convolution est le bloc de construction de base d’un CNN. Trois paramètres permettent
de dimensionner le volume de la couche de convolution le profondeur, le pas et de la marge.

1. Profondeur de la couche : nombre de noyaux de convolution

2. Le pas : contrôle le chevauchement des champs récepteurs. Plus de pas est petit, plus les champs
récepteurs se chevauchement et plus le volume de sorite sera grand.

3. La marge (à 0) ou zero padding : parfois, il est commode de mettre des zéros à la frontière du
volume d’entrée. Cette marge permet de contrôler la dimension spatiale du volume de sortie.

Figure 2.4 – Couche de convolution (CONV)

2.4.2.2 Couche de pooling (POOL)

Un autre concept important de CNNs est pooling, ce qui est une forme de sous-échantillonnage de
l’image.
Le pooling réduit la taille de spatiale d’une image intermédiaire, réduisant ainsi la quantité de paramètres et
de calcul dans le réseau. Il dans fréquent d’insérer périodiquement une couche de pooling entre deux couches
convolutives successives d’une architecture CNN pour contrôler l’overfitting.
La couche de pooling fonctionne indépendamment sur chaque tranche de profondeur de l’entrée et la redi-
mensionne uniquement au niveau de la surface. La forme la plus courante est une couche de mise en commun
avec des tuiles de taille 2x2 (larguer/hauteur) et comme valeur de sortie la valeur maximale en entrée. On
parle dans ce cas de «Max -Pool 2x2 ».

11
PFA SDBD

Figure 2.5 – Illustration de couche pooling (Max-Pool)

Il est possible d’utiliser d’autre fonctions de pooling que le maximum. on peut utiliser un « average pooling
» la sorite est la moyenne des valeurs du patch d’entrée.

Figure 2.6 – Illustration de couche pooling (average pooling)

Le pooling permet de gros gains en puissance de calcul, en raison de réduction agressive de taille de la
représentation.

2.4.2.3 Couche entièrement connectée (FC)

Après plusieurs couches de convolution et de pooling. Le raisonnement de haut niveau neuronal se fait
via couches entièrement connectées. Les neurones dans une couche entièrement connectée ont des connexions
vers toutes les sorties de la couche précédente. leurs fonctions d’activations peuvent donc être calculées avec
une multiplication matricielle suivie d’un décalage de polarisation.

2.5 Méthodes et approches


Pour la détection des maladies des agrumes, on trouve plusieurs approches et méthodes.
J.Lopez et al [2], présentent un système de vision par ordinateur qui capable de détecter et classifier

12
PFA SDBD

les maladies dans les agrumes.cette méthode est présentée en trois phases : Segmentation , Extraction des
caractéristiques (Feature Extraction) et Classification.

+ Phase de segmentation :
L’objectif de cette phase est la segmentation de la zone érodée par une certain maladie, pour cela ils
ont utilisé le filtre de Sobel, qui permet la détection des contours (edge detection) :

Figure 2.7 – le filtre de Sobel pour l’extraction des contours

(a) (b)

Figure 2.8 – Images avant et après filtre de Sobel :a) avant, b)aprés

+ Extraction des caractéristique :


Cette phase permet de distinguer différents défauts, après la segmentation, Cinq caractéristiques sont
extraites pour chaque composant R, G et B.

— Moyenne :
µ[C] = Σ255
l=0 l.P (l, C)

— Variance :
σ 2 [C] = Σ255 2
l=0 (l − µ) .P (l, C)

— Asymétrie (Skewness) : mesure le degré symétrie présenté par l’image.

s[C] = Σ255 3
l=0 (l − µ) .P (l, C)/σ
3/2

13
PFA SDBD

— Kurtosis : mesure à quel point l’histogramme est atteint.

K[C] = Σ255 4
l=0 (l − µ) .P (l, C)/σ
2

— Gamme dynamique (Range) :pour obtenir la plage dynamique dans une image.
max0<l<255 {P (l, C) <> 0} − min0<l<255 {P (l, C) <> 0}
R[C] =
255

Avec C indique la composante R, G ou B et P (l, C) l’histogramme de chaque composante de couleur


Ces caractéristiques sont calculées pour chaque composant R, G et B, donc nous aurons un vecteur de
15 caractéristiques pour la prochaine étape de classification

+ phase de classification :
Une tâche majeure après l’extraction de caractéristiques consiste à classer la zone segmentée dans l’une
des catégories de défaut dans les fruits d’agrumes, et pour cette tâche ils ont basé sur deux techniques
de classification : classification basé sur la distance et réseaux de neurones.
pour la classification basé sur la distance : la distance minimum, le plus proche voisin (nearest neigh-
bour),et k-nearest neighbour.
Le réseaux de neurones avec 15 nœuds d’Entrée, un pour chacune caractéristique extraites dans le sec-
tion précédente, un couche cachée (hidden layer) avec dix nœuds. Et enfin, il a huit nœuds de sortie, un
pour chaque type de défaut, et sigmoid function comme function d’activation.

Figure 2.9 – Réseau de neurones à trois couches utilisé dans le classificateur

14
PFA SDBD

pour le test de cette méthode, ils ont utilisé une dateset de 720 images,et aussi étudie comment la perfor-
mance était, affectée en fonction des caractéristique choisies, et pour cela trois groupe des caractéristique
été crée :

— FV1 :(Moyenne,Range )

— FV2 :(Variance, Asymétrie, Kurtosis)

— FV3 :(Moyenne, Range,Variance, Asymetrie,Kurtosis)

le résultat de classification obtenus dans le bateaux suivants :

Figure 2.10 – résultat après classification

avec les lignes reflètent le type de défaut d’agrume (A :Wind scar,B :ageing,C :Snail bites,D :Thrips
scar,E :Scale injury,F :Mediterranean fruit fly,G :autre defaut,H :Stem-calyx) et chaque cellule montre
le taux de détection correct.

Une autre méthodologie est proposée par Jianwei Qin et al [3], basée sur l’extraction des caractéristique
de texture de l’image en fonction de la méthode de cooccurrence des couleurs. cette méthode est présentée en
plusieurs étapes montrée dans la figure suivante :

Figure 2.11 – Les étapes de la méthode de Jianwei Qin et al

15
PFA SDBD

+ Sélection de la région d’intérêt (ROI) et Conversion de l’espace de couloeur :


La sélection de la région d’intérêt est fait par Matlab, qui permet d’extraire une portion carrée de ROI.
après extraction de la région d’intérêt, il faut converties tous les images ROI en RGB a l’espace de
couleur HSI(teinte, saturation et intensité) pour faciliter le calcul SGDM.

Figure 2.12 – extraction des régions d’intérêt pour chaque maladie

+ Génération de SGDM :
La matrice de co-occurrence sont analogues à des histogrammes bidimensionnelles. Elles représente le
nombre d’occurrence de couples de pixels particuliers dans l’image. la principale caractéristique des
matrices de co-occurrence est de s’intéresser à des couples de pixels qui sont, par définition séparés par
une distance.
Les matrices spatiales de dépendance au niveau de gris (spatial gray-level dependence matrices
SGDM) : est une méthode statique qui consiste a construire des matrices de cooccurrence pour refléter
la distribution spatiale des niveaux de gris dans la région d’intérêt.

+ Calcul les caractéristiques de texture :


Les SGDMs génères pour la teinte, la saturation et l’intensité ont ensuite été utilises pour calculer les
caractéristiques suivantes de la texture : uniformité, intensité moyenne, variance, corrélation, moment du
produit, différence, entropie, somme entropie, entropie de différence, corrélation d’information, contraste,
modus.

+ Sélection des caractéristiques de texture :


Une fois les statistiques de texture obtenues pour chaque image, la sélection des des caractéristiques est
pour réduire la redondance dans l’ensemble de fonctionnalités de texture. Cette phase est faite par la
méthode de l’analyse discriminante qui permet de réduire la taille de l’ensemble de variables et trouver
les variables importantes pour discriminer les échantillons des différentes classes .

+ Classification :
Les modelés de classification ont été développes à l’aide de la procédure SAS DISCRIM, qui crée une

16
PFA SDBD

fonction discriminante basée sur une mesure de la distance au crée entre un ensemble d’entrée.

Cette méthodologie aussi donne des bon résultat après la phase de classification :

Figure 2.13 – Résultat de classification de la méthode proposée

Le principal point similaire entre ces méthodes et approches, est l’extraction des caractéristiques à partir
de l’image de chaque maladie, et transmis à de tels algorithmes pour la tâche de classification, alors la
différence entre notre travail et ces méthodes est en utiliser un modèle de classification basée sur CNN pour
la classification des maladie des agrumes sans extraction des caractéristiques.

2.6 Conclusion
Dans ce chapitre nous avons vu les notions de base pour réaliser notre travail, et et nous avons étudié deux
approche qui basent sur l’extraction des caractéristiques pour la classification et qui donne des bons résultat,
dans le chapitre suivant on va attaquer la partie pratique de notre travail.

17
Chapitre 3

Application

3.1 Introduction
Dans le chapitre précédent, nous avons décrit le contexte nécessaire concernant l’application du l’appli-
cation de l’apprentissage en profondeur pour la classification des images, et étudie deux approche pour la
classification des maladie d’agrumes. Dans ce chapitre, nous décrivons nos jeu de données , le modèle utilisé
pour la classification, framework de programmation et enfin les résultat de notre travail.

3.2 Descriptiom de jeu de données


Dans notre travail, trouver un jeu de données c’est l’ étape la plus importante, et pour ce cela nous sommes
appuyés sur deux jeux de donnée contient 7 groupes des maladies, proposée par un chercheur de l’université
Gujrat, Gujrat, Pakistan, qui déjà qui déjà présentait une méthodologie pour la classification des maladies
d’agrumes Muhammed sharif et al [4], et un autre qui est proposé pour le challenge "PlantVillage Disease
Classification Challenge" , et qui accessible dans la plateforme [5] .
Enfin en a un jeu de données avec 8 groupes et 311 images en total :

18
PFA SDBD

Le type de Nombre des Le type de Nombre des

maladie images maladie images

10 97

Anthracnose Greening

12 18

Black Spot
Leprosis

55
12

Cancker
Melanose

17 90

Citrus scab Normale

Table 3.1 – Le nom et le nombre des images pour chaque type de maladie

3.3 Le modèle de réseau de neurones convolutifs utilisé


Dans cette partie, nous allons découvrir l’architecture du modèle choisie.
Pour ce travail, nous avons choisi le modèle de classification des images, présentée par Alex Krizhevsky et
al [6], sous le nom AlexNet en 2012 .

19
PFA SDBD

3.3.1 Le Modèle AlexNet :

3.3.1.1 Entrée :

AlexNet était le gagnant de l’ILSVRC 2012 (ImageNet Large Scale Visual Recognation Challenge). ré-
soudre le problème de la classification des images, où L’entrée est une image de 1000 classes différentes, et la
sortie est un vecteur de 1000 nombres. L’élément i du vecteur de sortie est interprète comme la probabilité
que l’image d’entrée appartienne à la classe i. Par conséquence, la somme de tous les éléments du vecteur de
sortie est 1.

L’entrée est une image RGB de taille 256 x 256. Cela signifie que toutes les images de l’ensemble d’ap-
prentissage et toutes les images de tests doivent être de taille 256 x 256.

Si l’image d’entre n’est pas 256 x 256, elle doit être convertie en 256 x 256 avant de l’utiliser.

Figure 3.1 – La taille de l’image utilisée dans l’entrée

Si l’image d’entrée est en niveaux de gris, elle est convertie en une image RGB pour obtenir une image
RGB à 3 canaux. Après il faut des images aléatoires de taille 227 x 227 ont été générées à l’intérieur des 256
x 256 images pour alimenter la première couche.

3.3.1.2 L’Architecture d’AlexNet :

AlexNet a 60 millons paramètres et 650 000 neurones.

20
PFA SDBD

Figure 3.2 – L’Architecture d’AlexNet

AlexNet se compose de 5 couches convolutives et de 3 couches entièrement connectées.

• Première couche :

— La 1ere couche est une couche de convolution

— La taille de l’image d’entrée est - 227 x 227 x 3

— Le nombre de filtres - 96

— la taille de filtres - 11 x 11 x 3

— le pas - 4

— sortie - 227/4 x 227/4 x 96 = 56 x 56 x 96

• deuxième couche :

— La 2ème couche est une couche de max pooling suivi d’une couche de convolution

— La taille de l’image d’entrée est - 255 x 55 x 96

— Max Pooling - 55/2 x 55/2 x 96 = 27 x 27 x 96

— nombre de filtres - 256

— la taille de filtres - 5 x 5 x 48

— sortie - 27 x 27 x 256

21
PFA SDBD

• la troisième a 384 filtres de taille 3x3x256, la quatrième a 384 filtres de taille 3x3x192 et la cinquième a
256 de taille 3x3x19 ,ces couches convolutives sont reliées entre elles, sans la couche Max Pooling

• la sixième couche :

— La couche 6-ème est une couche entièrement connectée (fully connected layer)

— entrée : 13 x 13 x 128 : transformé en un vecteur et multiplié par une matrice de :(113 x 13 x 128)
x 2048

— sotie :1 x2048 = (vacteur X = 1 x (13x13x128) X Matric A = (13x13x128)x2048)

• les couches 7-ème et 8-ème ont les mèmes configurations que la 6-ème couches.

3.4 Framework utilisé :


Dans ce travail, pour l’implémentation en a choisit langage de programmation python, et la bibliothèque
Tensorflow

3.4.1 Tensorflow :

Tensorflow : est une bibliothèque open source d’apprentissage automatique développée par Google. Il basé
l’interface DistBelif, initiée par Google en 2011, et est doté d’une interface Python.
L’architecture flexible de Tensorflow permet de déployer des système d’entraînement de différentes sur une
grande variété de plateforme matérielles différentes, telles que des machines uniques contenant une ou plu-
sieurs cartes GPU, Android et iOS.

Les calculs de Tensorflow sont exprimés sous forme de graphe de flux de données avec état. Le nom
Tensorflow dérive des opérations effectuées par ces réseaux neuronaux sur les tableaux de données multidi-
mensionnels. Ces tableaux sont appelés "tenseurs".

+ Tenseur (Tensor) :
Les tenseurs sont des cartes multilinéaires des espaces vectoriels aux nombres réels (V est un espace
vectoriel et V* est un espace double).
Dans Tensorflow, un tenseur peur être représenté sous la forme d’un tableau multidimensionnel de
nombres.
Un tenseur a son rang (rank) et sa forme (shape), le rang est son nombre de dimensions ,la forme est la
taille de chaque dimension :

22
PFA SDBD

Figure 3.3 – Exemple de tenseur (Tensor)

Tensorflow utilise une structure de données de tenseurs pour représenter toutes les données, seuls les
tenseurs qui sont passés entre les opérations dans le graphe de calcul.
La structure de données de tenseurs prend en charge divers types d’éléments,tel que les entiers, les float
et doubles , des nombres complexe et des type chaîne de caractère.

+ Exemple :
La grande idée d’un modèle en Tensorflow est d’exprimer un calcul numérique sous la forme d’un graphe
calcul. L’image ci-dessous est un exemple de graphe de calcul, qui représente le calcul de c = ReLu(Wx
+ b)

Figure 3.4 – Exemple de graphe de calcul (c = Relu(Wx + b))

Le graphe ci-dessus représente un calcul de flux de données, chaque nœud est une opération qui a zero ou
plusieurs entrées et zero ou plusieurs sorties. Les arêtes sont des tenseurs qui circulent entre les nœuds.
Dans ce graphe, il existe trois types d’opérations mathématique.
— MatMul : multiplication

— Add : addition

— ReLu : fonction d’activation


Un graphe est comme un système, qui comporte des entrées (les données x), des sorties, des variables
avec et et ensemble d’opérations.

23
PFA SDBD

— Placeholder : pour alimenter les données d’entrée afin d’entraîner le modèle, nous devons avoir un
port d’entrée sur le graphe. Placeholder sont des nœuds dont les valeurs sont injectées au moment
de l’exécution.

— Variable : lorsque d’entrainement d’un modèle, nous utilisons des variables pour contenir et mettre
a jour les paramètres.

Figure 3.5 – Exemple de graphe en python et Tensorflow

Pour exécuter le graph de calcul, il faut lancer le graphe sur une session (tf.Session()) qui est un
environnement pour exécuter les graphes de calcule.

Figure 3.6 – Exécution d’un graphe de calcul

24
Bibliographie

[1] H. C. et J. CASSIN, MALADIES ET TROUBLES DIVERS AFFECTANT LES CITRUS AU MAROC.

[2] J. J. Lopez, E. Aguilera, and M. Cobos, “Defect detection and classification in citrus using computer
vision,” in Neural Information Processing, C. S. Leung, M. Lee, and J. H. Chan, Eds. Berlin, Heidelberg :
Springer Berlin Heidelberg, 2009, pp. 11–18.

[3] J. Qin, T. F. Burks, D. G. Kim, and D. M. Bulanon, “Classification of citrus peel diseases using color texture
feature analysis,” in Food Processing Automation Conference Proceedings, 28-29 June 2008, Providence,
Rhode Island. American Society of Agricultural and Biological Engineers, 2008, p. 31.

[4] M. Sharif, M. A. Khan, Z. Iqbal, M. F. Azam, M. I. U. Lali, and M. Y. Javed, “Detection and
classification of citrus diseases in agriculture based on optimized weighted segmentation and feature
selection,” Computers and Electronics in Agriculture, vol. 150, pp. 220 – 234, 2018. [Online]. Available :
https://www.sciencedirect.com/science/article/pii/S0168169917306373

[5] PlantVillage. Plantvillage diseases classification challenge. [Online]. Available : https://www.crowdai.org/


challenges/plantvillage-disease-classification-challenge

[6] A. Krizhevsky, I. Sutskever, and G. E. Hinton, “Imagenet classification with deep convolutional neural
networks,” in Advances in Neural Information Processing Systems 25, F. Pereira, C. J. C. Burges,
L. Bottou, and K. Q. Weinberger, Eds. Curran Associates, Inc., 2012, pp. 1097–1105. [Online]. Available :
http://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf

25

Vous aimerez peut-être aussi