Распознавание объектов на снимках
1 Модуль от Mapflow AI
Mapflow от компании GeoAlert - платформа для распознавания объектов на спутниковых снимках.
Сайт платформы - https://mapflow.ai/ru
На платформе реализованы модели сегментации, позволяющие распознавать на снимках:
контура фундаментов зданий;
различные типы лесной растительности;
строительные площадки;
дороги;
сельскохозяйственные поля.
При сегментации изображений на них выделяют конкретные пиксели, составляющие объекты1.
Подробная документация по работе с модулем приведена по ссылке.
После регистрации на платформе вы можете использовать ее напрямую в браузере или с помощью одноименного модуля для QGIS.
Регистрация на платформе является обязательным условием использования сервиса, даже при работе через модуль.
После установки значок модуля должен появиться в основной панели инструментов .
При первом запуске модуля вы увидите окно, в котором необходимо ввести ваш личный API токен для доступа к сервису.
Сервис не работает через прокси.
Основное окно плагина содержит две основных панели:
панель процессинга;
вкладки с прочими настройками и источниками.
Панель процессинга позволяет настроить обработку изображений.
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 | Комментарии |
Сервис является условно бесплатным, то есть при регистрации вы получаете 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
Для начала обработки изображений необходимо выбрать интересующуя вас область. Это можно сделать несколькими способами:
- создать новую область по охвату карты;
- добавить полигон из векторного файла;
- нарисовать область на карте;
- использовать охват снимка.
Далее следует найти подходящий снимок:
- переключиться на вкладку “Imagery Search”;
- установить параметры поиска, включая область, период времени, облачность и процент пересечения с областью исследования;
- выбрать мозаику (“Product type = Mosaic”), в окне появится изображение и край конкретного снимка.
После обработки вы увидите результат в месте пересечения снимка и области исследования.
Источники данных по умолчанию:
Mapbox Satellite - провайдер глоабльных данных высокого размершения (нельзя выбирать изображение и дату съемки);
“Global mosaic” - пробная версия мозаики снимков высокого разрешения (0,75 - 0,5 м/пиксель) для 2022 года. Охват ограничен, обновление планируется ежегодно.
Также можно самостоятельно добавлять провайдеров данных во вкладке Providers.
Как подключиться к некоторым провайдерам данных:
How to connect to Openaerialmap
How to connect to Nearmap
Собственное изображение можно загрузить в формате .GeoTIFF.
После завершения обработки результаты будут загружены в проект как векторный слой. Полученные результаты могут быть сохранены в формате geojson.
Если вы хотите узнать про работу сервиса подробнее, то можете посмотреть вебинар с его разработчиками.
Поподробнее почитать про модели сегментации изображений, можно по ссылке.
2 Модуль Semi-automatic classification plugin
Кроме сегментации изображений с использованием готовой модели также возможно распознавание объектов на основе алгоритмов классификации.
Отличие классификации от сегментации состоит в том, что здесь выделяют не конкретные объекты на снимках (как в предыдущем разделе, например, выделялись только здания или стройплощадки), а классы объектов на снимках на основе имеющихся областей с известным классом.
Для классификации используют не только входной растр, но и еще набор объектов, определяющий классы.
Главным способом осуществить классификацию изображения является использование модуля Semi-automatic classification plugin.
Если вы будете устанавливать этот модуль, то рекомендую внимательно посмотреть документацию по его установке для своей системы по ссылке.
Так для системы Windows нужно дополнительно установить библиотеки, от которых зависит работа модуля.
Для этого нужно запустить консоль OSGeo4W Shell, в которой ввести команду:
pip3 install --upgrade remotior-sensus
После установки модуль появится в панели инструментов и в виде отдельной панели сбоку.
Базовый туториал по классификации снимков на английском
На первом этапе следует создать набор каналов, который будет служить исходной информацией для классификации. Этот набор можно собрать в окне модуля, которое вызывается по кнопке .
Новый набор каналов необходимо добавить кнопкой Добавить новый набор каналов (Add new band set) . После добавления пустого набора каналов вы можете либо добавить отдельные каналы из файлов
, либо добавить уже открытые в вашем проекте каналы. После выбора и открытия всех нужных каналов нужно выбрать длины волн различных каналов (в выпадающем списке Wavelength), здесь можно выбрать готовые наборы, например, Landsat 8.
Кроме того, нужно выбрать как будет сохраняться ваш набор каналов: или как виртуальный растр (Create virtual raster of band set), или как объединенный растр (Create raster of bands); после чего нажать кнопку выполнения и ожидать результата.
Полученный снимок будет не в естественных цветах, так как мы использовали все каналы, в том числе из невидимой глазом части спектра.
Здесь можно создать любой композит, который вы посчитаете нужным.
Для классификации необходимо создать тренировочный набор данных, на основании которого и будут определяться классы на нашем снимке.
Каждый класс будет содержать в себе определенный тип объектов со своей спектральной характеристикой.
Macroclass name | Macroclass ID |
---|---|
Water | 1 |
Built-up | 2 |
Vegetation | 3 |
Soil | 4 |
Тренировчоный набор данных создается вручную с использованием инструмента на панели инструментов . После отрисовки полигон будет отображаться в виде полупрозрачной оранжевой фигуры.
Для добавления полигона в тренировочный набор данных нужно указать его MC ID (идентификатор класса), MC Name (название класса), C ID (идентификатор полигона), C Name (имя полигона).
После заполнения характеристик следует нажать кнопку добавления в набор данных .
Таким образом следует добавить все необходимые классы.
После того, как вы создали хотя бы один полигон для класса, можно выделять новые полигоны этого класса автоматически, с использованием .
После создания тренировочного набора данных, можно открыть основное окно модуля и переключиться на классификацию.
Перед классификацией можно попробовать сделать предварительный просмотр результатов по нажатию на кнопку .
Запуск классификации осуществляется по кнопке .
Кроме этого модуля существует еще целый ряд других, которые предназначены для классификации:
В качестве еще одной альтернативы для классификации изображений можно воспользоваться готовым инструментом от компании NextGIS - https://toolbox.nextgis.com/t/image_classification (требуется регистрация).