Разработка алгоритма удаления строений на участках цифровых моделей рельефа с плотной городской застройкой
В работе реализован алгоритм удаления зданий из областей цифровых моделей поверхности с плотной городской застройкой на основе генеративно-состязательной нейронной сети. Такое решение позволяет пользователям осуществлять преобразование цифровых моеделей поверхности в цифрвоые модели рельефа в автоматическом режиме без необходимости прибегать к сложным манипуляциям в географических информационных системах или непосредственно программированию индивидуальных решений этой задачи.
Проект является частью выпускной квалификационной работы магистра по образовательной программе "Технологии разработки компьютерных игр" Школы разработки видеоигр Университета ИТМО.
Карты высот являются важным инструментом в различных научных дисциплинах: геологии, географии, гидрологии науках об окружающей среде, городском планировании и гражданском строительстве. Они обеспечивают трехмерное представление о земной поверхности и играют важную роль в процессах пространственного анализа.
Карты высот подразделяются на цифровые модели поверхности и цифровые модели рельефа. Разница между ними наглядно представлена на рисунке ниже.
Для решения большинства задач пространственного анализа используются именно цифровые модели рельефа, поэтому получаемые посредством различных способов сканирования цифрвоые модели поверхности подвергаются сложным преобразованиям, в ходе которых здания, растительность, вода и прочие объекты удаляются различными способами, а получившиеся под ними пустоты заполняются с помощью интерполяции.
Целью работы является в первую очередь упрощение и автоматизация процесса удаления зданий в областях цифровых моделей поверхности с плотной городской застройкой. В результате исследования существующих методов решения этой проблемы был предложен алгоритм, общая схема которого представлена на рисуке ниже.
Алгоритм был реализован с помощью фреймворка машинного обучения PyTorch на языке программирования Python версии 3.12.
Для подготовки обучающего набора данных использовался глобальный датасет Copenicus 30m, который был получен через публичный API opentopography.org, информация о городской застройке, полученная из открытой базы данных Open Street Map и географическая информационная система Quantum GIS.
Исходная цифровая модель поверхности (слева). Обработанная нейросетью цифровая модель рельефа (справа).
Для запуска демонстрационной версии алгоритма необходимо выполнить следующие действия:
-
Загрузить менеджер пакетов Anaconda или его упрощённую версию Conda по ссылке
-
Выполнить его установку согласно инструкциям установщика
-
Загрузить содержимое репозитория на локальный компьютер. например, так:
git clone https://github.com/vofks/VoidFilling.git
-
Запустить командную строку Anaconda Prompt
-
Перейти в папку с ранее загруженным репозиторием при помощи команды
cd
-
Создать и проинициализировать виртуальное окружение пакетного менеджера Anaconda при помощи команды
conda env create -n voids -f env.yml
-
Затем необходимо дождаться окончания загрузки всех необходимых зависимостей и активировать виртуальное огружение при помощи команды
conda activate voids
-
Далее необходимо запустить интерактивную веб-среду разработки JupyterLab. Сделать это можно командой
jupyter notebook
-
После этого должно открыться окно браузера с навигатором JupyterLab. Пример представлен на скриншоте ниже
-
Далее необходимо пререйти в папку notebooks и открыть блокнот preview.ipynb. Пример того, как это может выглядеть представлен на скриншоте ниже
-
Запустить код и увидеть результат его работы можно, открыв меню
Run
в панели инструментов вверху страницы и нажавRun All Cells
- Применение набора цифровых моделей поверхности более высокого разрешения
- Реализация дополнительного функционала, например, удаление растительности
- Разработка плагина, который бы предоставлял удобный интерфейс для использования обученной модели в географической информационной системе
Работу выполнил: студент группы J4222 Остапович Денис Евгеньевич.
Полный текст работы доступен по ссылке.