Городское картирование — пост-обработка результатов

До и после обработки с полигонизацией контуров
  • исключить наложения полигонов (нейросеть выдает попиксельную маску, но из-за полигонизации могут возникать наложения контуров, этот алгоритм помогает их устранить, раздвигая полигоны друг от друга и уменьшая их площадь)
  • заполнение небольших дырок (если просто заполнить все дыры внутри полигонов, можно ошибиться с формой здания, у которого есть внутренний двор, окруженный стенами)
  • фильтрация по площади или классу — этой опицей можно пользоваться для отсеивания слишком мелких объектов, которые вероятно не являются жилыми, или не входят в интересующий вас класс
  • загрузить объекты из Openstreetmap — с помощью этой опции можно выбрать полигоны зданий из OSM и сопоставить их с автоматическими полигонами. Выставляя порог соответствия по площади (известный как метрика Жаккара или IOU — отношение площади пересечения двух сравниваемых полигонов к площади их объединения), возможно оценивать качество работы модели на конкретной территории или производить замену автоматических полигонов
    -   _step: FilterSmallObjects
input: buildings
min_area: 30.0
output: buildings_filtered
- _step: RemoveSmallHoles
input: buildings_filtered
min_hole_area: 50.0
output: buildings_filtered_fixed
- _step: LoadOSMBuildings
input: buildings_filtered_fixed
output: osm
- _step: MergeByReplace
input: buildings_filtered_fixed_with_osm
min_iou: 0.8

Выравнивание зданий вдоль дорог

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

  • Взять полигоны зданий
  • Взять линии дорог из OSM
  • Определить среднее отклонение поворотов внутри кластера зданий— по отношению к линии дороги и по отношению к другим зданиям в кластере
  • В случае если среднее отклонение больше определенного порога (устанавливается в настройках) — переориентировать все такие здания под прямым углом к ближайшей дороге
  • Устранить наложения зданий, если возникли

--

--

We apply Machine learning to automated analysis over Earth observation data

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
GeoAlert

GeoAlert

359 Followers

We apply Machine learning to automated analysis over Earth observation data