Сегментация изображения

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

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

Загрузка и открытие проекта

Прежде чем начать, надо скачать данные, предоставленные администрацией города Луисвилл (шт. Кентукки, США). Данные содержат снимки изучаемой территории и пространственные объекты земельных участков.

  1. Скачайте папку Surface_Imperviousness compressed.
  2. Найдите загруженный файл на компьютере.
    Примечание:

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

  3. Щелкните файл правой кнопкой мыши и извлеките в местоположение, где его будет легко найти, например, в папку Документы.
  4. Откройте папку Surface_Imperviousness.

    Папка Surface_Imperviousness

    Папка содержит несколько вложенных папок, файл проекта ArcGIS Pro (.aprx) и набор инструментов ArcGIS (.tbx). Прежде, чем изучать прочие данные, надо открыть файл проекта.

  5. Если у вас на компьютере уже установлен ArcGIS Pro, дважды щелкните Surface Imperviousness (без нижнего подчеркивания), чтобы открыть файл проекта. Если будет предложено, войдите под лицензированной учетной записью ArcGIS.
    Примечание:

    Если у вас нет ArcGIS Pro или учетной записи ArcGIS, можно подписаться на бесплатную пробную версию ArcGIS.

    Проект по умолчанию

    Проект содержит карту микрорайона возле города Луисвилл (штат Кентукки, США). Карта содержит 4-канальный снимок 6-дюймового разрешения и класс пространственных объектов земельных участков. Теперь давайте рассмотрим остальные скачанные данные.

  6. На панели Каталог разверните Папки и разверните папку Surface_Imperviousness.
    Примечание:

    Чтобы появилась панель Каталог, щелкните вкладку Вид на ленте в верхней части окна приложения. В группе Окна щелкните стрелку Каталог и выберите Панель каталога.

    Данные проекта

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

  7. Раскройте папку Louisville_Imagery подпапку Training_Samples и базу геоданных Neighborhood_Data.

    Данные проекта развернуты

    Изображение Louisville_Neighborhood TIFF и класс пространственных объектов Parcels уже добавлены на карту. Шейп-файл Louisville_Training_Samples и класс пространственных объектов Accuracy_Points представляют готовые варианты тех данных, которые вам надо будет создать в процессе анализа (мы поговорим об этом позже).

Извлечение спектральных каналов

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

  1. На панели Содержание щелкните слой Louisville_Neighborhood.tif, чтобы выделить его.
  2. На ленте щелкните вкладку Изображения. В группе Анализ щелкните Функции растра.

    Функции растра

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

  3. В панели Функции растра найдите функцию Извлечь каналы.

    Откроется функция Извлечь каналы. Вы будете извлекать следующие каналы: Near Infrared (канал 4), который выделяет растительность; Red (канал 1), который выделяет созданные человеком объекты и растительность; и Blue (канал 3), который выделяет водные объекты.

  4. В опции Растр укажите изображение Louisville_Neighborhood. Подтвердите, что параметр Метод установлен на ID каналов.

    Изменить порядок каналов или извлечь каналы из растра - параметры

    Параметр Метод определяет, тип ключевого слова, используемый для ссылки на каналы, когда вы указываете комбинацию каналов. Вы можете выбрать ID канала, Имена каналов или Длины волн каналов. Для наших данных ID канала - самый простой способ указать каждый канал.

  5. В опции Комбинация удалите указанный текст и введите 4 1 3 (с пробелами). Подтвердите, что параметр Действие при отсутствии канала установлен на Наилучшее совпадение.

    Параметры извлечения каналов и комбинации

    Подсказка:

    Также можно выбрать каналы по одному, используя параметр Канал.

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

  6. Щелкните Создать новый слой.

    Новый слой, под названием Extract Bands_Louisville_Neighborhood.tif, добавлен на карту. В нем только извлеченные каналы. Жёлтый слой земельных участков Parcels перекрывает изображение, поэтому некоторые объекты может быть плохо видно. Слой Parcels понадобится в конце проекта, поэтому сейчас его можно отключить.

  7. На панели Содержание отключите слой Parcels.

    Извлечение спектральных каналов, результат

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

    Внимание:

    Хотя слой Извлечь каналы отображается на панели Содержание, никаких новых данных ни в какие папки не добавилось. Если удалить слой с карты, он исчезнет.

Настройка Мастера классификации

