Использование моделей глубокого обучения для решения задачи семантической сегментации (задачи присвоения метки принадлежности к некоторому классу для каждого из пикселей изображения) стало широко используемой практикой в различных областях: в медицине для анализа рентгеновских снимков и данных компьютерной томографии [1], в анализе видео с видеорегистраторов [2], управлении роботизированными манипуляторами [3]. Развивающейся является тематика использования моделей глубокого обучения для сегментации спутниковых данных [4].

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

Большой проблемой в задачах обработки спутниковых данных с помощью глубокого обучения является наличие открытых наборов данных. Довольно быстро можно найти нейросетевые решения двух довольно базовых задач анализа данных дистанционного зондирования Земли (ДЗЗ): обнаружение природных пожаров на основе спутниковых данных Landsat-8, и автоматическая сегментация облаков.

Задача обнаружения природных пожаров с помощью алгоритмов глубокого обучения

Исследования в области обнаружения природных пожаров нацелены на разработку методов определения вероятности того, является ли конкретный пиксель мультиспектрального изображения изображением возгорания. В [5] была предложена архитектура сверточной нейронной сети для повышения разрешения изображения на снимках лесных пожаров по данным спутника Sentinel-2. Для построения собственных моделей глубокого обучения определения пожаров можно воспользоваться открытым набором данных activefire [6].

Задача сегментации облаков на снимках ДЗЗ с помощью алгоримтов глубокого обучения

Обнаружение облаков на спутниковых изображениях является важным первым шагом во многих приложениях дистанционного зондирования. В [7] была использовала архитектура ResNet, чтобы отличать дым от похожих объектов (облака, пыль, дымка) на 6225 спутниковых изображениях со спутников Aqua и Terra. Для создания собственных алгоритмов и моделей глубокого обучения можно использовать открытый набор данных 38-clouds-segmentation [8].

Прототип сервиса сегментации спутниковых снимков на основе данных Landsat-8

В университете им. Н.И.Лобачевского ведет свою работу Учебно-исследовательская лаборатория "Информационные технологии", и в одном из проектов студенты 2-3 курсов разрабатывают прототип сервиса сегментации спутниковых данных с помощью глубокого обучения. Исходный код всех модулей доступен на Github [10]. Сервис состоит из следующих модулей:

  1. Модуль выбора области получения данных

    Для выбора области, на которой требуется сегментировать пожары, разработано графическое окно с внедренной картой openstreetmap, с помощью которой можно найти интересующую точку на карте. Для внедрения карты в приложение использована библиотека leaflet.

  2. Модуль получения данных Landsat-8

    Для получения снимков Landsat-8 можно воспользоваться Python пакетом landsatxplore, которые предоставляет интерфейс к порталу EarthExplorer для поиска и загрузки сцен Landsat Collections через интерфейс командной строки. Поиск данных в базе можно производить по координатам широты и долготы, временному промежутку, уровню облачности снимка.

  3. Модуль сегментации данных при помощи модели в формате OpenVINO

    Сегментация данных в программе происходит с помощью модели, основанной на архитектуре UNet [4]. Пока студенты используют предобученную модель от авторов статьи, но уже погружаются в глубокое обучение, чтобы обучать модели самостоятельно.

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

Главное окно программы
Главное окно программы

Задача измерения производительности моделей глубокого обучения является сейчас очень актуальной, и мы ее тоже решили рассмотреть. Для измерения производительности модели используется модуль DL Workbench библиотеки OpenVINO. Данный модуль позволяет проводить эксперименты по варьированию параметров запуска (количество потоков данных, обрабатывающихся независимо; размер пачки данных, обрабатывающихся одновременно; использование типа данных половинной точности). В таблице I представлены данные о производительности модели в различных режимах работы на CPU Intel i5 10600 (6 ядер 12 потоков 3.3GHz). Наилучшей производительностью обладает конфигурация, когда число параллельно работающих потоков равно числу физических ядер процессора, в таком режиме каждое вычисления над одной пачкой не распараллеливаются на несколько ядер, а производятся на одном ядре.

Таблица I. Производительность моделей глубокого обучения с применением фреймворка OpenVINO

Размер пачки

Количество потоков

Тип весов

FPS, кадров в сек

Тип весов

FPS, кадров в сек

1

1

FP16

4.83

FP32

4.88

1

2

FP16

5.26

FP32

5.30

1

6

FP16

5.94

FP32

5.91

2

1

FP16

4.38

FP32

4.41

2

2

FP16

5.35

FP32

5.34

2

6

FP16

5.93

FP32

5.90

4

1

FP16

4.32

FP32

4.28

4

2

FP16

5.48

FP32

5.38

4

6

FP16

5.92

FP32

5.90

[1] Lachinov, D.A. Glioma Segmentation with Cascaded UNet / D.A. Lachinov, E.P. Vasilyev, V.E. Turlapov // Brainlesion: Glioma, Multiple Sclerosis, Stroke and Traumatic Brain Injuries. BrainLes 2018. // LNCS – 2019. – Vol. 11384. – P. 189–198.

[2] Rethinking atrous convolution for semantic image segmentation. https://arxiv.org/abs/1706.05587

[3] Sun, G. Robotic grasping using semantic segmentation and primitive geometric model based 3d pose estimation / G. Sun, H. Lin // IEEE/SICE International Symposium on System Integration – 2020. – P. 337–342.

[4] Pereira, G.H. Active fire detection in Landsat-8 imagery: A large-scale dataset and a deep-learning study / G.H. Pereira, A.M. Fusioka, N.B. Tomoyuki, R. Minetto // ISPRS Journal of Photogrammetry and Remote Sensing. – 2021. – Vol. 178. – P. 171–186.

[5] Gargiulo, M. A CNN-Based Super-Resolution Technique for Active Fire Detection on Sentinel-2 Data / M. Gargiulo, D. Iodice, D. Riccio, G. Ruello // Photonics Electromagnetics Research Symposium. – 2019. – P. 418–426.

[6] Active Fire Detection in Landsat-8 Imagery: a Large-Scale Dataset and a Deep-Learning Study. https://github.com/pereira-gha/activefire

[7] Ba, R. SmokeNet: Satellite Smoke Scene Detection Using Convolutional Neural Network with Spatial and Channel-Wise Attention / R. Ba, C. Chen, J. Yuan // Remote Sensing. – 2019. – Vol. 11(14). – P. 1–22.

[8] 38-Cloud: A Cloud Segmentation Dataset. https://github.com/SorourMo/38-Cloud-A-Cloud-Segmentation-Dataset

[9] Intel® Distribution of OpenVINOTM toolkit. https://docs.openvino.ai/latest/index.html

[10] Satellite images processing. https://github.com/itlab-vision/satellite_images_processing/

Комментарии (1)


  1. Mirzapch
    19.12.2022 07:09

    Не понял. Зачем выбрали мультиспектральное изображение?

    Современные спутники обладают большим набором сенсоров. Радары, лидары, лазеры... Снимки доступны в ультрафиолетовом, видимом, ближнем и тепловом инфракрасных диапазонах. Можно выбрать более подходящий источник данных.

    Какое GSD в исходных данных?

    Задача привязки данных ДЗЗ к топокарте далеко не тривиальная. Проблема в том, что спутник ведёт съёмку под определённым углом к земной поверхности. Как решали эту подзадачу?

    PS Сам писал подобную дипломную работу ещё в 2010 году. Процессоры в тестовой лаборатории тогда были одноядерные...