Detect Objects Using Deep Learning (Image Analyst)

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

Сводка

Запускает обученную модель глубокого обучения для входного растра для построения класса с найденными пространственными объектами. Объекты могут быть ограничивающими рамками или полигонами вокруг найденных объектов или точками в центрах объектов.

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

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

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

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

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

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

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

  • See the sample below for the .emd file.

    {
        "Framework" :"TensorFlow",
        "ModelConfiguration": "ObjectDetectionAPI",
        
        "ModelFile": ".\\CoconutTreeDetection.model",
        "ModelType": "ObjectDetection",
        "ImageHeight": 850,
        "ImageWidth": 850,
        "ExtractBands": [0,1,2],
        "ImageSpaceUsed": "MAP_SPACE"
        "Classes": [
        {
            "Value": 0,
            "Name": "CoconutTree",
            "Color": [0, 255, 0]
        }
        ]
    }
  • Use the Non Maximum Suppression parameter to identify and remove duplicate features from the object detection.

  • Инструмент может обрабатывать входные изображения, которые находятся в пространстве карты или в пространстве пикселов. Изображения в пространстве карты находятся в картографической системе координат. Изображения в пиксельном пространстве находятся в необработанном пространстве изображений без вращения и искажений. Система привязки может быть задана при формировании обучающих данных в инструменте Экспорт обучающих данных для глубокого обучения в параметре Система привязки. Если модель обучается в стороннем обучающем программном обеспечении, система ссылок должна быть указана в файле .emd с помощью параметра ImageSpaceUsed , который можно установить на MAP_SPACE или PIXEL_SPACE.

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

  • Для получения информации о требованиях к запуску этого инструмента и возможных с ним проблемах см. FAQ по глубокому обучениюPDF с FAQ по глубокому обучению.

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

Синтаксис

DetectObjectsUsingDeepLearning(in_raster, out_detected_objects, in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, {class_value_field}, {max_overlap_ratio}, {processing_mode})
ParameterОбъяснениеТип данных
in_raster

The input image used to detect objects. The input can be a single raster or multiple rasters in a mosaic dataset, image service, or folder of images. A feature class with image attachments is also supported.

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

The output feature class that will contain geometries circling the object or objects detected in the input image.

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
run_nms
(Дополнительный)

Specifies whether nonmaximum suppression will be performed, in which duplicate objects are identified and the duplicate features with lower confidence value are removed.

  • NO_NMSNonmaximum suppression is not performed. All objects that are detected will be in the output feature class. This is the default.
  • NMSNonmaximum suppression is performed, and duplicate objects that are detected will be removed.
Boolean
confidence_score_field
(Дополнительный)

The name of the field in the feature class that contains the confidence scores as output by the object detection method.

This parameter is required when the NMS keyword for the run_nms parameter is used.

String
class_value_field
(Дополнительный)

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

Если имя поля не задано, будет использоваться поле Classvalue или Value . Если эти поля отсутствуют, все записи будут считаться принадлежащими одному классу.

String
max_overlap_ratio
(Дополнительный)

Коэффициент максимального перекрытия для двух перекрывающихся объектов, который определяется как отношение площади пересечения к площади объединения. Значение по умолчанию равно 0.

Double
processing_mode
(Дополнительный)

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

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

Пример кода

DetectObjectsUsingDeepLearning example 1 (Python window)

This example creates a feature class based on object detection.

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

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

DetectObjectsUsingDeepLearning("c:/detectobjects/moncton_seg.tif", 
     "c:/detectobjects/moncton_seg.shp", "c:/detectobjects/moncton.emd", 
     "padding 0; threshold 0.5; batch_size 4", "NO_NMS", "Confidence", 
     "Class", 0, "PROCESS_AS_MOSAICKED_IMAGE")
DetectObjectsUsingDeepLearning example 2 (stand-alone script)

This example creates a feature class based on object detection.

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

"""
Usage: DetectObjectsUsingDeepLearning( in_raster, out_detected_objects, 
       in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, 
       {class_value_field}, {max_overlap_ratio}, {processing_mode})
"""

# Set local variables
in_raster = "c:/classifydata/moncton_seg.tif"
out_detected_objects = "c:/detectobjects/moncton.shp"
in_model_definition = "c:/detectobjects/moncton_sig.emd"
model_arguments = "padding 0; threshold 0.5; batch_size 4"
run_nms = "NO_NMS"
confidence_score_field = "Confidence"
class_value_field = "Class"
max_overlap_ratio = 0
processing_mode = "PROCESS_AS_MOSAICKED_IMAGE"
# Check out the ArcGIS Image Analyst extension license
arcpy.CheckOutExtension("ImageAnalyst")

# Execute 
DetectObjectsUsingDeepLearning( in_raster, out_detected_objects, 
   in_model_definition, model_arguments, run_nms, confidence_score_field, 
   class_value_field, max_overlap_ratio, processing_mode)

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

  • Basic: Требуется Image Analyst
  • Standard: Требуется Image Analyst
  • Advanced: Требуется Image Analyst

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