Tous les Projets
Vision par Ordinateur

Classification des Maladies des Plantes

Benchmark PlantVillage à 15 classes. MobileNetV2 meilleur individuel : 92,86%. Ensemble (MobileNetV2+EfficientNetB3+ResNet50) test : 83,43%. Déséquilibre 42,5×. Correction d'un bug de réinitialisation du générateur qui causait l'effondrement de l'ensemble.

92.86%
MobileNetV2 Val Acc
83.43%
Ensemble Test Acc
87.72%
ResNet50 Val Acc
70.01%
SimpleCNN Val Acc
Jeu de Données

PlantVillage : ~55K images, 15 classes, déséquilibre 42,5×

Approche

TL en 2 phases (préchauffage + fine-tuning) → ensemble doux avec perte pondérée par classe

Stack Technique
PythonTensorFlow 2.19MobileNetV2EfficientNetB3ResNet50Keras
Mots-clés
MobileNetV2EfficientNetB3ResNet50EnsembleAgricultureTransfer Learning
Visualisations6 Graphiques
Analyse Approfondie

Détection de maladies végétales sur PlantVillage — 15 classes de maladies sur poivrons et plants de pommes de terre.

Jeu de données

  • ~55 000 images, 15 classes, découpage 80/10/10 entraînement/validation/test
  • Déséquilibre de classes : 42,5× (Tomato_YellowLeafCurlVirus vs Potato_healthy)
  • Stratégie : poids de classes + label smoothing 0,1

Les 6 Modèles

ModèlePrécision Val
SimpleCNN70,01%
DeepCNN + BatchNorm78,41%
EfficientNetB3 (TL 2 phases)79,93%
ResNet50 (TL 2 phases)87,72%
MobileNetV2 (TL 2 phases)92,86%
Ensemble (3 TL moy.)82,40% val / 83,43% test

Transfer Learning en 2 Phases

  1. Préchauffage (8 époques) : backbone gelé
  2. Fine-tuning (3 époques) : CosineDecayRestarts LR, précision mixte float16

Bug Corrigé : Réinitialisation du Générateur L'ensemble s'est effondré à ~7% de précision parce que les générateurs n'étaient pas réinitialisés entre les passes d'inférence. Correction : réinitialiser les générateurs avant chaque appel predict().

Pourquoi l'Ensemble < MobileNetV2 ? La moyenne douce de MobileNetV2 (92,86%) avec EfficientNetB3 (79,93%) dilue les prédictions supérieures. L'ensemble offre une meilleure généralisation test (83,43%) mais une précision val plus faible.