Перейти к содержанию

Практика 6 Знакомство с модулем SCP. Автоматическое дешифрирование#

Данные для занятия
Презентация

Semi-Automatic Classification Plugin (SCP) — это плагин для QGIS, который упрощает работу с данными дистанционного зондирования. С его помощью можно выполнить полный процесс по получению космических снимков, предобработки и постобработки, классификации

Основные возможности, предоставляемые плагином:
- Предобработка данных: включает корректировку атмосферных условий, выравнивание изображений и другие операции.
- Сегментация изображений: выделение областей с похожими спектральными характеристиками.
- Классификация изображений: поддерживает различные методы классификации, такие как:
- Метод максимального правдоподобия
- K-means
- Поддержка векторных машин (SVM) и другие.
- Обучение классификаторов: позволяет задавать области интереса (AOI) для обучения классификаторов и применения их для классификации изображений.
- Оценка точности: включает методы для оценки точности классификации, такие как матрицы сопряженности.

Установка#

При помощи панели «Пуск» найдите программу OSGeo4W Shell

https://ratcatcher.ru/media/math/prac/prac_6/1.png

Если вы ищете вручную, то найдите папку QGIS x.xx.x, внутри
которой будет находится OSGeo4W Shell
x.xx.x – это номер версии

https://ratcatcher.ru/media/math/prac/prac_6/1_2.png

По нажатию у вас высветится консоль, дающая доступ к внутренним функциям QGIS.
Обычно её используют для установки дополнительных программных пакетов (не плагинов)

https://ratcatcher.ru/media/math/prac/prac_6/2.png

Нам потребуется вбить следующую строку и нажать Enter:

pip3 install --upgrade remotior-sensus scikit-learn torch

Примечание: Если команда не работает, перейдите в раздел "Устранение проблем в конце страницы"
https://ratcatcher.ru/media/math/prac/prac_6/3.png

После данного этапа вы пойдет утсановка пакетов.

Warning

Убедитесь, что у вас есть стабильное подключение к интернету

После завершения установки (в консоли ничего не должно быть красного) можно открывать QGIS и переходить в раздел Модули -> Управление модулями

https://ratcatcher.ru/media/math/prac/prac_6/4.png

Во вкладке все или не установленные найдите модуль под названием Semi-Automatic Classification Plugin и нажмите кнопку установить

https://ratcatcher.ru/media/math/prac/prac_6/5.png

При корректной установки вы увидите изменения в интерфейсе QGIS, примерно следующие

Появится новое окно слево и новые кнопочки на верхней панели инстурментов (области выделены красным)

https://ratcatcher.ru/media/math/prac/prac_6/6.png

Задание для скачивания Sentinel 2A#

Воспользуйтесь плагином STAC API BROWSER
Скачайте снимок со следующими характеристиками
- Дата с 01.05.2021 по 01.09.2021
- Облачность менее 30 %
- Охват территории вбейте вручную с картинки

https://ratcatcher.ru/media/math/prac/prac_6/7.png

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

https://ratcatcher.ru/media/math/prac/prac_6/8.png

Характеристика территории картографирования#

Слава Нилу, в мир сошедшему,
Слава Нилу, жизнь дающему!
Свой исток во мраке кроющий,
Светом сумрак заменяешь ты,
Сады, нивы орошаешь ты!
Велишь – Нопри бдить над зернами,
Велишь – Себеку над хлебом бдить,
Велишь – Фта над ремеслом радеть.
Рыб создатель! их от птиц хранишь.
Нив радетель! ты века творишь.
Валерий Брюсов «Гимн Нилу». 1918

Разливы Нила являются результатом ежегодных муссонов в период с мая по август, вызывающих огромные осадки на Эфиопском нагорье, вершины которого достигают высоты 4550 м. Большая часть этой дождевой воды поступает в Нил через реки Голубой Нил и Атбара, и менее значительная часть через реки Собат и Белый Нил. В течение этого короткого периода на долю этих рек приходится до 90 % воды Нила и большая часть наносов, переносимых им, но после сезона дождей они вновь уменьшаются до небольших рек.

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

