École Nationale Supérieure d’Informatique et
d’Analyse des Systèmes (ENSIAS)
Projet Machine Learning
Classification de l’état de santé des
pommes de terre avec un régresseur
logistique
Encadré par :
Membres de l’équipe :
Mme Sanaa EL FKIHI
TAYOUBI Mohamed El Amine
Mr Mahmoud EL
LOUZI Souhail
HAMLAOUI
TEBBAA El Yazid
Mme Mounia ABIK
18 janvier 2025
Table des matières
Remerciements 3
Résumé 4
Abstract 5
Introduction 6
1 Jeu de données 7
1.1 Structure du jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Organisation des Données . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Répartition par classes de santé . . . . . . . . . . . . . . . . . . . 7
1.2.2 Format des images . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Distribution des Données . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4 Propriétés des Images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5 Compatibilité avec les modèles . . . . . . . . . . . . . . . . . . . . . . . . 9
2 Sélection des variables 10
2.1 Critères de sélection des caractéristiques . . . . . . . . . . . . . . . . . . 10
2.2 Liste des caractéristiques sélectionnées . . . . . . . . . . . . . . . . . . . 10
3 Visualisations 11
3.1 Histogrammes RGB par canal . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2 Diagrammes de dispersion (avec régression) . . . . . . . . . . . . . . . . 13
4 Modèle 14
4.1 Modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.1.1 Réglage de l’hyperparamètre de l’arbre . . . . . . . . . . . . . . . 14
4.2 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3 Prétraitement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5 Partie DevOps 17
5.1 Web App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.1 frontend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
5.1.2 backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2 Conteneurisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.1 Dockerfile du modèle . . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.2 Dockerfile du frontend . . . . . . . . . . . . . . . . . . . . . . . . 19
5.2.3 Dockerfile du backend . . . . . . . . . . . . . . . . . . . . . . . . 19
Conclusion 20
1 18 janvier 2025
Table des figures
1 Structure du jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Liste d’images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Canal RGB rouge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4 Canal RGB vert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5 Canal RGB bleu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
6 Relation entre Aspect Ratio et Entropy Variation Rhythm . . . . . . . . 13
7 Capture d’écran de l’application . . . . . . . . . . . . . . . . . . . . . . . 17
8 Image chargée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
9 Page des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2 18 janvier 2025
Remerciements
Nous tenons à exprimer notre profonde gratitude envers nos professeurs qui ont gran-
dement contribué à la réalisation de ce projet.
Tout d’abord, nous remercions chaleureusement Mme EL FKIHI pour son expertise
et son dévouement à nous enseigner les concepts fondamentaux et avancés du machine
learning. Ses conseils précieux nous ont permis de mieux comprendre les algorithmes
utilisés dans ce projet et d’optimiser nos modèles.
Nous souhaitons également remercier Mme ABIK, dont les cours et les retours construc-
tifs ont enrichi nos compétences en matière de visualisation de données. Grâce à ses en-
seignements, nous avons pu analyser et représenter efficacement les relations complexes
entre les variables dans ce projet.
Enfin, nous exprimons notre reconnaissance envers Mr EL HAMLAOUI pour nous
avoir initiés aux meilleures pratiques en matière de gestion de projet et d’intégration
continue. Son soutien a été essentiel pour structurer notre travail, automatiser les pro-
cessus, et assurer une exécution fluide et efficace de notre pipeline de données.
Ce projet est le reflet des connaissances et des compétences transmises par ces ensei-
gnants dévoués. Nous leur devons une grande part de notre réussite et espérons pouvoir
appliquer ces apprentissages dans nos futurs projets professionnels.
3 18 janvier 2025
Résumé
Ce projet explore l’utilisation de techniques de vision par ordinateur et d’analyse
statistique pour évaluer l’état sanitaire des feuilles de pomme de terre. En se basant sur
un ensemble de données d’images de feuilles classées en trois catégories (saines, atteintes
de mildiou précoce et atteintes de mildiou tardif), nous avons appliqué des méthodes
avancées de traitement d’image pour extraire des caractéristiques pertinentes.
Les variables clés retenues, comme le rythme de variation de l’entropie, la solidité, et le
rapport d’aspect, ont été soigneusement analysées. Les visualisations incluent des cartes
de corrélation, des graphiques de densité, des diagrammes en violon, et des scatter plots
avec régressions, justifiant les choix méthodologiques et identifiant des schémas entre les
catégories de santé. Des variables redondantes ou peu discriminantes ont été éliminées
pour optimiser l’analyse.
Le projet démontre comment l’extraction et l’interprétation de caractéristiques vi-
suelles permettent de différencier efficacement les états de santé des feuilles, contribuant
à l’amélioration des outils de diagnostic pour l’agriculture.
4 18 janvier 2025
Abstract
This project investigates the application of computer vision and statistical analysis
techniques to assess the health status of potato leaves. Using a dataset of leaf images
categorized into three health states (healthy, early blight, and late blight), advanced
image processing methods were employed to extract meaningful features.
Key variables, including entropy variation rhythm, solidity, and aspect ratio, were ana-
lyzed in depth. Visualizations such as correlation heatmaps, density plots, violin plots,
and scatter plots with regression lines were used to identify patterns and justify methodo-
logical choices. Redundant or non-discriminative variables were eliminated to streamline
the analysis.
The study demonstrates how visual feature extraction and interpretation can effecti-
vely differentiate leaf health states, contributing to the development of diagnostic tools
for agriculture and fostering better crop management practices.
5 18 janvier 2025
Introduction
L’agriculture moderne repose de plus en plus sur des outils technologiques avancés
pour surveiller la santé des cultures et anticiper les problèmes pouvant affecter les rende-
ments. Dans ce contexte, l’analyse des maladies des plantes à l’aide de méthodes basées
sur l’intelligence artificielle et la vision par ordinateur offre des perspectives prometteuses.
Ce projet s’inscrit dans cette démarche en explorant des techniques de traitement d’image
et d’analyse statistique pour évaluer la santé des feuilles de pomme de terre.
L’objectif principal est de distinguer entre différentes conditions sanitaires des feuilles
(saines, atteintes de mildiou précoce, ou de mildiou tardif) à partir de données visuelles.
Pour ce faire, nous avons utilisé un ensemble de données d’images issues de PlantVillage,
où chaque image est associée à une catégorie de santé. Le projet vise à identifier des
schémas distincts à travers des visualisations pertinentes et des analyses statistiques,
tout en justifiant les choix des variables et des méthodes.
Dans ce rapport, nous détaillons les étapes suivies, des prétraitements appliqués aux
images aux visualisations finales. Nous expliquons les décisions prises, comme le choix des
variables clés (par exemple, le rythme de variation de l’entropie, la solidité, le rapport
d’aspect) et la suppression d’autres variables jugées redondantes ou peu significatives.
De plus, nous discutons des méthodes utilisées pour représenter les relations entre ces
variables, comme les diagrammes en violon, les graphiques de distribution des densités,
et les cartes de corrélation.
Enfin, ce projet met en lumière l’importance de la visualisation dans l’exploration des
données et l’identification des tendances, tout en contribuant à des solutions pratiques
pour la gestion des maladies des plantes dans l’agriculture.
6 18 janvier 2025
1 Jeu de données
1.1 Structure du jeu de données
Le jeu de données utilisé dans ce projet provient de la PlantVillage Dataset, une
base de données publique et largement utilisée dans le domaine de la détection et de la
classification des maladies des plantes. Ce jeu de données a été sélectionné en raison de
sa pertinence pour notre projet et de sa structure bien adaptée aux besoins des modèles
d’apprentissage automatique.
1.2 Organisation des Données
Le jeu de données est structuré de manière hiérarchique, avec les caractéristiques
suivantes :
1.2.1 Répartition par classes de santé
Les images sont classées en trois catégories principales correspondant aux états de
santé des feuilles de pommes de terre :
Potato_healthy : Feuilles saines, représentant les plantes sans signes visibles de maladies.
Potato_Early_blight : Feuilles présentant des symptômes précoces de mildiou.
Potato_Late_blight : Feuilles affectées par le mildiou avancé.
Figure 1 – Structure du jeu de données
7 18 janvier 2025
1.2.2 Format des images
Chaque catégorie contient des images au format JPEG ou PNG, de haute qualité,
avec des résolutions variables.
Figure 2 – Liste d’images
8 18 janvier 2025
1.3 Distribution des Données
La répartition des données est équilibrée ou proche de l’équilibre entre les différentes
classes, ce qui est essentiel pour garantir une formation et une évaluation justes du modèle.
Une analyse préliminaire a permis de valider que :
— Chaque catégorie contient un nombre suffisant d’images pour permettre un entraî-
nement robuste et éviter les biais liés aux classes sous-représentées.
— Les données incluent des variations significatives en termes de luminosité, d’orien-
tation des feuilles et de conditions environnementales, renforçant ainsi la capacité
du modèle à généraliser.
1.4 Propriétés des Images
Les images présentent des caractéristiques essentielles permettant une bonne extrac-
tion des descripteurs (features), notamment :
Régularité visuelle :
Les images sont homogènes en termes de contexte, avec des feuilles bien mises en évidence
sur des arrière-plans généralement neutres.
Pertinence des caractéristiques visuelles :
Les textures des feuilles permettent une bonne analyse des descripteurs comme l’entropie
et les indices morphologiques (e.g., solidité, aspect ratio). Les couleurs présentes sont
essentielles pour l’extraction des indices spectraux (e.g., canaux RVB).
Qualité d’étiquetage :
Les classes sont correctement étiquetées, garantissant l’intégrité des données d’entraîne-
ment.
1.5 Compatibilité avec les modèles
Ce jeu de données est idéal pour les modèles d’apprentissage automatique appliqués
dans ce projet, pour les raisons suivantes :
Représentation équilibrée des classes : La distribution des données facilite une classifica-
tion efficace sans nécessiter d’ajustements significatifs tels que le suréchantillonnage ou
le sous-échantillonnage.
Adaptation aux descripteurs utilisés :
Les descripteurs choisis (e.g., HOG, entropie variationnelle, indices morphologiques) sont
bien adaptés aux propriétés visuelles et morphologiques des feuilles présentes dans les
images.
Taille suffisante :
Le volume de données est suffisant pour entraîner des modèles comme les SVM ou les ré-
gressions logistiques, tout en permettant une validation rigoureuse grâce à une répartition
en ensembles d’entraînement, de validation et de test.
9 18 janvier 2025
2 Sélection des variables
La sélection des caractéristiques est une étape cruciale dans le cadre de tout projet
d’apprentissage automatique. Elle détermine les informations essentielles qui seront uti-
lisées pour distinguer les états de santé des feuilles de pommes de terre. Dans ce projet,
le choix des caractéristiques repose sur des critères de pertinence, de robustesse et de
capacité à représenter les différences entre les classes. Voici les étapes et le raisonnement
ayant conduit à la sélection des caractéristiques finales :
2.1 Critères de sélection des caractéristiques
Les caractéristiques ont été choisies en fonction des critères suivants :
— Capacité discriminante : Les caractéristiques doivent capturer des différences si-
gnificatives entre les états de santé (sain, mildiou précoce et mildiou avancé).
— Stabilité et robustesse : Elles doivent être peu sensibles aux variations environne-
mentales (e.g., luminosité, angle de prise de vue).
— Facilité d’interprétation : Les caractéristiques doivent avoir une signification phy-
siologique ou morphologique claire dans le contexte de la santé des feuilles.
2.2 Liste des caractéristiques sélectionnées
Les caractéristiques retenues sont les suivantes :
— Convexity Ratio :
— Description : Mesure de la convexité de la région de la feuille. Elle est calculée
comme le ratio entre l’aire réelle de la feuille et celle de son enveloppe convexe.
— Justification : Une feuille malade présente souvent des bords irréguliers ou
déformés, ce qui impacte directement la convexité.
— Entropy Variation Rhythm :
— Description : Mesure de la distribution des niveaux de gris dans l’image, cal-
culée en utilisant l’entropie locale avec une pondération temporelle ou spatiale.
— Justification : Les zones affectées par des maladies présentent des textures et
des variations irrégulières, ce qui se traduit par une entropie plus élevée ou
fluctuante.
— Écart-type et Moyenne des Couleurs RGB :
— Description : Mesures statistiques des canaux rouge (R), vert (G) et bleu (B).
— Justification : Les maladies affectent la pigmentation de la feuille. Par exemple,
les zones chlorosées ou nécrosées modifient la moyenne et la dispersion des
couleurs.
— Histogram of Oriented Gradients (HOG) :
— Description : Descripteur basé sur l’orientation des gradients locaux, particu-
lièrement utile pour capturer les bords, textures et formes.
— Justification : Les gradients mettent en évidence les structures, telles que les
bords déformés ou les motifs visibles, caractéristiques des feuilles malades.
10 18 janvier 2025
3 Visualisations
Les visualisations jouent un rôle central dans l’analyse des données et la validation des
modèles dans ce projet. Elles permettent de comprendre les relations entre les variables
clés, d’identifier des tendances et de détecter des motifs cachés liés aux états de santé
des feuilles de pommes de terre. Toutes les visualisations ont été réalisées en utilisant
une palette cohérente : vert pour les feuilles saines, jaune pour celles atteintes de mildiou
précoce, et rouge pour celles atteintes de mildiou tardif. Cette distinction facilite la com-
paraison visuelle et l’interprétation des résultats.
3.1 Histogrammes RGB par canal
Les histogrammes RGB montrent la distribution moyenne des intensités pour les ca-
naux bleu, vert et rouge dans chaque état de santé.
Figure 3 – Canal RGB rouge
Le mildiou précoce présente des valeurs légèrement supérieures dans le rouge par
rapport aux feuilles saines, ce qui pourrait être lié à des signes de flétrissement.
11 18 janvier 2025
Figure 4 – Canal RGB vert
Les feuilles saines affichent une intensité moyenne plus élevée dans le canal vert, ce
qui correspond à leur apparence visuellement verte. Les feuilles atteintes de maladies
présentent des diminutions progressives en intensité, suggérant une dégradation de la
chlorophylle. Les feuilles saines (vert) et celles atteintes de mildiou tardif (rouge) pré-
Figure 5 – Canal RGB bleu
sentent des pics d’intensité similaires, mais les feuilles atteintes de mildiou précoce (jaune)
montrent une intensité plus élevée autour de 100, indiquant une dominance du bleu pour
cet état.
12 18 janvier 2025
3.2 Diagrammes de dispersion (avec régression)
Des diagrammes de dispersion ont été utilisés pour explorer les relations entre les
variables clés. Chaque diagramme est enrichi de lignes de tendance basées sur des régres-
sions. Les feuilles saines se concentrent autour d’un aspect ratio élevé, ce qui correspond
Figure 6 – Relation entre Aspect Ratio et Entropy Variation Rhythm
à leur forme homogène. Les feuilles atteintes de maladies montrent une dispersion plus
importante, signe de variations morphologiques dues à la dégradation.
13 18 janvier 2025
4 Modèle
4.1 Modèles
Le problème concerne la classification, nous avons donc décidé d’essayer quelques
approches classiques de classification :
— Arbre de décision
— SVM avec différents noyaux
— Régression logistique
4.1.1 Réglage de l’hyperparamètre de l’arbre
L’arbre de décision a besoin d’un hyperparamètre pour maximumd epthaf ind′ viterdegrandespertesde
Nous constatons ici que l’augmentation de la profondeur maximale de l’arbre de dé-
cision entraîne une diminution des performances. Nous avons opté pour une profondeur
maximale de 6.
4.2 Comparaison des modèles
Nous avons effectué un test sur différents modèles en utilisant une partie test-entraînement
de notre ensemble de données. Les modèles sont entraînés sur différents ensembles de ca-
ractéristiques, ils sont ensuite utilisés pour classer les feuilles à partir des données de
test. Les résultats corrects sont comptabilisés. Les résultats sont présentés dans la figure
suivante :
Parmi ces modèles, la régression logistique et deux autres modèles SVM sont les plus
performants. Cependant, il est important de noter que le coût de calcul des SVM est trop
élevé pour justifier leur utilisation par rapport à un modèle de régression, pour les gains
potentiels minimes qu’ils offrent.
4.3 Prétraitement
Pour les données entrantes que nous souhaitons classer, nous suivons les étapes sui-
vantes
14 18 janvier 2025
— Recadrer l’image
— débruitage de l’image à l’aide d’un filtre de moyennage
— puis nous appliquons une transformation morphologique pour l’agrandir
— Appliquer une convolution avec un noyau de gradient pour détecter les bords.
— Seuil de l’image résultante pour obtenir quelque chose comme ceci
— Trouver les composantes connectées et leurs boîtes englobantes
— Obtenir la boîte englobante de ces boîtes englobantes pour obtenir les limites
finales de l’image d’entrée
15 18 janvier 2025
- Recadrer l’image sur la base de la boîte englobante
— Appliquer CLAHE pour l’égalisation de l’histogramme
— Calculer les caractéristiques nécessaires
— Mettre le tout dans des cadres de données pour exécuter le modèle.
16 18 janvier 2025
5 Partie DevOps
5.1 Web App
5.1.1 frontend
Figure 7 – Capture d’écran de l’application
Comme le montre la capture d’écran précédente, l’application dispose d’une seule
partie principale. Celle-ci contient un champ pour l’upload de l’image, un bouton pour
l’envoyer au serveur, et un autre bouton pour accéder à la page des résultats.
17 18 janvier 2025
Figure 8 – Image chargée
Figure 9 – Page des résultats
Sur la page des résultats, il suffit de cliquer sur le bouton pour afficher le résultat de
la dernière image chargée.
18 18 janvier 2025
5.1.2 backend
Pour le backend, nous avons utilisé Go (Golang), car il est léger, rapide et facile à
utiliser. Pour la communication entre le frontend et le backend, nous avons opté pour
des appels d’API permettant d’envoyer les images, de les enregistrer dans des dossiers
spécifiques pour chaque image, puis de sauvegarder les résultats correspondants dans
des fichiers situés dans des dossiers distincts. Ces résultats sont ensuite renvoyés vers le
frontend.
Concernant le routage, nous avons utilisé Chi v5, un package de Go qui simplifie et
abstrait davantage les réponses des API, facilitant ainsi le développement.
5.2 Conteneurisation
Pour la conteneurisation, nous avons utilisé Docker et Docker Compose pour orchestrer
cette action.
Chaque partie majeure de l’application (backend, frontend, modèle) a été conteneuri-
sée individuellement dans une image distincte, ce qui facilite les modifications ultérieures.
5.2.1 Dockerfile du modèle
La Dockerfile du modèle installe les dépendances Python en se basant sur le fichier
[Link], généré automatiquement à l’aide de la commande :
pip freeze > [Link]
De plus, elle configure l’environnement Rust, nécessaire pour la partie segmentation.
5.2.2 Dockerfile du frontend
Pour la partie frontend, la Dockerfile installe les modules nécessaires, comme Svelte
et Axios, pour gérer les appels API.
5.2.3 Dockerfile du backend
La Dockerfile du backend installe Go et les modules utilisés, tels que Chi et Air.
L’ensemble de ces processus est automatisé grâce à Docker Compose, qui permet de
gérer et de coordonner le déploiement de toutes les parties de l’application.
19 18 janvier 2025
Conclusion
Ce projet a permis d’explorer des approches analytiques pour distinguer les différents
états de santé des feuilles de pommes de terre en utilisant des variables clés telles que le
convexity ratio, le rythme de variation de l’entropie et les histogrammes RGB. Ces élé-
ments ont été étudiés pour comprendre leur pertinence dans l’identification des maladies
végétales.
L’analyse des relations entre le ratio d’aspect et le rythme de variation de l’entropie a
mis en évidence des différences significatives entre les feuilles saines et les feuilles malades.
Les feuilles saines présentent une forme régulière et homogène, reflétée par des ratios
d’aspect constants et des variations d’entropie faibles. En revanche, les feuilles atteintes
de mildiou précoce et tardif révèlent des formes irrégulières et une texture plus dégradée,
traduites par des entropies plus variables.
Les histogrammes RGB, quant à eux, ont fourni des informations complémentaires sur
la distribution des couleurs dans les images. Les feuilles saines montrent une dominance
de tons verts, symboles d’une bonne santé, tandis que les feuilles malades affichent des
tons jaunes et rouges, caractéristiques des altérations provoquées par les maladies.
Ces résultats mettent en lumière la pertinence des variables étudiées pour différencier
les états de santé des feuilles. Bien que ces analyses soient limitées à quelques variables,
elles ouvrent des perspectives pour l’intégration de modèles d’apprentissage supervisé
afin de prédire automatiquement les états de santé à partir d’images. L’application de
ces méthodes pourrait contribuer à une gestion phytosanitaire plus précise et efficace,
essentielle pour une agriculture durable et productive.
20 18 janvier 2025