Компьютерное зрение в машинном обучении открывает огромные возможности для ГИС. В его задачи входят методы получения, обработки, анализа и понимания цифровых изображений, а также извлечение многомерных данных из реального мира для получения числовой или символьной информации, например в виде решений. [1] [2] [3] [4] В последние несколько лет компьютерное зрение все больше смещается от традиционных статистических методов к современным методам нейронных сетей глубокого обучения.

В этом блоге я поделюсь несколькими эмпирическими практиками с использованием инструментов Keras и ESRI ArcGIS Pro с методами глубокого обучения и передачи обучения для построения сетевой модели сегментации изображения контура здания из 3-дюймовых изображений EagleView (пиктометрия) сверхвысокого разрешения.

В 2018 году ESRI и Microsoft сотрудничали с Chesapeake Conservancy для обучения модели глубокой нейронной сети для прогнозирования земного покрова на основе 1-метрового источника данных аэрофотоснимков NAIP. В этом случае использовалась нейронная сеть, аналогичная по архитектуре U-net Ронненбергера и др. (2015), обычно используемая модель семантической сегментации. Каждый год группа GIS Core в округе Кобб, штат Джорджия, получает 3-дюймовые орто-изображения сверхвысокого разрешения от EagleView (Pictometry). Можно ли применить модели глубокого обучения к этим орто-изображениям сверхвысокого разрешения для классификации земного покрова или извлечения следов зданий? Есть несколько проблем: изображения со сверхвысоким разрешением обычно представляют различные типы растительности и их наложения; здания и деревья создают сильные тени на изображениях, которые потенциально могут неправильно классифицировать истинные наземные объекты.

Вначале я был очень консервативен, так как решил использовать ноутбук с центральным процессором для обучения примерно 3800 изображений. Учитывая сложность земного покрова и следов зданий, это довольно небольшой набор данных для глубокого обучения, потому что, если вы читаете учебники, часто говорят, что глубокое обучение требует огромного количества обучающих данных для повышения производительности. Но это также и реальная проблема классификации: в реальных случаях даже мелкомасштабные данные изображения могут быть чрезвычайно трудными для сбора и дорогостоящими, а иногда и почти невозможными. Умение использовать небольшие наборы данных и обучать мощный классификатор - ключевой навык для компетентного специалиста по данным. После многих попыток и запусков результаты оказались очень многообещающими, особенно с современными моделями Deeplabv3 + и Mask-RCNN.

Область исследования и подготовка набора данных обучающих изображений

Географическая область округа Кобб покрывает 433 фрагмента изображений Pictometry размером 1 x 1 миля с разрешением 3 дюйма. Окружная группа ГИС имеет слой полигона контура здания в определенных областях. В целях обучения для набора данных для обучения изображениям был выбран один фрагмент изображения рядом с центром округа (рис. 1). Слой полигональных объектов контуров здания использовался для обработки в качестве меток наземной маски. Экспорт данных обучения для глубокого обучения в ArcGIS Pro 2.4 ver. инструмента геообработки использовался для экспорта изображений и масок, например наборов данных сегментации (рис.2). Размер выходных изображений составляет 512x512x3, а поворот установлен на 90 градусов, чтобы генерировать больше изображений, чтобы предотвратить переоснащение и помочь модели лучше обобщить.

1. Обучение с использованием модели Mask-RCNN

Полученные наборы обучающих данных содержат более 18000 изображений и меток. После дальнейшей обработки данных для удаления изображений без маркировки в окончательных наборах данных было более 15000 обучающих изображений и меток. Однако с ноутбуком с 32 ГБ памяти ЦП невозможно передать такие большие наборы данных в модель Mask-RCNN, которая требует огромных объемов памяти для обучения.

Стратегия обучения состоит в том, чтобы увидеть, как будет работать доказательство концепции, поэтому я постепенно увеличивал наборы данных для подачи в CNN, пробуя 3800 наборов данных.

Я использовал впечатляющую реализацию с открытым исходным кодом Mask-RCNN library, которую MatterPort построил на Github здесь для обучения модели.

Mask-RCNN эффективно обнаруживает объекты на изображении, одновременно создавая высококачественную маску сегментации для каждого экземпляра. Метод расширяет Faster R-CNN, добавляя ветвь для прогнозирования маски объекта параллельно с существующей ветвью для распознавания ограничивающего прямоугольника [5]. Вы можете прочитать исследовательскую работу, чтобы лучше понять модель. (рис. 3).

В классе (Utils.dataset) необходимо изменить три основные функции для загрузки ваших собственных наборов данных в платформу. См. Ниже реализацию загрузки данных. Коэффициент привязки настроен (16,32,64,128,256) для прогнозирования меньшего размера жилых домов. IMAGES_PER_GPU установлен в = 1, чтобы ЦП можно было использовать для обучения модели (рис. 4). Пример изображения и маски (рис. 5).

Здесь метод передачи обучения был применен с модельной магистралью ResNet-101. Я обучил последние полностью связанные слои сначала с эпохой = 5, чтобы адаптировать класс жилого дома, затем обучил всю сеть для 35 эпох.

На процессоре с 32 ГБ процесс обучения длился почти 48 часов (рис. 6 и рис. 7).