Далее вы откроете мастер классификации и настроите его параметры по умолчанию. Мастер классификации проведет вас по шагам через процессы сегментации и классификации изображений.

  1. На панели Содержание убедитесь, что слой Extract Bands_Louisville_Neighborhoods выбран.
  2. На вкладке Изображения в группе Классификация изображений щелкните Мастер классификации.

    Мастер классификации

    Примечание:

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

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

  3. Убедитесь, что Метод классификации установлен на Обучение и Тип классификации - На основе объекта.

    Классификация на основе объекта использует процесс, который называется сегментация для группировки соседних пикселов на базе схожести их спектральных характеристик. Далее вы выберите схему классификации. Схема классификации представляет собой файл, в котором определены классы, которые будут использованы для классификации. Схема сохраняется как файл .ecs (Esri classification schema), который использует синтаксис JSON. Для этого процесса вы измените схему по умолчанию, NLCD2011. Эта схема основывается на типах землепользования, используемых в Геологической службе США.

  4. Для Схемы классификации выберите Использовать схему по умолчанию.

    Схема классификации

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

  5. Убедитесь, что Выходное местоположение установлено на Neighborhood_Data.gdb.

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

  6. Нажмите Далее.

Сегментация изображения

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

Для контроля сегментации вы настроите три параметра. Первый параметр – Спектральный элемент. Он устанавливает уровень важности для спектральных различий между пикселами по шкале от 1 до 20. Более высокие значения означают, что пикселы должны быть более похожими друг на друга, чтобы попасть в одну группу; в результате получается большее количество сегментов. Меньшее значение создаёт меньше сегментов. Так как вам важны отличия водопроницаемых и водонепроницаемых поверхностей (что в целом представляет очень разные спектральные сигнатуры), можно использовать меньшее значение.

  1. В параметре Спектральный элемент замените предложенное по умолчанию значение на 8.

    Следующий параметр – Пространственный элемент. Он устанавливает уровень важности для близости между пикселами по шкале от 1 до 20. Более высокие значения означают, что пикселы должны находиться рядом друг с другом, чтобы попасть в одну группу; в результате получается большее количество сегментов. Низкое значение создаст меньше сегментов, что более одинаково в пределах изображения. Вы будете использовать более низкие значения, так как не все аналогичные объекты на снимке кластеризуются друг с другом. Например, дома и дороги не всегда находятся рядом, но при этом разбросаны по всему экстенту изображения.

  2. В параметре Пространственный элемент замените предложенное по умолчанию значение на 2.

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

  3. Проверьте, что значение параметра Минимальный размер сегмента в пикселах установлено на 20.

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

  4. Проверьте, что опция Только границы сегмента не отмечена.

    Опция Показать только границы сегмента отключена

  5. Нажмите Далее.

    Предварительный результат сегментации добавлен на карту. Он также добавляется на панель Содержание с именем Preview_Segmented.

    Предварительный результат сегментации

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

  6. Приблизьтесь к микрорайону посередине изображения.

    Увеличенный предварительный результат сегментации

    Сегментация снова запускается. При меньшем экстенте сегментация более точно отражает использованные вами параметры, получилось меньше сегментов и более гладкие результаты.

    Примечание:

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

  7. На панели Содержание щелкните правой кнопкой Preview_Segmented и выберите Приблизить к слою.
  8. На панели быстрого доступа щелкните кнопку Сохранить, чтобы сохранить проект.
    Внимание:

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

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


Классификация изображения

Ранее вы сегментировали изображение, чтобы упростить его для классификации. Теперь вы выполните классификацию сегментов с обучением. Сегментация с обучением основывается на указанных пользователем учебных образцах, которые определяют, какие типы пикселов или сегментов каким образом следует классифицировать. Напротив, классификация без обучения полагается на алгоритмы классификации, заложенные в программном обеспечении. Сначала вы классифицируете изображение по общим типам землепользования (например, растительность или дороги). Затем вы переклассифицируете эти типы землепользования на водопроницаемые и водонепроницаемые.

Создание обучающих выборок

