poubelle-v2 / README.md
MouhammadYadex's picture
Upload 25 files
aedd96f verified

🚮 Trash Full Detection

Projet académique Master 2 SI / IA
Détection et classification de poubelles pleines / vides avec YOLO uniquement


📖 Résumé du projet

Ce projet utilise exclusivement YOLO (YOLOv8 ou YOLOv9) pour détecter si une poubelle est pleine ou non. Il couvre :

  • Détection d'objets (bounding boxes) avec YOLO
  • Classification (pleine / pas pleine) avec YOLO-Classification
  • Inférence sur images et vidéos
  • Export de modèles (.pt et .onnx)
  • Pipeline complet d'entraînement, évaluation, visualisation et déploiement

Exigence du professeur : utiliser uniquement YOLO pour toutes les tâches, sans recourir à d'autres architectures (ResNet, EfficientNet, CNN classiques, etc.).


📁 Structure du projet

trash_full_detection/
│
├── 1_yolo_detection_training.ipynb     # Notebook d'entraînement complet
├── 2_yolo_inference_app.ipynb          # Notebook d'inférence (image/vidéo)
├── models/
│   └── yolo/
│       ├── best.pt                      # Modèle entraîné PyTorch
│       ├── best.onnx                    # Modèle exporté ONNX
│       └── logs/                        # Logs d'entraînement
├── outputs/
│   ├── images/                          # Images annotées
│   ├── video/                           # Vidéos annotées
│   └── metrics/                         # Métriques et graphes
├── README.md                            # Ce fichier
└── requirements.txt                     # Dépendances Python

🚀 Comment exécuter le projet

Prérequis

  • Python 3.8+
  • GPU recommandé (CUDA) pour entraînement
  • Google Colab (gratuit) ou environnement local avec PyTorch

Installation

pip install -r requirements.txt

1. Entraînement

Ouvrir 1_yolo_detection_training.ipynb dans Google Colab ou Jupyter :

  1. Installer les dépendances (première cellule)
  2. Télécharger le dataset Roboflow (code fourni dans le notebook)
  3. Entraîner YOLO détection (section 5)
  4. Entraîner YOLO classification (section 6, optionnel)
  5. Visualiser métriques (loss, mAP, confusion matrix)
  6. Exporter les modèles (.pt et .onnx)

Les modèles entraînés seront sauvegardés dans models/yolo/.

2. Inférence

Ouvrir 2_yolo_inference_app.ipynb :

  1. Charger les modèles entraînés
  2. Uploader une image et voir la détection annotée
  3. Uploader une vidéo et générer une vidéo annotée avec overlay
  4. Télécharger les résultats (images, vidéos, modèles)

3. Déploiement

Voir section 6 de 2_yolo_inference_app.ipynb pour :

  • Application web (FastAPI exemple fourni)
  • Mobile (conversion TFLite)
  • Raspberry Pi (installation et inférence temps réel)

📊 Métriques et résultats

Après entraînement, les métriques suivantes sont disponibles :

  • mAP50 et mAP50-95 (mean Average Precision)
  • Precision et Recall
  • F1-score
  • Confusion matrix
  • Courbes de loss (box_loss, cls_loss)

Exemples de visualisations dans outputs/metrics/.


🎓 Notions académiques couvertes

  • IoU (Intersection over Union)
  • mAP (mean Average Precision)
  • Precision, Recall, F1-score
  • Architecture YOLO (Backbone, Neck, Head)
  • Comparaison détection vs classification

Détails dans 1_yolo_detection_training.ipynb (section 1).


📦 Export des modèles

Les modèles sont exportés en deux formats :

  • PyTorch (.pt) : pour entraînement supplémentaire, fine-tuning
  • ONNX (.onnx) : pour déploiement cross-platform (TensorRT, OpenVINO, ONNX Runtime)

Commande d'export (dans notebook 1, section 10) :

model.export(format='onnx')

🖼️ Captures d'écran

(À ajouter après exécution : images annotées, courbes de métriques, vidéo annotée)

Exemple détection Courbes de loss


📚 Références


👤 Auteurs

Projet réalisé dans le cadre du Master 2 Systèmes Intelligents / Intelligence Artificielle.


📝 Licence

Ce projet est à usage académique uniquement.