Более половины населения мира живет в городских районах, многие из которых находятся в незапланированном разрастании городов. Высокие темпы урбанизации являются серьезной проблемой для поддержания безопасности, устойчивости и устойчивости городов - цели № 11 в области устойчивого развития. Один из компонентов достижения этой цели связан с точными картами зданий. С полными картами градостроители могут более эффективно улучшать инфраструктуру, включая общественный транспорт, дороги и утилизацию отходов. Для достижения этой цели мы работаем над инструментами машинного обучения (ML) для распознавания зданий и ускорения процесса картографирования городов.

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

  1. Низкая точность. Модель машинного обучения с низкой точностью может анализировать большие площади земли (например, городской квартал) и обеспечивать оценку общей площади здания в квадратных метрах. Если есть большое расхождение между этим прогнозом и известной картой, мы можем выделить эти области в приоритет для проверки человеком.
  2. Средняя точность. Здесь ML-модель может приблизительно очертить отдельные здания, хотя края зданий могут отличаться на несколько метров, или она не может разделять здания со сложной геометрией (например, близкорасположенные многоквартирные дома или неформальные поселения). Алгоритм может предлагать отдельные места для просмотра людьми.
  3. Высокая точность. Алгоритм высокой точности может определять контуры зданий в пределах одного-двух метров от истинной геометрии в различных городских и сельских условиях. Эти карты сегментации пикселей могут быть векторизованы (т. Е. Трассированы) автономно, проверены человеком, а затем импортированы в существующую карту (например, OpenStreetMap). Это конечная цель для алгоритмов автоматического картирования.

Наш текущий инструмент прогнозирования зданий находится где-то в диапазоне от низкой до средней точности. Мы тестируем подход, использующий алгоритм сегментации Google DeepLabV3 +. Как и другие модели сегментации, он предназначен для прогнозирования того, является ли каждый пиксель частью здания. Мы выбрали DeepLabV3 +, потому что он относительно мощный (с использованием таких разработок, как разделимая по глубине свертка, сильное пространственное объединение и магистраль Xception) и был лидером в наборах данных для соревнований, включая PASCALVOC и Cityscapes. Ряд других групп добились положительных результатов по картированию зданий, в том числе Участники SpaceNet Challenge, Azavea, Mapbox, Microsoft и Ecopia.

Мы обучили модель, используя изображения RGB из набора данных SpaceNet Challenge, который основан на широком наборе регионов. В частности, мы объединили данные из Лас-Вегаса, Парижа, Шанхая и Хартума. Наша цель здесь состояла в том, чтобы обучить единую обученную широко применимую модель, которая будет хорошо работать во многих регионах мира. Мы также использовали настроенную задачу прогнозирования модели - вместо прогнозирования, принадлежит ли каждый пиксель зданию или нет, мы применили преобразование расстояния со знаком с помощью scikit-fmm (как показано на следующем рисунке).

Процесс обучения алгоритма сегментации зданий. Используя спутниковые изображения RGB (слева) и истинные местоположения зданий (в центре), мы обучаем алгоритм распознавать, какие пиксели принадлежат зданию. Анимация показывает постепенное улучшение от раннего к позднему обучению. Пиксели окрашиваются на основе преобразования расстояния со знаком, которое кодирует их расстояние от границы здания. Красные пиксели находятся внутри границы здания, а синие - снаружи, а интенсивность цвета указывает на абсолютное расстояние от границы.

Мы использовали это в нашем инструменте UrChn для отслеживания городских изменений. UrChn позволяет пользователям накладывать сетку на городские зоны, где горячие цветные квадраты указывают области, в которых модель прогнозирует большую площадь здания (в квадратных метрах), чем существует в базовом слое OpenStreetMap. Как упоминалось ранее, цель состоит в том, чтобы направлять картографов в регионы, где их усилия были бы наиболее полезными, а не напрямую предсказывать следы зданий.

Модель обнаружения зданий может направить картографов к областям, требующим наибольшего внимания. В UrChn общая оценка занимаемой площади здания рассчитывается двумя разными способами: (1) с использованием OpenStreetMap и (2) с использованием нашего здания на основе машинного обучения. модель обнаружения. Затем мы вычисляем «карту различий» между двумя контурами зданий, чтобы помочь визуализировать области, не нанесенные на карту. В этом примере мы запускали детектор зданий только в пределах собственно Мадрида (следовательно, в пригородах у краев анимации не было спрогнозированных зданий).

Мы надеемся добавить ряд будущих улучшений:

  • Нам нужно расширить наш набор обучающих данных (с помощью инструмента Label Maker), чтобы включить в него больше изображений с глобального юга. Почти все данные по сегментации зданий поступают из западного мира; мы не можем ожидать, что алгоритмы будут точными в развивающихся регионах, пока мы не расширим наши обучающие данные на эти области.
  • Мы изучаем лучшие способы предоставления картостроителей прогнозируемым строительным картам. Мы надеемся интегрировать нашу работу, помимо UrChn, в другие инструменты (например, Диспетчер задач гуманитарной команды OpenStreetMap или редакторы JOSM и iD для OpenStreetMap). Эта интеграция должна учитывать предпочтительные задачи и уровень навыков картографа.
  • Мы хотим расширить модель, чтобы она также определяла дороги. Здания и дороги - это, как правило, две функции, которые нас больше всего интересуют при картировании, и DeepLabV3 + может обрабатывать и то, и другое одновременно.

Этот проект еще не является открытым, но мы планируем выпустить его по мере перехода от исследовательского проекта к более стабильному инструменту.