ArcGIS и Deep Learning

Что такое Deep Learning?

Есть общее определение, которое можно прочитать в Википедии. Сейчас в большинстве случаев под этим термином понимают разновидность алгоритмов машинного обучения основнанных на нейронных сетях. На сайте фреймворка Tensorflow есть хорошее демо, которое показывает общие принципы создания и обучения нейронной сети.

Коцепции лежащие в основе нейронных сетей были разработаны достаточно давно, еще в 60-х годах 20-го века. Долгое время их применение сдерживалось высокими требованиями к вычислительным мощностям. В 2012 году система глубокого обучения на основе свёрточной нейронной сети смогла достичь 16 % ошибки при распознавании объектов в базе снимков ImageNet. Эти результаты были примерно на 10% точнее, чем все то, что удавалось достичь за предыдущие годы с помощью всех возможных алгоритмов машинного обучения. Стало понятно, что с этой задачей нейронные сети справляются значительно лучше, чем любые другие известные на тот момент алгоритмы. Направление быстро набирает популярность, крупные корпорации начинают разрабатывать свои библиотеки для работы с нейронными сетями и через некоторое время выкладывают их в открытый доступ.

Как начать использовать алгоритмы Deep Learning в ГИС задачах?

В ArcGIS начиная с версии 2.5 появилась уже не экспериментальная, а полноценная поддержка алгоритмов Deep Learning. Что нужно для того, чтобы начать их использовать:

  • ArcGIS Pro версии 2.5
  • модуль Image Analyst
  • не обязательно, но очень желательно наличие достаточно современной видеокарты (GPU)

Если у вас нет ArcGIS Pro 2.5, вы можете получить временную, но при этом полнофункциональную демо-версию. Для работы с алгоритмами Deep Learning нужно предварительно скачать и установить набор сторонних библиотек. Как это сделать, можно прочитать в справке ArcGIS Pro.

Какие нейросети (модели) доступны в ArcGIS на текущий момент?

SSD (Single Shot Detector) — архитектура нейронной сети, которая ищет объекты на изображении, классифицирует их и строит вокруг них рамку (box).

Примеры и обучающие упражнения:
https://learn.arcgis.com/ru/projects/use-deep-learning-to-assess-palm-tree-health/
https://developers.arcgis.com/python/sample-notebooks/detecting-and-categorizing-brick-kilns-from-satellite-imagery/

 

U-net — архитектура нейронной сети, которая присвает класс каждому пикселу изображения.
Примеры и обучающие упражнения:
https://developers.arcgis.com/python/sample-notebooks/land-cover-classification-using-unet/
https://developers.arcgis.com/python/sample-notebooks/extracting-slums-from-satellite-imagery/
https://developers.arcgis.com/python/sample-notebooks/detecting-settlements-using-supervised-classification-and-deep-learning/
https://developers.arcgis.com/python/sample-notebooks/extracting-building-footprints-from-drone-data/

 

MaskRCNN — архитектура нейронной сети, которая ищет объекты на фоне и дополнительно строит для них маски.


Примеры и обучающие упражнения:
https://developers.arcgis.com/python/sample-notebooks/automate-building-footprint-extraction-using-instance-segmentation/

 

Named Entity Extraction — архитектура нейронной сети на базе библиотеки spaCy, которая предназначена для извлечения информации из неструктурированного текста.


Примеры и обучающие упражнения:
https://developers.arcgis.com/python/guide/how-named-entity-recognition-works/

 

Другие модели и примеры:

Модель RetinaNet может использовать для поиска объектов на видео.

Как искать объекта на видео с помощью ArcGIS Python API: https://developers.arcgis.com/python/sample-notebooks/vehicle-detection-and-tracking/

Также, в ArcGIS Python API доступны модели DeepLabV3, PSPNet, скоро появятся модели, предназначенные для работы с облаками точек. Эти модели еще не поддерживаются в ArcGIS Pro версии 2.5, но это вопрос времени, скорее всего уже в версии 2.5.1 их добавят.