WebODM: Создаем карты и 3d модели с дрона
Вступление
Фотограмметрия — это наука о получении измерений по фотографиям. Эти концепции восходят к 15 веку, когда Леонардо да Винчи заявил: «Перспектива есть не что иное, как видение предмета за листом стекла, гладкого и совершенно прозрачного, на поверхности которого можно отметить все вещи, находящиеся за этим стеклом».
Развитие программного обеспечения с открытым исходным кодом, снижает барьер входа в нишевые технологии. Ранее подобные технологии были широко распространены в рамках геодезии, однако сейчас фотограмметрия используется в разработке игр, VR/AR, или для сохранения исторических памятников культурного наследия.
Наверно у многих лежат месяцами на полках дроны марки DJI, и вы активно задаете себе вопрос: что можно с ним сделать? Или возможно вы хотели бы приобрести дрон, но не видите в нем ничего, кроме летающей камеры?
Встречайте WEBODM — бесплатное, кросс платформенное программное обеспечение с открытым исходным кодом для создания карт, построение облака точек, рельефа и 3D-моделей из аэрофотоснимков.
Для того, чтобы начать, нам потребуется 3 вещи:
Компьютер. Для обработки 100–200 изображений необходимо как минимум 16 гб ОЗУ;
Дрон. Совершенно не обязательно использовать коммерческие версии для картографии. Я использую dji mavic mini;
Терпение. Обработка изображений занимает несколько часов.
Начнем прежде всего с установки. Я использую самый простой, как мне кажется, способ — установка WEBODM отдельно на виртуальную машину с Linux. Другие способы описаны здесь.
Установка
В качестве примера будем рассматривать установку на Ubuntu 20.04:
sudo apt-get update && sudo apt-get upgrade -y
Установка обязательных пакетов:
sudo apt-get install python3 pip git apt-transport-https ca-certificates curl software-properties-common -y
Добавляем ключ GPG для официального репозитория Docker в систему Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Добавляем репозиторий Docker в APT:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
Обновляем списки пакетов Docker из добавленного репозитория:
sudo apt update
Устанавливаем Docker:
sudo apt install docker-ce -y
Проверим работу Docker командой:
sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: **active (running)**
Далее ставим Docker Compose — инструмент, который позволяет запускать среды контейнеров на основе конфигурационных файлов YAML:
sudo apt-get install docker-compose-plugin
Проверяем успешность установки:
gd@webodmtest:/# docker compose version
Docker Compose version v2.6.0
Устанавливаем WEBODM:
git clone https://github.com/OpenDroneMap/WebODM --config core.autocrlf=input --depth 1
cd WebODM
chmod +x ./webodm.sh
./webodm.sh start
Eсли все прошло хорошо, то вы увидите в конце вот эти 4 строчки.
webapp | Congratulations! └@(・◡・)@┐
webapp | ==========================
webapp | If there are no errors, WebODM should be up and running!
webapp | Open a web browser and navigate to http://YOUR_IP:8000
Открываем браузер и вводим ip адрес в адресную строку
C данного момента можно считать, что webodm был успешно установлен.
Принцип работы WEBODM
Для того, чтобы понять дальнейшие пункты, немного отвлечемся на процессы, которые происходят во время обработки данных в WEBODM.
Программное обеспечение будет учитывать 2 типа данных:
позиционные метаданные из снимков, gnss, gcp;
файлы изображений.
После загрузки, производится обнаружение относительных позиций снимков и совмещение с абcолютными координатами, вычисляются характерные точки (особенности) на каждой фотографии.
Далее программа строит карту глубины для каждого снимка и на ее основе строит плотное облако точек. WEBODM может генерировать очень плотные облака точек (более 20 млн).
Плотное облако точек используется для построения сетки объекта (3d mesh), полигональной модели, и карты высот, выполняется параметризация текстур, и мы получаем на выходе полноценную цветную модель и ортоплан.
Знакомство с интерфейсом
Интерфейс WEBODM достаточно интуитивен и мы можем сразу приступить к обработке изображений.
Для этого нажмем на кнопку «Добавить проект», вводим имя и описание.
После успешного создания проекта, загружаем изображения с дрона.
P.S. Если вы хотите просто протестировать функционал, но у вас нету правильно снятых фотографий, вы можете скачать исходники объекта, который представлен в данной статье по данной ссылке.
После выбора изображений, ознакомимся с основными флагами, которые необходимы для работы с WEBODM. Для этого нажмем на кнопку «Редактировать» рядом с опциями:
max-concurrency — максимальное количество потоков для использования в различных процессах. В среднем на один поток выделяется 1 гб озу c учетом размера изображений в 2 мб. Данный параметр можно уменьшить, если у вас не хватает оперативной памяти;
ignore-gsd — true;
orthophoto-resolution — Уменьшение этого значения увеличивает четкость изображения;
feature-quality — Общий параметр качества 3D реконструкции. Параметр high позволяет получить оптимальное качество;
pc-quality — устанавливает качество облака точек. Более высокое качество создает более плотные облака точек, но значительно увеличивает почти в 4 раза больше обрабатыватеся и требует больше ресурсов;
mesh-size — максимальное количество вершин. Увеличение данного параметра до 300000–600000 может значительно улучшить качество 3d моделей в городских условиях;
mesh-octree-depth — увеличение глубины сетки для нахождения большего количества вершин. Параметры более 11 значительно улучшают реконструкцию сложных моделей.
pc-tile — уменьшает количество использованной оперативной памяти, путем разбития больших сцен на плитки.
После загрузки файлов, будет инициирована обработка изображений. В среднем 200 изображений обрабатываются где-то 1 час. После того, как у нас будет статус «выполнено», осмотрим нашу 3d модель.
Перед нами — окно для просмотра сформированных из точек 3d модели. Мы можем увеличить детализацию, выкрутив слайдер «Point budget» и изменив «Splat quality».
Мы также можем посмотреть, где в пространстве был каждый снимок.
Также доступны инструменты для измерения дистанции, объема и угла наклона.
Вы также можете поделиться своей 3d моделью. Получатель ссылки сможет просматривать и скачивать вашу модель без необходимости регистрации. Есть также готовый html iframe, что может позволить вам разместить данную модель прямо у себя на сайте.
Краткие рекомендации по съемке
Если вы снимаете небольшой объект, как например памятник, вы должны стремиться получить полную сферу, вокруг объекта. Это можно сделать даже без автоматического полета — если у вашего дрона есть intelligent flight modes, или его аналоги, вы можете сделать это вручную буквально за 15–20 минут.
Освещение очень важно для фотогамметрии. Хороших результатов можно добиться при ясной и солнечной погоде.
Для создания ортопланов, потребуется дополнительное программное обеспечение (DroneDeploy, Litchi).
Итоги
WEBODM — это простое в использовании, бесплатное программное обеспечение для создания ортопланов и 3d моделей, которое может быть вполне конкурентноспособно платным решениям. Любой желающий, может ознакомиться с фотогамметрией, имея компьютер и бпла.