Giter VIP home page Giter VIP logo

itmogamedev / msc24-voidfilling Goto Github PK

View Code? Open in Web Editor NEW

This project forked from vofks/voidfilling

0.0 0.0 0.0 4.16 MB

В данном репозитории находится реализация алгоритма удаления зданий из областей цифровых моделей поверхности с плотной городской застройкой с целью преобразования их в цифровые модели рельефа.

Jupyter Notebook 100.00%

msc24-voidfilling's Introduction

Разработка алгоритма удаления строений на участках цифровых моделей рельефа с плотной городской застройкой

В работе реализован алгоритм удаления зданий из областей цифровых моделей поверхности с плотной городской застройкой на основе генеративно-состязательной нейронной сети. Такое решение позволяет пользователям осуществлять преобразование цифровых моеделей поверхности в цифрвоые модели рельефа в автоматическом режиме без необходимости прибегать к сложным манипуляциям в географических информационных системах или непосредственно программированию индивидуальных решений этой задачи.

Проект является частью выпускной квалификационной работы магистра по образовательной программе "Технологии разработки компьютерных игр" Школы разработки видеоигр Университета ИТМО.

Предметная область и структра решения

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

Карты высот подразделяются на цифровые модели поверхности и цифровые модели рельефа. Разница между ними наглядно представлена на рисунке ниже.

DSM vs DTM

Для решения большинства задач пространственного анализа используются именно цифровые модели рельефа, поэтому получаемые посредством различных способов сканирования цифрвоые модели поверхности подвергаются сложным преобразованиям, в ходе которых здания, растительность, вода и прочие объекты удаляются различными способами, а получившиеся под ними пустоты заполняются с помощью интерполяции.

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

Схема алгоритма

Средства реализации

Алгоритм был реализован с помощью фреймворка машинного обучения PyTorch на языке программирования Python версии 3.12.

Для подготовки обучающего набора данных использовался глобальный датасет Copenicus 30m, который был получен через публичный API opentopography.org, информация о городской застройке, полученная из открытой базы данных Open Street Map и географическая информационная система Quantum GIS.

Пример результатов работы алгоритма

Results

Исходная цифровая модель поверхности (слева). Обработанная нейросетью цифровая модель рельефа (справа).

Инструкция по установке и запуску

Для запуска демонстрационной версии алгоритма необходимо выполнить следующие действия:

  1. Загрузить менеджер пакетов Anaconda или его упрощённую версию Conda по ссылке

  2. Выполнить его установку согласно инструкциям установщика

  3. Загрузить содержимое репозитория на локальный компьютер. например, так:

     git clone https://github.com/vofks/VoidFilling.git
    
  4. Запустить командную строку Anaconda Prompt

    anaconda prompt

  5. Перейти в папку с ранее загруженным репозиторием при помощи команды cd

  6. Создать и проинициализировать виртуальное окружение пакетного менеджера Anaconda при помощи команды

     conda env create -n voids -f env.yml
    
  7. Затем необходимо дождаться окончания загрузки всех необходимых зависимостей и активировать виртуальное огружение при помощи команды

     conda activate voids
    
  8. Далее необходимо запустить интерактивную веб-среду разработки JupyterLab. Сделать это можно командой

     jupyter notebook
    
  9. После этого должно открыться окно браузера с навигатором JupyterLab. Пример представлен на скриншоте ниже

    Jupyter

  10. Далее необходимо пререйти в папку notebooks и открыть блокнот preview.ipynb. Пример того, как это может выглядеть представлен на скриншоте ниже

    Notebook

  11. Запустить код и увидеть результат его работы можно, открыв меню Run в панели инструментов вверху страницы и нажав Run All Cells

    Run

Улучшения и дальнейшая разработка

  • Применение набора цифровых моделей поверхности более высокого разрешения
  • Реализация дополнительного функционала, например, удаление растительности
  • Разработка плагина, который бы предоставлял удобный интерфейс для использования обученной модели в географической информационной системе

Прочее

Работу выполнил: студент группы J4222 Остапович Денис Евгеньевич.
Полный текст работы доступен по ссылке.

msc24-voidfilling's People

Contributors

vofks avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.