Чтобы выполнить классификацию, вам понадобятся обучающие примеры. Обучающие примеры – это полигоны, которые представляют на снимке отдельные образцы территорий с различными типами земной поверхности. Затем обучающие примеры обозначат сегменты с определёнными спектральными характеристиками, которые надо классифицировать, чтобы они представляли одинаковые типы землепользования. Сначала вы измените схему по умолчанию (выбранную при настройке мастера) так, чтобы она содержала два родительских класса: Impervious и Pervious. Затем вы добавите подклассы к каждому классу, соответствующие типам почвенно-растительного покрова. Если вы попробуете классифицировать сегментированное изображение только на проницаемые и непроницаемые поверхности, классификация получится слишком общей и скорее всего будет содержать много ошибок. При классификации изображения на основе более точных типов землепользования, вы получите более точную классификацию. Позже вы сможете переклассифицировать эти подклассы в их родительские классы.

  1. На странице мастера Менеджер обучающих выборок щелкните правой кнопкой мыши каждый из классов по умолчанию и выберите Удалить класс. Для каждого класса щелкните Да в окне Удалить класс.
  2. Щелкните правой кнопкой NLCD2011 и выберите Добавить новый класс.

    Добавить новый класс

  3. В окне Добавить новый класс в поле Имя введите Impervious. В поле Значение введите 20, а для Цвета выберите Серый 30%. Нажмите OK.

    Настройки класса Impervious

  4. Снова щелкните правой кнопкой NLCD2011 и выберите Добавить новый класс. Добавьте класс Pervious со значением 40 и цветом Quetzal Green.

    Настройки класса Pervious

    Затем вы добавите подкласс для поверхностей серых крыш.

  5. Щелкните правой кнопкой родительский класс оImpervious и выберите Добавить новый класс. Добавьте класс Gray Roofs со значением 21 и цветом Серый 50%.

    Затем вы создадите на карте обучающую выборку, используя этот класс.

  6. Щелкните класс Gray Roofs, чтобы выделить его. Затем щелкните кнопку Полигон.

    Кнопка Полигон

  7. Приблизьтесь к тупику на северо-западе микрорайона.
    Подсказка:

    Для активации инструментов перемещения в процессе использования инструмента Прямоугольник, удерживайте нажатой клавишу C.

    Северо-запад микрорайона

  8. Очертите прямоугольник, обведя крышу к северу от тупика. (Дважды щелкните для завершения рисования.) Постарайтесь, чтобы в прямоугольник попали только пикселы, составляющие крышу.

    Обучающий пример

    В Мастере появится запись новой обучающей выборки.

    Строка в мастере

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

  9. Нарисуйте ещё несколько прямоугольников на соседних домах.

    Обучающие выборки

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

  10. В мастере щелкните первую строку, чтобы выделить ее. Нажмите Shift и щелкните последнюю запись, чтобы выбрать все обучающие выборки.
  11. Над списком выборок щелкните кнопку Свернуть.

    Кнопка Свернуть

    Все обучающие выборки сворачиваются в один класс. Можете продолжить добавлять обучающие образцы для серых крыш и сливать их с классом серых крыш. Несомненно, класс Gray Roofs должен включать образцы со всей территории изображения (не обязательно с каждой крыши, но большее количество цветов даст лучшее качество классификации).

  12. Создайте еще два подкласса для Impervious на основе следующей таблицы:

    Подкласс Значение Цвет

    Roads

    22

    Cordovan Brown

    Driveways

    23

    Nubuck Tan

    Подклассы Impervious

  13. Создайте четыре подкласса для Pervious на основе следующей таблицы:

    Подкласс Значение Цвет

    Bare Earth

    41

    Medium Yellow

    Grass

    42

    Medium Apple

    Water

    43

    Cretan Blue

    Shadows

    44

    Sahara Sand

    Подклассы Pervious

    Примечание:

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

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

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

    Обучающие выборки

  15. Сверните обучающие выборки, представляющие одни и те же типы землепользования, в один класс.

    Свернутые классы

  16. По завершении создания обучающих выборок щелкните кнопку Сохранить.

    Кнопка Сохранить

    Ваша собственная схема классификации сохранена на случай повторного использования.

  17. Нажмите Далее.

Классифицирование изображения