Египетский год был разделен на три сезона:
- Ахет (наводнение),
- Перет (рост растений),
- Шему (сбор урожая).

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

https://ratcatcher.ru/media/math/prac/prac_6/9.png

Первые признаки подъема уровня воды в реке можно было увидеть у первого из порогов Нила (в Асуане) уже в начале июня, и устойчивый подъем продолжался до середины июля, когда прирост воды становился значительным. Уровень Нила продолжал подниматься до начала сентября, тогда уровень оставался неизменным в течение примерно трех недель. В октябре он часто поднимался снова и достигал своего наивысшего уровня. С этого периода уровень воды начинал снижаться, обычно до июня, когда снова достигал самого низкого уровня.

Разлив Нила начинался в Асуане примерно на неделю раньше, а в Луксоре — на 5-6 дней раньше, чем в Каире. Обычно высота уровня воды составляла:
- 14 метров в Асуане,
- 12 метров в Луксоре и Фивах,
- 7,6 метра в Каире.

Начало работы с плагином SCP#

Найдите вкладку SCP и выберите Band Set как это сделано на рисунке

https://ratcatcher.ru/media/math/prac/prac_6/10_1.png

Warning

К сожалению, плагин не видит слои, если они открыты не через его инструменты

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

https://ratcatcher.ru/media/math/prac/prac_6/11_1.png

После выбора tif файла можно несколько наборов каналов. Каждый набор каналов сохраняется вместе с проектом QGIS.

Для отображения композита (наборов каналов) нажмите кнопку RGB. После сверните окошко.
https://ratcatcher.ru/media/math/prac/prac_6/13_1.png

Переставьте в полученном изображении каналы (намите на слой ПКМ и выбирите свойства-> стиль. Поменяйте 1 и 3 канал местами)

https://ratcatcher.ru/media/math/prac/prac_6/14.png

Формирование обучающей выборки#

Всякий обучаемый алгоритм нуждается в данных, которые размечает пользователь. Для этого в плагине SCP существует два удобных инструменты выделения ROI областей.

Note

Region of Interest (ROI) — это термин в компьютерном зрении, обозначающий конкретную область на изображении или видео, которая представляет особый интерес и важность для текущей задачи.

Для начала работы перейдите во вкладку Training Input в левом нижнем окне.

https://ratcatcher.ru/media/math/prac/prac_6/15.png

Выберите место, куда будут сохранены данные по нарисованным нами областям ROI.

https://ratcatcher.ru/media/math/prac/prac_6/16.png

В данном месте появится файл *.scpx  в котором хранятся геометрические и спектральные характеристики объектов.
Как только он создан, он настраивается с учетом спектральных свойств соответствующих каналов.
Чтобы использовать Training Input с другим набором диапазонов, необходимо создать новый обучающий ввод, а затем импортировать существующий обучающий ввод с помощью кнопки библиотеки импорта.

ROI-область можно создать, нарисовав полигон вручную или с помощью автоматического алгоритма расширения области.
https://ratcatcher.ru/media/math/prac/prac_6/17.png

На карте переместитесь к дельта реки Нил в центре изображения. Чтобы вручную создать область интереса внутри тёмной области, нажмите кнопку на панели инструментов. Щёлкните ЛКМ по карте, чтобы определить вершины области интереса, и щёлкните ПКМ, чтобы определить последнюю вершину, замыкающую многоугольник. На изображении отображается оранжевый полупрозрачный многоугольник, который является временным (то есть он не сохраняется во входных данных для обучения).

https://ratcatcher.ru/media/math/prac/prac_6/18.png

Tip

Вы можете рисовать временные полигоны (предыдущий будет заменён) до тех пор, пока фигура не покроет нужную область.

