Классифицировать пикселы при помощи глубокого обучения (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 для обработки каждого объекта.

  • Примеры использования этого инструмента доступны на странице GitHub растровой функции Esri Python. Вы также можете написать пользовательские модули 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.

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

Параметры

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

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

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

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
Аргументы
(Дополнительный)

Аргументы функции определены в классе функции растра Python. Там перечисляются дополнительные параметры глубокого обучения и аргументы для экспериментов и улучшения, например, порог достоверности для настройки чувствительности. Названия аргументов заполняются при чтении модуля Python.

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

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

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

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

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

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

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

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

Feature Class

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

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

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

Raster Dataset

ClassifyPixelsUsingDeepLearning(in_raster, in_model_definition, {arguments}, processing_mode, {out_classified_folder}, {out_featureclass})
ИмяОписаниеТип данных
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,...]
(Дополнительный)

Аргументы функции определены в классе функции растра Python. Там перечисляются дополнительные параметры глубокого обучения и аргументы для экспериментов и улучшения, например, порог достоверности для настройки чувствительности. Названия аргументов заполняются при чтении модуля Python.

Value Table
processing_mode

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

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

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

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

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

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

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

Feature Class

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

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

"""
Usage: ClassifyPixelsUsingDeepLearning(in_raster,out_classified_raster, 
       in_classifier_definition, {arguments}, {processing_mode})
                      
"""

# 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

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