Теперь, после того как вы создали обучающие выборки, вы выберете метод классификации. В каждом методе классификации используются различные статистические процессы, включающие обучающие выборки. Вы будете использовать классификатор Support Vector Machine, который может обрабатывать крупные изображения и менее чувствителен к расхождениям в обучающих выборках. Затем вы обучите классификатор, используя обучающие выборки и создадите файл определения классификатора. Этот файл будет использоваться в процессе классификации. После создания файла вы выполните классификацию изображения. И наконец, вы переклассифицируете подклассы Pervious и Impervious в соответствующие им родительские классы, создав растр всего с двумя классами.

  1. Убедитесь, что в Классификаторе выбрано Support Vector Machine.

    Для следующего параметра можно указать максимальное количество выборок, используемое для определения каждого класса. Если вы хотите использовать все образцы, можете изменить максимальное количество на 0. Задание максимального значения 0 позволяет гарантировать, что будут использоваться все обучающие выборки.

  2. Для Максимального числа образцов в классе введите 0.

    Задание классификатора и выбор максимального числа образцов в классе

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

  3. Щелкните Запустить

    Обработка может занять длительное время, поскольку выполняется несколько процессов. Сначала изображение сегментируется (ранее вы сегментировали изображение на лету, но оно не сохраняется). Затем классификатор обучается и начинается классификация. Когда процесс заканчивается, на карте отображается предварительный просмотр классификации.

    Предварительный просмотр классифиции

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

  4. Если предварительные результаты классификации вас устраивают, щелкните Далее.

    Следующая страница - это страница Классифицировать. Вы воспользуетесь этой страницей для запуска реальной классификации и сохранения ее результатов в базе геоданных.

  5. В поле Выходной классифицированный набор данных измените имя выходных данных на Classified_Louisville.tif.

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

  6. Оставьте остальные параметры без изменений и щелкните Запустить.

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

  7. Нажмите Далее.

    Следующая страница - это страница Слияние классов. На этой странице вы выполните слияние подклассов с их родительскими классами. Сейчас вам растр содержит семь классов, каждый соответствует типу землепользования. Хотя эти классы были необходимы для точной классификации, вас интересует только, является ли каждый их них проницаемым или непроницаемым. Вы объедините подклассы в родительские классы Pervious и Impervious, чтобы создать растр, содержащий только два класса.

  8. Для каждого класса в столбце Новый класс выберите либо Pervious, либо Impervious.

    Столбец Новый класс

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

  9. Нажмите Далее.

Ошибки переклассификации

Последняя страница мастера - это страница Переклассификатор. На ней находятся инструменты для переклассификации небольших ошибок в наборе растровых данных. Вы воспользуетесь этой страницей для исправления неверной классификации в своем растре.

  1. На панели Содержание отключите все слои кроме Preview_Reclass и Louisville_Neighborhood.tif. Щелкните слой Preview_Reclass, чтобы выбрать его.
  2. На ленте щелкните вкладку Оформление. В группе Эффекты щелкните Спрятать.

    Спрятать

  3. Перетащите курсор по карте, чтобы визуально сравнить предварительные изображение и исходное.

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

  4. Приблизьтесь к этому пруду.

    Загрязненный пруд

  5. В мастере щелкните Переклассифицировать внутри региона.

    Переклассифицировать внутри региона

    Используя этот инструмент вы можете нанести на карту полигон и переклассифицировать все, что внутри него.

  6. В разделе Классы перекодировки убедитесь, что для Текущий класс выбрано Любой. Измените Новый класс на Pervious.

    Классы перекодировки

    С этими настройками все пикселы в пределах полигона будут переклассифицированы в проницаемые поверхности. Теперь вы переклассифицируете грязный пруд.

  7. Нарисуйте вокруг пруда полигон. Убедитесь, что в полигон не попали никакие непроницаемые поверхности.

    Полигон вокруг пруда

    Пруд автоматически реклассифицируется как проницаемая поверхность.

    Переклассифицированный пруд

    Примечание:

    Если вы допустили ошибку, можно отменить переклассификацию, сняв с нее отметку в Журнале редактирований.

    Хотя вы можете заметить и другие неточности в классификации, дополнительное редактирование в данном уроке выполнять не нужно.

  8. Приблизить к полному экстенту данных.
  9. В поле Готовый классифицированный набор данных введите Louisville_Impervious.tif (включая расширение .tif).
  10. Щелкните Запустить. Затем щелкните кнопку Готово.

    Результат переклассификации

    Инструмент начнет работу, затем переклассифицированный растр будет добавлен на карту.

  11. На панели быстрого доступа щелкните Сохранить, чтобы сохранить проект.

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


Вычисление водонепроницаемых областей поверхности

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

