Logo Lanfrica

Bart92/desertification-mali

Domaine:

environment and energygeospatial

Type de record:

software
Créateur:
Bar
Hôte:
Desertification Change Detection in Mali using Siamese Networks # Desertification Detection in Mali using Siamese Networks ## Overview This project applies a standard Siamese Network (SN) to detect desertification in Mali using Sentinel-2 satellite imagery. The model is trained to identify land cover changes between 2020 and 2025, utilizing labeled image pairs. The primary goal is to showcase AI-based change detection capabilities within remote sensing as part of my portfolio. ## Installation ### Prerequisites Ensure you have Python (>=3.10) installed along with the necessary dependencies. ```bash # Clone the repository git clone github.com cd desertification-mali # Install the package and its dependencies pip install -e . ``` This will install the project in editable mode and automatically handle dependencies defined in `setup.py`. ## Usage ### Preprocessing First, you'll have to download Sentinel-2 images for a selected region and years (the model has been trained on 2020 & 2025 in an area around Nara, Mali, so if you're using one of my trained models and just want to do inference, you'll have to make sure you select a similar region). Run preprocessing with: ```bash python scripts/run_preprocessing.py ``` This is going to execute four steps: - It will merge the tiles you have selected together using nearest neighbour resampling - Calculate the NDVI, and store an RGB and NDVI image of both time stamps - Create 512x512 patches from the outputs - Augment the patches using flipping, rotating and active learning If you're training from scratch, you'll have to label a part of these 512x512 patches to train your model. ### Training the Model Train the Siamese Network with: ```bash python scripts/run_training.py --epochs 50 --batch_size 16 --num_trials 2 --use_multiprocessing ``` All of these parameters on the run_training.py script are optional. The training of this Siamese network is using random search for the setting the learning rate and the L2 regularization. I ch …