Satellite Image Segmentation: Datasets, Models and Annotation for Remote Sensing AI

Satellite image segmentation labels every pixel of a satellite or aerial image so imagery can be turned into maps of land cover, buildings, roads or floods. This guide compares 11 public benchmark datasets with their sensors, classes, sizes and licences, reviews U-Net, DeepLabv3+, SegFormer, Prithvi-EO-2.0 and SAM-based tools, and sets out concrete annotation rules for tiling, class definitions, clouds, boundaries and inter-annotator QA.
- Choose the task first: semantic segmentation for land cover, instance segmentation for countable objects such as buildings or ships, change detection for differences between dates.
- Several popular benchmarks (LoveDA, iSAID, LEVIR-CD) are restricted to academic or non-commercial use, so production models usually need their own labeled imagery.
- The PANGAEA benchmark found geospatial foundation models do not consistently beat a supervised U-Net with full labels; they help most when labels are scarce.
- Label quality depends on written rules: native-GSD labeling, measurable class definitions, explicit cloud and shadow classes, boundary rules and inter-annotator IoU checks.
Satellite image segmentation assigns a class label to every pixel of a satellite or aerial image, such as building, road, water, crop or flooded area, so imagery can be turned into maps and measurements. This guide covers the main segmentation types, 11 verified public benchmark datasets, the models teams use from U-Net to geospatial foundation models, the tooling, and the annotation rules that decide final quality.
Semantic, instance and panoptic segmentation, and change detection
"Segmentation" covers several distinct tasks in remote sensing. They need different labels, different models and different metrics, so pick the task before you pick a dataset.
| Task | What each pixel gets | Satellite example | Typical metric |
|---|---|---|---|
| Semantic segmentation | A class (no object identity) | Land cover maps: water, forest, cropland, built-up | mIoU, per-class IoU |
| Instance segmentation | A class plus an object ID | Individual ships, planes, storage tanks or building footprints | Mask AP, F1 at IoU 0.5 |
| Panoptic segmentation | Class for "stuff" plus IDs for "things" | Each building counted separately while roads and vegetation stay as regions | Panoptic Quality (PQ) |
| Change detection | Changed or unchanged between two dates | New buildings between two acquisitions, flood extent versus a pre-event image | F1 and IoU of the change class |
Most land cover and flood work is semantic segmentation. Building and infrastructure inventories usually need instance-level outputs, because the business question is "how many" and "how big", not only "where". If counts and approximate locations are enough, bounding boxes are cheaper to produce than masks. Change detection is often implemented as segmentation on a stacked pair of images, so the same annotation tooling applies, but the labels describe a difference rather than a state. For the wider picture of satellite labeling tasks, see our introduction to satellite image annotation techniques and the general guide on how image segmentation works.
How a satellite image segmentation pipeline works
- Acquisition. Choose sensor and ground sampling distance (GSD) for the smallest object you must detect: 10 m Sentinel-2 for land cover and floods, 0.3 to 0.5 m commercial imagery for buildings and roads, 5 to 10 cm aerial orthophotos for cars and roof details.
- Pre-processing. Radiometric and atmospheric correction, co-registration of multi-date images, reprojection to one coordinate reference system, and cloud masking. Keep the band order and scaling identical between training and inference.
- Tiling. Cut large scenes into fixed-size chips (often 256 to 1024 pixels) with overlap, and keep the geotransform of each chip so predictions can be stitched back to map coordinates.
- Training and inference. An encoder-decoder network predicts a class per pixel. Multispectral inputs (near infrared, red edge, SWIR) or SAR bands are fed as extra channels.
- Post-processing. Stitch tiles, smooth seams, remove slivers below a minimum mapping unit, and vectorize masks into polygons when the output goes to a GIS.
Public benchmark datasets for satellite image segmentation
The table lists widely used public datasets, with figures taken from each dataset's paper or official page. Check the licence column before you train a commercial model: several of the best-known sets are restricted to academic or non-commercial use.
| Dataset | Sensor / GSD | Classes | Size | Licence | Typical use |
|---|---|---|---|---|---|
| DeepGlobe Land Cover | DigitalGlobe Vivid+, RGB, 50 cm | 7 (urban, agriculture, rangeland, forest, water, barren, unknown) | 1,146 images of 2,448 × 2,448 px (803 train) | See source | Rural land cover baselines |
| LoveDA | Satellite RGB, 0.3 m | 7 (background, building, road, water, barren, forest, agriculture) | 5,987 images, 166,768 objects, 3 cities | CC BY-NC-SA 4.0 | Urban vs rural domain adaptation |
| ISPRS Potsdam / Vaihingen | Aerial orthophotos plus DSM; 5 cm (Potsdam), 9 cm IRRG (Vaihingen) | 6 (impervious surfaces, building, low vegetation, tree, car, clutter) | 38 tiles of 6,000 × 6,000 px / 33 tiles | On request, see source | Fine-grained urban semantic segmentation |
| Inria Aerial Image Labeling | Aerial RGB, 0.3 m | 2 (building, not building) | 810 km², 10 cities, 180 train + 180 test tiles | See source | Building extraction, cross-city generalization |
| OpenEarthMap | Aerial and satellite, 0.25 to 0.5 m | 8 (bareland, rangeland, developed space, road, tree, water, agriculture, building) | 5,000 images, 97 regions, 44 countries, about 2.2M segments | Varies by source image; see source | Global high-resolution land cover |
| iSAID | DOTA aerial images, various sources | 15 object categories (plane, ship, storage tank, vehicles and others) | 2,806 images, 655,451 instances | Academic use only | Instance segmentation of objects |
| SpaceNet 6 | Quad-pol X-band SAR 0.5 m plus WorldView-2 optical | Building footprints | About 120 km² of Rotterdam, 48,000 footprints | CC BY-SA 4.0 | SAR building segmentation |
| Sen1Floods11 | Sentinel-1 (VV, VH) and Sentinel-2, 10 m | Water / not water (plus no data) | 4,831 chips of 512 × 512 px, 11 flood events (446 hand-labeled) | See source | SAR flood mapping |
| Dynamic World | Sentinel-2, 10 m | 9 land cover classes in the map product | Training set of 24,000 tiles of 510 × 510 px | CC BY 4.0 | Global near-real-time land cover |
| LEVIR-CD | Google Earth, 0.5 m | Building change / no change | 637 image pairs of 1,024 × 1,024 px, 31,333 changed buildings | Academic use only | Building change detection |
A few notes from the source pages. DeepGlobe's "unknown" class covers clouds and is excluded from scoring. ISPRS withholds ground truth for part of the tiles and scores submissions on them. OpenEarthMap labels inherit the licence of their source imagery, and its xBD-derived images must be downloaded separately. Dynamic World's training labels also include a cloud class, and the dataset was labeled by both expert and non-expert annotators. The SpaceNet series as a whole is hosted on the AWS Registry of Open Data, with licences that vary by dataset.
The earlier version of this article pointed readers to Radiant MLHub. That platform no longer operates: Radiant Earth announced in 2023 that it would be replaced by Source Cooperative, and in October 2023 confirmed that all data previously on Radiant MLHub had been migrated there. Look for former MLHub datasets on Source Cooperative.
The practical takeaway for data leads: public sets are excellent for benchmarking and pretraining, but the licences, class definitions and regions rarely match a production use case. Most commercial projects end up fine-tuning on their own labeled imagery. Related reading: land cover classification annotation challenges and crop classification datasets.
Models for satellite image segmentation
U-Net and DeepLabv3+: the CNN baselines
U-Net (Ronneberger et al., 2015) pairs a contracting path that captures context with a symmetric expanding path for precise localization. It was designed for biomedical images, but its ability to train on small labeled sets made it the default remote sensing baseline. DeepLabv3+ (Chen et al., 2018) combines Atrous Spatial Pyramid Pooling, which probes features at several rates for multi-scale context, with a decoder that refines object boundaries. Both accept any number of input channels once the first convolution is adapted, which is how teams feed near infrared, SWIR or SAR bands.
SegFormer and transformer models
SegFormer (Xie et al., 2021) uses a hierarchical transformer encoder that outputs multi-scale features, needs no positional encoding, and uses a lightweight all-MLP decoder. The absence of positional encoding matters for satellite work, where inference tiles are often a different size than training tiles.
Geospatial foundation models (2024 to 2026)
Prithvi-EO-2.0, from IBM and NASA (arXiv, December 2024), comes in 300M and 600M parameter versions based on ViT-L and ViT-H. It was pretrained on about 4.2 million global time series samples from NASA's Harmonized Landsat and Sentinel-2 (HLS) archive at 30 m, and uses temporal and location embeddings. Its paper evaluates segmentation tasks including Sen1Floods11 flood mapping, burn scars, landslides and crop types. The weights are on Hugging Face under Apache 2.0.
Foundation models are not an automatic upgrade. The PANGAEA benchmark evaluated popular geospatial foundation models (including CROMA, DOFA, Prithvi, SatlasNet, Scale-MAE and SpectralGPT) on 11 datasets, and found they "do not consistently outperform supervised models". With full labels, a supervised U-Net placed in the top two on the most datasets and was best on HLS Burn Scars, Sen1Floods11 and AI4SmallFarms. Foundation models gained ground as labels became scarce (10% of the training labels). In practice: if you have a well-labeled training set, benchmark a U-Net before adopting a large backbone; if labels are scarce, a foundation model is worth testing.
Segment Anything for remote sensing
Meta's Segment Anything (SAM) was trained on SA-1B, about 11 million images and over 1 billion masks, and is prompted with points, boxes or masks. SAM 2 extends this to video with a streaming memory and is released under Apache 2.0. SAM produces class-agnostic masks, so on its own it does not output land cover classes. The open-source segment-geospatial (samgeo) package adapts SAM, SAM 2 and SAM 3 to GeoTIFFs, supports text prompts through Grounding DINO, and exports results to GeoPackage, Shapefile or GeoJSON. Its most common use is annotation assistance: generating candidate polygons that annotators accept, correct or reject.
Metrics: mIoU, per-class IoU and F1
- IoU per class is the overlap between predicted and reference pixels divided by their union. Report it for every class, because small classes (roads, cars, buildings in rural scenes) are hidden by a good average.
- mIoU averages per-class IoU and is the standard headline number for semantic segmentation benchmarks, including PANGAEA.
- Object-level F1 is used for footprints: DeepGlobe's building track and SpaceNet count a predicted building as correct when it overlaps a reference footprint at IoU 0.5 or more.
- Exclude no-data and cloud pixels from scoring the way DeepGlobe excludes its unknown class, and say so in your evaluation report.
SAR image segmentation with AI
Synthetic aperture radar sees through clouds and at night, which is why it dominates flood mapping. It is also harder to label and to model: speckle noise, layover and the side-looking geometry make buildings look nothing like their optical footprint. The SpaceNet 6 baseline shows the gap: building extraction from SAR alone reached an F1 of about 0.12 to 0.14, while pretraining on optical imagery before SAR fine-tuning raised it to 0.21. Common practice is to label on a co-registered optical image or a pre-event reference when available, then transfer the mask to the SAR grid, and to keep VV and VH as separate input channels. Our article on SAR annotation challenges and best practices covers labeling details, and the flood zone annotation guide covers disaster mapping.
Practical tooling
- TorchGeo: PyTorch library with loaders for common benchmark datasets, geospatial samplers, multispectral transforms and pretrained weights, including models that use all Sentinel-2 bands.
- TerraTorch: IBM's Apache 2.0 toolkit, built on PyTorch Lightning and TorchGeo, for fine-tuning geospatial foundation models such as Prithvi-EO-2.0, Clay v1, DOFA and Satlas from a configuration file.
- rasterio and GDAL: raster input and output, reprojection, windowed reads for tiling, and mask vectorization. Rasterio is a BSD-licensed Python layer over GDAL, which is MIT licensed.
- QGIS: GPL-licensed desktop GIS for inspecting imagery, reviewing predictions against basemaps and editing polygons. samgeo is also available as a QGIS plugin.
How to annotate satellite imagery for segmentation
Model choice moves results by a few points; inconsistent labels can cost far more. These are the rules a geospatial annotation guideline should fix before the first image is labeled. The thresholds below are examples to adapt, not universal standards.
Tiling and GSD
- Label at the native GSD, never on a resampled preview. At 0.5 m a typical 4.5 m car spans about 9 pixels; at 10 m it is sub-pixel and should not be a class at all.
- Annotate at full scene or large-tile level, then cut training chips. Reference datasets use fixed chips, such as 512 × 512 px in Sen1Floods11 and 510 × 510 px in Dynamic World.
- Define a minimum mapping unit, for example "ignore isolated patches under 4 × 4 pixels", so annotators do not spend time on noise.
Class hierarchy and definitions
- Write a two-level hierarchy (vegetation → tree, low vegetation, cropland) so a class can be merged later without relabeling.
- Give each class a measurable definition: "tree = woody canopy taller than low vegetation, visible as a crown", "impervious surface = paved ground that is not a building roof".
- Add an explicit catch-all class, like ISPRS clutter/background, rather than forcing ambiguous pixels into the nearest class.
Clouds, shadows and no-data
- Use separate cloud, cloud shadow and no-data classes. Do not guess the land cover under a thick cloud.
- Decide whether building shadows belong to the ground class they fall on or to a shadow class, and keep the rule identical across the project.
Boundary rules
- Building footprints follow the roof outline in nadir images; for off-nadir imagery, state whether to trace the roof or the base.
- Roads: label the paved surface, not the full right of way; bridges belong to road, the water underneath stays water.
- Mixed boundary pixels go to the class covering most of the pixel. Water bodies are traced at the waterline on the acquisition date, not from a map layer.
QA by inter-annotator IoU
- Have a sample of tiles (for example 5 to 10%) labeled independently by two annotators and compute per-class IoU between them. Dynamic World's validation tiles were each labeled independently by three experts.
- Set a threshold per class (for example IoU of 0.85 for buildings, lower for fuzzy classes such as rangeland), and send tiles that fall below it to a reviewer.
- Low agreement on one class usually signals an unclear definition, so fix the guideline before relabeling.
- Run automated checks: no unlabeled pixels, no invalid class values, no self-intersecting polygons, masks aligned with the image geotransform.
Pre-labeling with SAM-based tools or an earlier model speeds up polygon work, but every pre-label still needs human review, especially along boundaries. Multispectral false-color composites help annotators separate vegetation from bare soil; see multispectral vs RGB labeling strategies.
Failure modes to plan for
- Class imbalance. Roads and buildings cover a small share of pixels; use class-weighted or Dice-style losses and report per-class IoU.
- Domain shift between regions. LoveDA splits its scenes into urban and rural domains because, as its authors note, they can show completely different landscapes. Hold out whole regions, not random tiles, for validation.
- Seasonal and sensor shift. Vegetation classes change with phenology, and band definitions differ between satellites. Include several seasons and normalize per sensor.
- Spatial leakage. Overlapping chips from the same scene in train and test inflate scores; split before tiling.
Segmentation outputs feed land cover mapping, crop monitoring, flood response, building inventories and infrastructure planning. For the GIS side of these applications, see our guide to geospatial mapping.
Get satellite segmentation data labeled by specialists
DataVLab is a Paris-based data annotation company, founded in 2019, that builds pixel-accurate training data for geospatial AI. Our EU-based managed annotators work in custom annotation tooling with multi-step QA, under ISO/IEC 27001 certified and GDPR-compliant workflows. Explore our satellite image annotation services, semantic segmentation services, geospatial data annotation or aerial image annotation, or contact us to scope a pilot on your imagery.
What is satellite image segmentation?
Satellite image segmentation is a computer vision task that assigns a class to every pixel of a satellite or aerial image, for example water, forest, cropland, road or building. The result is a mask that can be measured or converted into GIS polygons. It is used for land cover mapping, flood and wildfire mapping, crop monitoring, building inventories and change detection between two acquisition dates.
What is the difference between semantic and instance segmentation of satellite imagery?
Semantic segmentation gives each pixel a class but does not separate individual objects, so all buildings share one label. Instance segmentation also assigns an object ID, so each building, ship or storage tank can be counted and measured. Land cover maps typically use semantic segmentation, while footprint inventories use instance outputs scored with object-level F1 at an IoU of 0.5.
Which datasets are used for satellite image semantic segmentation?
Common public benchmarks include DeepGlobe Land Cover (50 cm, 7 classes), LoveDA (0.3 m, 5,987 images), ISPRS Potsdam and Vaihingen (5 and 9 cm aerial), OpenEarthMap (5,000 images from 44 countries), Inria Aerial Image Labeling for buildings, Dynamic World for 10 m Sentinel-2 land cover, and Sen1Floods11 for flood mapping. Check each licence, since several are limited to non-commercial use.
What is the best deep learning model for satellite image segmentation?
There is no single best model. U-Net and DeepLabv3+ remain strong baselines, and SegFormer handles varying tile sizes well. Geospatial foundation models such as Prithvi-EO-2.0 help when labeled data is scarce, but the PANGAEA benchmark found they do not consistently outperform a supervised U-Net trained with full labels. Benchmark a U-Net on your own data before adopting a large backbone.
How is AI used for synthetic aperture radar (SAR) image segmentation?
SAR imagery works through clouds and at night, so it is widely used for flood mapping and all-weather building extraction. Models take polarization bands such as VV and VH as input channels. SAR is harder than optical imagery: in the SpaceNet 6 baseline, SAR-only building extraction reached an F1 of about 0.12 to 0.14, while pretraining on optical images raised it to 0.21.
How do you annotate satellite images for segmentation?
Label at the native ground sampling distance, then cut the scene into fixed-size training chips. Write measurable class definitions in a hierarchy, add separate cloud, shadow and no-data classes, and fix boundary rules for roofs, roads and waterlines. For QA, have a sample of tiles labeled by two annotators, compare per-class IoU between them, and review tiles below a set threshold.
.jpeg)




