Solar panel and boiler counting model for the Lacuna Solar Survey Challenge on Zindi. Built using InceptionV3, hybrid Albumentations + TorchVision augmentations, and trained with MAE loss. Final predictions made on satellite and drone imagery from Madagascar.
# ☀️ Lacuna Solar Survey Challenge - Solar Panel & Boiler Detection
## 🏆 Project Overview
This repository contains our solution for the Lacuna Solar Survey Challenge hosted on Zindi.
The goal was to build a robust machine learning model capable of accurately detecting and counting **solar panels** and **solar boilers** from **satellite and drone imagery** of Madagascar.
A scalable detection system like this can help:
- Governments
- NGOs
- Energy providers
...to better plan, monitor, and optimize renewable energy deployment across Africa.
---
## 📜 Competition Description
> Access to reliable and sustainable energy is a critical issue in Madagascar and across Africa, where a significant portion of the population lacks electricity or relies on costly, environmentally harmful energy sources. Solar energy presents a viable alternative, but mapping the distribution of solar panels and boilers is challenging over vast and remote areas.
Participants were challenged to:
- Detect and **count** the number of **solar panels** and **solar boilers** per image.
- Build scalable, efficient, and accurate machine learning solutions.
🏆 Winning solutions were announced at the **Global AI Summit for Africa**, held in **Kigali, Rwanda** in **April 2025**.
---
## 📂 Project Structure
├── GODS.ipynb # Main training and inference notebook ├── README.md # Project overview (this file)
## 🛠️ Approach
### 📦 Data Preprocessing
- Combined `title` and `content` columns into a unified `text` field.
- Filled missing values with empty strings.
- Mapped metadata fields (`placement`, `img_origin`) and created full image paths.
- Applied **Stratified K-Fold** (7 folds) cross-validation based on combined panel and boiler counts.
### 🎨 Data Augmentation
- **Albumentations** transformations:
- Resizing, flips, brightness/contrast adjustment, elastic/grid distortions, normalization.
- **Custom Torch transforms**:
- Random sharpness and random blur added for better generalization.
- **Combined …