Если форма временного полигона достаточно хорошо покрывает водную поверхность, мы можем сохранить его в обучающем наборе данных. Откройте обучающий набор данных, чтобы определить классы и макроклассы. В списке ROI и сигнатур установите MC ID = 1 иMC Name = «Вода» (Water); также установите C ID = 1и C Name = «Река» (River). Теперь нажмите , чтобы сохранить ROI в обучающем наборе данных. Через несколько секунд ROI появится в списке ROI и сигнатур, а спектральная сигнатура будет рассчитана (поскольку «Сигнатура» отмечена).

https://ratcatcher.ru/media/math/prac/prac_6/19.png

Вы можете настраивать цветовое отображение будущих классов, нажав ПКМдважды по цвету и выбрав нужный.

https://ratcatcher.ru/media/math/prac/prac_6/20.png

Теперь мы создадим вторую область интереса для созданного класса с помощью алгоритма автоматического расширения области. Приблизьте к пустыни. На панели инструментов установите значение «Расстояние»(dist) на 0,03.

https://ratcatcher.ru/media/math/prac/prac_6/21.png

Нажмите кнопку щелкните по светло-желтым пескам области на карте. Через некоторое время на изображении отобразится оранжевый полупрозрачный полигон.

https://ratcatcher.ru/media/math/prac/prac_6/22.png

Откройте окно «Training input», чтобы задать классы и макроклассы. В списке ROI и подписей установите MC ID = 2 иMC Name = «Пустыня»; также установите C ID = 1 и C Name = «Пески». Сохранить ROI.

Аналогичным образом сформируйте данные для Городской застройки и Зеленой растительности. Если не увереныЮ сверьтесь с картой. Примеры выделения на представлены ниже

https://ratcatcher.ru/media/math/prac/prac_6/24.png

https://ratcatcher.ru/media/math/prac/prac_6/25.png

Алгоритм наращивания областей#

Tip

Значение Dist следует устанавливать в соответствии с диапазоном значений пикселей; как правило, увеличение этого значения приводит к увеличению ROI.

Алгоритм наращивания областей (Region Growing) применяется для сегментации изображений. Он начинается с одного или нескольких стартовых пикселей (затравок) и постепенно включает в область соседние пиксели, если они удовлетворяют заданному критерию схожести.

  1. Выбор начальных точек (затравок)
  2. Задаются вручную или выбираются автоматически по определенным критериям (например, самые яркие пиксели).

  3. Определение критерия схожести

  4. Часто используется пороговое значение разницы интенсивностей пикселей.
  5. Возможны и более сложные критерии: цветовые характеристики, текстурные свойства.

  6. Добавление соседних пикселей

  7. Проверяются 4 или 8 соседей текущего пикселя.
  8. Если они удовлетворяют критерию схожести, они добавляются в область.

  9. Повторение процесса, пока не будет достигнуто условие остановки

  10. Например, если больше нет подходящих соседей или достигнут заданный размер области.

https://ratcatcher.ru/media/math/prac/prac_6/23.png

Выбор алгоритма классифкации#

Для выбора алгоритма классификации необходимо вернуть во вкладку вкладку SCP и выберить Band Set. Затем перейти в раздел Band Processing -> classification

https://ratcatcher.ru/media/math/prac/prac_6/26.png

В открывшейся вкладке раскройте Support Vector Machine. И пока что сверните вновь вкладку.

https://ratcatcher.ru/media/math/prac/prac_6/27.png

Предпросмотр#

В предварительном просмотре классификации установите size(размер) = 200; нажмите кнопку, а затем щёлкните левой кнопкой мыши по точке на изображению на карте.

https://ratcatcher.ru/media/math/prac/prac_6/28.png

Процесс классификации должен быть быстрым, а результатом должен стать классифицированный квадрат с центром в точке щелчка.

https://ratcatcher.ru/media/math/prac/prac_6/29.png

Если результаты вас удовлетворяют, то можно классифицировать весь сникмок нажам на кнопку Run в предыдущем окне.

Поздравляю! Это ваша первая автоматизация дешифрирования по своим данным

Устранение проблем#

  1. Попробуйте поставить Плагин через данныq zip-архив (Откройте QGIS, найдите вкладку Модули -> управление модулями -> установить из zip-архива)
  2. В процессе...