IDEAtlas, an ESA-funded project, aims to develop, implement, validate, and showcase advanced AI-based methods to automatically map and characterize the spatial extent of deprived urban areas (DUAs) (slums or informal settlements) using Earth Observation (EO) data. This initiative supports national and local governments, as well as civil society, in monitoring progress on SDG indicator 11.1.1, which focuses on the proportion of the urban population living in slums, informal settlements, or inadequate housing.
Adopting a user-centered approach, IDEAtlas engages various stakeholders—including local communities, national authorities, and international organizations—in the co-design and co-development of AI-based solutions. The project builds upon previous and ongoing efforts, collaborating with initiatives such as IDEAMAPS and SLUMAP. Developed algorithms are integrated into a cloud-based, end-to-end processing system, demonstrated across eight pilot cities.
IDEAtlas collaborates with early adopters in eight pilot cities across four continents:
- Mexico City, Mexico
- Medellín, Colombia
- Salvador, Brazil
- Buenos Aires, Argentina
- Lagos, Nigeria
- Nairobi, Kenya
- Mumbai, India
- Jakarta, Indonesia
We are currently expanding our reach and are already actively working in additional cities together with local partners, which includes:
- Tegucigalpa, Honduras
- Guatemala City, Guatemala
- Bissau, Guinea-Bissau
- Pereira, Colombia
- Rio de Janeiro, Brazil
- Kisumu, Kenya
- San Jose, Costa Rica
- Kigali, Rwanda
- Johannesburg, South Africa
- Juba, South Sudan
Further expansion is underway in additional urban centers, with active initiatives being launched in key cities across Latin America, Africa, and beyond to broaden our global impact.
Case Study Cities
The IDEAtlas team comprises experts from leading scientific and industrial organizations:
- University of Twente Faculty ITC: Specializing in geospatial sciences and Earth Observation.
- GeoVille: An industrial leader in geoinformatics and EO-based solutions. This partnership ensures a robust foundation for developing and implementing cost-effective EO solutions for monitoring informal settlements.
- Advisory Board: includes distinguished members from European Space Agency, United Nations Statistics Division, UN-Habitat and IDEAMAPS.
Through the invaluable contributions from our local Co-anchors, we have built "IDEABench," a comprehensive dataset that serves as the foundation for training and testing AI-based models. IDEABench is not a static benchmark dataset but a continuously improving dataset built considering the feedback of local communities collected through the User Portal. The quality and geographical diversity of data collected within each city are essential for training accurate AI models and obtaining a sound quantification of model uncertainties.
For each city, the input for the model was constructed from four data sources, as illustrated in Fig. 2 below:
- Sentinel 1 GRD images closest to the acquisition time of the S2 image.
- Cloud-free Sentinel 2 L2A images.
- A pre-computed built-up density (PBD) derived from Google Open Buildings, used as ancillary information.
- A reference label with three classes.
Input data to train the AI model
The benchmark dataset can be freely downloaded from Data Archiving and Networked Services (DANS) using the following link: https://doi.org/10.17026/PT/X4NJII
Working closely with local communities, local governments, and a range of (inter)national stakeholders, we co-designed an AI-driven strategy utilizing open Earth Observation (EO) and geospatial data to map DUAs in eight cities worldwide. We designed a tailored Multi-Branch Convolutional Neural Network (MB-CNN) architecture to fuse multi-modal data sources such as Sentinel 1 (S1), Sentinel 2 (S2), and pre-computed built-up density (PBD) for semantic segmentation of DUAs. The network consists of encoder and decoder blocks interconnected by skip connections to preserve fine-grained spatial information.
To enhance computational efficiency and reduce model complexity, we reduced the number of levels in both the encoder and decoder blocks and decreased the number of filters, resulting in a more lightweight and efficient model. We adopted an early fusion with feature adaptation approach, which has demonstrated stable performance compared to middle and late fusion techniques when combining multi-source inputs.
MB-CNN model architecture
Clone the repository:
git clone https://github.com/IDEAtlas/ai-dua-mapping.gitcd ai-dua-mappingOption 1: Using Conda
Install Anaconda by downloading it from https://repo.anaconda.com/archive/
Create the Environment
For CPU:
conda env create -f env/environment-cpu.yamlFor GPU:
conda env create -f env/environment-gpu.yamlActivate the environment:
conda activate ideatlasSet library paths to ensure graphics libraries are found (for GPU users only):
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATHOption 2: Using Docker
Build the image for CPU:
docker build -f env/Dockerfile-cpu.tf -t ideatlas .Or for GPU:
docker build -f env/Dockerfile-gpu.tf -t ideatlas .Run the container in detached mode:
docker run -dit --gpus all --name ideatlas -v $(pwd):/workspace ideatlasEnter the container:
docker exec -it ideatlas bashFor training and fine tuning tasks, users must provide local DUA reference data in vector format.
- Place the file inside data/raw/reference_data/ directory and named as follows: city_country_reference_year_version.fileformat
- If the user have a predefined area of extent (AOI) it should be placed under data/raw/aoi/ and named as follows: city_country_aoi_fileformat
Example for Nairobi, Kenya
- data/raw/reference_data/nairobi_kenya_reference_2024_v1.geojson
- data/raw/aoi/nairobi_kenya_aoi.geojson
All other required data (Sentinel 2 imagery, building footprints, population grids) are automatically downloaded and processed by the data preparation pipeline.
Note: For citeis with morethan one word use hyphen to separate the words. Eg. San-Jose, Costa-Rica
Train a new model on complete dataset:
python main.py --task train --city nairobi --country kenya --year 2025Fine-tune a pre-trained model:
# Using default global weights
python main.py --task finetune --city nairobi --country kenya --year 2025
# Using custom weights
python main.py --task finetune --city nairobi --country kenya --year 2025 --weights checkpoint/custom.h5Generate segmentation maps from trained model:
# Using city-specific weights
python main.py --task classify --city nairobi --country kenya --year 2025
# Using custom weights
python main.py --task classify --city nairobi --country kenya --year 2025 --weights checkpoint/custom.h5Compute SDG 11.1.1 statistics from classified rasters:
python main.py --task sdg_stats --city nairobi --country kenya --year 2025Optional: Modify config.yaml to configure model and training parameters such as architecture, hyperparameters, and data paths.
- Project Website: https://ideatlas.eu/
- User Portal: https://portal.ideatlas.eu/
- Email: ideatlas@utwente.nl



