Найти тему
Хроники Георга

В мире open-source. MeshLab - обзор программы в контексте задач по обработке данных фотограметрии и облаков точек

Введение: рассмотрим одно из open-source решений по работе с mesh-формами - MeshLab в контексте задач по обработке данных фотограмметрии и частично облаков точек.

Официальный логотип программы, взято с https://www.meshlab.net/img/meshlabLogo.png
Официальный логотип программы, взято с https://www.meshlab.net/img/meshlabLogo.png

1. Скачивание и установка

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

Версии программы под различные ОС
Версии программы под различные ОС

Исходный код выложен на GitHub в данном репозитории, в большей части программа написана на C++.

Вопросы по программной части рекомендуют задавать в Issues на репозитории GitHub, а по части самого функционала - на разделе stackoverflow.

1.1 Обновление программы

Обновление программы доустанавливаемыми компонентами не предусмотрено. Новая версия скачивается вручную, при установке она сперва удаляет старую (либо вы это можете сделать сами), и ставит новую.

Проверяем наличие обновлений и загружаем вручную новую версию
Проверяем наличие обновлений и загружаем вручную новую версию
Кроме того, есть возможность устанавливать и промежуточные beta-версии
Кроме того, есть возможность устанавливать и промежуточные beta-версии

2. Использование программы

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

Поиск нужной опции
Поиск нужной опции

Данная настройка поможет сэкономить время на поиск нужных команд.

Далее рассмотрим некоторые кейсы по использованию данного ПО

2.1 Среда просмотра моделей и конвертер моделей

Иными словами,MeshLab можно использовать как viewer (вьювер) для просмотра mesh-моделей и небольших облаков точек. Вес программы в установленном режиме занимает порядка 120 Мб. Как пример подобной истории - это просмотр сгенерированной поверхности из Agisoft Metashape.

Еще плюс программы - это кроссплатформенность

Опция импорта данных mesh
Опция импорта данных mesh
Набор поддерживаемых форматов данных - можно экспортировать в разные mesh-форматы имеющиеся модели
Набор поддерживаемых форматов данных - можно экспортировать в разные mesh-форматы имеющиеся модели
Пример сводной PLY модели данных
Пример сводной PLY модели данных

Важная опция, которую стоит упомянуть - это обращение направления приближения (колесико мышки)

Запускаем меню настроек
Запускаем меню настроек
Опускаемся в самый низ списка, ставим галочку, нажимаем Save и Close
Опускаемся в самый низ списка, ставим галочку, нажимаем Save и Close

2.2 Объединение данных в единую модель

Недавно была задача - изыскатели прислали набор тайлов (постобработка данных фотограмметрии)

Пример данных - файл с mesh-структурой и текстура
Пример данных - файл с mesh-структурой и текстура

Примечание: сразу скажу - текстуру meshlab не читает/читает как-то с настройками (у меня, во всяком случае, не получилось настроить)

Скопировал эти файлы программно в 1 директорию для удобства
Скопировал эти файлы программно в 1 директорию для удобства
Импортирую как Import mesh эти файлы
Импортирую как Import mesh эти файлы
В появившемся диалоговом окне можно выбрать опцию "geometry" и нажать на ОК
В появившемся диалоговом окне можно выбрать опцию "geometry" и нажать на ОК
Вид прогрузившихся данных
Вид прогрузившихся данных
Если не видно панели справа - она включается тут
Если не видно панели справа - она включается тут
Для объединения видимых погруженных тайлов активируем команду "Filter -> Mesh Layer -> Flatten visible layers"
Для объединения видимых погруженных тайлов активируем команду "Filter -> Mesh Layer -> Flatten visible layers"
Оставляем параметры по умолчанию
Оставляем параметры по умолчанию
Теперь справа в Навигаторе - у нас единая модель
Теперь справа в Навигаторе - у нас единая модель

Далее данную модель можно сохранить в форматах, в зависимости от того, где вы планируете использовать эти данные. Если в среде AutoCAD - то предложенный экспорт в DXF, если в ином ПО - то лучше выбирать универсальные mesh-форматы наподобие PLY/3DS.

Выбираем формат сохранения сгенерированной модели
Выбираем формат сохранения сгенерированной модели

2.3 Построение поверхностей по точкам/редактирование поверхностей

С примера выше экспортируем модели в формат точек (XYZ):

Экспортируем в облако точек
Экспортируем в облако точек
Создадим новый проект
Создадим новый проект
Импортируем данные, для визуализации выставим в меню сверху отображение точек
Импортируем данные, для визуализации выставим в меню сверху отображение точек
 При помощи поиска активируем опцию Триангуляции Делоне
При помощи поиска активируем опцию Триангуляции Делоне
Так будет выглядеть модель, есть опция вызывается подобным образом, но нам с вами нужно более настраиваемая среда
Так будет выглядеть модель, есть опция вызывается подобным образом, но нам с вами нужно более настраиваемая среда

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

Импортируем (Import mesh) подобный файл
Импортируем (Import mesh) подобный файл
Настраиваем параметры чтения (разделитель)
Настраиваем параметры чтения (разделитель)
Получаем модель с точками земли
Получаем модель с точками земли

Далее согласно статье настраиваем поверхность.

3. Выводы:

В данной небольшой статье мы с вами рассмотрели пару кейсов использования open-source решения по работе с mesh-моделями MeshLab (просмотр моделей/конвертация/объединения тайлов в единую модель). Встроенные возможности MeshLab не содержат инструменты по работе с облаками точек (классификация, в частности), поэтому геометрическое представление модели можно экспортировать в формат данных XYZ и в дальнейшем обрабатывать в профильном ПО и возвращать точки земли уже для построения рельефа/строить там же, а MeshLab'у оставить всё-же твердотельные модели.

Еще почитать:

http://ru-photogrammetry.blogspot.com/2014/05/meshlab.html - построение сложной поверхности по облаку точек

https://habr.com/ru/post/541842/ - редактирование поверхности

Не пропускайте публикации, подписывайтесь на Telegram-канал с тизерами статей.