Создание точек оценки точности

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

  1. Если необходимо, откройте проект Surface Imperviousness в ArcGIS Pro. На панели Каталог разверните папку Задачи и откройте задачу Calculate Surface Imperviousness.
  2. На панели Задачи разверните группу задач Assess Classification Accuracy (доступ к точности классификации). Дважды щелкните задачу Create accuracy assessment points (создание проверочных точек), чтобы ее открыть.

    Задача Создание точек оценки точности

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

  3. В опции Входные растровые или векторные данные укажите слой Louisville_Impervious.
  4. Для параметра Выходные точки оценки точности щелкните кнопку Обзор. Перейдите в базу геоданных Neighborhood_Data и сохраните выходной слой как My_Accuracy_Points.

    Параметры инструмента Создать точки оценки точности

    Далее надо определить характеристики точек. Параметр Целевое поле определяет, описывает ли таблица атрибутов точек значения классификации или истинные значения земной поверхности. Так как ваше входное изображение – классифицированный растр, точки должны содержать значения классификации. Параметр Число произвольных точек определяет, сколько точек будет создано. Для маленьких снимков достаточно относительно небольшого количества точек.

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

  5. Измените остальные параметры:

    • Целевое поле: Классифицировано
    • Число произвольных точек: 100
    • Стратегия выборки: Выровненная стратифицированная случайная выборка

    Параметры инструмента Создать точки оценки точности

  6. Щелкните Запустить

    Выходные данные Создания точек оценки точности

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

  7. На панели Содержание щелкните правой кнопкой слой My_Accuracy_Points и воспользуйтесь командой Таблица атрибутов.

    Открыть таблицу атрибутов

    Откроется таблица атрибутов.

    Таблица атрибутов

    Помимо полей ObjectID и Shape, у точек еще два атрибута: Classified и GrndTruth (или Ground Truth). В поле Classified хранятся значения 20 или 40. Эти числа представляют классы на изображении: 20 непроницаемые и 40 водопроницаемые. Но в поле GrndTruth по умолчанию все значения -1. Вы отредактируете значения в поле GrndTruth, чтобы там тоже было 20 или 40, в зависимости от типа земной поверхности под этими точками на исходном снимке.

  8. На панели Содержание снимите отметки у всех слоев, кроме My_Accuracy_Points и Louisville_Neighborhood.tif.
  9. В таблице атрибутов щёлкните заголовок строки (маленький серый квадратик слева) для первой записи, чтобы выбрать пространственный объект. Щелкните правой кнопкой заголовок строки и воспользуйтесь командой Приблизить к.

    Приблизить к

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

    Точка оценки точности

    В нашем примере, точка оказалась на траве или голой земле. Следовательно, поверхность водопроницаемая. Надо изменить атрибут GrndTruth этой точки на 40 (проницаемая). Если у вас первая точка оказалась на водонепроницаемой поверхности (дороге или крыше), измените атрибут GrndTruth на 20 (непроницаемая).

    Примечание:

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

  10. В таблице атрибутов дважды щелкните в столбце GrndTruth, чтобы выделить значение выбранного объекта и его отредактировать. Замените значение по умолчанию на 40 или 20, в зависимости от местоположения точки, и нажмите Enter.

    Таблица атрибутов

  11. Выберите следующую строку в таблице атрибутов. Щелкните правой кнопкой точку и воспользуйтесь командой Приблизить к.

    Карта приблизится к соответствующей точке.

  12. В зависимости от местоположения точки, измените значение GrndTruth на 20 или 40.

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

  13. Повторите эту процедуру для первых десяти точек.

    В обычных условиях надо изучить и отредактировать все точки. Но для экономии времени можете для данного урока этот процесс не продолжать. В данных, которые вы скачали, уже есть класс пространственных объектов с точками оценки точности и заполненным полем GrndTruth. Для продолжения анализа можете воспользоваться этим готовым классом.

  14. Закройте таблицу атрибутов. На панели Содержание щелкните правой кнопкой слой Louisville_Neighborhood и воспользуйтесь командой Приблизить к слою

    Карта приблизится к полному экстенту соответствующего снимка.

  15. На панели Задачи щелкните Далее.

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

  16. Щелкните Запустить. В окне Сохранить изменения щелкните Да, чтобы сохранить все изменения.
  17. На панели Задачи щелкните Готово.

Вычисление матрицы несоответствий

