Built to order

Satellite Image Segmentation using U-Net

This project builds a U-Net model with a pre-trained encoder that segments land-cover classes in satellite imagery tiles. Trained on the DeepGlobe dataset (803 images, 7 classes), it classifies each pixel into urban, agriculture, rangeland, forest, water, barren or unknown, and the interactive demo overlays predicted class masks on any uploaded tile — a highly demoable remote-sensing AI project.

AI & Machine Learning Python 3.10 · PyTorch · torchvision segmentationAlbumentations · OpenCV · NumPy preprocessingWeighted cross-entropy · Dice lossSliding-window tiled inference · stitchingSoftware
Satellite image segmentation demo showing a land-cover tile with predicted class mask overlay and color legend
More project photos (3)

The problem

Land-cover maps underpin urban planning, crop monitoring, deforestation tracking and disaster response, yet hand-labelling satellite imagery is slow, expensive and inconsistent between annotators — two people rarely draw the same boundary around a forest edge. Manual mapping cannot keep pace with how fast landscapes change, and it does not scale to large regions or repeat surveys. Semantic segmentation automates this pixel by pixel: a network assigns a land-cover class to every pixel of a satellite tile, producing a map a planner can review in minutes instead of weeks. The technical challenge is real — huge images that must be tiled, strong class imbalance between rare urban areas and vast barren land, and only a few hundred labelled images to learn from. That is exactly why the project is a strong academic build: it demonstrates transfer learning with a pre-trained encoder, class-imbalance handling with weighted losses, tiled inference with stitching, and honest segmentation metrics rather than pixel accuracy.

SYSTEM FLOW

4 components 4 connections

Live flow
Drag to explore
100%
userUser

Uploads a satellite tile and views the predicted land-cover mask with the color legend.

Follow the working sequence

How it works

Dataset & model:
Dataset name: DeepGlobe Land Cover Classification.
Source: publicly released remote-sensing segmentation benchmark.
Task: semantic segmentation (per-pixel classification).
Classes: 7 — urban, agriculture, rangeland, forest, water, barren, unknown.
Model: U-Net with a pre-trained encoder (transfer learning); PyTorch/torchvision segmentation pipeline.
Input: satellite image tile (source images are 2448x2448 pixels at 50 cm per pixel), tiled into overlapping windows.
Prediction: per-pixel class probability map.
Output: land-cover mask overlaid on the input tile with a color legend; exportable as PNG.
Evaluation metrics: per-class IoU and mean Dice — computed by the training notebook on the validation split during the build.
Design target: ~70%+ mean IoU on the validation split. This is a design target, not a measured claim; the notebook computes the actual per-class IoU and Dice during the build.

Working:

  1. Training phase: large 2448x2448 satellite images are split into overlapping tiles (e.g. 512x512), normalized, and augmented with rotations, flips and brightness jitter through a geospatial preprocessing pipeline.
  2. A U-Net with a pre-trained encoder is fine-tuned on the DeepGlobe training split with weighted cross-entropy plus Dice loss, so under-represented classes like urban are not drowned out by barren and rangeland.
  3. Evaluation phase: the training notebook evaluates the run on the validation split, computing per-class IoU and mean Dice and visualizing where the model errs most.
  4. Inference phase: an uploaded tile flows through the trained model to produce a per-pixel class probability map; the highest-probability class wins each pixel, forming the land-cover mask.
  5. The demo app overlays the predicted mask on the original tile with a color legend for each of the seven classes.
  6. For full scenes, sliding-window tiled inference predicts overlapping windows and stitches them back into a seamless full-scene mask; masks export as PNG for report figures.

Specifications:
Model | U-Net with a pre-trained encoder (transfer learning)
Dataset | DeepGlobe Land Cover Classification (803 images, 7 classes)
Tile resolution | 2448x2448 pixels at 50 cm per pixel
Evaluation | Per-class IoU and mean Dice computed by the training notebook on the validation split
Design target | ~70%+ mean IoU (design target, not a measured claim)
Loss | Weighted cross-entropy + Dice loss for class imbalance
Inference | Sliding-window tiled prediction on CPU or GPU
Platform | Windows/Linux/macOS, Python 3.10; web demo app

Project features

[7-Class Land-Cover Segmentation] (implemented) — Classifies every pixel of a satellite tile into urban, agriculture, rangeland, forest, water, barren or unknown.
[U-Net with Pre-Trained Encoder] (implemented) — Encoder-decoder with skip connections preserves fine spatial detail; transfer learning from the pre-trained encoder speeds convergence on 803 images.
[Sliding-Window Tiled Inference] (implemented) — Overlapping tiles are predicted and stitched into seamless full-scene masks, handling arbitrarily large satellite scenes.
[Class-Imbalance Handling] (implemented) — Weighted cross-entropy plus Dice loss keeps rare classes like urban competitive against dominant barren and rangeland.
[Geospatial Augmentation] (implemented) — Rotations, flips and brightness jitter in the preprocessing pipeline improve robustness to orientation and illumination.
[Interactive Mask-Overlay Demo] (implemented) — The web app overlays predicted masks on uploaded tiles with a color legend; masks export as PNG for report figures.
[Per-Class IoU & Mean Dice Evaluation] (implemented) — The training notebook computes per-class IoU and mean Dice on the validation split with loss and IoU plots.
[Dataset Analysis & Tiling Scripts] (implemented) — Scripts handle dataset analysis, tiling, preprocessing and augmentation setup.

