0 математическое моделирование i и информационные технологии
УДК 528.7
DOI 10.18822/byusu20240122-28
сравнение алгоритмов сегментации облаков и их теней на космических снимках
Соколков Олег Игоревич
Югорский научно-исследовательский институт
информационных технологий
Ханты-Мансийск, Россия
E-mail: sokol.oleg2012@yandex.ru
Предмет исследования: алгоритмы сегментации спутниковых снимков.
Цель исследования: сравнение алгоритмов сегментации облаков и облачных теней.
Методы и объекты исследования: вычисление и сравнение метрик эффективности, размеченные космические снимки (CloudSEN12), алгоритмы Fmask, Kappamask, Sen2cloudless, Ukis-csmask, Mobile-Unet, сегментация облаков миссии Sentinel, классификация сцены Sen2cor, FC-CNN.
Основные результаты исследования: для рассматриваемых алгоритмов вычислены метрики Precision, Recall, Accuracy, F1. Лучший результат продемонстрировал Mobile-Unet с оценкой 0,888 по метрике F1. Новизна полученных результатов заключается в расширении контекста сравнительного анализа предыдущих исследований аналогичного рода: мы добавляем к нему еще один алгоритм (Ukis-csmask).
Ключевые слова: сегментация, облака, тени, машинное обучение, Sentinel-2, CloudSEN12, Mobile-Unet, Fmask, Kappamask, Sen2cor, Sen2cloudless, Ukis-csmask, FC-CNN.
the comparison of cloud and shadow segmentation algorithms on satellite images
Oleg I. Sokolkov
Ugra Research Institute of Information
Technologies
Khanty-Mansiysk, Russia
E-mail: sokol.oleg2012@yandex.ru
Subject of research: the segmentation algorithms of satellite images.
Purpose of research: to compare cloud and cloud shadow segmentation algorithms.
Methods and objects of research: the calculation and comparison of efficiency metrics, labeled space images (CloudSEN12), Fmask, Kappamask, Sen2cloudless, Ukis-csmask, Mobile-Unet algorithms, Sentinel mission cloud segmentation, Sen2cor scene classification, FC-CNN.
Main results of research: the Precision, Recall, Accuracy, F1 metrics have been calculated for the algorithms under consideration. The best result was demonstrated by Mobile-Unet with a score of 0.888 on the F1 metric. The novelty of the obtained results lies in expanding the context of comparative analysis of previous similar studies: we add another algorithm to it (Ukis-csmask).
Keywords: segmentation, clouds, shadows, machine learning, Sentinel-2, CloudSEN12, Mobile-Unet, Fmask, Kappamask, Sen2cor, Sen2cloudless, Ukis-csmask, FC-CNN.
ВВЕДЕНИЕ
Ввиду существенного негативного влияния облаков и их теней на анализ данных есть смысл организовать этап определения таких областей с целью учитывать их в дальнейшем. Такой предобработкой мы сможем абстрагироваться от отвлекающих факторов, и при решении задачи сегментации дать возможность алгоритмам просматривать значимые для него области кадров.
Приведем конкретный пример: разработка автоматизированной системы сегментации лесных рубок. В процессе апробации реализованного решения обнаруживаем, что некоторые фрагменты облаков и их теней по ошибке распознаются системой как рубки. С целью предотвращения ложных срабатываний приходим к следующему решению: применяем алгоритм сегментации облаков и их теней, удаляем выявленные пиксели изображения из рассмотрения. На таком изображении не будет облаков и, следовательно, количество ложноположительных срабатываний будет значительно ниже. Тем самым получаем выигрыш в качестве распознавания - в этом и заключается актуальность проведения такого рода сегментации. Конечно, в теории можно разработать такую систему распознавания,
которая изначально работает с облачными снимками без проблем, не путая наземные объекты с облаками. Тогда отпадает необходимость в перечисленных выше преобразованиях. Но далеко не всегда это возможно на практике ввиду трудности с точки зрения реализации.
Рассмотрим причину рассмотрения теней от облаков для задачи сегментации изображения. Облака не пропускают весь свет через себя, как следствие - на земной поверхности образуется тень, и чем облако плотнее, тем эта тень более темная. Такие области на снимке также могут привести к проблемам анализа земной поверхности.
РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ
Проблемы алгоритмов
рассматриваемого типа
Для общего понимания предметной области требуется сформировать представления о трудностях, возникающих в процессе сегментации облаков и их теней. Бывают слишком «осторожные» и слишком «неосторожные» алгоритмы. В первом случае имеем ситуацию, когда алгоритм не путает облако с чем-либо другим: если он разметил облако на снимке - значит, может быть уверен, что
Соколков О.И.
это в самом деле оно. Но есть проблема: он сегментирует облака не до конца, пропуская большое их количество. Во втором случае алгоритм выделяет все облака, однако вдобавок он распознает в качестве облака или тени еще и то, что к таковым не относится. Возникают другие случаи, которые однозначно не относятся к первым двум: когда сегментация была произведена неадекватно в принципе. Причиной таких проблем может являться то, что ситуация на снимке оказалась слишком нестандартной, и рассматриваемый алгоритм не был к ней приспособлен.
Неопределенности добавляет и следующее: можем ли мы идентифицировать полупрозрачные облака низкой плотности в качестве таковых? Условно можно сказать: то или иное облако имеет некий процент прозрачности. Есть возможность задать некоторый порог и задать правило такого вида: если конкретное облако имеет на снимке процент прозрачности больше порога, то тогда считаем его облаком. Иначе - считаем, что это нечто иное. Определение порога прозрачности требует использования экспериментальных данных, и формализация этой задачи может быть предметом отдельного исследования.
Отдельно отметим проблему, характерную для регионов планеты с холодным климатом: бывает трудно различить облака на фоне заснеженной поверхности. Они могут на снимке слиться воедино: как следствие, облака можно по ошибке распознать как снег и наоборот. Существуют алгоритмы, которые справляются с такой задачей достаточно качественно (в качестве примера можно привести РтэБк 4.0 [1]), однако могут быть и те, которые не приспособлены для ее решения, либо приспособлены недостаточно хорошо.
Обзор аналогичных исследований
Обширная работа по рассматриваемой тематике отражена в [2]. В данной статье приводится сравнительный анализ большого количества алгоритмов сегментации облаков и их теней, апробация которых производится на множестве наборов данных. Среди работ данного типа следует отметить также [3]. Здесь производят собственный набор данных (с указанием процесса его построения) и проводят по нему эксперименты: его используют для вычисления метрик эффективности алгоритмов рассматриваемого нами типа. Приводится достаточно большое количество таких алгоритмов. Отметим статью [4]. Отличительной особенностью этой работы по отношению к остальным - здесь приводится сравнительный анализ конкретно на снимках Беп^пе!-2. Здесь рассматривается пять алгоритмов, апробация которых выполняется
на спутниковых снимках Африки и Западной Европы.
Следует отметить: в представленных выше работах [2] и [3] приведенный список метрик можно расширить (например, добавить Р-ме-ру). В этих же работах список алгоритмов, подлежащих оценке и сравнению, также не является исчерпывающим: целесообразно ввести в рассмотрение и другие. В работе [4] рассматривается лишь часть планеты, северные широты - вне рассмотрения. Для большей полноты картины есть смысл опробовать алгоритмы и на северных широтах.
Постановка задачи
Конкретизируем цель, преследуемую нами в рамках выполнения данной работы, посредством разделения на следующие задачи:
1. дать характеристику набору данных, на основе которого в дальнейшем будем считать метрики;
2. дать характеристику рассматриваемым алгоритмам сегментации облаков и их теней;
привести метрики эффективности для каждого включенного в рассмотрение алгоритма (используемые метрики определены в соответствующем разделе данной работы);
3. подвести итоги на основании полученных метрик.
Набор данных
В нашем исследовании мы используем набор данных С!оиСБЕЫ12 [3]. В нем собраны фрагменты снимков размером 509 на 509 пикселей, произведенных спутником Беп^пе!-2 [5], с размеченными облаками и их тенями. Для большей наглядности представим размеченный фрагмент с идентификатором «20181219Т133221_20181219Т133216_Т23ММР» (рисунок 1). Здесь отображен непосредственно сам снимок (а) и разметка (б) - облака обозначены серым цветом, тени - белым.
Каждый такой фрагмент относится к той или иной области земного шара. Всего в наборе данных имеется 9880 таких областей, среди которых:
• 2000 областей с разметкой высокого качества (в них содержится в общей совокупности 10 000 фрагментов);
• 2000 областей с разметкой низкого качества (10 000 фрагментов);
• 5880 областей без разметки (29 400 фрагментов).
Оставим вне рассмотрения те фрагменты, которые имеют разметку низкого качества: посчитать метрики должным образом по ним
Oleg I. Sokolkov
Рисунок 1. Фрагмент снимка БепУпе!-2 (слева) и файл разметки (справа).
не удастся. Также отбросим и неразмеченные, исходя из тех же принципов. Итого далее в нашем рассмотрении остается 10 000 изображений. Среди них имеются 2001 безоблачных фрагментов (идентификатор такой группы в рамках набора данных: cloud-free), 1999 - практически безоблачных (almost-clear), 2000 - с низкой облачностью (low-cloudy), 2000 - со средней облачностью (mid-cloudy) и 2000 -облачных (cloudy). Можем констатировать: набор данных практически идеально сбалансирован по данным категориям.
Помимо характеристик облачности, следует также принять во внимание и географические характеристики рассматриваемых фрагментов (рисунок 2). Красными
точками на карте отображены области съемки. Наблюдаем, что они распределены по земной поверхности более-менее равномерно (за исключением Гренландии, Южной Африки и Антарктиды): в наборе данных представлено множество регионов планеты. Так что с точки зрения географического распределения набор данных также вполне сбалансирован. Здесь присутствуют как южные и средние широты, так и северные.
Рассматриваемые алгоритмы
В этом же наборе данных, помимо размеченных фрагментов, поставляются в комплекте также и результаты выполнения некоторых алгоритмов: мы намереваемся ими
Рисунок 2. Распределение областей с фрагментами, имеющими разметку высокого качества (С!оиСБЕЫ12).
Соколков О.И.
воспользоваться для вычисления метрик в нашей работе.
Здесь представлен алгоритм сегментации облаков миссии Sentinel (в рассматриваемом датасете эта маска содержится в файле «qa60. tif») [6]. Посредством данного алгоритма осуществляется сегментация перистых (cirrus) и плотных облаков (opaque clouds), однако тени им не обнаруживаются. Для вычисления используются: синий диапазон (B1 или B2), диапазон B10 и коротковолновый инфракрасный диапазон (B11 или B12). Сгенерированная данным алгоритмом маска лежит в файлах снимка Sentinel-2.
В наличии также алгоритм сегментации облаков s2cloudless для снимков со спутника Sentinel-2, разработанный исследовательской командой Sentinel Hub. Базируется на градиентном бустинге (gradient boosting) - методе машинного обучения. Программная реализация вместе с описательной характеристикой представлена в [7]. Вычисление выполняется на основе диапазонов B01, B02, B04, B05, B08, B8A, B09, B10, B11, B12. В файле «s2cloudless. tif» имеем маску следующего содержания: в каждом ее пикселе содержится вероятность того, относится ли он к облаку или нет. Непосредственно ее использовать для вычисления метрик нецелесообразно - алгоритм имеет опцию преобразовать карту вероятностей в карту классов (имеются два - «облако» и «не-обла-ко»): ее мы применим в нашей работе.
Также есть в наличии результаты выполнения алгоритма Fmask 4.0 [1]. Посредством него осуществляется сегментация облаков и их теней для снимков спутников Landsats 4-8 и Sentinel-2. Вдобавок он также проводит сегментацию водной и снежной поверхностей. Реализация осуществляется посредством методов машинного обучения. Во внимание берутся правила и статистические данные, полученные на основе физических характеристик облаков и их теней.
Программное обеспечение sen2cor [8] предназначено для атмосферной коррекции, которая в данной работе не рассматривается: нас здесь интересует другой момент. Чтобы осуществить атмосферную коррекцию, алгоритм предварительно осуществляет сегментацию снимка по следующим классам: растительность (Vegetation), почва (Bare Soils), вода (Water), снег (Snow), облако со средней вероятностью (Cloud medium probability), облако с высокой вероятностью (Cloud high probability), тонкое перистое облако (Thin cirrus) и облачная тень (Cloud shadows). Эти результаты сохраняются в виде отдельного файла-маски, которая в наличии у рассматриваемого нами набора данных.
Kappamask является алгоритмом, основанным на искусственном интеллекте [9]. Модель основана на полносвязной сверточной нейронной сети (CNN-based model) с использованием методологии активного обучения (active learning). Сегментация выполняется по классам: «clear», «cloud shadow» (тень от облака), «semi-transparent cloud» (полупрозрачное облако), «cloud» (облако) и «missing» (дефектные пиксели или те, которые не содержали данных). В датасете представлены два варианта отработки алгоритма: результаты по снимку уровня Level-1C (представлен в файле «kappamask_L1C.tif») и отдельно - по Level-2A («kappamask_L2A.tif»).
Представлены и другие алгоритмы, построенные на основе сверточной полносвязной нейронной сети, результаты которых содержатся в файлах «CD-FCNN-RGBI.tif» и «CD-FCNN-RGBISWIR.tif». Здесь используется архитектура U-net [10]. На выходе имеем маску вероятностей облачности (вместо однозначного отношения к классу). Значения этой маски распределены от 1 до 10000. Поиск теней от облаков здесь не осуществлен.
Рассматриваемые задачи также были решены посредством применения сверточной нейронной сети Mobile-Unet [11]. Отмечается: ее преимущество заключается в скорости, что дает возможность решать задачи в реальном времени. Результаты сегментации напрямую в датасете в виде готовых масок не содержатся, однако с датасетом поставляется программная библиотека, в которой содержится уже обученная модель Mobile-Unet, готовая для использования [12]: мы ее применим в нашей работе для вычисления метрик.
Дополним выше представленный список посредством введения в рассмотрение алгоритма ukis-csmask [13], также основанного на U-net. На вход подаются следующие диапазоны: «Blue», «Green», «Red», «NIR», «SWIR1», «SWIR2». Сегментируются как облака (без разделения на непрозрачные или полупрозрачные), так и их тени. Будем использовать программную реализацию, представленную в [14].
Методология проведения оценок
Будем использовать Precision, Recall, Accuracy, F1 c макро-усреднением (Macro-Averaging). Общая его идея заключается в том, что эти метрики считаются как для одного, так и для обратного класса (в качестве примера можно привести класс «облако» и обратные ему класс «не-облако») с последующим усреднением. Далее определим проведение оценок по облачности. Формула для вычисления F1 имеет вид:
Oleg I. Sokolkov
Таблица 1. Метрики по сегментации облаков.
Алгоритм Precision Recall Accuracy F1
qa60 0.680 0.675 0.782 0.631
Fmask 0.824 0.796 0.865 0.774
Kappamask_L1C 0.804 0.761 0.854 0.744
Kappamask_L2A 0.738 0.691 0.786 0.656
sen2cor 0.777 0.731 0.828 0.703
sen2cloudless 0.817 0.773 0.863 0.756
FC-CNN-RGBI 0.771 0.736 0.806 0.696
FC-CNN- RGBISWIR 0.786 0.749 0.817 0.709
Mobile-Unet 0.917 0.890 0.940 0.888
ukis-csmask 0.803 0.785 0.838 0.753
F1 =
F1 + F1
cloud_non-cloud_
existsdoud + existsnon-cloud
(1)
где F1cloud - метрика F1, вычисленная для класса «облако»,
F1 , . - метрика F1, вычисленная для
non-cloud 1 ' "
класса «не-облако», exists
cloud
= 1, если в данной паре масок «ожидаемое» - «предсказанное» имеется как минимум один пиксель, относящийся к классу «облако», иначе - данное значение нулевое. exists , . = 1, если в данной паре масок
non-cloud
«ожидаемое» - «предсказанное» имеется как минимум один пиксель, относящийся к классу «не-облако», иначе - данное значение нулевое.
Формулы для метрик Precision, Recall, Accuracy строим по аналогичному принципу. Требуется задать следующее: Precision, . и Precision , .,
cloud non-cloud
Recall, . и Recall , .,
cloud non-cloud
Accuracy . и Accuracy , ..
cloud non-cloud
Дадим для выше представленных значе-
ний определения Precision =
TP
TP + FP
Recall =
TP
TP + FN
Accuracya =
TP + TN
TP + TN + FP + FN,
F1 =
2*Precisiona *Recalla Precision + Recall
(2)
(3)
(4)
(5)
где a - класс, для которого строится соответствующее значение.
Аналогично вычисляем метрики по теням. Имеем те же самые формулы за исключением следующего: меняем «cloud» на «shadow», «non-cloud» - на «non-shadow».
Если тот или иной алгоритм сегментирует на несколько классов облачности («полупрозрачное облако», «перистое облако», «непрозрачное облако»), - все объединяем и считаем это одним классом «облако» для удобства вычисления метрик. В самой разметке («manual_ hq.tif») выделяются также непрозрачные и полупрозрачные облака, - с ней производим аналогичные действия.
Алгоритмы FC-CNN-RGBI и FC-CNN-SWIR в своем роде кардинально отличаются от остальных: у них нет разметки по классам, маска заполнена значениями от 1 до 10000. Таким образом, здесь по факту представлено 10 000 классов: нет возможности адекватно посчитать метрики непосредственно по этим данным. Стоит задача отображения данного диапазона в диапазон двух значений: 0 («не-облако») и 1 («облако»). Для этого следует подобрать некоторый порог. Подбор порога -задача, требующая отдельного исследования. Возьмем для наших последующих вычислений значение порог в 5000.
Для алгоритмов FC-CNN-RGBI, FC-CNN-RGBISWIR, Fmask, qa60, sen2cloudless, Mobile-Unet, sen2cor было принято решение добавить постобработку следующего вида: если алгоритм обнаружил на снимке облака площадью менее 1 % от площади всего снимка, то игнорируем этот результат. Считаем, что алгоритм не нашел здесь облаков: установлено экспериментально, что данная мера немного увеличивает значения метрик (например, по Mobile-Unet поднялась метрика F1 на 0,9 % по
Соколков О.И.
Таблица 2. Метрики по сегментации облачных теней.
Алгоритм Precision Recall Accuracy F1
Fmask 0,764 0,747 0,913 0,743
Kappamask_L1C 0.732 0.694 0.928 0.688
Kappamask_L2A 0.767 0.687 0.921 0.687
sen2cor 0.723 0.693 0.922 0.686
Mobile-Unet 0.889 0.870 0.963 0.871
ukis-csmask 0.740 0.687 0.923 0.685
облачности, а на 2,3 % - поднялась та же оценка по теням. Аналогичным образом поступаем с сегментацией теней.
Результаты оценки моделей
Результаты вычисления метрик по облакам представлены в таблице 1. Для каждого алгоритма было получено (или найдено -если маски с результатами уже имелись в наборе данных) 10 000 масок по соответствующим 10 000 снимкам. Для каждой такой маски были подсчитаны Precision, Recall, Accuracy, F1. По маскам было проведено среднее арифметическое, которое и отражено в таблице.
Результаты по теням представлены в таблице 2, вычисления производились аналогичным образом. Здесь представлено меньше алгоритмов ввиду того, что не каждый из раннее перечисленных нацелен на сегментацию теней.
Можем констатировать: по всем метрикам и по всем двум задачам (сегментации облаков и облачных теней) оказался лучшим алгоритм Mobile-Unet с заметным отрывом от остальных. В качестве второго по эффективности можно выделить Fmask. Если говорить конкретно про облака: наименьшие метрики имеет алгоритм qa60. Если про сегментацию облачных теней: в этой задаче наименее эффективные результаты продемонстрировал алгоритм ukis-csmask.
ЗАКЛЮЧЕНИЕ И ВЫВОДЫ
В рамках данной работы было осуществлено сравнение алгоритмов сегментации областей на космическом снимке, которые покрыты облаками, либо их тенями. Оценка производилась отдельно по облакам, и отдельно - по теням. Была проведена характеристика и осуществлен анализ используемого набора данных CloudSEN12. Была проведена описательная характеристика рассматриваемых алгоритмов сегментации. Представлено среднее арифметическое метрик по их отработке: Precision, Recall, Accuracy, F1.
Исследование показало: лучшие результаты
по всем метрикам (как по теням, так и по облакам) имеет алгоритм, основанный на нейронной сети Mobile-Unet.
СПИСОК ЛИТЕРАТУРЫ
1. Shi Qiu, Zhe Zhu, Binbin He. Fmask 4.0: Improved cloud and cloud shadow detection in Landsats 4-8 and Sentinel-2 imagery // Remote Sensing of Environment. - 2019, No. 231. - 67 p.
2. Sergii V. Skakun, Jan Wevers, Carsten Brockmann, Georgia Doxani, et al. Cloud Mask Intercomparison eXercise (CMIX): An evaluation of cloud masking algorithms for Landsat 8 and Sentinel-2 // Remote Sensing of Environment. - 2022, Vol. 274, No. 1. - 22 p.
3. Cesar Aybar, Luis Ysuhuaylas, Jhomira Loja, Karen Gonzales, et al. CloudSEN12, a global dataset for semantic understanding of cloud and cloud shadow in Sentinel-2 // Scientific Data. - 2022. - Vol 9, No. 1. - 17 p.
4. Katelyn Tarrio, Xiaojing Tang, Jeffrey G Masek, Martin Claverie, et al. Comparison of cloud detection algorithms for Sentinel-2 imagery // Sci Remote Sens. - 2020. -URL: https://www.sciencedirect.com/science/article/pii/ S2666017220300092
5. Sentinel-2. ESA's Optical High-Resolution Mission for GMES Operational Services, URL: https://sentinel.esa.int/ documents/247904/349490/S2_SP-1322_2.pdf
6. Level-1C Algorithms and Products / Cloud Masks. URL: https://sentinel.esa.int/web/sentinel/technical-guides/ sentinel-2-msi/level-1c/cloud-masks
7. Sentinel Hub's cloud detector for Sentinel-2 imagery. URL: https://github.com/sentinel-hub/sentinel2-cloud-detector? ysclid=lil7s21ueq330887295 - Загл. с экрана.
8. Magdalena Main-Knorn, Bringfried Pflug, Jerome Louis, Debaecker, Jerome Louis, et al. Sen2Cor for sentinel-2. I n I mage and Signal Processing for Remote Sensing // International Society for Optics and Photonics. - 2017. -Vol. 10427. - p. 1042704. -
9. URL: https://www.researchgate.net/ publication/320231869_Sen2Cor_for_Sentinel-2
10. Marharyta Domnich, Indrek Sunter. KappaMask: AI-Based Cloudmask Processor for Sentinel-2 // Remote Sensing. -2021. - Vol. 13, No. 20. - 22 p.
Oleg I. Sokolkov
11. Zongwei Zhou, Md Mahfuzur Rahman Siddiquee, Nima Tajbakhsh, Jianming Liang. UNet++: A Nested U-Net Architecture for Medical Image Segmentation // 4th Deep Learning in Medical Image Analysis (DLMIA) Workshop. -2018. - 11 p.
12. Junfeng Jing, Zhen Wang, Matthias Ratsch, Huanhuan Zhang. Mobile-Unet: An efficient convolutional neural network for fabric defect detection // Textile Research Journal. - 2020. - Vol. 92, No 12. - 17 p.
13. CloudSEN12: A global dataset for cloud and cloud shadow semantic understanding. URL: https://github.com/ cloudsen12/examples?ysclid=lj2iwsvofs700104227 -Загл. с экрана.
14. M. Wieland, Yu Li, S. Martinis. Multi-sensor cloud and cloud shadow segmentation with a convolutional neural network // Remote Sensing of Environment. - 2019. - No. 230. - 22 p.
15. Ukis-csmask. URL: https://github.com/dlr-eoc/ukis-csmas k?ysclid=lj2iaa2xsz492603360 - Загл. с экрана.