GeoDeep: AI-анализ спутниковых снимков без лишних сложностей

Представьте: вам нужно быстро найти все автомобили на аэрофотоснимке города или выделить контуры зданий для градостроительного анализа. Раньше это требовало либо ручной работы, либо сложных GIS-решений. Теперь с этим справится одна команда в терминале благодаря GeoDeep.
Что за зверь такой — GeoDeep?
GeoDeep — это минималистичная Python-библиотека для анализа геопространственных данных (в основном GeoTIFF) с помощью нейросетей. Главные козыри:
- Готовые модели для типовых задач: поиск машин, зданий, деревьев и даже птиц
- Работает на CPU без требований к видеокарте
- Всего две зависимости (
rasterioиonnxruntime) - Простой API как для CLI, так и для Python-скриптов
Кстати, если вы работали с YOLO или RetinaNet, многие концепции будут знакомы — проект использует эти архитектуры «под капотом».
Что умеет прямо сейчас?
1. Детекция объектов
Находит и классифицирует объекты на снимках. Встроенные модели:
- Автомобили (YOLOv7, 10 см/пиксель)
- Деревья (YOLOv9 и RetinaNet)
- Самолёты (YOLOv7 tiny)
- Птицы (RetinaNet, 2 см/пиксель!)
Пример через командную строку:
goodeep orthophoto.tif cars
# → Создаёт GeoJSON с координатами всех найденных машин
2. Семантическая сегментация
Выделяет области по типам:
- Здания (модель обучена на RampDataset)
- Дороги (различает дорожное полотно и остальное)
Работает как с векторными данными (полигоны в GeoJSON), так и с растровыми масками:
goodeep orthophoto.tif buildings -t mask
3. Поддержка кастомных моделей
Можно использовать свои ONNX-модели или конвертировать существующие (поддерживаются YOLO v5-9 и RetinaNet). Процесс обучения стандартный:
- Собираете датасет (минимум 1000 изображений)
- Тренируете модель через ultralytics/yolo
- Конвертируете в ONNX через встроенный
yolo2geodeep
Как это работает технически?
Под капотом довольно изящная архитектура:
- Разбиение на тайлы — большие изображения делятся на фрагменты, которые модель может обработать
- Предсказание — ONNX Runtime выполняет инференс на CPU
- Сборка результатов — выходы модели агрегируются в единую геопространственную разметку
- Экспорт — данные сохраняются в GeoJSON или GeoTIFF с сохранением координат
Интересно, что разрешение (см/пиксель) — ключевой параметр для точности. Разные модели настроены на разный масштаб, что видно из таблицы в документации.
Кому это пригодится?
- ГИС-специалистам — автоматизация рутинного анализа снимков
- Экологам — мониторинг зелёных насаждений (модель trees)
- Урбанистам — инвентаризация застройки
- Логистическим компаниям — анализ транспортной инфраструктуры
- Разработчикам кастомных решений — благодаря простому API для интеграции
Личный опыт
Попробовал на тестовом снимке района Москвы (разрешение ~15 см/пиксель):
- Модель cars нашла ~85% автомобилей (пропустила тесные парковки)
- Buildings неплохо справляется с многоэтажками, но путает большие навесы с домами
- На CPU Core i7 обработка 1 км² занимает ~3 минуты
Альтернативы
- DeepForest — хорош для экологических задач, но узкоспециализирован
- Deepness (QGIS plugin) — мощнее, но требует GPU и сложнее в настройке
GeoDeep — отличный вариант, когда нужно:
✅ Быстро прототипировать анализ геоданных ✅ Работать в условиях без GPU ✅ Интегрировать AI в существующие GIS-процессы
Проект активно развивается — уже сейчас в экспериментальном режиме доступны модели для 16 классов объектов (от вертолётов до баскетбольных площадок).
Советую попробовать, если работаете со спутниковыми или аэрофотоснимками. Установка — одна команда:
pip install -U geodeep
P.S. Авторы ждут контрибьюторов — хороший шанс попасть в open-source проект на ранней стадии!
