Подготовка фотограмметрической модели к печати

Одной из важных задач в большинстве прикладных задач является визуализация. Возможность предоставить результат заказчику в лучшем виде. Трехмерные модели отлично отображают изучаемый объект, однако не всегда имеется возможность их предоставить (отсутствие интернета или программы для просмотра, недостаточные мощности компьютера/телефона и т.д.). В таких случаях можно заменить модель ее физическим аналогом. Физическая модель имеет ряд недостатков и преимуществ, но сегодня мы будем говорить о методике ее создания.

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

Рис.1. Фотограмметрическая модель

По данной модели были получены обмерные чертежи, переданные заказчику, проект был завершен. Однако это совсем не говорит о том, что модель можно взять и распечатать.

Первый крупный недочет, который необходимо устранить на этапе фотограмметрической обработки – это сторонние объекты. Чаще всего это бывают деревья и другая растительность, реже - могут быть люди, автомобили и т.п. Работая в программе Agisoft Photoscan лучше всего производить фильтрацию по плотному облаку, для этого необходимо перейти в режим просмотра плотного облака. Фильтрацию можно производить в автоматическом (по цветам и углам уклонов) и ручном режиме (выделяя точки или рисуя маски). Первым этапом фильтрации производится классификация точек на три категории – земля, шум и неклассифицированные точки (деревья, дома, машины и т.д.). Для выполнения классификации необходимо зайти в панель ИнструментыПлотное облакоКлассифицировать точки рельефа….

Рис.2. Классификация точек рельефа

В появившемся окне необходимо задать исходный класс (если до этого классификация не производилась – необходимо выбрать Любой класс). Максимальный угол (°), Максимальное расстояние(м), Размер ячейки(м):

Рис.3. Параметры классификации точек рельефа

После автоматической классификации точек, часть точек примут новый класс (земля или шум). Открыв отображение классификации точек рельефа , можно увидеть, насколько корректно произведена классификация.

Рис.4. Результаты классификации

Важно заметить, что правильная классификация возможна только в случае наличия достаточно точной привязки (в примере используются координаты центров проекций камеры, полученные из одночастотного GPS типа UBLOX-Neo6), так как классификация производится по углам отклонения от горизонта.

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

Рис.5. Виды выделений

После выделения необходимых точек им можно присвоить определенный класс используя панель ИнструментыПлотное облакоНазначить класс…(или комбинацией клавиш Ctrl+Shift+C).

Рис.6. Ручная классификация

Некоторым массивам или отдельным точкам нет необходимости назначать определенный класс, а можно их сразу удалить. К таким точкам можно отнести шумы:

Рис.7. Удаление шумов

После удаления всех лишних точек, необходимо создать отфильтрованную модель. В случае с созданием модели рельефа – необходимо использовать только точки, классифицированные как «Земля», а в случае с созданием трехмерных моделей зданий – имеет смысл удалить все шумы и деревья. Модели не должны иметь отверстий, поэтому при построении необходимо включить интерполяцию. Полученный результат необходимо экспортировать для дальнейшей обработки. Для этого необходимо зайти в панель ФайлЭкспорт модели…. Желательно использовать формат obj. На этом работа в Agisoft Photoscan закончена, можно сохранить проект и закрыть программу.

Полученный результат открываем в ПО Meshmixer. Открывшаяся модель может отображаться некорректно (развернута, отмасштабирована).

Рис.8. Отфильтрованная модель в Agisoft Photoscan

Первым делом модель необходимо развернуть и опустить на поверхность рабочего стола. Для этого на левой панели необходимо выбрать группу Edit, внутри которой использовать инструмент Transform (или быстрая клавиша T). Спроецировать модель на стол можно также при помощи инструмента Align. После успешной трансформации можно перейти к созданию основания для печати.

Рис.9. Трансформация модели

Открыв панель Select выделяем целиком всю модель. Это можно сделать при помощи выделения-лассо или двойным кликом. Выделив весь объект, необходимо использовать инструмент Edit/Extrude. В появившемся окне поставить EndType Flat, а затем флажком Offset выставить высоту подстилающей платформы.

Рис.10. Создание подложки

Рис.11. Параметры создания подложки