Вот два вывода о том, что исходные изображения не использовались при обучении (рис.8 и рис.9). Интересно отметить, что маска вывода более точно очерчивает здание, чем исходная маска.

Еще один интересный пример одного изображения, которое не использовалось при обучении и выводе маски (рис.10 и рис.11).

2. Обучение с моделью Deeplabv3 +

Deeplabv3 + - это новейшая современная модель семантической сегментации изображений, разработанная исследовательской группой Google. Отличительной особенностью этой модели является использование многократной свертки в каскаде или параллельно для захвата многомасштабного контекста путем принятия нескольких жестких Скоростей (рис. 13).

Используя те же наборы обучающих данных из экспорта данных обучения ArcGIS для инструмента глубокого обучения, изображения и маски были обработаны с дополнениями и сохранены в сжатый файл HDF5 для удобной загрузки в обучающую модель (рис. 14).

Я использовал Keras реализацию Deeplabv3 + на Github здесь. Ниже представлена ​​модель обучения Keras с магистральной сетью Mobilenetv2, которая имеет меньше параметров, чем модель Xception (рис.15).

Всего за 5 этапов тренировок результат оказывается многообещающим (рис. 16).

Я запускаю сценарии Python для вывода произвольно обрезанного изображения размером 2064x1463, которое обрезает и обрабатывает 16 (512x512x3 тусклых) изображений для получения растров вывода. (рис.19). При дальнейшем рассмотрении изображений и выводов мы видим, что эффект тени здания может снизить точность краев зданий.

С той же обученной моделью для прогнозирования той же области 2019 года, обрезанной изображения, результат очень похож с небольшими локализованными различиями (рис.20). Модель действительно может помочь в выводе изображения будущего года.

После добавления вышеуказанного изображения и вывода в ArcGIS Pro. (рис.21)

Приведенный выше растр изображения был преобразован в полигональный объект, а затем был использован Регуляризация контура здания в 3D-анализе ArcGIS Pro с соответствующими параметрами для упорядочения необработанного обнаружения. (рис.22)

Затем я запускаю скрипты вывода на Python с двумя полными изображениями плитки 2018 размером 20000 x 20000 на расстоянии примерно 3 мили друг от друга. Сценарии обрезают и обрабатывают 1600 (512x512x3 тусклых) изображений для вывода. Обработка каждой плитки занимала приблизительно один час, используя 32 ГБ ОЗУ ноутбука, имеющего только процессор. см. (рис. 23). Классифицированные здания пропускаются в основном из-за использования очень небольшого набора обучающих данных и деревьев, покрывающих верхнюю часть зданий. Выбор нескольких репрезентативных плиток в качестве набора обучающих данных из разных мест округа может повысить точность результата.

Вывод:

Хотя это относительно небольшой набор данных, модели глубокого обучения Mask-RCNN и Deeplabv3 + дают многообещающие результаты для сегментации изображений сверхвысокого разрешения с использованием методов перенесенного обучения. Из-за меньшей точности исходных полигонов наземных объектов контуров зданий и ограничений ЦП и памяти ноутбука результат производительности может не превзойти человеческий дигитайзер в некоторых классификациях изображений и сегментации экземпляров. Однако точность этого процесса обучения глубокому обучению может быть дополнительно повышена за счет увеличения высококачественных наборов данных для обучения из разных мест округа и применения методов увеличения вариации данных. Модель можно использовать в многолетних изображениях, чтобы сделать вывод об обнаружении пространственных объектов для сравнения, или даже использовать для недорогого обозначения пространственных объектов с помощью инструментов ArcGIS ModelBuilder для автоматизации бизнес-задач. Что еще более важно, описанный выше процесс обучения глубокому обучению можно применить к другим типам экземпляров изображений или случаям сегментации. (пожалуйста, посмотрите мой следующий блог)

1. Рейнхард Клетте (2014). Краткое компьютерное зрение. Springer. ISBN 978–1–4471–6320–6.

2.Линда Г. Шапиро; Джордж К. Стокман (2001). Компьютерное зрение. Прентис Холл. ISBN 978–0–13–030796–5.

3.Тим Моррис (2004). Компьютерное зрение и обработка изображений. Пэлгрейв Макмиллан. ISBN 978–0–333–99451–1.

4.Бернд Яне; Хорст Хаусеккер (2000). Компьютерное зрение и приложения, Руководство для студентов и практиков. Академическая пресса . ISBN 978–013085198– 7.

5. Kaiming He, Georgia Gkioxari, Piotr Dollár, Ross Girshick. (2018). Маска-RCNN , https://arxiv.org/abs/1703.06870v3

6. Модель Deeplabv3 +, https://github.com/tensorflow/models/tree/master/research/deeplab

7. https://blog.keras.io/building-powerful-image-classification-models-using-very-little-data.html

8. http://pro.arcgis.com/en/pro-app/tool-reference/image-analyst/export-training-data-for-deep-learning.htm

9. https://pro.arcgis.com/en/pro-app/tool-reference/3d-analyst/regularize-building-footprint.htm

10. https://blogs.technet.microsoft.com/machinelearning/2018/03/12/pixel-level-land-cover-classification-using-the-geo-ai-data-science-virtual- Machine-and-Batch-AI /

11. U-Net: сверточные сети для сегментации биомедицинских изображений : https // lmb.informatik.uni-freiburg.de / people / ronneber / u-net /