Подготовка к анализу глубокого обучения
В первой части этого руководства вы настроите проект ArcGIS Pro, выберете предварительно обученную модель глубокого обучения, подготовите снимки для обеспечения их лучшего соответствия модели и поймете необходимость трансферного обучения.
Настройка проекта
Для начала вы загрузите проект, содержащий все данные для этого руководства, и откроете его в ArcGIS Pro. Затем вы добавите снимки на карту проекта.
- Загрузите файл Seattle_Building_Detection.zip и найдите загруженный файл на своем компьютере.
Примечание:
Большинство веб-браузеров по умолчанию скачивают все в папку Загрузки.
- Щелкните правой кнопкой файл Seattle_Building_Detection.zip и извлеките данные в подходящее расположение на вашем компьютере, например, в папку на диске C:.
- Откройте извлеченную папку Seattle_Building_Detection и дважды щелкните Seattle_Building_Detection.aprx, чтобы открыть проект в ArcGIS Pro.
- При получении соответствующего запроса войдите под своей учетной записью организации ArcGIS или в ArcGIS Enterprise под учетной записью именованного пользователя.
Примечание:
Если у вас нет доступа к ArcGIS Pro или учетной записи организации ArcGIS, см. варианты доступа к программному обеспечению.
Откроется проект.
Карта содержит только используемую по умолчанию топографическую базовую карту. В этом рабочем процессе вы будете использовать аэрофотоснимки для обнаружения зданий. Вы добавите на карту эти снимки.
- Щелкните вкладку Вид на ленте. В группе Окна щелкните Панель Каталог.
Появится панель Каталог.
- На панели Каталог разверните Папки, Seattle_Building_Detection и Imagery_data.
- Щёлкните правой кнопкой Seattle_imagery.jp2 и выберите Добавить к текущей карте.
- Если появится запрос о вычислении статистики, щелкните Да.
Для выполнения определенных задач с изображениями, таких как их отображение с растяжкой, требуются статистические данные. Снимки появятся на карте. На нем показан район Сиэтла.
Примечание:
Эти аэрофотоснимки взяты с веб-сайта U.S. National Agriculture Imagery Program (NAIP). Снимки NAIP, охватывающие всю территорию Соединенных Штатов, можно загрузить с веб-сайта USGS Earth Explorer.
- Масштабируйте и перемещайте снимки, чтобы их изучить. Обратите внимание, что на этом снимке много зданий.
Выбор предварительно обученной модели и ее проверка
Вы собираетесь использовать глубокое обучение для извлечения зданий из аэрофотоснимков. Если у вас еще нет доступной модели глубокого обучения, сначала необходимо обучить модель с нуля, снабдив ее большим количеством примеров, чтобы показать модели, что такое здание. Высокопроизводительные модели могут потребовать рассмотрения десятков тысяч примеров. В качестве альтернативы вы можете использовать модель, которая уже обучена для вас. Вы получите такую модель и узнаете ее характеристики.
Примечание:
Для использования инструментов глубокого обучения в ArcGIS Pro необходимо, чтобы на вашем компьютере были установлены библиотеки глубокого обучения. Если эти файлы еще не установлены, сохраните проект, закройте ArcGIS Pro и следуйте инструкциям по установке в статье Подготовка к глубокому обучению в ArcGIS Pro. В этих инструкциях вы также можете узнать, как проверить, можно ли запускать рабочие процессы глубокого обучения, используя ваше оборудование и программное обеспечение, а также познакомится с другими советами по использованию. После завершения вы можете открыть проект повторно и продолжить работу с руководством.
- Перейдите на веб-сайт ArcGIS Living Atlas of the World.
- В строке поиска введите Pretrained model и нажмите Enter.
- Просмотрите список результатов, чтобы увидеть больше 50 доступных предварительно обученных моделей.
- В окне поиска введите Building Footprint Extraction и нажмите Enter.
В списке результатов содержится предварительно обученные модели глубокого обучения для разных регионов мира. Поскольку область интереса находится в Соединенных Штатах, вы выберете модель, обученную в этой области.
- Щелкните в списке результатов Building Footprint Extraction – USA.
Появится страница описания для модели. На ней содержится много актуальной информации о модели. Самое главное — понять, какой тип входных данных требует модель. Если ваши входные данные недостаточно похожи на тип данных, на которых обучалась модель, модель не будет работать хорошо.
- Потратьте некоторое время, чтобы прочитать содержимое этой страницы. В частности, изучите раздел, показанный на следующем примере изображения:
Вы ознакомитесь с некоторыми фактами, посвященными модели:
- Входные данные — на входе модель поддерживает 8-битные 3-канальные аэрофотоснимки высокого разрешения (10-40 см). Чтобы узнать, соответствуют ли ваши данные этим спецификациям, вам необходимо провести дальнейшее расследование. В этом руководстве вы займетесь этим позднее.
- Выходные данные — модель создаст класс пространственных объектов, содержащий контура зданий. Получение на выходе полигонов контуров зданий — это именно то, что вам нужно.
- Подходящие географические регионы — данная модель будет хорошо работать в Соединенных Штатах. Это прекрасно, поскольку ваша область интереса находится в Соединенных Штатах.
- Архитектура модели — модель использует архитектуру модели MaskRCNN. Вам следует записать эту информацию, так как она понадобится вам позже в рабочем процессе.
Поскольку модель кажется подходящей для вашего проекта, вы ее скачаете.
- На странице Обзор щелкните Загрузить.
Через несколько секунд загрузка будет завершена.
- Найдите загруженный файл usa_building_footprints.dlpk на своем компьютере.
Подсказка:
Большинство веб-браузеров по умолчанию скачивают все в папку Загрузки.
- Создайте папку Pretrained_model в каталоге Seattle_Building_Detection.
- Переместите файл модели usa_building_footprints.dlpk из местоположения загрузки в папку Pretrained_model.
Изучение свойств снимков
Теперь вы проведете исследование, чтобы понять, насколько хорошо ваши данные соответствуют идеальным входным данным (8-битные 3-канальные аэрофотоснимки высокого разрешения (10-40 см)).
- Вернитесь в свой проект Seattle_Building_Detection в ArcGIS Pro.
- На панели Содержание щелкните правой кнопкой Seattle_imagery.jp2 и выберите Свойства.
- В окне Свойства слоя щелкните Источник и разверните Информацию растра.
- Найдите поле Число каналов.
Значение в нем равно 4. Программа NAIP собирает мультиспектральные изображения, состоящие из четырех спектральных каналов: красного, зеленого, синего и ближнего инфракрасного. Ближний инфракрасный канал часто используется для отображения состояния растительности. Модель же требует трех каналов (красного, зеленого и синего). Вам нужно будет исправить эту проблему.
- Найдите поля Размер ячейки X и Размер ячейки Y.
Значение в обоих классах равно 1. Это означает, что размеры каждой ячейки (или пиксела) изображения - 1 метр на 1 метр. Это изображение NAIP действительно было получено с разрешением 1 метр. Это разрешение ниже рекомендованного моделью разрешения 10–40 см. Вам нужно будет исправить и эту проблему.
- Найдите поля Глубина пиксела.
Его значение — 8 бит, что соответствует 8 битам, необходимым модели.
- Щелкните OK, чтобы закрыть Свойства слоя.
Вы узнаете еще один способ отображения числа каналов.
- На панели Содержание щелкните правой кнопкой Seattle_imagery.jp2 и выберите Символы.
- На панели Символы для Красного канала щелкните Канал_1, чтобы раскрыть ниспадающий список.
В списке будет 4 канала. При просмотре мультиспектрального изображения одновременно могут отображаться только три канала - через красный, зеленый и синий каналы, объединяя их в составное RGB-изображение. Однако вы можете видеть, что на изображении присутствуют четыре канала, которые можно использовать для различных целей анализа.
- Закройте панель Символы.
Вы обнаружили, что между вашими снимками и требованиями предварительно обученной модели есть несоответствие по двум критериям: числу каналов и разрешению. Вы узнаете, как устранить эти две проблемы позже в этом рабочем процессе.
Выбор нужных каналов снимка
Сейчас вы исправите несоответствие каналов. У вашего снимка четыре спектральных канала:
- Канал 1 — красный
- Канал 2 — зеленый
- Канал 3 — синий
- Канал 4 — ближний инфракрасный
Модель же требует трех канальных входных данных (красного, зеленого и синего каналов). Чтобы исправить это, вам нужно создать новый слой, содержащий только первые три канала снимка NAIP, чтобы он лучше соответствовал требованиям модели. Это важный шаг, поскольку если его пропустить, модель будет работать хуже.
Примечание:
Очень важным является и порядок каналов вашего снимка. Например, каналы некоторых снимков других типов могут идти в другом порядке: канал 1 — синий, канал 2 — зеленый и канал 3 — красный. Эту информацию можно найти либо в свойствах вашего изображения, либо в документации к нему.
Вы создадите новый трехканальный слой, используя функцию растра.
- На ленте на вкладке Изображения в группе Анализ щелкните кнопку Функции растра.
- На панели Функции растра в окне поиска введите Извлечь каналы. В разделе Управление данными щелкните Извлечь каналы.
- Задайте следующие параметры функции Извлечь каналы:
- Для Растра выберите Seattle_imagery.jp2.
- Для параметра Комбинация значение должно быть 1 2 3, соответствующее каналам 1 (красный), 2 (зеленый) и 3 (синий).
- Для Действия при отсутствии канала выберите Ошибка.
Действие при отсутствии канала определяет действие, которое произойдет, если один из перечисленных диапазонов недоступен. Ошибка означает, что работа функции растра прервется и произойдет сбой. Вы выбираете этот вариант, поскольку для успешного завершения этого урока обязательно наличие трех каналов.
- Щелкните Создать новый слой.
Слой с именем Извлечь каналы_Seattle_imagery.jp2 появится на панели Содержание. Слои, созданные функциями растра, вычисляются динамически и не сохраняются на диске. В этом случае вы хотите сохранить полученный слой в файл TIFF на своем компьютере. Это будет сделано инструментом Экспорт растра.
- Щелкните правой кнопкой Извлечь каналы_Seattle_imagery.jp2 и выберите Данные Экспорт растра.
- На панели Экспорт растра, рядом с опцией Выходной набор растровых данных щелкните кнопку Обзор.
- В окне Выходное местоположение выберите Папки > Seattle_Building_Detection > Imagery_data, в поле Имя введите Seattle_RGB_clip.tif и нажмите Сохранить.
- В окне Выходное местоположение согласитесь со всеми значениями по умолчанию и щелкните Экспорт.
Примечание:
Если ваше изображение 16-битное, шаг Экспорт растра подойдет для преобразования в 8-битную глубину цвета, нужную для модели. Для Типа пиксела выберите 8 бит без знака и поставьте отметку Масштабировать значение пиксела. Параметр Масштабировать значение пиксела гарантирует, что значения будут действительно преобразованы в 8-битный формат (вместо отбрасывания высоких значений). В качестве значения NoData введите значение NoData своего исходного изображения, например 0.
Чтобы найти это значение NoData, на панели Содержание щелкните исходное изображение правой кнопкой, выберите Свойства и укажите Источник > Растровая информация > Значение NoData.
На панели Содержание появится новый слой Seattle_RGB.tif.
- Закройте панель Экспорт растра.
Теперь вы проверите количество каналов.
- На панели Содержание щелкните правой кнопкой Seattle_RGB.tif и выберите Свойства.
- В окне Свойства слоя щелкните Источник и разверните Информацию растра.
- Найдите поле Число каналов.
Значение в поле равно 3, что подтверждает, что теперь у слоя три канала, как и требует предварительно обученная модель.
- Закройте окно Свойства слоя.
Теперь вы удалите слои изображений, которые вам не понадобятся в остальной части рабочего процесса.
- На панели Содержание щелкните правой кнопкой слой Bands_Seattle_imagery.jp2 и выберите Удалить.
- Удалите и Seattle_imagery.jp2.
Вы сохраните свой проект.
- На панели инструментов быстрого доступа нажмите кнопку Сохранить.
Теперь у вас есть трехканальный слой изображений, как и ожидает предварительно обученная модель.
Понимание необходимости передачи модели обучения
Теперь вам нужно исправить несоответствие разрешения: модели необходимо более высокое разрешение (10–40 см), тогда как снимки NAIP были получены в более низком (1 м). Если бы вы применили предварительно обученную модель Building Footprint Extraction — USA непосредственно к слою Seattle_RGB.tif, вы получили бы плохие результаты, показанные на следующем примере изображения:
На этом изображении обнаруженные здания показаны розовым. Из-за несоответствия разрешения модель обнаружила более крупные здания, но не могла идентифицировать маленькие.
Примечание:
Пример рабочего процесса, в котором вы напрямую и успешно используете предварительно обученную модель, вы найдете в руководстве Обнаружение объектов с помощью предварительно обученной модели глубокого обучения.
Один из вариантов решения этой проблемы - применение трансферного обучения. Трансферное обучения — это метод машинного обучения, при котором знания, полученные в результате выполнения задачи, повторно используются для повышения производительности при выполнении связанной задачи. В данном случае исходной задачей было обнаружение зданий на снимках с разрешением 10–40 см, а новой - нахождение зданий на изображениях с метровым пространственным разрешением.
Примечание:
Передача модели обучения может использоваться по причинам, не связанным с несоответствием разрешения изображений. Например, начав с модели, обученной обнаружению зданий в определенной стране, вы можете использовать трансферное обучение, чтобы модель научилась обнаруживать здания в другой стране.
Основным преимуществом трансферного обучения является то, что она требует относительно небольшого объема обучающих данных и короткого времени обучения по сравнению с обучением модели с нуля.
Примечание:
Существует предел возможностей трансферного обучения, и оно может не подойти, если несоответствие между вашими изображениями и ожидаемыми входными данными слишком велико. Например, если у вас есть спутниковые снимки разрешения 30 метров, на которых сложно увидеть здания меньшего размера, не стоит надеяться на то, что модель можно настроить для решения этой задачи на подобных снимках. Чем больше новая задача отличается от исходной, тем менее эффективным будет трансферное обучение.
Внимание:
Передача модели обучения работает не на всех предварительно обученных моделях глубокого обучения. Например, модели, основанные на SAM и DeepForest, не поддерживают передачу модели обучения. Вы можете изучить описание предварительно обученной модели на веб-сайте ArcGIS Living Atlas, чтобы узнать, использует ли она SAM или DeepForest.
В оставшейся части руководства вы узнаете, как выполнять трансферное обучение для точной настройки предварительно обученной модели с целью обеспечения более эффективной работы с вашими данными.
Подготовка обучающих выборок для трансферного обучения
Чтобы выполнить трансферное обучение, сначала необходимо создать обучающие примеры, чтобы показать модель внешнего вида здания в ваших данных. Если бы вы обучали модель с нуля, вам потребовались бы десятки тысяч образцов зданий. К счастью, при передаче модели обучения вам понадобится всего несколько сотен. В этой части руководства вы научитесь создавать обучающие выборки. Сначала вы создадите пустой класс объектов, в котором будут храниться выборки. Затем вы нарисуете полигоны, отображающие здания, и добавите их в класс пространственных объектов. Наконец, вы экспортируете класс объектов, а снимки - в обучающие кусочки изображений, используемые для трансферного обучения.
Создание класса пространственных объектов
Сначала вы создадите класс пространственных объектов.
- На ленте, на вкладке Вид в группе Окна щелкните Геообработка.
Откроется панель Геообработка.
- На панели Геообработка введите в окне поиска Создать класс пространственных объектов. В списке результатов выберите инструмент Создать класс пространственных объектов, чтобы открыть его.
- Установите следующие значения параметров:
- Для параметра Имя класса пространственных объектов введите Training_examples.
- Убедитесь, что для Типа геометрии выбран Полигон.
- Для Системы координат выберите Seattle_RGB.tif.
- Примите остальные значения по умолчанию и щелкните Запустить.
На панели Содержание появится новый класс пространственных объектов Training_examples. В настоящее время она пуста.
Отрисовка обучающих примеров
Теперь вы будете отслеживать контуры зданий, которые будут сохранены как полигональные объекты в слое Training_examples.
- На ленте на вкладке Редактирование в группе Объекты щелкните Создать.
Появится панель Создать объекты.
- На панели Создать объекты щелкните Training_examples и нажмите на кнопку Полигон.
Панель инструментов построения появится на карте. По умолчанию установлен режим Линия, предназначенный для рисования прямых линий.
- На панели инструментов построения щелкните кнопку Линия с прямыми углами.
- В режиме Линия с прямыми углами все линии и углы должны быть прямыми. Это полезно при рисовании контуров зданий, поскольку у большинства зданий все углы равны 90 градусам. В процессе рисования вы можете переключаться между этим режимом и режимом Линия по мере необходимости.
- На ленте на вкладке Карта в группе Навигация щелкните Закладки и выберите Labeling extent.
Это область, в которой вы начнете рисовать полигоны зданий. Этот процесс также называется маркировкой, поскольку вы сообщаете модели, какие области изображения соответствуют интересующим вас объектам.
Примечание:
Выбирая, где именно нужно создать обучающие выборки на вашем изображении, выберите область с типичными для вашего географического местоположения зданиями.
- Выберите конкретное здание на карте и щелкните один из его углов (вершин).
- Щелкайте по очереди все углы здания по часовой стрелке.
- Дойдя до последнего угла, дважды щелкните, чтобы завершить построение полигона.
Примечание:
Цвет для класса объектов (в данном случае - светло-зеленый) назначается случайным образом, и в вашем проекте может быть другим.
- Аналогичным образом создайте еще два или три полигона в той же области.
Подсказка:
Если вам не нравится созданный полигон, вы можете удалить его. На ленте, на вкладке Редактирование в группе Выборка щелкните Выбрать. Щелкните на карте полигон. На закладке Редактирование в группе Объекты щелкните Удалить.
Вы сохраните полигональные объекты в класс пространственных объектов.
- На панели инструментов построения щелкните кнопку Готово.
- На ленте, на вкладке Редактирование в группе Управление изменениями щелкните Сохранить.
- Закройте панель Создать объекты.
В реальном проекте вам нужно будет оцифровать еще 200 или 300 зданий. Однако в этом руководстве вы будете использовать набор обучающих выборок, которые были заранее подготовлены для вас.
- Внизу панели Геообработка щелкните Каталог, чтобы возвратиться на эту панель.
- На панели Каталог разверните Базы данных и Output_provided.gdb.
- Щёлкните правой кнопкой Training_examples_larger_set и выберите Добавить к текущей карте.
Появится набор обучающих выборок.
Обратите внимание, что был выбран прямоугольный экстент, и для каждого здания в экстенте были созданы полигоны. Вы удалите слой Training_examples, поскольку он вам больше не понадобится.
- На панели Содержание щелкните правой кнопкой слой Training_examples и выберите Удалить.
- Нажмите Ctrl+S, чтобы сохранить проект.
Теперь у вас есть слой, содержащий более 200 обучающих выборок.
Добавление поля класса
Теперь, когда вы нарисовали полигоны контуров зданий, вы должны обозначить их принадлежность к определенному классу. В некоторых рабочих процессах помеченные объекты могут принадлежать к разным классам (или категориям). Это могут быть, например, контуры зданий, деревья и автомобили. В этом руководстве есть только один класс: контуры строений. Вы добавите поле Класс к слою Training_examples_larger_set и заполните его.
- Щелкните правой кнопкой слой Training_examples_larger_set на панели Содержание и выберите Таблица атрибутов.
Появится таблица атрибутов для слоя с информацией о каждом полигоне.
- В таблице атрибутов Training_examples_larger_set щелкните Добавить.
- На вкладке Поля: Training_examples_larger_set в первой строке таблицы введите следующую информацию:
- Для Имени поля введите Class.
- Для Типа данных щелкните Long и замените его на Short.
Тип данных Short поддерживает целочисленные значения.
- На ленте на вкладке Поля в группе Изменить щёлкните Сохранить.
- Закройте окно Поля: Training_examples_larger_set.
Теперь, когда вы создали поле Class, вы заполните его числовым значением. Вы произвольно решаете, что класс контуров зданий будет соответствовать числовому значению 1.
- В таблице атрибутов Training_examples_larger_set щелкните Вычислить.
- В окне Вычислить поле задайте следующие значения параметров:
- Для Имени поля выберите Class.
- Для Class = введите 1.
- Примите все остальные значения по умолчанию и щелкните OK.
- В столбце Class каждому полигональному объекту должно быть присвоено значение 1.
Благодаря полю Class модель будет знать, что все обучающие примеры представляют собой объекты одного типа: контуры строений, значения которых равны 1.
- Закройте таблицу атрибутов Training_examples_larger_set.
Более подробно об обучающих фрагментах изображений и их вырезании
Модель глубокого обучения не сможет обучить большую область за один проход, поскольку обрабатывает только небольшие фрагменты изображения, называемые также кусочками. Такой кусочек состоит из тайла изображения и соответствующего ему маркировочного тайла, который показывает, где расположены объекты (в данном случае здания). Эти кусочки передаются в модель во время процесса обучения методом трансферного обучения.
Вы воспользуетесь снимком Seattle_RGB.tif и слоем Training_examples для генерирования обучающих фрагментов. Одним из важных моментов является избежание создания кусочков, содержащих немаркированные здания. Наличие таких кусочков показывало бы здания в модели, но это означало бы, что это вовсе не здания. Такая ситуация испортила бы модель и ухудшила ее производительность. Чтобы этого не допустить, вы вырежете ту часть снимка, в которой расположены обучающие выборки.
- В нижней части панели Каталог щелкните Геообработка.
- На панели Геообработка щелкните кнопку Назад.
- Найдите и откройте инструмент Вырезать растр.
- Установите следующие значения параметров инструмента Вырезать растр:
- Для Входного растра выберите Seattle_RGB.tif.
- Для параметра Выходной экстент выберите Training_examples_larger_set.
- В опции Выходной набор растровых данных щёлкните кнопку Обзор. В окне Выходной набор растровых данных выберите Папки > Seattle_Building_Detection > Imagery_data, в поле Имя введите Seattle_RGB_clip.tif и нажмите Сохранить.
- Щелкните Запустить.
На панели Содержание появится слой Seattle_RGB_clip.tif.
- На панели Содержание снимите отметку рядом со слоем Seattle_RGB.tif, чтобы отключить его.
Теперь на карте вы видите только вырезанный слой и обучающие выборки. Все здания, которые видны на снимке, обведены полигонами.
Создание обучающих кусочков изображений
Теперь вы создадите обучающие кусочки изображений. Сначала вы создадите папку для хранения элементов данных, связанных с процессом передачи модели обучения.
- Щелкните вкладку Каталог для переключения панелей.
- Если необходимо, разверните Папки и Seattle_Building_Detection.
- Щелкните правой кнопкой Seattle_Building_Detection, укажите Новый и щелкните Папка.
- Для параметра Новая папка введите Transfer_learning_data и нажмите Enter.
- Щелкните вкладку Геообработка для переключения панелей.
- На панели Геообработка щелкните кнопку Назад.
- Найдите и откройте инструмент Экспорт обучающих данных для глубокого обучения.
- Задайте следующие значения параметров инструмента Экспорт обучающих данных для глубокого обучения:
- В качестве Входного растра выберите Seattle_RGB_clip.tif.
- Для параметра Выходная папка щёлкните кнопку Обзор. В окне Выходная папка выберите Папки > Seattle_Building_Detection > Transfer_learning_data. В поле Имя введите Training_chips и щёлкните OK.
- Для параметра Входной класс объектов выберите Training_examples_larger_set.
Образцы, созданные на основе вырезанных изображений и обучающих примеров, будут храниться в папке Training_chips.
- Для Поля значений класса выберите Class.
Как вы определили ранее, поле Class определяет, какие объекты каким значениям соответствуют (в данном случае все объекты принадлежат классу 1, соответствующему контурам зданий).
- Убедитесь, что значение для параметров Размер листа по X и Размер листа по Y равно 256.
Эти параметры определяют размер фрагмента в направлениях X и Y (в пикселях). В этом случае значение по умолчанию 256 является подходящим.
Примечание:
Вы хотите, чтобы ваши обучающие фрагменты были максимально похожи на фрагменты, которые использовались для обучения исходной модели. Исходная модель была обучена на основе фрагментов размером 512 x 512, полученных на основе данных с разрешением 10–40 см. Разрешение вашего снимка NAIP - 1 м. Фрагмент размером 256 x 256 пикселей с таким разрешением покроет примерно ту же площадь, что и фрагмент 512 x 512 с разрешением 40 см. Поэтому размер 256 x 256 вполне подходит для фрагмента.
Один из способов узнать размер фрагмента, который изначально использовался в предварительно обученной модели, — заглянуть внутрь пакета dlpk. В Microsoft File Explorer скопируйте файл usa_building_footprints.dlpk в отдельную папку и измените его расширение с .dlpk на .zip. Щелкните правой кнопкой файл .zip и откройте его. Среди извлеченных файлов найдите usa_building_footprints.emd и измените его расширение на .txt. Откройте usa_building_footprints.txt в текстовом редакторе и найдите строки «ImageHeight» и «ImageWidth».
- Для значений Шаг по X и Шаг по Y введите 64.
Этот параметр управляет расстоянием перемещения в направлениях X и Y (в пикселах) при создании следующих фрагментов изображения. Это значение определяется объемом обучающих данных, которые у вас есть. Вы можете максимизировать число генерируемых фрагментов, установив меньшее значение. Вы можете поэкспериментировать с этим значением, однако для этом руководства подходит значение 64.
- Для параметра Формат метаданных выберите Маски RCNN.
Для разных типов моделей глубокого обучения требуются разные форматы метаданных для фрагментов. Ранее в этом рабочем процессе вы могли увидеть, что предварительно обученная модель основана на архитектуре MaskRCNN. Здесь вы должны выбрать значение, соответствующее этой модели.
Подсказка:
Чтобы получить более подробную информацию о каком-либо параметре инструмента, наведите курсор на параметр и щелкните расположенную рядом информационную кнопку.
- Примите остальные значения по умолчанию и щелкните Запустить.
Через несколько секунд процесс будет завершен.
Проверка обучающих кусочков изображений
Вы изучите некоторые созданные фрагменты.
- На панели Каталог разверните Папки > Seattle_Building_Detection > Transfer_learning_data и Training_chips.
- Тайлы изображений находятся в папке images, а маркировочные тайлы — в папке labels.
- Разверните папку images, щелкните правой кнопкой первое изображение - 000000000000.tif и выберите Добавить к текущей карте. Если появится запрос о вычислении статистики, щелкните Нет.
- На панели Содержание выключите слои Training_examples_larger_set и Seattle_RGB_clip.tif, чтобы лучше увидеть тайл.
- На панели Каталог сверните папку images, разверните папки labels и 1 и добавьте на карту первый маркировочный тайл - 000000000000.tif. Если появится запрос о вычислении статистики, щелкните Нет.
Примечание:
Пары изображений и меток можно распознать по идентичным именам.
- На панели Содержание включайте и выключайте маркировочный тайл, чтобы отобразить находящийся под ним тайл изображения.
- Щелкайте по пикселам маркировочного тайла, чтобы просмотреть их значения во всплывающем информационном окне.
Примечание:
На маркировочном тайле пикселы, не относящиеся к зданию, имеют значение 0. У всех пикселов зданий значения пикселов больше 0. Конкретные значения берутся из идентификаторов объектов исходных полигонов зданий, например, 28 на изображении в предыдущем примере.
- При желании добавьте на карту другие пары тайлов изображений и маркировочных тайлов и изучите их.
- После этого удалите все тайлы с панели Содержание и снова включите слои Training_examples_larger_set и Seattle_RGB.tif.
- На панели Каталог сверните папку Training_chips.
- Нажмите Ctrl+S, чтобы сохранить свой проект.
Вы создали обучающие фрагменты и теперь можете начать процесс трансферного обучения.
Выполнение трансферного обучения и извлечения зданий
Сейчас вы выполните трансферное обучение. Вы будете использовать сгенерированные вами фрагменты для дальнейшего обучения предварительно обученной модели usa_building_footprints.dlpk. Затем вы примените точно настроенную модель к своим снимкам Сиэтла и увидите, что теперь она работает намного лучше.
Точная настройка модели
Сначала вы воспользуетесь инструментом Тренировать модель глубокого обучения для доработки модели.
- Переключитесь на панель Геообработка и щелкните кнопку Назад.
- На панели Геообработка найдите и откройте инструмент Тренировать модель глубокого обучения.
- Задайте следующие значения параметров инструмента Тренировать модель глубокого обучения.
- Для параметра Входные обучающие данные щелкните кнопку Обзор. Выберите Папки > Seattle_Building_Detection > Transfer_learning_data. Выберите Training_chips и щёлкните OK.
- Для параметра Выходная модель щёлкните кнопку Обзор. Выберите Папки > Seattle_Building_Detection > Imagery_data > Transfer_learning_data. Введите Seattle_1m_Building_Footprints_model и нажмите OK.
Seattle_1m_Building_Footprints_model — это имя новой точно настроенной модели, полученной в результате процесса трансферного обучения.
Подсказка:
Легче запомнить, какая модель на каких данных была обучена, если хранить каждую модель и соответствующие ей обучающие чипы в одной папке.
- Разверните раздел Дополнительно и задайте следующие значения параметров:
- Для параметра Предварительно обученная модель щёлкните кнопку Обзор. Перейдите к папке, в которую вы сохранили предварительно обученную модель usa_building_footprints.dlpk, выберите ее и нажмите OK.
- Убедитесь, что отмечена опция Закрепление модели.
Опция Закрепление модели гарантирует, что новые обучающие данные будут влиять только на последний уровень модели, в то время как ее основные уровни останутся неизменными. Эта опция выбирается во многих случаях трансферного обучения, поскольку позволяет избежать риска того, что модель потеряет свои основные знания.
Примечание:
Если рядом с параметром Входные обучающие данные вы увидите ошибку, значит, у вас установлена неподходящая версия библиотеки Deep Learning Libraries. Нажмите Ctrl+S, чтобы сохранить проект, закройте ArcGIS Pro и следуйте инструкциям по установке среды глубокого обучения для ArcGIS. Если вы уже устанавливали библиотеки Deep Learning Libraries, следуйте инструкциям, перечисленным в разделе Обновление с предыдущей версии. По завершении установки вы можете открыть проект ArcGIS Pro повторно и продолжить работу с руководством.
- Разверните раздел Параметры модели и убедитесь, что для Размера пакета задано значение 4.
Подсказка:
Чтобы получить более подробную информацию о каком-то параметре инструмента и щелкните расположенную рядом информационную кнопку.
- На панели Геообработка щелкните вкладку Параметры среды. Для Тип процессора выберите GPU.
Примечание:
В этом руководстве предполагается, что у вашего компьютера есть вычислительные возможности графического процессора. Если у вас нет графического процессора, вы все равно можете выполнить этот процесс с помощью процессора, но обработка данных займет больше времени. В таком случае выберите CPU.
- Примите остальные значения по умолчанию и щелкните Запустить.
Этот процесс может занять не меньше 10 минут.
Подсказка:
Если вы получите сообщение об ошибке, связанной с нехваткой памяти, это может быть связано с тем, что на вашем компьютере недостаточно памяти для одновременной обработки четырех листов. Попытайтесь уменьшить значение Размера пакета с 4 на 2 или 1. Уменьшение этого значения не повлияет на качество модели, а только на эффективность процесса ее обучения.
Теперь у вас есть улучшенная модель Seattle_1m_Building_Footprints, которая настроена для более эффективной работы с вашими данными.
Запустить вывод
Вы завершили трансферное обучение и примените свою точно настроенную модель для запуска вывода на слое изображений Seattle_RGB.tif и обнаружения содержащихся в нем зданий.
- На панели Геообработка щелкните кнопку Назад.
- Найдите и откройте инструмент Выявить объекты при помощи глубокого обучения.
- Задайте следующие значения параметров инструмента Выявить объекты при помощи глубокого обучения:
- Для Входного растра выберите Seattle_RGB.tif.
- Для параметра Выходные выявленные объекты введите Seattle_buildings.
- Для Определение модели нажмите кнопку Обзор. Выберите папку Seattle_Building_Detection, разверните Transfer_learning_data и Seattle_1m_Building_Footprints_model, нажмите Seattle_1m_Building_Footprints_model.dlpk и щелкните OK.
По мере загрузки определения модели аргументы модели заполняются автоматически.
- Для дополнения значение должно быть равно 64.
Заполнение обозначает пограничную область в каждом фрагменте изображения, которая будет игнорироваться при обнаружении. Если фрагмент здания появляется на краю фрагмента изображения, заполнение гарантирует, что он не будет учитываться при обнаружении. Значение 64 указывает на то, что ширина отступа заполнения будет составлять 64 пикселя с каждой стороны фрагмента изображения.
Примечание:
Модель отрегулирует шаг в соответствии со значением отступа заполнения. По мере того как модель затрагивает соседние области, здание, которое появилось в виде фрагмента на краю предыдущего фрагмента изображения, вскоре полностью появится в центре одного из следующих фрагментов изображения, где оно будет успешно обнаружено. Узнайте больше о заполнении (и других параметрах логического вывода) в статье Советы и рекомендации по глубокому обучению с помощью ArcGIS Pro: часть 2 в разделе Понимание параметров вывода.
- Для batch_size используйте то же значение, что и для процесса обучения (4 или меньше).
Это позволяет быть уверенным в том, что инструмент сможет работать в пределах объема памяти, доступной на вашем компьютере.
- Для параметра Порог значение должно быть равно 0.9.
Это предельное значение между 0 и 1. Оно показывает, насколько высока должна быть достоверность в модели, чтобы объявить объект зданием. Значение 0.9 указывает на то, что у модели должна быть достоверность, равная 90 процентов.
- Убедитесь, что значение tile_size равно 256.
Это указывает на размер фрагментов снимка, которые модель будет использовать для запуска вывода. Это значение должно быть таким же, как размер фрагментов, которые использовались для обучения модели.
- Поставьте отметку Подавление немаксимумов.
При наличии перекрывающихся дубликатов контуров зданий параметр Подавление немаксимумов гарантирует, что будет сохранен только полигон здания с наибольшей достоверностью, а остальные полигоны будут удалены.
- На панели Геообработка щелкните вкладку Параметры среды.
- Для Типа процессора выберите GPU.
На данном этапе вы можете запустить инструмент как есть, и он продолжит обнаруживать здания по всему снимку Seattle_RGB.tif, что может занять от 10 минут до 1 часа - в зависимости от характеристик вашего компьютера. Для простоты в этом руководстве вы будете обнаруживать здания только на небольшой части входного изображения.
- На ленте на вкладке Карта, в группе Навигация, щелкните Закладки и выберите Inference extent.
Карта приблизилась к части Сиэтла.
- На панели Геообработка на вкладке Параметры среды, в разделе Экстент обработки, задайте Экстент как Текущий экстент отображения.
- Щелкните Запустить.
Через несколько минут процесс завершится, и выходной слой Seattle_buildings появится на панели Содержание и на карте. На этот раз вы увидите, что были обнаружены почти все здания.
Вы успешно обнаружили здания в районе Сиэтла, используя предварительно обученную модель, настроенную путем трансферного обучения.
Сравните результаты
Теперь вы сравните два слоя контуров здания, полученные в результате запуска готовой предварительно обученной модели, и модели, настроенной путем передачи модели обучения. В обоих случаях они показывают результаты для всего снимка. Хотя вы можете создать оба слоя самостоятельно, используя технику, которую вы изучили в предыдущем разделе, в целях экономии времени вы воспользуетесь слоями, которые были подготовлены для вас. Сначала вы откроете карту с этими слоями.
- На панели Каталог разверните Карты. Щелкните правой кнопкой Полный экстент и выберите Открыть.
Появится карта. Он содержит два класса полигональных объектов.
- Seattle_buildings_off_the_shelf
- Seattle_buildings_with_transfer_learning
Вы будете использовать инструмент Спрятать, чтобы сравнить два слоя.
- На панели Содержание щелкните Seattle_buildings_off_the_shelf, чтобы выбрать его.
- На ленте на вкладе Векторный слой в группе Сравнить щелкните Спрятать.
- На карте захватите указатель инструмента Спрятать и несколько раз переместите его сверху вниз и справа налево, чтобы скрыть верхний слой и увидеть нижний.
- Увеличивайте и уменьшайте масштаб, а также перемещайте его, чтобы изучить различные области и визуально оценить разницу в качестве результатов.
Подсказка:
В режиме шторки вы можете увеличивать и уменьшать масштаб с помощью колесика мыши, а также перемещать карту, нажав клавишу C на клавиатуре и перемещая курсор.
Хорошо настроенная модель гораздо лучше справляется с нахождением контуров небольших зданий на ваших снимках по сравнению со стандартной моделью. Теперь вы будете использовать инструмент Шторка, чтобы сравнить слой, полученный в результате передачи модели обучения со зданиями, которые вы видите на снимках.
- На панели Содержание выключите слой Seattle_buildings_off_the_shelf и выберите слой Seattle_buildings_with_transfer_learning.
- Используйте инструмент Спрятать, чтобы сравнить два слоя.
Вы можете заметить, что слой, полученный в результате точной настройки модели, все еще не идеален, и кое-где отсутствуют здания. Точная настройка модели путем передачи модели обучения обычно является итеративным процессом. Вы можете продолжить улучшать производительность своей модели, собрав больше обучающих примеров и проведя еще один раунд передачи модели обучения. Вот краткий обзор действий:
- Сначала обратите внимание на типы зданий, которые пропустила модель.
- Найдите новые примеры полигонов, предназначенных для зданий этого типа, и создайте новые обучающие фрагменты, сохранив их в новой папке. Вы должны следовать тем же правилам, что и ранее, так вырезая изображения, чтобы в чипы не попали немаркированные здания.
- Запустите новый сеанс обучения, начав с готовой предварительно обученной модели и загрузив в нее все созданные на данный момент фрагменты (то есть для параметра Входные обучающие данные вы перечислите все свои папки фрагментов). Это лучший способ гарантировать, что модель будет одинаково обрабатывать все обучающие фрагменты.
- После того как вы завершите изучение, на вкладке Карта на ленте в группе Навигация щелкните кнопку Исследовать, чтобы выйти из режима Спрятать.
- Нажмите Ctrl+S, чтобы сохранить свой проект.
В этом руководстве вы применили глубокое обучение для извлечения контуров зданий из аэрофотоснимков в ArcGIS Pro. Вы выбрали предварительно обученную модель из ArcGIS Living Atlas и поняли, насколько важно сопоставлять входные данные с требованиями модели. Вы создали новый слой изображений с нужным числом каналов. Затем вы применили трансферное обучение, чтобы исправить несоответствие разрешения и точно настроить производительность модели на ваших снимках: вы создали небольшое количество новых обучающих выборок и продолжили обучение модели. После этого вы применили точно настроенную модель к району Сиэтла и получили более приемлемый результат.