Geo-AI Engine for ESG & Supply Chain Monitoring using ResNet-101 on EuroSAT
Built with:
- 1. Business Problem: Opaque Supply Chains and ESG Pressure
- 2. Enterprise Workflow
- 3. Technical Architecture
- 4. Experiments & Evaluation
- 5. Business Value
- 6. Use Cases
- 7. Project Structure
- 8. Getting Started
- 9. Project Roadmap
- 10. Contributing
- 11. License
- 12. Acknowledgments
Current Status: ✅ ResNet-101 model training & evaluation pipeline is fully functional. The backend API layer (
/backend) is not yet implemented but will be added in future iterations. See Project Roadmap for upcoming features.
Enterprises today operate in a landscape of growing environmental and regulatory risk:
- Regulatory Compliance — Regulations such as the EU Deforestation Regulation require proof that imports (soy, palm oil, coffee, etc.) are not linked to deforestation.
- Investor Scrutiny — Investors use ESG metrics to evaluate long-term risk. A lack of transparency can impact valuation and funding access.
- Operational Blind Spots — Companies lack scalable monitoring for upstream risks (e.g., floods, fires, illegal land use), leading to costly disruptions.
Manual monitoring is not scalable. This project demonstrates a Geo-AI engine that enables automated, large-scale environmental intelligence.
View Enterprise Workflow (Mermaid Diagram)
graph TD
A["1. Define AOIs (GeoJSON/KML)"] --> B{"2. Automated Satellite Data Ingestion"}
B -->|"Sentinel-2, Planet, etc."| C["3. Core Analysis: Geo-AI Engine"]
C -->|"Classifies Land Use"| D["4. Automated Change Detection"]
D -->|"Compare Current vs Historical"| E{"5. Significant Change?"}
E -->|"Yes (>1% Deforestation)"| F["6a. Trigger Real-Time Alert"]
E -->|"No"| G["6b. Log for Audit"]
F --> H["Risk Dashboard"]
G --> I["Compliance & ESG Reports"]
ResNet-101 Architecture - Deep Residual Learning for Image Recognition
- Model: ResNet-101 (custom implementation from scratch, inspired by Microsoft's ResNet-101).
- Architecture: 101-layer deep residual network with bottleneck blocks and skip connections.
- Dataset: EuroSAT (27k labeled images across 10 classes).
- Pipeline:
- Data ingestion (Sentinel-2)
- Preprocessing (resizing, normalization)
- Augmentation (random crops, flips, rotations)
- Training (PyTorch from scratch implementation)
- Evaluation (confusion matrix, accuracy, F1-score)
-
Training Setup:
- Optimizer: AdamW
- Batch Size: 32
- Total Epochs: 50 (15 + 20 + 15 in 3 phases)
- Architecture: ResNet-101 with custom classifier (dropout=0.3, hidden_size=1024)
-
Results:
- Overall Accuracy: 82.35%
- Weighted Avg F1-Score: 0.820
- Model Size: ~44.6M parameters (fully trainable in the final phase)
-
Analysis: The model achieves a solid 82.35% overall accuracy and a weighted F1-score of 0.820. Performance is exceptionally strong for classes with distinct visual features, such as
SeaLake(F1: 0.956),Industrial(F1: 0.932), andResidential(F1: 0.924), all of which benefit from high precision and recall.The primary challenge lies in distinguishing between spectrally similar classes. For instance, HerbaceousVegetation has a low F1-score (0.689) driven by poor recall (0.579), indicating the model often misclassifies it as other vegetation types like
PastureorForest. Similarly, Highway (F1: 0.674) suffers from low recall (0.614), as it is frequently confused withRiveror surroundingAnnualCropland. These results highlight opportunities for improvement, such as targeted data augmentation or employing attention mechanisms to help the model focus on more subtle distinguishing features.
Sample images from the EuroSAT RGB dataset, covering diverse land use categories.
The confusion matrix illustrates correct and misclassified predictions across all 10 EuroSAT classes. Most misclassifications occur between visually similar land types.
Examples of model predictions on unseen EuroSAT images. The model reliably identifies the majority of classes, with occasional confusion among similar vegetation types.
- Automated ESG Insights — Verifiable land-use classification for supply chain monitoring.
- Early Risk Detection — Timely alerts for deforestation, flooding, or encroachment.
- Scalable Monitoring — Wide geographic coverage with minimal manual effort.
- Reliable Analysis — ~82% accuracy provides actionable intelligence for decision support.
- Deforestation detection in palm oil or coffee supply chains.
- Flood monitoring for insurers and governments.
- ESG risk analysis for investment funds.
- Urban sprawl detection for smart city planning.
- Agricultural land classification for yield prediction.
- Multi-temporal change detection using deep residual features.
└── EuroSAT-ResNet101/
├── Dockerfile
├── LICENSE
├── README.md
├── Makefile
├── requirements.txt
├── notebooks/
│ └── exploration.ipynb
├── assets/
│ └── Images/
├── backend/
│ ├── app/
│ │ ├── __init__.py
│ │ ├── main.py
│ │ ├── core/
│ │ │ ├── __init__.py
│ │ │ └── config.py
│ │ ├── routes/
│ │ │ └── __init__.py
│ │ └── utils/
│ │ ├── __init__.py
│ │ └── helpers.py
└── src/
├── __init__.py
├── main.py
├── data/
│ ├── __init__.py
│ ├── dataset.py
│ └── preprocess.py
├── models/
│ ├── __init__.py
│ └── model.py
├── training/
│ ├── __init__.py
│ └── train.py
├── evaluation/
│ ├── __init__.py
│ ├── eval.py
│ └── visualize.py
└── utils/
├── __init__.py
└── helpers.py
The RGB version of EuroSAT dataset is available on Kaggle: EuroSAT RGB Dataset on Kaggle
- Python 3.8+
- PyTorch 1.9+
- CUDA-compatible GPU (recommended)
- 8GB+ RAM
Clone the repository and install dependencies using uv:
git clone https://github.com/HarshilMaks/EuroSAT-ResNet101.git
cd EuroSAT-ResNet101
uv syncUsing Docker:
docker build -t eurosat-resnet101 .Run the main application:
python src/main.pyTrain the ResNet-101 model:
python src/train.pyUsing Docker:
docker run -it --gpus all \
-v "$(pwd)/data:/app/data" \
-v "$(pwd)/artifacts:/app/artifacts" \
-v "$(pwd)/assets:/app/assets" \
eurosat-resnet101Run tests to verify the setup:
pytest- Data ingestion pipeline
- ResNet-101 from scratch implementation
- Training & evaluation pipeline
- Multi-temporal change detection with ResNet-101
- Real-time inference API (FastAPI backend)
- Dashboard integration for ESG reporting
- Model optimization and quantization
- Transfer learning experiments
Steps:
- Fork repo
- Clone locally
- Create feature branch
- Commit & push
- Open PR
This project is licensed under the Apache 2.0 License.
- EuroSAT Dataset
- Microsoft ResNet-101 for architectural inspiration
- PyTorch team for the deep learning framework
- Sentinel-2 open satellite data
This work builds upon:
P. Helber, B. Bischke, A. Dengel, D. Borth, "EuroSAT: A Novel Dataset and Deep Learning Benchmark for Land Use and Land Cover Classification," IEEE JSTARS, vol. 12, no. 7, pp. 2217-2226, July 2019.
K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," CVPR, 2016.
O. Adedeji, P. Owoade, O. Ajayi, O. Arowolo, "Image Augmentation for Satellite Images," arXiv:2207.14580, 2022.