| --- |
| title: EuroSAT Field Scout |
| emoji: 🛰️ |
| colorFrom: green |
| colorTo: blue |
| sdk: gradio |
| sdk_version: 5.34.0 |
| python_version: 3.11 |
| app_file: app.py |
| pinned: false |
| license: mit |
| short_description: Local EuroSAT land-use classifier for map triage. |
| tags: |
| - gradio |
| - build-small-hackathon |
| - backyard-ai |
| - track:backyard |
| - small-models |
| - tiny-model |
| - computer-vision |
| - satellite-imagery |
| - pytorch |
| - eurosat |
| - local-first |
| - achievement:offgrid |
| - achievement:sharing |
| - achievement:fieldnotes |
| datasets: |
| - torchgeo/eurosat |
| --- |
| |
| <div align="center"> |
|
|
| # EuroSAT Field Scout |
|
|
| Small local-first land-use triage for satellite tiles. |
|
|
| **Try it:** [Live Space](https://huggingface.co/spaces/build-small-hackathon/EuroSATFieldScout) · [Demo video + social post](https://www.linkedin.com/posts/varfolomiy-yasenoviy-a0209a2a3_gradio-huggingface-hackaton-share-7471607916270080000-W9RZ/) · [Field notes](FIELD_NOTES.md) |
|
|
| </div> |
|
|
| --- |
|
|
| ## Judges Quick Read |
|
|
| - **Track:** Backyard AI |
| - **Model cap:** 2.49M-parameter PyTorch CNN, far below the 32B hackathon cap |
| - **Runtime:** Gradio Space on CPU |
| - **Off the Grid:** no cloud inference API; the app reconstructs local weights from `weights/simple_net_v1.part*` |
| - **Use case:** quick first-pass sorting of Sentinel-style land tiles for students, mapping volunteers, and geo demos |
|
|
| Upload a satellite or aerial land image and the app predicts the closest EuroSAT |
| land-use class: |
|
|
| - AnnualCrop |
| - Forest |
| - HerbaceousVegetation |
| - Highway |
| - Industrial |
| - Pasture |
| - PermanentCrop |
| - Residential |
| - River |
| - SeaLake |
|
|
| ## Demo |
|
|
| The short demo video is attached to the LinkedIn social post: |
|
|
| https://www.linkedin.com/posts/varfolomiy-yasenoviy-a0209a2a3_gradio-huggingface-hackaton-share-7471607916270080000-W9RZ/ |
| |
| ## Model |
| |
| `SimpleNet` is a lightweight convolutional neural network trained on EuroSAT. |
| The Space reconstructs the local weights from `weights/simple_net_v1.part*` and |
| runs inference on CPU. |
| |
| | Component | Details | |
| | --- | --- | |
| | Architecture | Four Conv-BN-ReLU-Pool blocks plus a dense classifier | |
| | Parameters | 2,492,170 | |
| | Input | RGB image resized to 64 x 64 | |
| | Output | 10 EuroSAT land-use classes | |
| | Inference | Local PyTorch CPU inference inside the Space | |
| |
| ## Build Notes |
| |
| The checkpoint originally existed as a pickled full model object. For a safer Space |
| deploy, it was converted to a plain PyTorch `state_dict` in `simple_net_v1.pth`. |
| That avoids PyTorch pickle compatibility issues and makes the app startup path |
| simple: instantiate `SimpleNet`, load weights, run inference. |
|
|
| For the hackathon Space upload, the state dict is stored as float16 tensors and |
| split into small `weights/simple_net_v1.part*` chunks so the submission can be |
| reviewed without Git LFS write permissions. The app rebuilds the bytes in memory |
| and casts floating tensors back to float32 before loading them into the model. |
|
|
| ## Badges |
|
|
| | Badge | Status | Why it fits | |
| | --- | --- | --- | |
| | Backyard AI | Submitted | Helps with a practical local mapping workflow | |
| | Off the Grid | Submitted | No hosted LLM or remote inference service | |
| | Sharing is Caring | Submitted | LinkedIn post and reusable Space source are public | |
| | Field Notes | Submitted | `FIELD_NOTES.md` documents the build and deployment choices | |
|
|
| ## Running Locally |
|
|
| ```bash |
| pip install -r requirements.txt |
| python app.py |
| ``` |
|
|
| ## Submission Links |
|
|
| | Item | Link | |
| | --- | --- | |
| | Live Space | https://huggingface.co/spaces/build-small-hackathon/EuroSATFieldScout | |
| | Demo video + social post | https://www.linkedin.com/posts/varfolomiy-yasenoviy-a0209a2a3_gradio-huggingface-hackaton-share-7471607916270080000-W9RZ/ | |
| | Field notes | [`FIELD_NOTES.md`](FIELD_NOTES.md) | |
| |