Ручная векторизация 5000 км² затягивается на полгода и выходит за бюджет. Наша AI-система автоматизирует эту рутину: нейронная сеть на мультиспектральных снимках Sentinel-2 обрабатывает ту же площадь за 2–3 дня с mIoU, сопоставимым с работой опытного аналитика. Автоматизация сокращает бюджет на 60–80% — экономия существенна на типовом проекте. Предлагаем услугу под ключ — от сбора и дешифрирования эталонов до экспорта полигонов в GeoJSON или PostGIS. Обычно на базовую классификацию уходит 4–8 недель, но при срочных задачах запускаем за 3 недели. Закажите оценку площади и детализации — это бесплатно.
Как наша AI-система отличается от стандартных подходов?
Стандарт CORINE Land Cover слишком детализирован: некоторые классы (например, «виноградники» и «фруктовые сады») почти неразличимы по спектральным данным Sentinel-2. Практически мы используем собственную градацию на 15–20 классов, адаптированную под местность. Это даёт mIoU 0.82–0.88 против 0.68–0.76 при попытке классифицировать все 44 класса без снимков высокого разрешения.
| Уровень | Классы | mIoU |
|---|---|---|
| L1 (грубый) | 5 классов: вода, лес, с/х, застройка, прочее | 0.91–0.95 |
| L2 (средний) | 15–20 классов | 0.82–0.88 |
| L3 (детальный) | 35–44 класса | 0.68–0.76 |
Для большинства прикладных задач L2 достаточен. L3 требует снимки высокого разрешения (< 3 м/пиксель) и значительно большего объёма обучающих данных.
Мультиспектральный input и feature engineering
Sentinel-2 с 10/20м каналами: B02 (blue), B03 (green), B04 (red), B08 (NIR), B11/B12 (SWIR). Плюс вычисленные индексы:
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])
Добавление 5 спектральных индексов к 6 исходным каналам (итого 11 каналов): mIoU вырастает с 0.84 до 0.89 на 20-классовой задаче без изменения архитектуры модели. Этот прирост — бесплатный в плане вычислений, но даёт 5% точности.
Архитектуры для semantic segmentation: что выбираем и почему
SegFormer-B4 на мультиспектральном input: адаптируем первый свёрточный слой с 3 на N каналов (reinitialize weights для новых каналов, сохраняем RGB-pretrained для первых трёх). Fine-tuning на датасете DeepGlobe или EuroSAT.
SatMAE — предобучена на терабайтах геопространственных данных. Fine-tuning требует в 3–5 раз меньше размеченных данных, чем ImageNet-pretrained ViT. На тестовом регионе мы получили mIoU 0.87 на L2 при 500 тайлах — U-Net с ResNet-50 показал 0.82 на том же объёме. SatMAE лучше U-Net на 5 пунктов mIoU при одинаковом количестве данных.
По данным EuroSAT benchmark, fine-tuning на 500 тайлов достаточно для SatMAE.
U-Net с ResNet-50 backbone — быстрый baseline для прототипирования. На L2-классификации: mIoU = 0.85 на 1 000 размеченных тайлов. Итоговую модель мы разворачиваем через Triton Inference Server с ONNX Runtime — latency p99 < 200 мс на пиксел.
Сравнение архитектур
| Архитектура | mIoU (L2) | Требуемые тайлы | Инференс (на тайл 256x256) |
|---|---|---|---|
| SegFormer-B4 | 0.89 | 1000 | 120 ms |
| SatMAE | 0.87 | 500 | 250 ms |
| U-Net ResNet-50 | 0.85 | 1000 | 180 ms |
Как мультивременной анализ решает проблему сезонных ошибок?
Однозначная классификация по одному снимку ненадёжна: заснеженное поле и жилая застройка похожи в зимний период. Мультивременной подход: стек снимков 4–12 месяцев как временной ряд.
SITS-BERT (Satellite Image Time Series BERT) или temporal attention поверх U-Net encoder — обрабатывают серию снимков как последовательность и извлекают фенологические паттерны. Рост класс «пашня» vs «луг» работает только в динамике: пашня имеет характерный NDVI-цикл.
Прирост от мультивременного подхода: mIoU на различении пашня/луг/зарастающие поля — с 0.71 (один снимок) до 0.89 (серия 12 снимков). Разница в 0.18 mIoU — типичный выигрыш для сельскохозяйственных районов.
Постобработка и экспорт
Результат сегментации нейросети — растровая маска. Для практических применений нужен векторный формат (полигоны):
-
rasteriopolygonize →shapelysimplify (epsilon=5м для удаления зигзагов) - Минимальный фрагмент: отфильтровать полигоны < MMU (Minimum Mapping Unit), обычно 0.5–1 га
- Экспорт: GeoJSON / Shapefile / PostGIS для интеграции с GIS-системами
Что входит в работу
- Разметка эталонных полигонов до 1% площади (с ручным контролем)
- Модель fine-tuned под ваш регион и легенду
- Векторный полигональный слой в одном из форматов (GeoJSON, Shapefile, PostGIS)
- Краткий отчёт: mIoU на валидации, матрица ошибок, рекомендации по использованию
- Техническая поддержка на 3 месяца (консультации, донастройка при расширении региона)
Как мы работаем: этапы проекта
- Аналитика — сбор исходных данных (снимки, OpenStreetMap, кадастровые слои), уточнение легенды классов.
- Проектирование — выбор архитектуры (SegFormer, SatMAE или U-Net), определение стратегии мультивременного анализа.
- Разметка эталонов — подготовка обучающих полигонов (ручной контроль, верификация экспертом).
- Обучение модели — fine-tuning на вашем регионе, подбор гиперпараметров (learning rate, batch size, augmentation pipeline).
- Тестирование и валидация — расчёт mIoU, F1, матрицы ошибок, аномалии сегментации.
- Деплой — экспорт в требуемый формат (GeoJSON, Shapefile, PostGIS), передача модели и отчёта.
Средний срок окупаемости проекта — 6–8 месяцев за счёт сокращения трудозатрат. Получите консультацию по вашему региону — пришлём типовую архитектуру и прогноз точности.
Сроки и метрики
Мы на рынке более 5 лет, выполнили 30+ проектов по геопространственному AI. Средний срок базовой классификации L1 (5 классов) — 4–8 недель. L2 (15–20 классов) с мультивременным анализом: 10–16 недель. Результаты фиксируются в отчёте с метриками mIoU и F1-score. Свяжитесь с нами для обсуждения вашего региона.