После создания точек оценки точности и заполнения их атрибутов данными наземных наблюдений, можно использовать эти точки для создания матрицы несоответствий. Матрица несоответствий – это таблица, в которой сравниваются атрибуты Классифицировано и GrndTruth из точек проверки точности, и на основании этого сравнения определяется процент точности. Если классифицированные как водонепроницаемые области действительно являются непроницаемыми, в матрице несоответствий будет высокий процент соответствий, означающий высокую точность.

  1. На панели Задачи дважды щелкните задачу Compute a confusion matrix (вычисление матрицы несоответствий).

    Задача Вычисление матрицы несоответствий

    Задача откроет инструмент Вычисление матрицы несоответствий. Данный инструмент имеет лишь два параметра: входные точки и выходная матрица.

  2. Для параметра Входные точки оценки точности щелкните кнопку Обзор. Перейдите в базу геоданных Neighborhood_Data и выберите Accuracy_Points.
  3. Для параметра Выходная матрица несоответствий щелкните кнопку Обзор. Перейдите в базу геоданных Neighborhood_Data и сохраните как Confusion_Matrix.

    Инструмент Вычисление матрицы несоответствий

  4. Щелкните Готово.

    Инструмент запустится и матрица несоответствий добавится на панель Содержание. Так как матрица представляет собой таблицу без пространственных данных, на карте она не отобразится.

  5. На панели Содержание ниже Автономные таблицы щелкните правой кнопкой таблицу Confusion_Matrix и воспользуйтесь командой Открыть.
    Примечание:

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

    Открыть матрицу несоответствий

    Откроется матрица несоответствий

    Матрица несоответствий

    Значения столбца ClassValue служат названиями строк в таблице. C_20 м C_40 соответствуют двум классам классифицированного растра: 20 для непроницаемых и 40 для водопроницаемых поверхностей. Столбцы C_20 и C_40 представляют точки с наземными значениями 20 или 40, а строки C_20 и C_40 представляют точки, классифицированные как 20 или 40. Например, в данном примере 47 точек с наземными значениями 20 тоже классифицировались как 20, но одна точка с наземным значением 20 ошибочно классифицирована как 40. Всего из 100 точек четыре были классифицированы ошибочно (три как непроницаемые и одна как водопроницаемая).

    U_Accuracy означает пользовательскую точность. Представляет долю пикселов, правильно классифицированных относительно всей классификации. P_Accuracy означает производственную точность и представляет долю пикселов, корректно классифицированных относительно наземных значений. Например, 50 пикселов классифицировано как непроницаемые, из которых правильно классифицировано 47, т.е. пользовательская точность равна 0,94 (или 94%). Или 48 пикселов классифицировано как непроницаемые, из которых правильно классифицировано 47, т.е. пользовательская точность равна 0,98 (или 98%).

    Последний атрибут Kappa. На основании общей пользовательской и производственной точностей, индекс Kappa дает общую оценку точности классификации. В примере выше индекс Карра равен 0,92 или 92%. Уровень точности в 92 процента вполне приемлем, хотя и не идеален. Если вы использовали собственные точки точности, вместо точек из примера, вы можете получить другие результаты. Для целей данного задания точность классификации достаточна.

    Примечание:

    Если у вас индекс Карра оказался 85-90%, классификация считается недостаточно точной. Ошибка классификации могла возникнуть в двух местах рабочего процесса. Во-первых, сегментация. Если ваши параметры сегментации генерализировали исходное изображение слишком тяжело или недостаточно, объекты могли оказаться неверно классифицированными. Попробуйте выполнить более тонкую настройку параметров сегментации. Или большинство ошибок возникает при отборе обучающих образцов. Если образцов мало, или если они охватывают слишком широкое разнообразие спектральных сигнатур, это тоже может вызвать ошибку классификации. Добавление большего числа образцов или дополнительных классов может увеличить точность.

  6. Закройте матрицу несоответствий.

Внесение площадей в таблицу

