The comparison of cloud and shadow segmentation algorithms on satellite images

Cover Page

Cite item

Full Text

Abstract

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).

Full Text

ВВЕДЕНИЕ

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

Приведем конкретный пример: разработка автоматизированной системы сегментации лесных рубок. В процессе апробации реализованного решения обнаруживаем, что некоторые фрагменты облаков и их теней по ошибке распознаются системой как рубки. С целью предотвращения ложных срабатываний приходим к следующему решению: применяем алгоритм сегментации облаков и их теней, удаляем выявленные пиксели изображения из рассмотрения. На таком изображении не будет облаков и, следовательно, количество ложноположительных срабатываний будет значительно ниже. Тем самым получаем выигрыш в качестве распознавания – в этом и заключается актуальность проведения такого рода сегментации. Конечно, в теории можно разработать такую систему распознавания, которая изначально работает с облачными снимками без проблем, не путая наземные объекты с облаками. Тогда отпадает необходимость в перечисленных выше преобразованиях. Но далеко не всегда это возможно на практике ввиду трудности с точки зрения реализации.

Рассмотрим причину рассмотрения теней от облаков для задачи сегментации изображения. Облака не пропускают весь свет через себя, как следствие – на земной поверхности образуется тень, и чем облако плотнее, тем эта тень более темная. Такие области на снимке также могут привести к проблемам анализа земной поверхности.

РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ

Проблемы алгоритмов рассматриваемого типа

Для общего понимания предметной области требуется сформировать представления о трудностях, возникающих в процессе сегментации облаков и их теней. Бывают слишком «осторожные» и слишком «неосторожные» алгоритмы. В первом случае имеем ситуацию, когда алгоритм не путает облако с чем-либо другим: если он разметил облако на снимке – значит, может быть уверен, что это в самом деле оно. Но есть проблема: он сегментирует облака не до конца, пропуская большое их количество. Во втором случае алгоритм выделяет все облака, однако вдобавок он распознает в качестве облака или тени еще и то, что к таковым не относится. Возникают другие случаи, которые однозначно не относятся к первым двум: когда сегментация была произведена неадекватно в принципе. Причиной таких проблем может являться то, что ситуация на снимке оказалась слишком нестандартной, и рассматриваемый алгоритм не был к ней приспособлен.

Неопределенности добавляет и следующее: можем ли мы идентифицировать полупрозрачные облака низкой плотности в качестве таковых? Условно можно сказать: то или иное облако имеет некий процент прозрачности. Есть возможность задать некоторый порог и задать правило такого вида: если конкретное облако имеет на снимке процент прозрачности больше порога, то тогда считаем его облаком. Иначе – считаем, что это нечто иное. Определение порога прозрачности требует использования экспериментальных данных, и формализация этой задачи может быть предметом отдельного исследования.

Отдельно отметим проблему, характерную для регионов планеты с холодным климатом: бывает трудно различить облака на фоне заснеженной поверхности. Они могут на снимке слиться воедино: как следствие, облака можно по ошибке распознать как снег и наоборот. Существуют алгоритмы, которые справляются с такой задачей достаточно качественно (в качестве примера можно привести Fmask 4.0 [1]), однако могут быть и те, которые не приспособлены для ее решения, либо приспособлены недостаточно хорошо.

Обзор аналогичных исследований

Обширная работа по рассматриваемой тематике отражена в [2]. В данной статье приводится сравнительный анализ большого количества алгоритмов сегментации облаков и их теней, апробация которых производится на множестве наборов данных. Среди работ данного типа следует отметить также [3]. Здесь производят собственный набор данных (с указанием процесса его построения) и проводят по нему эксперименты: его используют для вычисления метрик эффективности алгоритмов рассматриваемого нами типа. Приводится достаточно большое количество таких алгоритмов. Отметим статью [4]. Отличительной особенностью этой работы по отношению к остальным – здесь приводится сравнительный анализ конкретно на снимках Sentinel-2. Здесь рассматривается пять алгоритмов, апробация которых выполняется на спутниковых снимках Африки и Западной Европы.

Следует отметить: в представленных выше работах [2] и [3] приведенный список метрик можно расширить (например, добавить F-меру). В этих же работах список алгоритмов, подлежащих оценке и сравнению, также не является исчерпывающим: целесообразно ввести в рассмотрение и другие. В работе [4] рассматривается лишь часть планеты, северные широты – вне рассмотрения. Для большей полноты картины есть смысл опробовать алгоритмы и на северных широтах.

Постановка задачи

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

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

Набор данных

В нашем исследовании мы используем набор данных CloudSEN12 [3]. В нем собраны фрагменты снимков размером 509 на 509 пикселей, произведенных спутником Sentinel-2 [5], с размеченными облаками и их тенями. Для большей наглядности представим размеченный фрагмент с идентификатором «20181219T133221_20181219T133216_T23MMR» (рисунок 1). Здесь отображен непосредственно сам снимок (а) и разметка (б) – облака обозначены серым цветом, тени – белым.

 

Рисунок 1. Фрагмент снимка Sentinel-2 (слева) и файл разметки (справа).

 

