Stateful Cross-Session Injection: Attacks, Detection, and Session-Boundary Defenses
A research project that studies how prompt injections persist across agent sessions — building a stateful evaluation harness that measures...
Build a land-cover classifier for Sentinel-2 satellite image patches from the EuroSAT dataset — a transfer-learning remote-sensing project that turns orbital pixels into a browsable, confidence-aware land-cover explorer.

A remote-sensing project that classifies Sentinel-2 satellite image patches into land-cover categories — forests, rivers, farmland, urban areas, and more — using a fine-tuned convolutional neural network trained on the EuroSAT dataset. The finished project is an explorer: select or upload a satellite patch, get a predicted land-cover class with a confidence score, and browse per-class results and misclassifications to understand where the model struggles. The workflow is the classic image-classification pipeline — dataset inspection, preprocessing, splitting, augmentation, transfer learning, evaluation — applied to orbital imagery instead of ground-level photos.
>A learning classifier, not a land survey. A model output is a statistical guess based on the patches it was trained on; it can be wrong, and it should never be treated as an authoritative land-use survey, a land-registry record, or a policy input. This project classifies pixels for study and exploration — it does not certify land use, detect legal changes, or support enforcement decisions.
Land-cover information — where the forests, croplands, water bodies, and built-up areas are — underpins environmental monitoring, urban planning, and climate research. But the standard path to producing it runs through expensive GIS software, specialist imagery licences, and workflows that assume you already know the domain. Meanwhile, the European Union’s Copernicus programme publishes Sentinel-2 satellite imagery openly and for free, and the EuroSAT dataset packages thousands of labeled patches from it. What’s missing is a buildable bridge: a project that takes a learner from “Sentinel-2 patches exist” to “I trained a classifier, I know its per-class strengths and weaknesses, and I can explore its predictions patch by patch.” That bridge teaches both computer vision and the remote-sensing habit of questioning what an orbital sensor can actually resolve.
The project follows a staged pipeline. Each stage has a clear input, a clear output, and a reason to exist — resist the urge to jump straight to model training, because remote-sensing data has quirks (spectral bands, atmospheric effects, geographic bias) that punish skipping steps.
EuroSAT packages Sentinel-2 image patches covering 13 spectral bands in 10 land-cover classes (such as AnnualCrop, Forest, HerbaceousVegetation, Highway, Industrial, Pasture, PermanentCrop, Residential, River, and SeaLake), with an RGB version for quick starts and a multispectral version for the full experience. Download the version you want to support, then inspect before modeling: class counts, image statistics per band, per-class examples in a contact sheet, and pixel-value distributions. Inspection is where you notice that classes are not perfectly balanced and that some classes (River vs SeaLake, AnnualCrop vs Pasture) are visually and spectrally closer than others — which is exactly where your confusion matrix will light up later.
Normalize pixel values per band (record the training-set statistics and reuse them everywhere). Decide your band strategy early: the RGB subset keeps the pipeline beginner-friendly, while selected multispectral bands (for example adding the near-infrared band, which separates vegetation from look-alikes far better than visible light) teach the genuinely remote-sensing lesson that spectral bands carry the signal. Split the data into train/validation/test partitions with a fixed random seed, checking that every class is represented proportionally in each partition. For an added stretch, split by geographic neighborhood rather than pure random — it is a harder, more honest test of generalization.
Standard augmentations (flips, 90°/180°/270° rotations) are physically valid for top-down satellite patches: a forest rotated 90° is still a forest. Color-space jitter, by contrast, can distort the spectral signal that distinguishes classes, so treat it cautiously and document what you applied. Augmentation should enlarge the effective training set, not fabricate spectral relationships that do not exist.
Start with a small CNN trained from scratch on your normalized patches. This baseline calibrates your expectations and usually already performs surprisingly well on the RGB subset — which is itself a finding worth reporting. Then fine-tune a pre-trained backbone (ResNet-family or EfficientNet-family models are the usual choices) for the comparison. Adapting a backbone pre-trained on ground-level photos to top-down orbital imagery is a small but real domain shift, and observing how much (or how little) fine-tuning helps is one of the project’s best teaching moments.
Report per-class precision, recall, and F1 — not just overall accuracy — plus a confusion matrix. In EuroSAT-style data the interesting failures are systematic: rivers confused with lakes, annual crops confused with pastures, highways confused with industrial areas. A confusion matrix turns those failures into a map of what the sensor and the model cannot separate, which is far more valuable than a single accuracy number. Never publish an accuracy claim you have not measured yourself on your own test split.
For a new patch, output the predicted class plus a confidence score (the model’s softmax probability for the top class, ideally calibrated). Present low-confidence predictions as what they are: a signal that the patch is near a class boundary or unlike anything the model trained on. Confidence display is the honesty layer that keeps this an exploration tool rather than an oracle.
The deliverable that makes this a project and not a notebook: a small application (a Streamlit app is enough) where a user selects or uploads a patch, sees the prediction, confidence, and the top-3 classes, and can browse a gallery of misclassified patches per class. The explorer is also your best debugging tool — misclassification galleries expose data problems that metrics alone hide.
A minimal but complete MVP:
Explicitly out of MVP: multispectral input, geographic splits, model ensembling, tiling of full Sentinel-2 scenes, and any real-world scene ingestion. All are natural extensions, not MVP obligations.
This project classifies satellite imagery from orbit, and it is deliberately distinct from the site’s ground-level computer-vision projects. The Crop Disease Detection with Computer Vision project classifies close-up photos of plant leaves to triage crop disease — same CV foundation, entirely different subject (agricultural leaves vs terrain classes), different data (field photos vs Sentinel-2 patches), and different decisions supported (which plants to inspect vs how land cover is distributed). The AI-Powered Campus Attendance via Facial Recognition project classifies people, not terrain. And the Air Quality Prediction & Pollution Hotspot Mapper forecasts pollution values over space and time — a geospatial time-series job, not an image-classification job. #056’s job is orbital land-cover classification: pixels from space, terrain classes as labels, and an explorer for studying where the model is confident and where it is not.
| Tool type | Approach | Limitation |
|———–|———-|————|
| Professional GIS suites | Full EO workflows with specialist tooling | Expensive, steep learning curve, not learner-oriented |
| Research land-cover models | Large models from EO labs | Not inspectable or rebuildable by a student |
| Generic image classifiers | Pre-trained models applied to arbitrary images | No land-cover training, no spectral awareness, no honest reporting |
| Manual photo interpretation | Human experts read imagery | Slow, unscalable, inconsistent |
This project’s differentiators: a student-buildable end-to-end pipeline on free Copernicus-derived data, per-class evaluation with confusion analysis, a confidence-aware exploration boundary, and an explicit not-a-land-survey rule.
Browse more Project Ideas · Intermediate Ideas
A research project that studies how prompt injections persist across agent sessions — building a stateful evaluation harness that measures...
A research project that measures, for the first time at registry scale, how much tool-poisoning risk actually exists across public...
A research project that measures the full trade-off curve between prompt-injection resistance and task utility for LLM agent defenses —...
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.
Published on September 12, 2026
A team of developers, researchers, and innovators who review and publish practical ideas for builders and creators.