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

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

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

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

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

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

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

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

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

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

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

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

  • В следующем примере кода используется файл определения модели 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.

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

Параметры

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

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

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

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 - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • tile_size - Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для архитектуры CycleGAN.
  • predict_background — определяет, будет ли классифицирован класс фона. Если значение True, класс фона также классифицируется. Аргумент доступен для UNET, PSPNET, DeepLab и MMSegmentation.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых вариантов входного изображения. Аргумент доступен для UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation и Multi-Task Road Extractor.
  • merge_policy — политика объединения расширенных прогнозов. Доступные варианты: среднее, максимум и минимум. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен для архитектур MultiTaskRoadExtractor и ConnectNet. Если 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.
  • return_probability_raster — определяет, будет ли выходной набор данных растром вероятности. Если истина - выходной набор данных будет растром вероятности. Если ложь - выходной набор данных будет бинарным классифицированным растром. Значением по умолчанию является false. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • direction – изображение передается из одного домена в другой. Опции AtoB и BtoA. Аргумент доступен только для архитектуры CycleGAN. Более подробную информацию об этом аргументе см. в Как работает CycleGAN.
  • thinning — определяет, будут ли прогнозируемые ребра утончены или скелетированы. Опции True и False. Если IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.

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

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

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

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

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

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

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

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

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

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

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

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

Boolean

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

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

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

Raster Dataset

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder}, {out_featureclass}, {overwrite_attachments})
ИмяОписаниеТип данных
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 - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • tile_size - Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для архитектуры CycleGAN.
  • predict_background — определяет, будет ли классифицирован класс фона. Если значение True, класс фона также классифицируется. Аргумент доступен для UNET, PSPNET, DeepLab и MMSegmentation.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых вариантов входного изображения. Аргумент доступен для UNET, PSPNET, DeepLab, HED Edge Detector, BDCN Edge Detector, ConnectNet, MMSegmentation и Multi-Task Road Extractor.
  • merge_policy — политика объединения расширенных прогнозов. Доступные варианты: среднее, максимум и минимум. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен для архитектур MultiTaskRoadExtractor и ConnectNet. Если 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.
  • return_probability_raster — определяет, будет ли выходной набор данных растром вероятности. Если истина - выходной набор данных будет растром вероятности. Если ложь - выходной набор данных будет бинарным классифицированным растром. Значением по умолчанию является false. Если ArcGISLearnVersion версии 1.8.4 или новее в есть файле .emd модели, доступны архитектуры MultiTaskRoadExtractor и ConnectNet. Если ArcGISLearnVersion версии 1.8.4 или новее и IsEdgeDetection есть в файле .emd модели, доступны архитектуры BDCNEdgeDetector, HEDEdgeDetector и MMSegmentation.
  • direction – изображение передается из одного домена в другой. Опции AtoB и BtoA. Аргумент доступен только для архитектуры CycleGAN. Более подробную информацию об этом аргументе см. в Как работает CycleGAN.
  • thinning — определяет, будут ли прогнозируемые ребра утончены или скелетированы. Опции True и False. Если 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

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

ИмяОписаниеТип данных
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")

ClassifyPixelsUsingDeepLearning("c:/classifydata/moncton_seg.tif",
     "c:/classifydata/moncton.tif", "c:/classifydata/moncton_sig.emd")
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")