Skip to content

Détection de zones brûlées sur images satellites

Burned Zones Banner

Présentation du projet

Ce projet a pour objectif de développer un modèle de détection d’objets capable d’identifier et de localiser des zones brûlées sur des images satellites.

L’idée est de détecter automatiquement les zones potentiellement touchées par un incendie à partir d’images annotées afin de :

  • suivre l’évolution des incendies,
  • faciliter l’analyse post-incendie,
  • contribuer à la prévention,
  • explorer un cas concret d’usage de la vision par ordinateur.

Entrée / Sortie

Entrée

  • Images satellites

Sortie attendue

  • Bounding boxes autour des zones brûlées détectées

Objectif technique

Ce projet relève de la vision par ordinateur et plus précisément de la détection d’objets.

Contrairement à une simple classification, le modèle doit également localiser précisément les zones brûlées dans l’image.


Structure du projet

.
├── data/
│   ├── _annotations.coco.json
│   ├── clean_annotations.coco.json
│   └── images/
│
├── data_prepared/
│   ├── train/
│   │   ├── images/
│   │   └── labels/
│   ├── val/
│   │   ├── images/
│   │   └── labels/
│   ├── test/
│   │   ├── images/
│   │   └── labels/
│   └── data.yaml
│
├── prepare_data/
│   ├── data_loader.py
│   ├── data_explorer.py
│   └── data_cleaner.py
│
├── evaluation/
│   ├── comparaisons_models.md
│   └── metrics_analysis.md
│
├── pipeline.py
├── data_preparation.py
├── train.py
├── train_mlflow.py
├── mlflow.db
└── README.md

Dataset

Le dataset contient : - des images satellites, - un fichier d’annotations au format COCO JSON.

Les annotations permettent de localiser les zones brûlées via des bounding boxes.


Nettoyage des données

Étapes réalisées :

  • lecture du fichier COCO,
  • vérification des images et annotations,
  • suppression des images sans annotation,
  • correction des bounding boxes invalides,
  • génération d’un dataset propre,
  • conversion au format YOLO.

Fichier généré :

data/clean_annotations.coco.json

Préparation YOLO

Le dataset est converti au format YOLO :

classe x_center y_center width height

Le dataset est séparé en : - train - validation - test


Modèles utilisés

YOLOv8n

Version légère et rapide.

YOLOv8s

Version plus robuste avec de meilleures performances.


Suivi MLflow

MLflow est utilisé pour : - suivre les expériences, - comparer les essais, - enregistrer les hyperparamètres, - sauvegarder les métriques et artefacts.

Artefacts suivis : - results.csv - results.png - confusion_matrix.png - best.pt - last.pt


Métriques d’évaluation

  • Precision
  • Recall
  • IoU
  • mAP50
  • mAP50-95

Technologies utilisées

  • Python
  • YOLOv8
  • Ultralytics
  • OpenCV
  • NumPy
  • Pandas
  • MLflow
  • Matplotlib

Lancer le pipeline

Nettoyage des données

python pipeline.py

Préparation du dataset YOLO

python data_preparation.py

Entraînement simple

python train.py

Entraînement avec MLflow

python train_mlflow.py

Interface MLflow

mlflow ui --backend-store-uri sqlite:///mlflow.db

Puis ouvrir :

http://127.0.0.1:5000

Conclusion

Ce projet couvre une chaîne complète de vision par ordinateur :

  • nettoyage des données,
  • préparation YOLO,
  • entraînement de modèles,
  • évaluation des performances,
  • suivi expérimental avec MLflow.

Le projet montre également l’importance de la qualité des données dans les performances finales d’un modèle de détection.

Liens


Auteur

Ahmad Abo-Alola — Student Project (AI Developer Training)