- 🚀 Aperçu du Projet
- 🍎🍌🍇 Problème de Classification
- 🎯 Objectif
- 🔄 Flux de Travail
- 📂 Récupérer les Données et Installer les Dépendances
- 📚⚙️ Paramètres Généraux du Training
- 🛠️ Fonctions Utiles
- 🍎🍌🍇 Chargement des Données et Visualisation des Fruits
- 📈 Data Augmentation et Visualisation des Fruits Augmentés
- 🏛️ Architecture des Modèles
- 🚀📊 Train, Plot, and Evaluate the Models
- 🏅 Évaluation des Modèles et Benchmarking
- 🎉 Conclusion
- 📜 Références et Ressources Utiles
- 📧 Contact
Le but de ce projet est de développer et d'évaluer plusieurs modèles d'intelligence artificielle capables de classifier des images de fruits. Les images utilisées dans ce projet sont de taille 100x100 pixels. Nous cherchons à entraîner des modèles qui peuvent reconnaître et classer différents types de fruits, tels que des pommes, des bananes, etc.
Dans ce projet, nous visons à entraîner et évaluer quatre modèles différents pour la classification d'images. Les modèles avec lesquels nous travaillons incluent :
- Modèle CNN Personnalisé 🛠️
- EfficientNet ⚡
- ResNet 🕸️
- VGG16 🏛️
-
Chargement et Prétraitement des Données 📂
- Chargement du jeu de données et division en ensembles d'entraînement et de validation.
- Utilisation de techniques d'augmentation de données.
-
Création et Compilation des Modèles 🛠️
- Définition et compilation des modèles avec des fonctions de perte et optimiseurs adaptés.
-
Entraînement des Modèles 🏋️♂️
- Surveillance des performances pour éviter le surapprentissage.
-
Évaluation des Modèles 🧪
- Calcul de métriques : Accuracy, AUC, précision, rappel, F1, temps d'inférence.
-
Visualisation 📊
- Génération de graphiques et matrices de confusion pour évaluer les résultats.
-
Benchmarking 🏅
- Comparaison des modèles via une métrique pondérée personnalisée.
-
Gestion des Artéfacts 💾
- Sauvegarde des modèles, graphiques et journaux.
-
Cloner le dépôt GitHub contenant les données :
Lien des données 🍎🍌🍇Les données téléchargées sont divisées en deux dossiers :
Training
etTest
.-
Le dossier
Training
contient 70,491 images. Nous appliquerons de la data augmentation pour obtenir un total de 422,946 images. Ces images seront ensuite divisées en deux ensembles : -
train_ds
: 317,209 images (75%) -
val_ds
: 105,737 images (25%) -
Le dossier
Test
contient 23,619 images qui seront utilisées pour évaluer les modèles.
Le dataset est composé d'images de 141 classes de fruits.
data/ ├── Training/ (70,491 images) │ ├── Augmented/(422,946 images) │ │ ├── train_ds/(317,209 images - 75%) │ │ └── val_ds/(105,737 images - 25%) └── Test/ (23,619 images)
-
-
Installer les dépendances :
- Installation des bibliothèques nécessaires à l’entraînement.
- image_size : 100x100 pixels
- batch_size : 128
- epochs : 10
- patience : 2
-
Chargement et Augmentation des Données 📂🔄
load_data()
: Divise les données en ensembles d'entraînement et de validation.data_augmentation()
: Applique des augmentations.
-
Création et Compilation des Modèles 🛠️
create_cnn_model()
,create_resnet_model()
,create_efficientnet_model()
,create_vgg16_model()
.
-
Entraînement et Évaluation 🏋️♂️🧪
train_model()
,evaluate_model()
,plot_training_history()
,plot_confusion_matrix()
.
-
Gestion des Artéfacts 💾
zip_directory()
: Compresse un répertoire.
Visualisez une grille d'images issues du dataset pour vérifier leur intégrité :
L'augmentation inclut la rotation, le flip et l’ajustement de contraste :
- Train the Models 🏋️♂️
- Plot the Training History 📈
- Evaluate the Models 🧪
-
Chargement des Modèles 📥 :
- Les modèles sont testés sur des données jamais vues.
-
Calcul des Métriques 📊 :
-
Benchmarking 🏆 :
- Calcul d'une métrique pondérée pour sélectionner le modèle optimal.
Métrique | Coefficient |
---|---|
Accuracy 🎯 | 0.4 |
AUC 📈 | 0.1 |
Précision 🧮 | 0.1 |
Rappel 🔍 | 0.1 |
F1 🏆 | 0.1 |
Temps d'inférence moyen ⏱️ | 0.2 |
Modèle | Accuracy 🎯 | AUC 📈 | Précision 🧮 | Rappel 🔍 | F1 🏆 | Temps d'inférence moyen ⏱️ | Score final 🏅 |
---|---|---|---|---|---|---|---|
CNN | 0.985317 | 0.999915 | 0.988543 | 0.985317 | 0.984813 | 1.000000 | 0.989986 |
ResNet | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 1.000000 | 0.185564 | 0.837113 |
VGG16 | 0.974489 | 0.999853 | 0.977447 | 0.974489 | 0.973609 | 0.065214 | 0.795378 |
EfficientNet | 0.954392 | 0.999682 | 0.965315 | 0.954392 | 0.954058 | 0.044032 | 0.777908 |
Le projet se termine par la sélection du modèle le plus performant. Le modèle choisi sera recommandé pour des tâches futures de classification d'images.
- Albumentations : Documentation
- Keras Callbacks : ModelCheckpoint
- ResNet et Fine-Tuning : Article de référence
- EfficientNet : Article de recherche
- Introduction aux métriques ML : Guide Sklearn
Pour toute question ou suggestion, veuillez contacter Abraham KOLOBOE à l'adresse email abklb27@gmail.com.
Merci pour votre attention ! 😊