Académique Documents
Professionnel Documents
Culture Documents
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
2
Table des figures
3
PFA SDBD
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
• 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.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.1 Définitions
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.
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.
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.
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.1 Définitions
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 :
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.
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.
• 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
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.
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.
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
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.
Le pooling permet de gros gains en puissance de calcul, en raison de réduction agressive de taille de la
représentation.
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.
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) :
(a) (b)
Figure 2.8 – Images avant et après filtre de Sobel :a) avant, b)aprés
— Moyenne :
µ[C] = Σ255
l=0 l.P (l, C)
— Variance :
σ 2 [C] = Σ255 2
l=0 (l − µ) .P (l, C)
s[C] = Σ255 3
l=0 (l − µ) .P (l, C)/σ
3/2
13
PFA SDBD
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
+ 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.
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 )
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 :
15
PFA SDBD
+ 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.
+ 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 :
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.
18
PFA SDBD
10 97
Anthracnose Greening
12 18
Black Spot
Leprosis
55
12
Cancker
Melanose
17 90
Table 3.1 – Le nom et le nombre des images pour chaque type de maladie
19
PFA SDBD
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.
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.
20
PFA SDBD
• Première couche :
— Le nombre de filtres - 96
— la taille de filtres - 11 x 11 x 3
— le pas - 4
• deuxième couche :
— La 2ème couche est une couche de max pooling suivi d’une couche de convolution
— 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
• les couches 7-ème et 8-ème ont les mèmes configurations que la 6-ème couches.
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
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)
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
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.
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.
24
Bibliographie
[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
[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