Классифицировать пикселы при помощи глубокого обучения (Image Analyst)

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

Краткая информация

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

Для этого инструмента требуется файл определения модели, содержащий обученную информацию о модели. Модели могут быть обучены с помощью инструмента Тренировать модель глубокого обучения или с помощью сторонних программных средств обучения, таких как TensorFlow, PyTorch или Keras. Файл определения модели может быть файлом JSON определения модели Esri (.emd) или пакетом модели глубокого обучения, и он должен содержать путь к растровой функции Python, вызываемой для обработки каждого объекта, и путь к обученному двоичному файлу модели глубокого обучения.

Использование

  • Необходимо установить соответствующую среду глубокого обучения Python API (например, TensorFlow или CNTK) в среду ArcGIS Pro Python; в противном случае при добавлении файла определения модели Esri в инструмент появится сообщение об ошибке. Получите соответствующую информацию о платформе от создателя файла определения модели Esri.

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

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

  • Примеры использования этого инструмента доступны на странице Esri растровой функции Python GitHub. Вы также можете написать пользовательские модули Python, следуя примерам и инструкциям в репозитории GitHub.

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

  • Дополнительную информацию о глубоком обучении см. в разделе Глубокое обучение в ArcGIS Pro.

  • В следующем примере кода используется файл определения модели Esri (.emd):

    {
        "Framework":"TensorFlow",
        "ModelConfiguration":"deeplab",
    
        "ModelFile":"\\Data\\ImgClassification\\TF\\froz_inf_graph.pb",
        "ModelType":"ImageClassification",
        "ExtractBands":[0,1,2],
        "ImageHeight":513,
        "ImageWidth":513,
    
        "Classes" : [
            {
                "Value":0,
                "Name":"Evergreen Forest",
                "Color":[0, 51, 0]
             },
             {
                "Value":1,
                "Name":"Grassland/Herbaceous",
                "Color":[241, 185, 137]
             },
             {
                "Value":2,
                "Name":"Bare Land",
                "Color":[236, 236, 0]
             },
             {
                "Value":3,
                "Name":"Open Water",
                "Color":[0, 0, 117]
             },
             {
                "Value":4,
                "Name":"Scrub/Shrub",
                "Color":[102, 102, 0]
             },
             {
                "Value":5,
                "Name":"Impervious Surface",
                "Color":[236, 236, 236]
             }
        ]
    }
  • Входной растр может быть одним растром, несколькими растрами или классом пространственных объектов с прикрепленными изображениями. Дополнительные сведения о вложениях см. в разделе Добавление и удаление вложений файлов.

  • Увеличение размера пакета может повысить производительность инструмента, но по мере его увеличения используется все больше памяти. При появлении ошибки переполнения памяти задайте меньший размер пакета. Значение batch_size можно уточнить с помощью параметра Аргументы.

  • Размеры пакета указываются в квадратах целых чисел: 1, 4, 9, 16, 25, 64 и т.д. Если входное значение не является квадратом числа, будет использоваться максимальный квадрат целого числа. К примеру, если задано значение 6, размер пакета будет равен 4.

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

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

Параметры

ПодписьОписаниеТип данных
Входной растр

Входной набор растровых данных, который будет классифицирован.

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

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
Определение модели

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

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

File; String
Аргументы
(Дополнительный)

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

  • batch_size - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • direction – изображение передается из одного домена в другой. Опции AtoB и BtoA. Аргумент доступен только для архитектуры CycleGAN. Более подробную информацию об этом аргументе см. в Как работает CycleGAN.
  • merge_policy — политика объединения расширенных прогнозов. Доступные опции mean, max и min. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен для архитектур MultiTaskRoadExtractor и ConnectNet. Если IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • n_timestep — Количество временных шагов, которые будут использованы. По умолчанию, 200. Можно увеличить или уменьшить это значение в зависимости от качества поколений. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • predict_background — определяет, будет ли классифицирован класс фона. Если значение True, класс фона также классифицируется. Аргумент доступен для UNET, PSPNET, DeepLab, MMSegmentation, SAMLoRA.
  • return_probability_raster — определяет, будет ли выходной набор данных растром вероятности. Если истина - выходной набор данных будет растром вероятности. Если ложь - выходной набор данных будет бинарным классифицированным растром. Значением по умолчанию является false. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • sampling_type — Тип выборки, который будет использован. Доступны два типа выборки: ddim и ddpm. По умолчанию тип выборки ddim быстрее выдает результаты за меньшее количество шагов по сравнению с ddpm. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • schedule — Необязательная строка, которая задает тип расписания. Расписание по умолчанию такое же, на котором обучалась модель. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых вариантов входного изображения. Аргумент доступен для UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation, Multi-Task Road Extractor и SAMLoRA.
  • tile_size — Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для архитектуры CycleGAN.
  • thinning — определяет, будут ли прогнозируемые ребра утончены или скелетированы. Опции True и False. Если IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • threshold — В результат включаются обнаруженные объекты, достоверность которых превышает это пороговое значение. Допустимые значения находятся в диапазоне от 0 до 1.0. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.

Value Table
Режим обработки

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

  • Обработка как мозаики изображенийВсе растровые элементы в наборе данных мозаики или сервисе изображений будут объединены в мозаику и обработаны. Используется по умолчанию.
  • Обработка всех растровых элементов отдельноВсе растровые элементы в наборе данных мозаики или сервисе изображений будут обработаны как отдельные изображения.