What is included

Complete source code (training, evaluation, inference, demo app)
Trained model weights (PyTorch .pt checkpoints)
Dataset preparation, tiling and augmentation scripts
Project report PDF (remote-sensing background, methodology, evaluation)
PPT presentation for the final review
Viva Q&A preparation document (U-Net, segmentation metrics, transfer learning, class imbalance)
Setup guide (environment, dependencies, dataset download steps)

Advantages

  • 7-class land-cover segmentation — classifies every pixel of a satellite tile into urban, agriculture, rangeland, forest, water, barren or unknown.
  • U-Net with a pre-trained encoder and skip connections preserves fine spatial detail; transfer learning speeds convergence on the 803-image DeepGlobe set.
  • Sliding-window tiled inference with stitching produces seamless full-scene masks — handles arbitrarily large satellite scenes.
  • Class-imbalance handling: weighted cross-entropy plus Dice loss keeps rare classes like urban competitive against dominant barren and rangeland.
  • Interactive web demo overlays predicted class masks on any uploaded tile — an easy, visual remote-sensing demo.

Disadvantages

  • 50 cm resolution means small objects — single trees, narrow paths, small structures — are often missed or merged into neighbouring classes.
  • Cloud cover and shadows in optical satellite imagery degrade predictions; the model has no cloud-penetration capability like SAR data.
  • Class imbalance persists across the dataset (barren and rangeland dominate many tiles), so rare classes score lower per-class IoU.
  • Land-cover appearance is region-specific: a model trained on DeepGlobe scenes benefits from fine-tuning on imagery from the buyer's own area of interest.
  • All reported figures are design targets from the buyer's own training run; no pre-measured IoU is claimed.

Limitations & prerequisites

50 cm resolution means small objects — single trees, narrow paths, small structures — are often missed or merged into neighbouring classes.
Cloud cover and shadows in optical satellite imagery degrade predictions; the model has no cloud-penetration capability like SAR data.
Class imbalance persists across the dataset (barren and rangeland dominate many tiles), so rare classes score lower per-class IoU.
Land-cover appearance is region-specific: a model trained on DeepGlobe scenes benefits from fine-tuning on imagery from the buyer's own area of interest.
All reported figures are design targets from the buyer's own training run; no pre-measured IoU is claimed.

Frequently Asked Questions

Why is satellite image segmentation a strong AI project?

It combines a real mapping problem with a complete deep-learning pipeline — transfer learning, class-imbalance handling, tiled inference and segmentation metrics — giving a remote-sensing story that stands out from generic classification builds.

What is the DeepGlobe dataset?

The DeepGlobe Land Cover Classification set: 803 high-resolution (2448x2448, 50 cm) satellite images with pixel-level labels for seven classes — urban, agriculture, rangeland, forest, water, barren and unknown — a standard benchmark for this task.

Why use U-Net with a pre-trained encoder?

U-Net's skip connections preserve fine spatial detail that plain classifiers lose, which matters for pixel-level masks. The pre-trained encoder brings strong visual features from day one, so the model converges well on only 803 images.

How are IoU and Dice different from accuracy?

Pixel accuracy is dominated by large classes; IoU and Dice measure overlap between predicted and true masks per class, so they honestly reflect performance on small classes too. The training notebook computes both on the validation split.

Is this project suitable for a final-year project?

Yes. It suits B.E./B.Tech students in Computer Science, AI/ML and Data Science, demonstrating semantic segmentation, transfer learning, class-imbalance strategies, geospatial preprocessing and an interactive mask-overlay demo.

What will I receive?

Complete source code, trained .pt checkpoints, dataset preparation, tiling and augmentation scripts, project report PDF, PPT presentation, viva Q&A document and a setup guide.

Components & software requirements

Python 3.10
PyTorch and torchvision
Albumentations, OpenCV, NumPy
Matplotlib, seaborn, PIL
Web demo app (included)
DeepGlobe dataset (public; preparation, tiling and augmentation scripts included)
GPU recommended for training (cloud-GPU guidance included); inference runs on CPU

Delivery information

Built to order — the source code, trained weights, project report, PPT and viva Q&A are prepared fresh for each buyer after the order is placed. The delivery schedule is confirmed at order time, and includes time for training the model and assembling the complete documentation kit.

Support terms
  • Environment and dependency setup guidance, including dataset download steps.
  • Viva preparation support covering U-Net architecture, segmentation metrics, transfer learning and class imbalance.
  • Explanation of the training notebook output and how to present IoU/Dice results in the review.
  • Discussion of feasible customizations before ordering, such as extra land-cover classes or fine-tuning on local imagery.
Download free synopsis (PDF)

Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.

Ronneberger, Fischer & Brox (2015), MICCAI 2015 — U-Net

Get a quotation