Распознавание объектов на снимках

1 Модуль от Mapflow AI

Mapflow от компании GeoAlert - платформа для распознавания объектов на спутниковых снимках.

Сайт платформы - https://mapflow.ai/ru

На платформе реализованы модели сегментации, позволяющие распознавать на снимках:

  • контура фундаментов зданий;

  • различные типы лесной растительности;

  • строительные площадки;

  • дороги;

  • сельскохозяйственные поля.

Note

При сегментации изображений на них выделяют конкретные пиксели, составляющие объекты1.

Подробная документация по работе с модулем приведена по ссылке.

После регистрации на платформе вы можете использовать ее напрямую в браузере или с помощью одноименного модуля для QGIS.

Warning

Регистрация на платформе является обязательным условием использования сервиса, даже при работе через модуль.

После установки значок модуля должен появиться в основной панели инструментов .

При первом запуске модуля вы увидите окно, в котором необходимо ввести ваш личный API токен для доступа к сервису.

Warning

Сервис не работает через прокси.

Основное окно плагина содержит две основных панели:

  • панель процессинга;

  • вкладки с прочими настройками и источниками.

Панель процессинга позволяет настроить обработку изображений.

Name of the field / button Description Описание
Processing name Name of your processing Пользовательское название процесса
Area The area to be processed. This layer is automatically displayed in the drop-down list from the list of QGIS vector layers. Область для обработки
Data source Base imagery to be processed. By default Mapbox is selected, in the drop-down list you can also select satellite images of the commercial providers. You can open your image through the additional options button. Источник данных для обработки. По умолчанию используется Mapbox, но доступен выбор других коммерческих провайдеров, а также вы можете открыть собственное изображение.
Show preview A preview of your data source or, if it is not available, an OpenStreetMap basemap Превью источника данных, при его отсутствии OpenStreetMap
Use image extent This area becomes active if processing is performed on the .tif file. Allows you not to create an additional vector layer processing area for this image but takes its extent. Использовать охват изображения. Становится активным только при использовании .tif. Позволяет не создавать отдельный слой для задания области обработки, а просто использовать охват изображения.
Processing area Automatic calculation of the area of the selected processing area. Область обработки
AI Model Processing type. In the drop-down list, you can select the following processing types (default list of processing scenarios): Building Detection, Roads Detection, Forest Detection, Forest Detection With Heights, Construction Detection, Fields Detection.

Тип используемой модели. Список моделей по умолчанию:

  • детекция зданий;

  • детекция дорог;

  • детекция лесной растительности;

  • детекция лесной растительности с высотами древостоя;

  • детекция стройплощадок;

  • детекция полей.

Your balance Remaining area available for processing Оставшееся количество кредитов для процессинга
Start processing New processing start button. You will see a notification about the successful start of processing, or about incorrectly selected parameters after clicking it. It will appear in the block for displaying and working with processing after a successful start of processing. Кнопка старта обработки
Stars for rating Rating scores for the finished processing Рейтинг обработки
Feedback field Comments about rating Комментарии
Note

Сервис является условно бесплатным, то есть при регистрации вы получаете 250 кредитов для обработки, после их использования можно пополнять свой баланс в личном кабинете.

Стоимость обработки рассчитывается по формуле2:

Стоимость = Площадь * (Стоимость обработки + Стоимость данных)

Модель Базовая цена Пост-процессинг
Здания 5
Классификация: 0
Симплификация: 3
Высоты зданий: 20
Склейка с OpenSteeetMap: 0
Здания (Аэрофото) 25
Симплификация: 3
Строительство 4 -
Лес 8 Классификация по Высотам: 20
Дороги 5 -

При использовании поставщиков данных по умолчанию (Mapbox, Arcgis Satellite), собственного источника TMS или загруженных изображений цена равна нулю. Если вы используете коммерческих поставщиков («Global mosaic» и другие, которые могут быть доступны), стоимость данных зависит от уровня масштабирования. Мы сотрудничаем с поставщиками данных, а это означает, что стоимость услуги зависит от платного трафика, поэтому мы масштабируем цены в зависимости от разрешения изображения для более точной модели ценообразования.

Поставщик данных 18 zoom 17 zoom 16 zoom
Mapbox 0 0 0
ArcGIS WorldView 0 0 0
Ваш источник 0 0 0
Ваше изображение TIFF 0 0 0
Global mosaic 10 2.5 1

Пример расчета стоимости обработки

Я хочу обработать 3.3 кв.км данных Global Mosaic на 18 зуме использую модель Зданий

Стоимость = 3.3 * (10+5) = 50 кредитов

В правой части окна 5 основных вкладок:

  • Processing (Обработка)

Name of the field Description Описание
Name Your processing name. Имя обработки
Model User-selected item from the list of available models. Используемая модель
Status Processing status: IN_PROGRESS, OK, FAILED. Статус обработки
Progress The percentage of completeness of the processing. Процент завершенности
Area The processing area (AOI). Площадь области обработки
Created The date-time of the processing creation. Дата обработки
Name of the button Description Описание
View results Shows the results of completed processing in QGIS layers. Отображение результатов
Delete Deletes selected processing/processings. Удаление обработок
Save results Saves processing results to GeoJSON file. Сохранение результатов
Download AOI Adds processing AOI to qgis as a layer, for further work or export. Добавление области обработки как слой
See details Shows information about processing (Name, Status, Model, Model options, Data provider). Информация об обработке
Rename Renames your processing. Переименование
  • Imagery search (Поиск снимков)

  • My imagery (Мои снимки)

