Manual vectorization of 5000 km² drags on for half a year and exceeds the budget. Our AI system automates this routine: a neural network on multispectral Sentinel-2 imagery processes the same area in 2–3 days with mIoU comparable to an experienced analyst. Automation cuts the budget by 60–80% — substantial savings on a typical project. For a 5000 km² project, you can save $15,000–$30,000. We offer a turnkey service — from reference data collection and interpretation to polygon export in GeoJSON or PostGIS. Baseline classification typically takes 4–8 weeks, but for urgent tasks we can start within 3 weeks. Request a free assessment of area and detail — it's free.
How does our AI system differ from standard approaches?
The standard CORINE Land Cover is too detailed: some classes (e.g., 'vineyards' and 'fruit orchards') are nearly indistinguishable from Sentinel-2 spectral data. In practice, we use our own gradation of 15–20 classes adapted to the local terrain. This yields mIoU 0.82–0.88 versus 0.68–0.76 when trying to classify all 44 classes without high-resolution imagery.
| Level | Classes | mIoU |
|---|---|---|
| L1 (coarse) | 5 classes: water, forest, agriculture, built-up, other | 0.91–0.95 |
| L2 (medium) | 15–20 classes | 0.82–0.88 |
| L3 (detailed) | 35–44 classes | 0.68–0.76 |
For most applied tasks, L2 is sufficient. L3 requires high-resolution imagery (< 3 m/pixel) and significantly more training data.
Multispectral input and feature engineering
Sentinel-2 with 10/20m bands: B02 (blue), B03 (green), B04 (red), B08 (NIR), B11/B12 (SWIR). Plus computed indices:
import numpy as np
def compute_spectral_indices(bands):
B02, B03, B04, B08, B11, B12 = bands
# Vegetation indices
NDVI = (B08 - B04) / (B08 + B04 + 1e-8)
EVI = 2.5 * (B08 - B04) / (B08 + 6*B04 - 7.5*B02 + 1)
# Water index
NDWI = (B03 - B08) / (B03 + B08 + 1e-8)
# Built-up index
NDBI = (B11 - B08) / (B11 + B08 + 1e-8)
# Bare soil
BSI = ((B11 + B04) - (B08 + B02)) / ((B11 + B04) + (B08 + B02) + 1e-8)
return np.stack([NDVI, EVI, NDWI, NDBI, BSI])
Adding 5 spectral indices to the 6 original bands (total 11 channels): mIoU grows from 0.84 to 0.89 on a 20-class task without changing the model architecture. This gain is virtually free computationally but yields 5% accuracy.
Architectures for semantic segmentation: what we choose and why
SegFormer-B4 on multispectral input: adapt the first convolutional layer from 3 to N channels (reinitialize weights for new channels, keep RGB-pretrained for first three). Fine-tuning on the DeepGlobe or EuroSAT dataset.
SatMAE — pre-trained on terabytes of geospatial data. Fine-tuning requires 3–5 times less labeled data than ImageNet-pretrained ViT. On a test region we achieved mIoU 0.87 on L2 with 500 tiles — SatMAE is 1.06x more accurate than U-Net with ResNet-50 (mIoU 0.82) on the same data. SatMAE outperforms U-Net by 5 mIoU points with equal data.
According to the EuroSAT benchmark, fine-tuning on 500 tiles is sufficient for SatMAE.
U-Net with ResNet-50 backbone — a fast baseline for prototyping. On L2 classification: mIoU = 0.85 on 1,000 labeled tiles. We deploy the final model via Triton Inference Server with ONNX Runtime — p99 latency < 200 ms per pixel.
Architecture comparison
| Architecture | mIoU (L2) | Required tiles | Inference (per 256x256 tile) |
|---|---|---|---|
| SegFormer-B4 | 0.89 | 1000 | 120 ms |
| SatMAE | 0.87 | 500 | 250 ms |
| U-Net ResNet-50 | 0.85 | 1000 | 180 ms |
How multi‑temporal analysis solves seasonal errors?
Single‑date classification is unreliable: a snow‑covered field and residential area look similar in winter. Multi‑temporal approach: stack of 4–12 months as a time series.
SITS-BERT (Satellite Image Time Series BERT) or temporal attention on top of U‑Net encoder — process the image series as a sequence and extract phenological patterns. Distinguishing 'cropland' vs 'grassland' works only in dynamics: cropland has a characteristic NDVI cycle.
The gain from multi‑temporal approach: mIoU on distinguishing cropland/grassland/abandoned fields — from 0.71 (single image) to 0.89 (12‑image series). A 0.18 mIoU gain is typical for agricultural regions.
Post‑processing and export
The neural network output is a raster mask. For practical use, vector format (polygons) is needed:
-
rasteriopolygonize →shapelysimplify (epsilon=5m to remove zigzags) - Minimum fragment: filter polygons below MMU (Minimum Mapping Unit), usually 0.5–1 ha
- Export: GeoJSON / Shapefile / PostGIS for GIS integration
What is included in the work
- Labeling of reference polygons up to 1% of area (with manual control)
- Model fine‑tuned to your region and legend
- Vector polygon layer in one format (GeoJSON, Shapefile, PostGIS)
- Brief report: mIoU on validation, confusion matrix, usage recommendations
- Technical support for 3 months (consultations, retuning for area expansion)
- Documentation and training for your team
- Access to the deployed model via API (optional)
How we work: project stages
- Analytics — gather source data (imagery, OpenStreetMap, cadastral layers), refine class legend.
- Design — choose architecture (SegFormer, SatMAE, or U‑Net), define multi‑temporal strategy.
- Reference labeling — prepare training polygons (manual control, expert verification).
- Model training — fine‑tune on your region, tune hyperparameters (learning rate, batch size, augmentation pipeline).
- Testing and validation — calculate mIoU, F1, confusion matrix, segmentation anomalies.
- Deployment — export to required format (GeoJSON, Shapefile, PostGIS), deliver model and report.
The typical project payback period is 6–8 months due to reduced manual effort. With 5+ years of experience and over 30 successful projects, we guarantee quality and support. Get a consultation for your region — we'll send a typical architecture and accuracy estimate.
Timelines and metrics
We have been on the market for over 5 years and completed 30+ geospatial AI projects. Average timeline for basic L1 classification (5 classes) is 4–8 weeks. L2 (15–20 classes) with multi‑temporal analysis: 10–16 weeks. Results are documented in a report with mIoU and F1‑score. Contact us to discuss your region.







