Никита Мелентьев

Распознование изображений на спутниковых снимках

Описание проекта

Идея проекта

Проект представляет собой карту мира, на которой любой желающий аналитик может выбрать интересующую его область и объекты, которые он хочет на ней найти. Далее пред-обученные нейронные сети выдают предсказания на указанный регион в виде полигонов для каждого класса объектов, выбранных пользователем. Нейронные сети обучаются на Sentinel изображениях, за учителя берутся данные из OpenStreetMap - полигоны превращаются в размеченные растровые изображения. 

Технологический стек

За основу приложения взят django + leaflet для отображения карты. Для работы с нейросетями используется keras на tensorflow.

Реализованная архитектура сети - U-net https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/.

Другие API:

* Sentinel hub api;

* OpenStreetMap overpass api;

Web-приложение

Приложение состоит из нескольких модулей.

1. Модуль загрузки данных и предсказания на пред-обученных нейросетях.

Необходим, если у пользователя уже есть данные в хорошем разрешении, и он просто хочет найти на них интересующие его объекты:

Результат:

Так же доступна статистика и можно скачать файлы в нужном формате:

 

2. Интерактивная карта 

Сначала загрузим на карту sentinel изображения, добавим возможность приближать его по частям:

 

Для каждого tile предскажем необходимые объекты (например, дороги), добавим возможность сохранить область в wkt формате:

 

Что дальше?

Проект масштабируем, поэтому дальнейшим развитием я вижу добавление новых слоев sentinel, расширение распозноваемых объектов и повышение точности работы нейронных сетей при помощи дополнительных каналов sentinel (сейчас используются только rgb каналы).

Интересно добавить опцию изменения карты со стороны пользователей - если у них есть новые размеченные данные про какую-либо местность, их можно добавить, обучить нейросети и сделать доступными для всех желающих.

Состав команды:

  • Никита Мелентьев, Разработчик, Аналитик

Комментарии

Иван Бондаренко

Никита, подскажите, пожалуйста, как запустить?
У меня не получилось запустить, после загрузки ~200мб того, что человек попросил, проект вывалился по ошибке ImportError: bad magic number in 'utils': b'\x03\xf3\r\n'

Никита Мелентьев

Иван!
Не встречал подобной ошибки. Свяжитесь со мной, пожалуйста, по телеграмму: @ndmelentev. Если получится решить вопрос, выложим сюда ответ.

Иван Бондаренко

Никита, подскажите, пожалуйста, как запустить?
У меня не получилось запустить, после загрузки ~200мб того, что человек попросил, проект вывалился по ошибке ImportError: bad magic number in 'utils': b'\x03\xf3\r\n'

Никита Мелентьев

Павел, спасибо за комментарий!
По точности - проверял на одном из соревнований: если данные в хорошем разрешении можно ожидать точности в +- 10 машин на картинке сверху, достаточно для примерной оценки трафика (еще для этой задачи можно "купить" данные по пробкам от Яндекса).
С данными сложнее, про спутники которые стримят видео точно не слышал. Семейство спутников sentinel обновляют данные постоянно - есть новые снимки практически для каждого дня, однако с ними очень тяжело работать в плане пред-обработки данных + часто снимки порченные / там есть облака.

Pavel Mochalov

Никита, подскажите примерно с какой точностью можно посчитать машины на фото со спутника? И есть ли такая возможность где-то брать фото в реальном времени? Есть такие спутники, которые стримят видео?

Ivan Panin

Присоединяюсь к последнему вопросу. Следить за перемещениями машин было бы весьма неплохо.