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

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

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

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

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

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

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

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

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

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

  • Значением параметра Определение модели Esri может быть 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; MapServer; Map Server Layer; Internet Tiled Layer; Folder
Определение модели

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

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

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

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

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

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

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

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

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

Folder

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

ПодписьОписаниеТип данных
Выходной классифицированный растр

Имя классифицированного растра или набора данных мозаики, содержащего классифицированный растр.

Raster

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

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

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; MapServer; Map Server Layer; Internet Tiled Layer; Folder
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_classified_raster

Имя классифицированного растра или набора данных мозаики, содержащего классифицированный растр.

Raster

Пример кода

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

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