Полученный результат можно сохранить в формате STL. Далее эту модель стоит открыть в программе NetFabb, для исправления основных ошибок модели. При открытие лучше сразу установить флажок над пунктом исправление частей.

Рис.12. Импорт модели в NetFabb

Первым этапом стоит вылечить модель, удалив все лишние поверхности, замкнув все отверстия, поправив полигоны. Большинство из этих задач решаются автоматически. Для удаления всех лишних поверхностей необходимо использовать инструмент Repair и зайти во вкладку Shells. Чаще всего необходимо удалить все поверхности кроме одной (самой большой по площади). Выбрав все поверхности удаляем их нажатием клавиши Del.

Рис.13. Удаление лишних поверхностей

После необходимо подтвердить удаления нажав на кнопку Apply Repair. Старую версию модели можно не сохранять (выбрать Remove old Part). После лечения модели, ее уже можно отправить на печать, но лучше поправить ее края, обрезав все лишнее. Для этого выберите удобный угол обзора (сверху или сбоку, в зависимости от плоскости реза), после чего нажмите на панели отсечения плоскостей (Clip planes) на центр одного из направлений, создав соответствующую плоскость реза. Плоскость можно переместить при помощи ползунка или задав положение в мм.

Рис.14.Создание плоскостей для отсечения

Для обрезки необходимо нажать на кнопку . В появившемся окне можно убрать галочку на создание новой группы и поставить галочку для удаления исходной модели. После чего нажать на кнопку Cut.

Рис.15. Отсечение плоскостью

Обрезанную деталь можно удалить. Обрезание следует произвести для всех трех направлений XYZ.

Рис.16. Удаление отрезанных поверхностей

В итоге должна получиться аккуратно обрезанная модель, с подложкой и без несопряженных поверхностей:

Рис.17. Отредактированная модель

Рис.18. Отредактированная модель

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

Рис.19. Экспорт модели

Рис.20. Импорт модели в Polygon 2.0.

В случае, если в качестве исходных данных используется карта высот, то для создания модели можно использовать программы, способные преобразовывать градации цвета в координаты. Одной из таких программ является Cura, предназначенная для работы с принтером Ultimaker. Однако подобные программы работают только с подготовленными 8-битными изображениями (чаще формата jpg). Agisoft Photoscan на выходе дает изображение 32бит с плавающей запятой в формате tiff (Geotiff).

Для перевода в требуемый формат можно использовать различные геоинформационные системы, или графические редакторы. Мы будем рассматривать вариант с преобразованием карты высот в программе Adobe Photoshop. Открыв файл карты высот в Photoshop мы увидим белое пятно на черном фоне, что связано с битностью изображения. Для приведения изображения в 8 бит в панели ИзображениеРежим8 битканал….

Рис.21.Изменение битности изображения в Adobe Photoshop

В появившемся окне параметров указываем Способ: Выровнять гистограмму, после чего видим, как изображение приняло нормальный вид.

Рис.22. Выбор способа преобразования изображения в 8 бит

Рис.23. Полученное изображение 8 бит/канал

Если использовать подобное изображение, то модель будет создана и на участок, где карты высот нет, поэтому перед сохранением изображения его надо обрезать, оставив только рабочую область: ИзображениеРазмер холста…(или сочетание клавиш Alt+Ctrl+C).

Рис.24. Обрезка изображения

Рис.25. Параметры обрезки изображения

На полученном изображении могут оставаться участки, не имеющие информации (черные). Чтобы они не испортили напечатанную модель, эти участки можно замазать при помощи инструмента Штамп:

Рис.26. Инструмент “Штамп”

Рис.28. Параметры импорта изображений в Cura Ultimaker

Полученное изображение сохраняется в формате Jpeg. Модель для печати мы будем подготавливать в программе для подготовки заданий для печати Cura Ultimaker (https://ultimaker.com/en/products/cura-software). После импорта изображения появится меню основных настроек создаваемой трехмерной модели: Высота, Высота основания, Ширина, Глубина, Какой цвет выше, Размытие.

Рис.28. Параметры импорта изображений в Cura Ultimaker

.29. Модель, полученная по карте высот

Полученную модель можно сохранить в формате STL и использовать для печати или работе на фрезере.