String
Выходная папка
(Дополнительный)

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

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

Folder
Выходные объекты
(Дополнительный)

Класс объектов, в котором будут сохранены выходные растры.

Этот параметр обязателен, если входной растр является классом объектов изображений.

Feature Class
Перезаписать вложения
(Дополнительный)

Задает, будет ли существующее вложение с изображением перезаписано.

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

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

Boolean
Использовать пиксельное пространство
(Дополнительный)

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

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

Boolean

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной набор растровых данных

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

Raster Dataset

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder}, {out_featureclass}, {overwrite_attachments}, {use_pixelspace})
ИмяОписаниеТип данных
in_raster

Входной набор растровых данных, который будет классифицирован.

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

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class
in_model_definition

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

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

File; String
arguments
[arguments,...]
(Дополнительный)

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

  • batch_size - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • direction – изображение передается из одного домена в другой. Опции AtoB и BtoA. Аргумент доступен только для архитектуры CycleGAN. Более подробную информацию об этом аргументе см. в Как работает CycleGAN.
  • merge_policy — политика объединения расширенных прогнозов. Доступные опции mean, max и min. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен для архитектур MultiTaskRoadExtractor и ConnectNet. Если IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • n_timestep — Количество временных шагов, которые будут использованы. По умолчанию, 200. Можно увеличить или уменьшить это значение в зависимости от качества поколений. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • predict_background — определяет, будет ли классифицирован класс фона. Если значение True, класс фона также классифицируется. Аргумент доступен для UNET, PSPNET, DeepLab, MMSegmentation, SAMLoRA.
  • return_probability_raster — определяет, будет ли выходной набор данных растром вероятности. Если истина - выходной набор данных будет растром вероятности. Если ложь - выходной набор данных будет бинарным классифицированным растром. Значением по умолчанию является false. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • sampling_type — Тип выборки, который будет использован. Доступны два типа выборки: ddim и ddpm. По умолчанию тип выборки ddim быстрее выдает результаты за меньшее количество шагов по сравнению с ddpm. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • schedule — Необязательная строка, которая задает тип расписания. Расписание по умолчанию такое же, на котором обучалась модель. Этот аргумент поддерживается только для параметра Повышение разрешения с опорной моделью SR3.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых вариантов входного изображения. Аргумент доступен для UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation, Multi-Task Road Extractor и SAMLoRA.
  • tile_size — Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для архитектуры CycleGAN.
  • thinning — определяет, будут ли прогнозируемые ребра утончены или скелетированы. Опции True и False. Если IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • threshold — В результат включаются обнаруженные объекты, достоверность которых превышает это пороговое значение. Допустимые значения находятся в диапазоне от 0 до 1.0. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.

Value Table
processing_mode

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

  • PROCESS_AS_MOSAICKED_IMAGEВсе растровые элементы в наборе данных мозаики или сервисе изображений будут объединены в мозаику и обработаны. Используется по умолчанию.
  • PROCESS_ITEMS_SEPARATELYВсе растровые элементы в наборе данных мозаики или сервисе изображений будут обработаны как отдельные изображения.
String
out_classified_folder
(Дополнительный)

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

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

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

Класс объектов, в котором будут сохранены выходные растры.

Этот параметр обязателен, если входной растр является классом объектов изображений.

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

Задает, будет ли существующее вложение с изображением перезаписано.

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

Этот параметр корректен, только когда значением параметра in_raster является класс пространственных объектов с вложениями изображений.

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

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

  • NO_PIXELSPACEВывод будет выполняться в пространстве карты. Используется по умолчанию.
  • PIXELSPACEВывод будет выполнен в пространстве изображения, а выходные данные будут преобразованы обратно в пространство карты. Этот параметр полезен при использовании наклонных изображений или изображений Street View, где объекты могут быть искажены из-за использования пространства карты.
Boolean

Возвращаемое значение

ИмяОписаниеТип данных
out_classified_raster

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

Raster Dataset

Пример кода

ClassifyPixelsUsingDeepLearning пример 1 (окно Python)

В этом примере растр классифицируется на основе пользовательской классификации пикселов с помощью функции ClassifyPixelsUsingDeepLearning.

# Import system modules
import arcpy
from arcpy.ia import *

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

out_classified_raster = ClassifyPixelsUsingDeepLearning
     ("c:\\classifydata\\moncton_seg.tif", "c:\\classifydata\\moncton_sig.emd", 
     "padding 0; batch_size 16", "PROCESS_AS_MOSAICKED_IMAGE")
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")
ClassifyPixelsUsingDeepLearning, пример 2 (автономный скрипт)

В этом примере растр классифицируется на основе пользовательской классификации пикселов с помощью функции ClassifyPixelsUsingDeepLearning.

# Import system modules
import arcpy
from arcpy.ia import *


# Set local variables
in_raster = "c:\\classifydata\\moncton_seg.tif"
in_model_definition = "c:\\classifydata\\moncton_sig.emd"
model_arguments = "padding 0; batch_size 16"
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"

# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
Out_classified_raster = ClassifyPixelsUsingDeepLearning(in_raster, 
                   in_model_definition, model_arguments, processing_mode)
Out_classified_raster.save("c:\\classifydata\\classified_moncton.tif")

Информация о лицензиях

  • Basic: Обязательно Image Analyst
  • Standard: Обязательно Image Analyst
  • Advanced: Обязательно Image Analyst

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