Использование моделей глубокого обучения для решения задачи семантической сегментации (задачи присвоения метки принадлежности к некоторому классу для каждого из пикселей изображения) стало широко используемой практикой в различных областях: в медицине для анализа рентгеновских снимков и данных компьютерной томографии [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]. Сервис состоит из следующих модулей:
-
Модуль выбора области получения данных
Для выбора области, на которой требуется сегментировать пожары, разработано графическое окно с внедренной картой openstreetmap, с помощью которой можно найти интересующую точку на карте. Для внедрения карты в приложение использована библиотека leaflet.
-
Модуль получения данных Landsat-8
Для получения снимков Landsat-8 можно воспользоваться Python пакетом landsatxplore, которые предоставляет интерфейс к порталу EarthExplorer для поиска и загрузки сцен Landsat Collections через интерфейс командной строки. Поиск данных в базе можно производить по координатам широты и долготы, временному промежутку, уровню облачности снимка.
-
Модуль сегментации данных при помощи модели в формате 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/
Mirzapch
Не понял. Зачем выбрали мультиспектральное изображение?
Современные спутники обладают большим набором сенсоров. Радары, лидары, лазеры... Снимки доступны в ультрафиолетовом, видимом, ближнем и тепловом инфракрасных диапазонах. Можно выбрать более подходящий источник данных.
Какое GSD в исходных данных?
Задача привязки данных ДЗЗ к топокарте далеко не тривиальная. Проблема в том, что спутник ведёт съёмку под определённым углом к земной поверхности. Как решали эту подзадачу?
PS Сам писал подобную дипломную работу ещё в 2010 году. Процессоры в тестовой лаборатории тогда были одноядерные...