Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EUROSAT-ResNet101

Geo-AI Engine for ESG & Supply Chain Monitoring using ResNet-101 on EuroSAT

license language status framework accuracy

Built with:

Python PyTorch NumPy pandas scikitlearn Docker

Quick Links

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.

1. Business Problem: Opaque Supply Chains and ESG Pressure

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.

2. Enterprise Workflow

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"]
Loading

3. Technical Architecture


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)

4. Experiments & Evaluation

  • 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), and Residential (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 Pasture or Forest. Similarly, Highway (F1: 0.674) suffers from low recall (0.614), as it is frequently confused with River or surrounding AnnualCrop land. 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.

Dataset Preview

EuroSAT Dataset Sample images from the EuroSAT RGB dataset, covering diverse land use categories.

Confusion Matrix

Confusion Matrix The confusion matrix illustrates correct and misclassified predictions across all 10 EuroSAT classes. Most misclassifications occur between visually similar land types.

Sample Predictions

Predictions Examples of model predictions on unseen EuroSAT images. The model reliably identifies the majority of classes, with occasional confusion among similar vegetation types.

5. Business Value

  • 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.

6. Use Cases

  • 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.

7. Project Structure

└── 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

8. Getting Started

Dataset Download

The RGB version of EuroSAT dataset is available on Kaggle: EuroSAT RGB Dataset on Kaggle

Prerequisites

  • Python 3.8+
  • PyTorch 1.9+
  • CUDA-compatible GPU (recommended)
  • 8GB+ RAM

Installation

Clone the repository and install dependencies using uv:

git clone https://github.com/HarshilMaks/EuroSAT-ResNet101.git
cd EuroSAT-ResNet101
uv sync

Using Docker:

docker build -t eurosat-resnet101 .

Usage

Run the main application:

python src/main.py

Train the ResNet-101 model:

python src/train.py

Using Docker:

docker run -it --gpus all \
  -v "$(pwd)/data:/app/data" \
  -v "$(pwd)/artifacts:/app/artifacts" \
  -v "$(pwd)/assets:/app/assets" \
  eurosat-resnet101

Testing

Run tests to verify the setup:

pytest

9. Project Roadmap

  • 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

10. Contributing

Steps:

  1. Fork repo
  2. Clone locally
  3. Create feature branch
  4. Commit & push
  5. Open PR

11. License

This project is licensed under the Apache 2.0 License.

12. Acknowledgments

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.

About

A Geo-AI engine for automated ESG and supply chain monitoring. This project uses a ResNet-101 model, fine-tuned on the EuroSAT satellite dataset, to classify land use and detect environmental risks like deforestation, helping enterprises meet regulatory requirements and enhance transparency.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages