Что такое 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 их добавят.