Подготовка фотограмметрической модели к печати
Одной из важных задач в большинстве прикладных задач является визуализация. Возможность предоставить результат заказчику в лучшем виде. Трехмерные модели отлично отображают изучаемый объект, однако не всегда имеется возможность их предоставить (отсутствие интернета или программы для просмотра, недостаточные мощности компьютера/телефона и т.д.). В таких случаях можно заменить модель ее физическим аналогом. Физическая модель имеет ряд недостатков и преимуществ, но сегодня мы будем говорить о методике ее создания.
Не стоит сразу пытаться напечатать полученную в ходе фотограмметрической обработки модель, она имеет множество недочетов, которые в лучшем случае приведут к потраченным времени и расходным материалам. Рассмотрим данную ситуацию на примере обычного малоэтажного здания, расположенного в черте города. Объект отсняли используя комбинированный фотограмметрический метод с использованием наземной и аэросъемки. В ходе обработки была получена вот такая модель:
По данной модели были получены обмерные чертежи, переданные заказчику, проект был завершен. Однако это совсем не говорит о том, что модель можно взять и распечатать.
Первый крупный недочет, который необходимо устранить на этапе фотограмметрической обработки – это сторонние объекты. Чаще всего это бывают деревья и другая растительность, реже - могут быть люди, автомобили и т.п. Работая в программе Agisoft Photoscan лучше всего производить фильтрацию по плотному облаку, для этого необходимо перейти в режим просмотра плотного облака. Фильтрацию можно производить в автоматическом (по цветам и углам уклонов) и ручном режиме (выделяя точки или рисуя маски). Первым этапом фильтрации производится классификация точек на три категории – земля, шум и неклассифицированные точки (деревья, дома, машины и т.д.). Для выполнения классификации необходимо зайти в панель Инструменты → Плотное облако → Классифицировать точки рельефа….
В появившемся окне необходимо задать исходный класс (если до этого классификация не производилась – необходимо выбрать Любой класс). Максимальный угол (°), Максимальное расстояние(м), Размер ячейки(м):
После автоматической классификации точек, часть точек примут новый класс (земля или шум). Открыв отображение классификации точек рельефа , можно увидеть, насколько корректно произведена классификация.
Важно заметить, что правильная классификация возможна только в случае наличия достаточно точной привязки (в примере используются координаты центров проекций камеры, полученные из одночастотного GPS типа UBLOX-Neo6), так как классификация производится по углам отклонения от горизонта.
Далее необходимо отделить здания от растительности. Сделать это можно изменяя параметры классификации, добиваясь того, чтобы выделились только дома, создав для них отдельный класс, а потом производя выделение растительности. Можно это сделать и вручную. Для этого на облаке выделяются интересующие объекты, используя наиболее подходящие типы выделения – прямоугольное, овальное или произвольное. При этом для объединения выделений используется клавиша Ctrl, а для удаления выделения – Shift.
После выделения необходимых точек им можно присвоить определенный класс используя панель Инструменты → Плотное облако → Назначить класс…(или комбинацией клавиш Ctrl+Shift+C).
Некоторым массивам или отдельным точкам нет необходимости назначать определенный класс, а можно их сразу удалить. К таким точкам можно отнести шумы:
После удаления всех лишних точек, необходимо создать отфильтрованную модель. В случае с созданием модели рельефа – необходимо использовать только точки, классифицированные как «Земля», а в случае с созданием трехмерных моделей зданий – имеет смысл удалить все шумы и деревья. Модели не должны иметь отверстий, поэтому при построении необходимо включить интерполяцию. Полученный результат необходимо экспортировать для дальнейшей обработки. Для этого необходимо зайти в панель Файл → Экспорт модели…. Желательно использовать формат obj. На этом работа в Agisoft Photoscan закончена, можно сохранить проект и закрыть программу.
Полученный результат открываем в ПО Meshmixer. Открывшаяся модель может отображаться некорректно (развернута, отмасштабирована).
Первым делом модель необходимо развернуть и опустить на поверхность рабочего стола. Для этого на левой панели необходимо выбрать группу Edit, внутри которой использовать инструмент Transform (или быстрая клавиша T). Спроецировать модель на стол можно также при помощи инструмента Align. После успешной трансформации можно перейти к созданию основания для печати.
Открыв панель Select выделяем целиком всю модель. Это можно сделать при помощи выделения-лассо или двойным кликом. Выделив весь объект, необходимо использовать инструмент Edit/Extrude. В появившемся окне поставить EndType Flat, а затем флажком Offset выставить высоту подстилающей платформы.
Полученный результат можно сохранить в формате STL. Далее эту модель стоит открыть в программе NetFabb, для исправления основных ошибок модели. При открытие лучше сразу установить флажок над пунктом исправление частей.
Первым этапом стоит вылечить модель, удалив все лишние поверхности, замкнув все отверстия, поправив полигоны. Большинство из этих задач решаются автоматически. Для удаления всех лишних поверхностей необходимо использовать инструмент Repair и зайти во вкладку Shells. Чаще всего необходимо удалить все поверхности кроме одной (самой большой по площади). Выбрав все поверхности удаляем их нажатием клавиши Del.
После необходимо подтвердить удаления нажав на кнопку Apply Repair. Старую версию модели можно не сохранять (выбрать Remove old Part). После лечения модели, ее уже можно отправить на печать, но лучше поправить ее края, обрезав все лишнее. Для этого выберите удобный угол обзора (сверху или сбоку, в зависимости от плоскости реза), после чего нажмите на панели отсечения плоскостей (Clip planes) на центр одного из направлений, создав соответствующую плоскость реза. Плоскость можно переместить при помощи ползунка или задав положение в мм.
Для обрезки необходимо нажать на кнопку . В появившемся окне можно убрать галочку на создание новой группы и поставить галочку для удаления исходной модели. После чего нажать на кнопку Cut.
Обрезанную деталь можно удалить. Обрезание следует произвести для всех трех направлений XYZ.
В итоге должна получиться аккуратно обрезанная модель, с подложкой и без несопряженных поверхностей:
Результат сохраняется в формате STL и может быть открыт в программах для подготовки печатного G-кода.
В случае, если в качестве исходных данных используется карта высот, то для создания модели можно использовать программы, способные преобразовывать градации цвета в координаты. Одной из таких программ является Cura, предназначенная для работы с принтером Ultimaker. Однако подобные программы работают только с подготовленными 8-битными изображениями (чаще формата jpg). Agisoft Photoscan на выходе дает изображение 32бит с плавающей запятой в формате tiff (Geotiff).
Для перевода в требуемый формат можно использовать различные геоинформационные системы, или графические редакторы. Мы будем рассматривать вариант с преобразованием карты высот в программе Adobe Photoshop. Открыв файл карты высот в Photoshop мы увидим белое пятно на черном фоне, что связано с битностью изображения. Для приведения изображения в 8 бит в панели Изображение → Режим → 8 бит → канал….
В появившемся окне параметров указываем Способ: Выровнять гистограмму, после чего видим, как изображение приняло нормальный вид.
Если использовать подобное изображение, то модель будет создана и на участок, где карты высот нет, поэтому перед сохранением изображения его надо обрезать, оставив только рабочую область: Изображение → Размер холста…(или сочетание клавиш Alt+Ctrl+C).
На полученном изображении могут оставаться участки, не имеющие информации (черные). Чтобы они не испортили напечатанную модель, эти участки можно замазать при помощи инструмента Штамп:
Полученное изображение сохраняется в формате Jpeg. Модель для печати мы будем подготавливать в программе для подготовки заданий для печати Cura Ultimaker (https://ultimaker.com/en/products/cura-software). После импорта изображения появится меню основных настроек создаваемой трехмерной модели: Высота, Высота основания, Ширина, Глубина, Какой цвет выше, Размытие.
Полученную модель можно сохранить в формате STL и использовать для печати или работе на фрезере.