27Kushal's picture
Update README.md
13dc73f verified
|
Raw History Blame Contribute Delete
2.09 kB
---
license: mit
tags:
- satellite-imagery
- semantic-segmentation
- change-detection
- pytorch
- mgnrega
- earth-observation
---
🔗 **[View the Full Project Source Code on GitHub](https://github.com/YuvrajC7/pixel_srishti/)**
---
# PIXEL-Srishti: Geospatial Auditing Models 🌍
This repository contains the core custom-trained vision models for **PIXEL-Srishti** (Jaldrishti).
These models are designed for Edge Inference (running locally on standard laptops) to audit MGNREGA projects, detect illegal construction, and track water body development without relying on high-bandwidth cloud APIs.
## Models Included
### 1. Land Cover Semantic Segmentation (`latest_seg_model.pth`)
* **Architecture:** DeepLabV3+ (with ResNet34 backbone and ASPP)
* **Dataset:** Trained on LandCover.ai
* **Purpose:** Classifies every pixel in a satellite image into 5 strict classes to identify exactly what is on the ground.
* **Classes:**
1. Background
2. Buildings (Infrastructure)
3. Woodlands (Vegetation)
4. Water Bodies (Ponds/Lakes)
5. Roads
### 2. Structural Change Detection (`latest_cd_model.pth`)
* **Architecture:** Siamese U-Net
* **Purpose:** Takes a "Before" and "After" satellite image (Optical or SAR) and extracts deep structural features to output a binary mask of exact terrain alterations.
* **Use Case:** Validating if a contractor actually dug a new pond or moved earth, while safely ignoring seasonal color changes or shadows.
## How to Use (Inference)
These weights are designed to be dynamically hot-swapped into VRAM by our custom Python Orchestrator to prevent Out-Of-Memory (OOM) errors on 8GB GPUs.
To run them in the PIXEL-Srishti backend, place both files into the `pixel_srishti_ml/checkpoints/` directory:
```python
import torch
# Load Siamese U-Net (Change Detection)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
checkpoint_cd = torch.load('checkpoints/latest_cd_model.pth', map_location=device)
# Load DeepLabV3+ (Segmentation)
checkpoint_seg = torch.load('checkpoints/latest_seg_model.pth', map_location=device)