Оценив точность классификации, можете определить площади водонепроницаемых поверхностей для каждого земельного участка микрорайона. Сначала вы вычислите площади и сохраните результаты в отдельную таблицу. Затем присоедините таблицу к слою Parcels.

  1. На панели Задачи разверните группу задач Calculate Impervious Surface Area (вычисление площадей водонепроницаемых поверхностей). Дважды щелкните задачу Tabulate the area (Внесение площадей в таблицу), чтобы ее открыть.

    Задача Внесение площадей в таблицу

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

  2. В опции Входные растровые или векторные данные зон укажите слой Parcels. Проверьте, что параметр Zone field заполнен полем Parcel ID.

    Параметры инструмента Таблица площадей

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

  3. В опции Входные растровые или векторные данные укажите слой Louisville_Impervious.
  4. Для Поля класса выберите Class_name.

    Параметры инструмента Таблица площадей

    Поле класса определяет поле, по которому будет определяться площадь. Вам надо знать площадь каждого класса классифицированного растра (водопроницаемые и непроницаемые), поэтому поле Class_name годится.

  5. Для Выходной таблицы проверьте, чтобы выходное местоположение было в базе геоданных Neighborhood_Data и измените выходное имя на Impervious_Area.

    Параметры инструмента Таблица площадей

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

  6. Щелкните Запустить

    Инструмент запустится и таблица добавится на панель Содержание. Задача перейдет к следующему шагу и откроет инструмент Соединение полей. Прежде чем продолжить, посмотрите на созданную таблицу.

  7. На панели Содержание щелкните правой кнопкой таблицу Impervious_Area и воспользуйтесь командой Открыть.

    Таблица площадей

    В таблице есть стандартное поле ObjectID и еще три поля. Первое поле Parcel_ID взято из слоя Parcels и содержит уникальные идентификаторы каждого земельного участка. Два следующих – поля классов из растра Louisville_Impervious. Impervious показывает площадь (в футах) непроницаемых поверхностей для каждого участка, а Pervious – площади водопроницаемых поверхностей.

  8. Закройте таблицу.

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

  9. На панели Задачи в опции Входная таблица выберите слой Parcels.
  10. В опции Входное поле соединения выберите Parcel ID.
  11. В опции Соединяемая таблица выберите таблицу Impervious_Area.
  12. В опции Выходное поле соединения выберите PARCEL_ID.

    Параметры соединения полей

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

  13. Щелкните Готово.

    Инструмент запустится и задача завершится.

  14. На панели Содержание откройте таблицу атрибутов слоя Parcels. Убедитесь, что там присутствуют поля:

    • PARCEL_ID
    • IMPERVIOUS
    • PERVIOUS

  15. Закройте таблицу.

Установка символов участков

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

  1. На панели Задачи дважды щелкните задачу Clean up the table and symbolize the data (очистка таблицы и установка символов данных).

    Задача Clean up the table and symbolize the data

    Первый шаг задачи заключается в наведении порядка в таблице слоя Parcels.

  2. На панели Содержание щелкните слой Parcels, чтобы его выбрать (возможно, он уже выбран). На панели Задачи щелкните Запустить

    Откроется вид Поля для таблицы атрибутов слоя Parcels. В виде Поля можно добавлять и удалять поля, переименовывать сами поля и их псевдонимы, и вносить прочие изменения в настройки. Сначала удалим остаточное поле PARCEL_ID_1.

  3. Щёлкните правой кнопкой серый квадратик слева от поля PARCEL_ID_1 и воспользуйтесь командой Удалить.

    Удалить поле

    Далее вы измените псевдонимы двух полей с площадями, чтобы они стали более информативными.

  4. Измените псевдоним поля IMPERVIOUS на Impervious Area (Feet).
  5. Измените псевдоним поля PERVIOUS на Pervious Area (Feet).

    Переименовать поле

  6. На ленте на вкладке Поля в группе Изменить щелкните Сохранить.

    Кнопка Сохранить

    Изменения атрибутивной таблицы сохранятся.

  7. Закройте вид Поля. На панели Задачи щелкните Далее.

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

  8. На панели Содержание отключите слой My_Accuracy_Points. Включите слой Parcels и убедитесь, что он выделен.
  9. На панели Задачи щелкните Запустить

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

  10. На панели Символы в разделе Основные символы выберите Градуированные цвета.

    Градуированные цвета

    Станет доступным ряд параметров. Сначала надо изменить поле, определяющее символы.

  11. В опции Поле таблица выберите Impervious Area (Feet).

    Символы слоя автоматически изменятся. Но участки не особенно отличаются по причине небольшого количества классов.

  12. Измените число Классов на 7. Измените Цветовую схему на Желто-красная.

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

    Символы слоя снова изменятся.

    Результирующая карта

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

  13. Закройте панель Символы. На панели Задачи щелкните Готово.
  14. Сохраните проект.

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

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

Еще больше уроков вы найдете в Галерее уроков Learn ArcGIS.