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

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

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

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

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

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

  • Необходимо установить соответствующую среду глубокого обучения Python API (например, TensorFlow, PyTorch или Keras) в среду 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 должен быть сохранен локально.

  • См. пример ниже для файла .emd.

    {
        "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]
        }
        ]
    }
  • Инструмент может обрабатывать входные изображения, которые находятся в пространстве карты или в пространстве пикселов. Изображения в пространстве карты находятся в картографической системе координат. Изображения в пиксельном пространстве находятся в необработанном пространстве изображений без вращения и искажений. Система привязки может быть задана при формировании обучающих данных в инструменте Экспорт обучающих данных для глубокого обучения в параметре Система привязки. Если модель обучается в стороннем обучающем программном обеспечении, система привязки должна быть указана в файле .emd с помощью параметра ImageSpaceUsed, который может задан как MAP_SPACE или PIXEL_SPACE.

  • Для слоев ориентированных изображений обработка всегда будет происходить в пиксельном пространстве. Когда для обработки используется пиксельное пространство, обнаружения пиксельного пространства сохраняются в выходной таблице в поле IShape

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

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

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

  • Используйте опцию Обрабатывать только элементы-кандидаты параметра Режим обработки, чтобы обнаруживать объекты только на выбранных изображениях в наборе данных мозаики. Можно использовать инструмент Вычислить кандидатов мозаики для поиска изображений-кандидатов в наборе данных мозаики и в сервисе изображений, которые наилучшим образом представляют область мозаики.

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

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

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

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

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

Параметры

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

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

Raster Dataset; Raster Layer; Mosaic Layer; Image Service; Map Server; Map Server Layer; Internet Tiled Layer; Folder; Feature Layer; Feature Class; Oriented Imagery Layer
Выходные выявленные объекты

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

Если класс пространственных объектов уже существует, результаты будут присоединены к существующему классу объектов.

Feature Class
Определение модели

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

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

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

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

  • padding - Количество пикселов на границе листов изображений, из которых будут складываться прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • threshold - В результат будут включены обнаруженные объекты, достоверность которых превышает это пороговое значение. Допустимые значения находятся в диапазоне от 0 до 1.0. Аргумент доступен для всех архитектур моделей.
  • batch_size - Количество листов изображений, которые будут обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • nms_overlap - Коэффициент максимального перекрытия для двух перекрывающихся объектов, который определяется как отношение площади пересечения к площади объединения. Значение по умолчанию равно 0.1. Аргумент доступен для всех архитектур моделей.
  • exclude_pad_detections - Если true, потенциально усеченные обнаружения вблизи краев, которые находятся в дополненной области кусочков изображений, будут фильтроваться. Аргумент доступен только для SSD, RetinaNet, YOLOv3, DETReg, MMDetection и Faster RCNN.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых ориентаций входного изображения, а их доверительные значения будут усреднены. Это может привести к падению значений достоверности ниже порогового значения для объектов, которые обнаруживаются только в нескольких положениях изображения. Аргумент доступен для всех архитектур моделей.
  • tile_size — Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для MaskRCNN.
  • merge_policy — политика объединения расширенных прогнозов. Доступные варианты: среднее, максимум и минимум. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен только для MaskRCNN.
  • output_classified_raster - Путь к выходному растру. Аргумент доступен только для MaXDeepLab.

Value Table
Не максимальное подавление
(Дополнительный)

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

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

Boolean
Поле балла достоверности
(Дополнительный)

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

Данный параметр необходим, если отмечен параметр Немаксимальное подавление.

String
Поле значений класса
(Дополнительный)

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

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

String
Коэффициент максимального перекрытия
(Дополнительный)

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

Double
Режим обработки
(Дополнительный)

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

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

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

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

Boolean
Объекты интереса
(Дополнительный)

Задает имена объектов, которые будут обнаружены инструментом. Доступные опции зависят от значения параметра Определение модели.

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

String

Производные выходные данные

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

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

Этот параметр применим, только если тип модели - Общая сегментация.

Raster Dataset

DetectObjectsUsingDeepLearning(in_raster, out_detected_objects, in_model_definition, {arguments}, {run_nms}, {confidence_score_field}, {class_value_field}, {max_overlap_ratio}, {processing_mode}, {use_pixelspace}, {in_objects_of_interest})
ИмяОписаниеТип данных
in_raster

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

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

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

Если класс пространственных объектов уже существует, результаты будут присоединены к существующему классу объектов.

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

  • padding - Количество пикселов на границе листов изображений, из которых будут складываться прогнозные данные для смежных листов. Чтобы сгладить результат при уменьшении артефактов, увеличьте значение. Максимальное значение внутреннего отступа может составлять половину значения размера листа. Аргумент доступен для всех архитектур моделей.
  • threshold - В результат будут включены обнаруженные объекты, достоверность которых превышает это пороговое значение. Допустимые значения находятся в диапазоне от 0 до 1.0. Аргумент доступен для всех архитектур моделей.
  • batch_size - Количество листов изображений, которые будут обработанных на каждом этапе построения модели. Оно зависит от объема памяти вашего графического адаптера. Аргумент доступен для всех архитектур моделей.
  • nms_overlap - Коэффициент максимального перекрытия для двух перекрывающихся объектов, который определяется как отношение площади пересечения к площади объединения. Значение по умолчанию равно 0.1. Аргумент доступен для всех архитектур моделей.
  • exclude_pad_detections - Если true, потенциально усеченные обнаружения вблизи краев, которые находятся в дополненной области кусочков изображений, будут фильтроваться. Аргумент доступен только для SSD, RetinaNet, YOLOv3, DETReg, MMDetection и Faster RCNN.
  • test_time_augmentation - Увеличивает время тестирования в процессе прогнозирования. Если задано значение true, то конечный результат объединит прогнозы перевернутых и повернутых ориентаций входного изображения, а их доверительные значения будут усреднены. Это может привести к падению значений достоверности ниже порогового значения для объектов, которые обнаруживаются только в нескольких положениях изображения. Аргумент доступен для всех архитектур моделей.
  • tile_size — Ширина и высота листов изображений, на которые разбивается изображение для прогнозирования. Аргумент доступен только для MaskRCNN.
  • merge_policy — политика объединения расширенных прогнозов. Доступные варианты: среднее, максимум и минимум. Это применимо только при использовании увеличения времени тестирования. Аргумент доступен только для MaskRCNN.
  • output_classified_raster - Путь к выходному растру. Аргумент доступен только для MaXDeepLab.

Value Table
run_nms
(Дополнительный)

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

  • NO_NMSНемаксимальное подавление выполняться не будет. В выходной класс объектов будут помещены все обнаруженные объекты. Это значение по умолчанию
  • NMSНемаксимальное подавление будет выполняться, найденные объекты-дубликаты будут удалены. Если входные данные представляют собой слои ориентированных изображений, дубликаты сохраняются с пустой наземной геометрией.
Boolean
confidence_score_field
(Дополнительный)

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

Этот параметр необходим, если для параметра run_nms задано NMS.

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

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

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

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

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

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

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

  • PROCESS_AS_MOSAICKED_IMAGEВсе растровые элементы в наборе данных мозаики или сервисе изображений будут объединены в мозаику и обработаны. Это значение по умолчанию
  • PROCESS_ITEMS_SEPARATELYВсе растровые элементы в наборе данных мозаики или сервисе изображений будут обработаны как отдельные изображения.
  • PROCESS_CANDIDATE_ITEMS_ONLYБудут обработаны только растровые элементы со значением 1 или 2 в поле Candidate таблицы атрибутов входного набора данных мозаики.
String
use_pixelspace
(Дополнительный)

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

  • NO_PIXELSPACEВывод будет выполняться в пространстве карты. Это значение по умолчанию
  • PIXELSPACEВывод будет выполнен в пространстве изображения, а выходные данные будут преобразованы обратно в пространство карты. Этот параметр полезен при использовании перспективных изображений или изображений панорам улиц, где объекты могут быть искажены из-за использования пространства карты.
Boolean
in_objects_of_interest
[in_objects_of_interest,...]
(Дополнительный)

Задает объекты, которые будут обнаружены инструментом. Доступные опции зависят на значении параметра in_model_definition.

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

String

Производные выходные данные

ИмяОписаниеТип данных
out_classified_raster

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

Этот параметр применим, только если тип модели - Общая сегментация.

Raster Dataset

Пример кода

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

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

# 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, пример 2 (автономный скрипт)

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

# 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

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