Выявить изменения при помощи глубокого обучения (Image Analyst)

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

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

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

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

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

  • Входными данными для этого инструмента являются два изображения: изображение предыдущего времени и изображение более позднего времени. Выходные данные представляют собой классифицированный набор растровых данных, который показывает изменение между двумя входными растровыми данными.

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

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

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

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

  • Могут потребоваться дополнительные входные параметры, такие как размер mini-batch, размер заполнения и т.д.

  • Используйте пример ниже для файла JSON определения модели (.emd).

    Пример файла JSON определения модели.

    
    {
       "Framework": "",
       "ModelConfiguration":" ",
       "ModelFile":"",
       "InferenceFunction":"",
       "ModelType":"",
       "ImageHeight":256,
       "ImageWidth":256,
       "ExtractBands":[0,1,2],
       "CropSizeFixed": 1,
       "BlackenAroundFeature": 1,
          "Classes": [
          {
             "Value": 0,
                "Name": "Building",
                "Color": [255, 0, 0]
               	}
       ]
    }

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

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

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

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

Параметры

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

Входной растр до изменений.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
В растр

Входной растр после изменений.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
Выходной классифицированный растр

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

Raster Dataset
Определение модели

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

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

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

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

  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение padding может составлять половину значения размера листа. Аргумент доступен для архитектуры всех моделей.
  • batch_size - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти видеокарты. Аргумент доступен для архитектуры всех моделей.

Value Table

DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, in_model_definition, {arguments})
ИмяОписаниеТип данных
from_raster

Входной растр до изменений.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
to_raster

Входной растр после изменений.

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer
out_classified_raster

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

Raster Dataset
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 и пользовательские модели глубокого обучения могут включать дополнительные аргументы, которые поддерживаются инструментом.

  • padding - Количество пикселов на границе листов изображений, из которых складываются прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение padding может составлять половину значения размера листа. Аргумент доступен для архитектуры всех моделей.
  • batch_size - Количество листов изображений, обработанных на каждом этапе построения модели. Оно зависит от объема памяти видеокарты. Аргумент доступен для архитектуры всех моделей.

Value Table

Пример кода

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

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

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


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


DetectChangeUsingDeepLearning("c://detectchange//input_image1.tif", 
     "c://detectchange//input_image2.tif", "c://detectchange//output_difference.tif", 
     "c://detectchange/detectBuilding.emd", "padding 0;score_threshold 0.6;batch_size 4")
DetectChangeUsingDeepLearning, пример 2 (автономный скрипт)

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

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

""" 
Usage: DetectObjectsUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, {model_arguments}) 
"""

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

# Set local variable
from_raster = r"c:/detectchange/input_image1.tif"
to_raster = r"c:/detectchange/input_image2.tif"
out_classified_raster = r"c:/detectchange/output_difference.tif"
in_model_definition = r"c:/ detectchange/detectbuilding.emd"

# arcpy.env.processorType = "GPU"
# arcpy.env.gpuId = 0

# Execute
DetectChangeUsingDeepLearning(from_raster, to_raster, out_classified_raster, 
    in_model_definition, "padding 0;score_threshold 0.6;batch_size 4")