Глубокое обучение с использованием модуля ArcGIS Image Analyst

Доступно с лицензией Image Analyst.

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

Примечание:

В этом разделе описано глубокое обучение для рабочих процессов обработки изображений с помощью Image Analyst. Обзор всех возможностей глубокого обучения в ArcGIS Pro см. в разделе Глубокое обучение в ArcGIS Pro.

Рабочий процесс представлен на схеме ниже.

Рабочий процесс глубокого обучения

ШагОписание

Глубокое обучение шаг 1

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

Примечание:

Инструмент Экспорт обучающих данных для глубокого обучения также поддерживается модулем Spatial Analyst.

Глубокое обучение шаг 2

Используйте инструмент Тренировать модель глубокого обучения для обучения модели с помощью PyTorch или вне ArcGIS Pro с использованием поддерживаемой сторонней платформы глубокого обучения.

Глубокое обучение шаг 3

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

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

Свойства и возможности

Инструменты глубокого обучения в ArcGIS Pro позволяют использовать больше, чем стандартные методы классификации машинного обучения.

  • Используйте сверточные нейронные сети или модели глубокого обучения для обнаружения объектов, классификации объектов и классификации пикселов изображения.
  • Интегрируйте внешние среды моделей глубокого обучения, включая Keras, TensorFlow и PyTorch.
  • Используйте файл определения модели несколько раз для обнаружения изменений во времени или объектов в различных областях интереса.
  • Создайте класс полигональных объектов, показывающий обнаруженные объекты, которые будут использоваться для дополнительного анализа или рабочих процессов.
  • Воспользуйтесь преимуществами обработки графического процессора, а также использования ЦП для распределенной обработки.

Начало работы с глубоким обучением

Создание и экспорт обучающих выборок выполняется в ArcGIS Pro с помощью стандартных инструментов создания обучающих выборок. Модель глубокого обучения можно обучить с помощью платформы PyTorch инструментом Тренировать модель глубокого обучения либо обучить вне ArcGIS Pro с использованием другой среды глубокого обучения. После обучения модели используйте файл определения модели Esri (.emd) для запуска инструментов геообработки с целью обнаружения или классификации объектов снимка.

Вам нужно установить пакеты Python среды глубокого обучения. В противном случае возникает ошибка при добавлении файла определения модели Esri в инструменты геообработки для глубокого обучения. Для получения информации об установке этих пакетов см. раздел Установка среды глубокого обучения для ArcGIS.

  1. Создайте и экспортируйте обучающие выборки.
    1. Воспользуйтесь панелью Надписать объекты для глубокого обучения или Менеджер обучающих выборок, чтобы выбрать или создать схему классификации.
    2. Создайте обучающую выборку для категорий классов или интересующих объектов. Сохраните файл обучающей выборки.
    3. Запустите инструмент геообработки Экспорт обучающих данных для глубокого обучения, чтобы конвертировать исходные изображения и обучающую выборку в обучающие данные глубокого обучения. Исходные изображения могут быть сервисом изображений, набором данных мозаики, набором растровых данных или папкой растров. Результатом работы инструмента являются фрагменты изображений или образцы, содержащие учебные сайты, которые будут использоваться для обучения модели глубокого обучения. Дополнительные выходные данные этого инструмента – это файл шаблона .emd, который будет заполняться специалистом по данным.
  2. Обучите модель глубокого обучения.
    1. Воспользуйтесь инструментом Тренировать модель глубокого обучения для тренировки модели глубокого обучения с помощью фрагментов изображения, созданных на предыдущем шаге.
  3. Запустите инструменты геообработки логического вывода в ArcGIS Pro.
    1. Используйте инструменты растрового анализа Выявить объекты при помощи глубокого обучения, Классифицировать пикселы при помощи глубокого обучения и Классифицировать объекты при помощи глубокого обучения для обработки ваших изображений. Если обученная модель содержит пользовательские растровые функции Python с такими дополнительными переменными, как заполнение или порог достоверности для точной настройки чувствительности, эти переменные отобразятся в диалоговом окне инструмента геообработки для ввода пользователем. Тип данных, например, string или numeric, задается в функции растра Python. В идеале дополнительные параметры вывода должны быть ограничены двумя.

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

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

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

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

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

Файл определения модели Esri

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

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

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

Параметр файла определения моделиОбъяснение

Платформа

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