Каждый такой фрагмент относится к той или иной области земного шара. Всего в наборе данных имеется 9880 таких областей, среди которых:

  • 2000 областей с разметкой высокого качества (в них содержится в общей совокупности 10 000 фрагментов);
  • 2000 областей c разметкой низкого качества (10 000 фрагментов);
  • 5880 областей без разметки (29 400 фрагментов).

Оставим вне рассмотрения те фрагменты, которые имеют разметку низкого качества: посчитать метрики должным образом по ним не удастся. Также отбросим и неразмеченные, исходя из тех же принципов. Итого далее в нашем рассмотрении остается 10 000 изображений. Среди них имеются 2001 безоблачных фрагментов (идентификатор такой группы в рамках набора данных: cloud-free), 1999 – практически безоблачных (almost-clear), 2000 – с низкой облачностью (low-cloudy), 2000 – со средней облачностью (mid-cloudy) и 2000 – облачных (cloudy). Можем констатировать: набор данных практически идеально сбалансирован по данным категориям.

Помимо характеристик облачности, следует также принять во внимание и географические характеристики рассматриваемых фрагментов (рисунок 2). Красными точками на карте отображены области съемки. Наблюдаем, что они распределены по земной поверхности более-менее равномерно (за исключением Гренландии, Южной Африки и Антарктиды): в наборе данных представлено множество регионов планеты. Так что с точки зрения географического распределения набор данных также вполне сбалансирован. Здесь присутствуют как южные и средние широты, так и северные.

 

Рисунок 2. Распределение областей с фрагментами, имеющими разметку высокого качества (CloudSEN12).

 

Рассматриваемые алгоритмы

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

Здесь представлен алгоритм сегментации облаков миссии 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 имеет вид:

F1=F1cloud+F1non-cloudexistscloud+axistsnon-cloud, (1)

где F1cloud – метрика F1, вычисленная для класса «облако»,

F1non-cloud – метрика F1, вычисленная для класса «не-облако»,

existscloud = 1, если в данной паре масок «ожидаемое» – «предсказанное» имеется как минимум один пиксель, относящийся к классу «облако», иначе – данное значение нулевое.

existsnon-cloud = 1, если в данной паре масок «ожидаемое» – «предсказанное» имеется как минимум один пиксель, относящийся к классу «не-облако», иначе – данное значение нулевое.

Формулы для метрик Precision, Recall, Accuracy строим по аналогичному принципу. Требуется задать следующее:

Precisioncloud и Precisionnon-cloud,

Recallcloud и Recallnon-cloud,

Accuracycloud и Accuracynon-cloud.

Дадим для выше представленных значений определения

Precisiona=TPaTPa+FPa, (2)

Recalla=TPaTPa+FNa, (3)

Accuracya=TPa+TNaTPa+TNa+FPa+FNa, (4)

F1a=2*Precisiona*RecallaPrecisiona+Recalla, (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,3 % – поднялась та же оценка по теням. Аналогичным образом поступаем с сегментацией теней.

Результаты оценки моделей

Результаты вычисления метрик по облакам представлены в таблице 1. Для каждого алгоритма было получено (или найдено – если маски с результатами уже имелись в наборе данных) 10 000 масок по соответствующим 10 000 снимкам. Для каждой такой маски были подсчитаны Precision, Recall, Accuracy, F1. По маскам было проведено среднее арифметическое, которое и отражено в таблице.

 

Таблица 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

 

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

 

Таблица 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

 

Можем констатировать: по всем метрикам и по всем двум задачам (сегментации облаков и облачных теней) оказался лучшим алгоритм Mobile-Unet с заметным отрывом от остальных. В качестве второго по эффективности можно выделить Fmask. Если говорить конкретно про облака: наименьшие метрики имеет алгоритм qa60. Если про сегментацию облачных теней: в этой задаче наименее эффективные результаты продемонстрировал алгоритм ukis-csmask.

ЗАКЛЮЧЕНИЕ И ВЫВОДЫ

В рамках данной работы было осуществлено сравнение алгоритмов сегментации областей на космическом снимке, которые покрыты облаками, либо их тенями. Оценка производилась отдельно по облакам, и отдельно – по теням. Была проведена характеристика и осуществлен анализ используемого набора данных CloudSEN12. Была проведена описательная характеристика рассматриваемых алгоритмов сегментации. Представлено среднее арифметическое метрик по их отработке: Precision, Recall, Accuracy, F1. Исследование показало: лучшие результаты по всем метрикам (как по теням, так и по облакам) имеет алгоритм, основанный на нейронной сети Mobile-Unet.

×

About the authors

Oleg I. Sokolkov

Ugra Research Institute of Information Technologies

Author for correspondence.
Email: sokol.oleg2012@yandex.ru
Russian Federation, Khanty-Mansiysk

References

  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. In Image 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 Sünter. KappaMask: AI-Based Cloudmask Processor for Sentinel-2 // Remote Sensing. – 2021. – Vol. 13, No. 20. – 22 p.
  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 Rätsch, 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-csmask?ysclid=lj2iaa2xsz492603360 – Загл. с экрана.

Supplementary files

Supplementary Files
Action
1. JATS XML
2. Figure 1. Sentinel-2 image fragment (left) and markup file (right).

Download (122KB)
3. Figure 2. Distribution of areas with fragments with high quality markings (CloudSEN12).

Download (255KB)

Copyright (c) 2024 Yugra State University

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies