Модели глубокого обучения в ArcGIS

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

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

В ArcGIS можно сгруппировать модели глубокого обучения по трем категориям:

  • Предварительно обученные модели ArcGIS
  • Модели, обученные с помощью ArcGIS
  • Пользовательские модели

Предварительно обученные модели ArcGIS

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

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

С предварительно обученными моделями ArcGIS вам не нужно тратить время и усилия на обучение модели глубокого обучения. Модели ArcGIS были обучены на данных из разных географических регионов. По мере того, как вам становятся доступны новые изображения, вы можете извлекать объекты и создавать слои наборов ГИС-данных для картографирования, визуализации и анализа. Предварительно обученные модели доступны в ArcGIS Living Atlas of the Worldдля каждого, имеющего учетную запись ArcGIS.

Модели, обученные с помощью ArcGIS

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

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

Пользовательские модели

Вывод модели глубокого обучения в ArcGIS реализован поверх среды растровых функций Python. Многие модели глубокого обучения, обученные вне ArcGIS, могут быть использованы в ArcGIS для вывода; однако для этого требуется настроить функцию вывода и установить правильные пакеты, поддерживающие модель. Репозиторий raster-deep-learning содержит руководство по растровым функциям Python глубокого обучения в ArcGIS, а также по созданию пользовательских растровых функций Python для интеграции дополнительных моделей глубокого обучения в ArcGIS. Эти модели считаются пользовательскими моделями.

Содержание модели глубокого обучения

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

Структура папок модели

  • loss_graph.png — показывает потери при обучении и проверке для пакетной обработки. Это используется в файле model_metrics.html.
  • show_results.png — показывает примерные результаты для модели. Это используется в файле model_metrics.html.
  • training_validation_loss.json — показывает потери при обучении и проверке за каждую эпоху.
  • model_metrics.html — содержит информацию по обученной модели, такую как скорость обучения, потери при обучении и проверке, а также примеры полученных результатов.
  • model_name.pth — содержит веса модели.

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

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

Файл определения модели 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

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

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

{
    "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]
      }
    ]
}

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

{
    "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, см. раздел Публикация пакета модели глубокого обучения.

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