Поддерживаются следующие платформы глубокого обучения:

  • TensorFlow
  • Keras
  • PyTorch
Если модель обучается с использованием платформы глубокого обучения, которой нет в списке, то вместе с обученной моделью требуется пользовательская функция вывода (модуль Python), и необходимо задать для функции InferenceFunction путь к модулю Python.

ModelConfiguration

Имя конфигурации модели.

Конфигурация модели определяет входные и выходные данные модели, логику выходных данных и предположения для входных и выходных данных. Рабочие процессы глубокого обучения с открытым исходным кодом определяют стандартную конфигурацию ввода–вывода данных и логику вывода. ArcGIS поддерживает следующий набор предопределенных конфигураций:

TensorFlow

  • ObjectDetectionAPI
  • DeepLab

Keras

  • MaskRCNN

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

ModelType

Тип модели.

  • ImageClassification – для классификации пикселов
  • ObjectDetection – для обнаружения объектов
  • ObjectClassification – для классификации пространственных и непространственных объектов

ModelFile

Путь к файлу обученной модели глубокого обучения. Формат файла зависит от среды модели. Например, в TensorFlow файл модели - .pb.

Описание

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

InferenceFunction

(Дополнительный)

Путь к функции вывода данных.

Функция вывода понимает обученный файл данных модели и предоставляет логику вывода данных. В инструментах глубокого обучения ArcGIS Pro есть шесть функций вывода:

  • Обнаружить объекты для TensorFlow
  • Классифицировать пикселы для Tensor Flow
  • Обнаружить объекты для Keras
  • Обнаружить объекты для PyTorch
  • Классифицировать объекты для PyTorch
Если вы использовали одну из приведенных выше функций вывода, нет необходимости указывать ее в файле .emd. Если модель обучается с использованием конфигурации модели глубокого обучения, которая еще не поддерживается или требует специальной логики вывода, то вместе с обученной моделью требуется пользовательская функция вывода (модуль Python). В этом случае задайте InferenceFunction в пути к модулю Python. Файл модуля вывода данных Python может располагаться в любой директории, к которой у ArcGIS Pro есть доступ.

SensorName

(Дополнительный)

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

RasterCount

(Дополнительный)

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

BandList

(Дополнительный)

Список каналов исходных изображений

ImageHeight

(Дополнительный)

Число строк в классифицируемом или обрабатываемом изображении.

ImageWidth

(Дополнительный)

Количество столбцов в классифицируемом или обрабатываемом изображении.

ExtractBands

(Дополнительный)

Индексы каналов или имена каналов для извлечения из входного изображения.

Классы

(Дополнительный)

Информация о категориях или объектах выходного класса.

DataRange

(Дополнительный)

Диапазон значений данных, если во время предварительной обработки выполнялось масштабирование или нормализация.

ModelPadding

(Дополнительный)

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

BatchSize

(Дополнительный)

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

PerProcessGPUMemoryFraction

(Дополнительный)

Часть памяти графического процессора, выделяемая для каждой итерации в модели. По умолчанию это 0.95, то есть 95 процентов.

MetaDataMode

(Дополнительный)

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

ImageSpaceUsed

(Дополнительный)

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

  • MAP_SPACE
  • PIXEL_SPACE

WellKnownBandNames

(Дополнительный)

Имена, данные каждому входному каналу, в порядке индексов каналов. Затем на каналы можно ссылаться с помощью этих имен и в других инструментах.

AllTileStats

Статистика каждого канала обучающих данных.

Ниже приведен пример файла определения модели (.emd), который использует конфигурацию стандартной модели:

{
    "Framework": "TensorFlow",
    "ModelConfiguration": "ObjectDetectionAPI",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\tree_detection.pb",
    "ModelType":"ObjectionDetection",
    "ImageHeight":850,
    "ImageWidth":850,
    "ExtractBands":[0,1,2],
    "Classes" : [
      {
        "Value": 0,
        "Name": "Tree",
        "Color": [0, 255, 0]
      }
    ]
}

Ниже приводится пример файла определения модели (.emd) с дополнительными параметрами конфигурации:

{
    "Framework": "PyTorch",
    "ModelConfiguration": "FasterRCNN",
    "ModelFile":"C:\\ModelFolder\\ObjectDetection\\river_detection.pb",
    "ModelType":"ObjectionDetection",
				"Description":"This is a river detection model for  imagery",
    "ImageHeight":448,
    "ImageWidth":448,
    "ExtractBands":[0,1,2,3],
				"DataRange":[0.1, 1.0],
				"ModelPadding":64,
				"BatchSize":8,
				"PerProcessGPUMemoryFraction":0.8,
				"MetaDataMode" : "PASCAL_VOC_rectangles",
				"ImageSpaceUsed" : "MAP_SPACE",
    "Classes" : [
      {
        "Value": 1,
        "Name": "River",
        "Color": [0, 255, 0]
      }
    ],
				"InputRastersProps" : {
						"RasterCount" : 1,
						"SensorName" : "Landsat 8",
						"BandNames" : [
								"Red",
								"Green",
								"Blue",
								"NearInfrared"
						]
				},
				"AllTilesStats" : [
      {
      		"BandName" : "Red",
      		"Min" : 1,
      		"Max" : 60419,
      		"Mean" : 7669.720049855654,
      		"StdDev" : 1512.7546387966217
      },
      {
      		"BandName" : "Green",
      		"Min" : 1,
      		"Max" : 50452,
      		"Mean" : 8771.2498195125681,
      		"StdDev" : 1429.1063589515179
      },
      {
      		"BandName" : "Blue",
      		"Min" : 1,
      		"Max" : 47305,
      		"Mean" : 9306.0475897744163,
      		"StdDev" : 1429.380049936676
      },
      {
      		"BandName" : "NearInfrared",
      		"Min" : 1,
      		"Max" : 60185,
      		"Mean" : 17881.499184561973,
      		"StdDev" : 5550.4055277121679
      }
    ],
}

Пакет модели глубокого обучения

Пакет модели глубокого обучения (.dlpk) содержит необходимые файлы и данные для запуска инструментов глубокого обучения для детектирования объектов или классификации изображений. Пакет может быть загружен на портал как элемент DLPK и использоваться в качестве входных данных для инструментов анализа растров с глубоким обучением.

Пакеты моделей глубокого обучения должны содержать файл определения модели Esri (.emd) и обученный файл модели. Расширение обученного файла модели зависит от среды, использованной для обучения модели. Например, если вы обучали модель, используя TensorFlow, модель будет представлена файлом .pb, а модель, обученная с помощью Keras - файлом .h5. В зависимости от среды и опций, использованных при обучении, вам может потребоваться включить в пакет Python Raster Function (.py) или дополнительные файлы. В одном пакете модели глубокого обучения можно размещать несколько файлов обученной модели.

Большинство пакетов можно открыть в любой версии ArcGIS Pro. По умолчанию содержание пакета будет помещено в папку <User Documents>\ArcGIS\Packages. Вы можете изменить это местоположение в Опциях публикации и загрузки. В этом пакете не будут доступны функции, которые не поддерживаются в используемой версии ArcGIS Pro.

Чтобы просмотреть или изменить свойства пакета .dlpk или добавить либо удалить файлы из пакета .dlpk, щелкните правой кнопкой пакет .dlpk на панели Каталог и выберите Свойства.

Открыть пакет глубокого обучения на панели Каталог

Свойства содержат следующую информацию:

  • Входные данные — файл .emd, файл обученной модели и любые другие файлы, которые могут потребоваться для запуска инструментов вывода.
  • Среда — среда глубокого обучения, используемая для обучения модели.
  • ModelConfiguration — тип выполняемого обучения модели (обнаружение объектов, классификация пикселов или классификации объектов).
  • Описание – описание модели. Оно необязательное и редактируемое.
  • Краткое описание – основная информация о модели. Оно необязательное и редактируемое.
  • Теги – все теги, используемые для идентификации пакета. Полезны для элементов пакета .dlpk на вашем портале.

Свойства пакета глубокого обучения

Любое свойство, редактируемое в окне Свойства, обновляется при нажатии кнопки ОК. Если доступ к элементу пакета .dlpk осуществляется с вашего портала на панели Каталог, элемент портала обновляется.

Для получения информации о том, как создать пакет .dlpk, см. раздел Публикация пакета модели глубокого обучения.

Ресурсы для разработчиков

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

Если вы работаете в ArcGIS API for Python, существует множество дополнительных задач глубокого обучения, доступных в модуле arcgis.learn веб-сайта ArcGIS for Python API.

Связанные разделы