Основной сценарий работы с собственными снимками

Обработка собственных снимков

  • Settings

  • Help

Для начала обработки изображений необходимо выбрать интересующуя вас область. Это можно сделать несколькими способами:

  1. создать новую область по охвату карты;
  2. добавить полигон из векторного файла;
  3. нарисовать область на карте;
  4. использовать охват снимка.

Далее следует найти подходящий снимок:

  1. переключиться на вкладку “Imagery Search”;
  2. установить параметры поиска, включая область, период времени, облачность и процент пересечения с областью исследования;
  3. выбрать мозаику (“Product type = Mosaic”), в окне появится изображение и край конкретного снимка.

После обработки вы увидите результат в месте пересечения снимка и области исследования.

Источники данных по умолчанию:

  • Mapbox Satellite - провайдер глоабльных данных высокого размершения (нельзя выбирать изображение и дату съемки);

  • “Global mosaic” - пробная версия мозаики снимков высокого разрешения (0,75 - 0,5 м/пиксель) для 2022 года. Охват ограничен, обновление планируется ежегодно.

Также можно самостоятельно добавлять провайдеров данных во вкладке Providers.

Tip

Как подключиться к некоторым провайдерам данных:

  1. How to connect to Openaerialmap

  2. How to connect to Nearmap

Собственное изображение можно загрузить в формате .GeoTIFF.

После завершения обработки результаты будут загружены в проект как векторный слой. Полученные результаты могут быть сохранены в формате geojson.

Note

Если вы хотите узнать про работу сервиса подробнее, то можете посмотреть вебинар с его разработчиками.

Note

Поподробнее почитать про модели сегментации изображений, можно по ссылке.

2 Модуль Semi-automatic classification plugin

Кроме сегментации изображений с использованием готовой модели также возможно распознавание объектов на основе алгоритмов классификации.

Note

Отличие классификации от сегментации состоит в том, что здесь выделяют не конкретные объекты на снимках (как в предыдущем разделе, например, выделялись только здания или стройплощадки), а классы объектов на снимках на основе имеющихся областей с известным классом.

Для классификации используют не только входной растр, но и еще набор объектов, определяющий классы.

Главным способом осуществить классификацию изображения является использование модуля Semi-automatic classification plugin.

Warning

Если вы будете устанавливать этот модуль, то рекомендую внимательно посмотреть документацию по его установке для своей системы по ссылке.

Так для системы Windows нужно дополнительно установить библиотеки, от которых зависит работа модуля.

Для этого нужно запустить консоль OSGeo4W Shell, в которой ввести команду:

pip3 install --upgrade remotior-sensus

После установки модуль появится в панели инструментов и в виде отдельной панели сбоку.

Tip

Базовый туториал по классификации снимков на английском

На первом этапе следует создать набор каналов, который будет служить исходной информацией для классификации. Этот набор можно собрать в окне модуля, которое вызывается по кнопке .

Новый набор каналов необходимо добавить кнопкой Добавить новый набор каналов (Add new band set) . После добавления пустого набора каналов вы можете либо добавить отдельные каналы из файлов , либо добавить уже открытые в вашем проекте каналы. После выбора и открытия всех нужных каналов нужно выбрать длины волн различных каналов (в выпадающем списке Wavelength), здесь можно выбрать готовые наборы, например, Landsat 8.

Кроме того, нужно выбрать как будет сохраняться ваш набор каналов: или как виртуальный растр (Create virtual raster of band set), или как объединенный растр (Create raster of bands); после чего нажать кнопку выполнения и ожидать результата.

Полученный мультиспектральный снимок
Important

Полученный снимок будет не в естественных цветах, так как мы использовали все каналы, в том числе из невидимой глазом части спектра.

Здесь можно создать любой композит, который вы посчитаете нужным.

Для классификации необходимо создать тренировочный набор данных, на основании которого и будут определяться классы на нашем снимке.

Создание нового тренировочного набора данных

Каждый класс будет содержать в себе определенный тип объектов со своей спектральной характеристикой.

Macroclass name Macroclass ID
Water 1
Built-up 2
Vegetation 3
Soil 4

Тренировчоный набор данных создается вручную с использованием инструмента на панели инструментов . После отрисовки полигон будет отображаться в виде полупрозрачной оранжевой фигуры.

Для добавления полигона в тренировочный набор данных нужно указать его MC ID (идентификатор класса), MC Name (название класса), C ID (идентификатор полигона), C Name (имя полигона).

После заполнения характеристик следует нажать кнопку добавления в набор данных .

Таким образом следует добавить все необходимые классы.

Tip

После того, как вы создали хотя бы один полигон для класса, можно выделять новые полигоны этого класса автоматически, с использованием .

После создания тренировочного набора данных, можно открыть основное окно модуля и переключиться на классификацию.

Tip

Перед классификацией можно попробовать сделать предварительный просмотр результатов по нажатию на кнопку .

Запуск классификации осуществляется по кнопке .

Note

Кроме этого модуля существует еще целый ряд других, которые предназначены для классификации:

Note

В качестве еще одной альтернативы для классификации изображений можно воспользоваться готовым инструментом от компании NextGIS - https://toolbox.nextgis.com/t/image_classification (требуется регистрация).