Оригинал материала: https://3dnews.ru./624259

Облачная фотограмметрия, или Делаем 3D-модель по фотографии

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

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

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

Итак, первый сервис, о котором пойдёт речь, — это разработка известной компании Autodesk под названием 123D Catch. Данная программа по сути является клиентом к облачному сервису. Через неё мы отправляем фотографии на удалённый сервер, где и происходит вся обработка. Для скачивания программы надо зарегистрироваться или авторизоваться с помощью учетной записи Facebook. Проект пока что находится на стадии бета-тестирования и не отличается стабильностью, так что с некоторыми его глюками и тормозами придётся смириться. После установки программы на ПК можно приступать к фотосъёмке нужного нам объекта. Для начала настоятельно рекомендуется ознакомиться с обучающими видео. В первом из них приведены основные советы по правильной съёмке объектов.

В принципе, их (советов или требований) не так уж много. Надо избегать прозрачных или блестящих поверхностей и бликов. Не рекомендуется попадание в кадр повторяющихся текстур. Также объект всегда должен быть неподвижным — надо самому перемещаться с камерой вокруг него. Опять-таки кадры должны хоть немного перекрываться. Ну и надо следить за освещением. Желательно чтобы оно было достаточным (без шумов в кадре) и более-менее равномерным. Использование вспышки не рекомендуется. Использовать ли зеркалку или простую мыльницу, а то и вовсе камеру в смартфоне — не так уж принципиально. Лишь бы кадры не были размытыми, а снимаемый объект оставался в фокусе. И ещё один нюанс: особого смысла делать фотографии с полным разрешением в десяток-другой мегапикселей смысла нет. Достаточно будет 3-4 мегапикселей. Важнее, чтобы объект занимал по возможности большую часть кадра. И ещё, ни в коем случае не используйте телескопические или fish-eye объективы!

В любом случае всё «приходит с опытом». Придётся отснять не один десяток фотографий, прежде чем получится достойная модель. Потренируйтесь сначала на каких-нибудь простых геометрических фигурах, расположенных на однородном фоне. Кстати, попытка воссоздать сложные поверхности вроде меха или волос практически наверняка будет провальной. А пока рассмотрим вкратце работу с программой. Тут всё очень просто. После запуска кликаем Create a new Photo Scene и выбираем фотографии, по которым будет строиться объект. Для начала стоит взять набор из 15-20 кадров, снятых с разных ракурсов, но под одним углом к поверхности, на которой стоит объект. Потом можно будет добавить к сцене и другие фото.

Нажимаем кнопку Compute Photo Scene, вводим имя и e-mail и соглашаемся с условиями использования сервиса. Обязательно вводите рабочий почтовый адрес, так как на него потом будут приходить уведомления и ссылки на готовые сцены. Впрочем, если у вас есть желание и время, то в следующем диалоге можно выбрать Wait вместо Email Me. Тогда программа свернётся и в фоне загрузит все фотографии на сервер, дождётся результата и снова активируется. В среднем загрузка файлов на сервер занимает несколько минут, а время выдачи готового результата составляет не более 10-15 минут. Если вы добавляете к сцене ещё несколько фотографий или меняете её, то все файлы заново заливаются на сервер и обсчитываются, что несколько раздражает.

Через некоторое время в 123D Catch будет загружена готовая сцена (в настройках можно задавать её качество, то есть детализацию). Эту сцену необходимо сохранить в небольшой 3dp-файл, который можно будет открыть и на другом ПК, так как фотографии и всё остальное всё равно будет загружено с серверов Autodesk. Готовую сцену можно экспортировать в некоторые популярные форматы (DWG, OBJ и другие). В идеальном случае сервис автоматически будет «сшивать» фотографии в 3D-модель. Но и ему свойственно ошибаться. Необработанные кадры помечаются иконкой с восклицательным знаком. Их можно удалить или же вручную откорректировать, кликнув правой кнопкой мыши и выбрав пункт Manual Stitch.

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

Теперь перейдём к двум другим бесплатным сервисам — Hypr3D и My3DScanner, которые отличаются от 123D Catch несколько менее детализированными 3D-моделями на выходе. Оба требуют обязательной регистрации и не предполагают какого-либо вмешательства в процесс рендеринга модели. То есть после загрузки фото или видео вам остаётся только ждать готового результата или, если не повезёт, сообщения об ошибке. Поэтому здесь гораздо важнее сразу же сделать хорошие исходные фотографии. По большому счёту рекомендации по съёмке остаются такими же, как и для 123D Catch. Но есть несколько важных нюансов. Просмотрите список наиболее частых ошибок с примерами того, как делать не надо.

Пример съёмки объекта для Hypr3D

Опять-таки не годятся прозрачные или бликующие, а также движущиеся объекты, нетекстурированный фон (или с повторяющейся структурой), объективы с сильными искажениями, очень однородный или движущийся фон, расфокусировка и смазанность в кадре, неровное и недостаточное освещение, сильный шум на фото и так далее. Съёмка также должна вестись при перемещении камеры вокруг объекта. В итоге должно получиться где-то от 30 до 60 кадров с одним и тем же углом наклона камеры. Короче говоря, здесь тоже придётся помучиться, прежде чем начнут получаться хорошие 3D-модели.

Перейдём к особенностям работы с указанными сервисами. Начнём с Hypr3D. Нажимаем кнопку Upload и переходим к загрузке исходных файлов. Выбираем нужные изображения или видео, вбиваем название и теги для нашего проекта и жмём Submit for processing. У этого сервиса один нюанс: он без проблем работает с видео, снятым на iPhone/iPod Touch (обычно хватает полуминутного ролика с «облётом» объекта), но для всех прочих требует наличия thm-файла. Впрочем, сервису удалось успешно скормить файлы MOV и 3GP, снятые смартфонами.

Обычно отрисовка модели на основе фотографий занимает не более получаса. А вот работа с видеофайлами идёт гораздо дольше, так как фактически они разбиваются на отдельные кадры, что само по себе занимает минимум 20-30 минут. Готовую модель можно просмотреть вместе с текстурами в виде полигональной сетки или облака точек. По умолчанию она выставляется на всеобщее обозрение посетителям сервиса. Сцены экспортируются в форматы DAE, PLY или STL. Последний сразу же можно отправить печататься на 3D-принтере. У Hypr3D есть также платные опции редактирования модели и подготовки её к 3D-печати, а также собственно создания модели из металла, пластика, керамики и других материалов.

My3DScanner генерирует субъективно менее качественные модели, чем Hypr3D. Тем не менее пользоваться им вполне можно. Начать создание проекта надо с выбора пункта My Studio → Create. Задаём имя и загружаем фото или видео, обязательно упакованные в архив. Время обработки зависит от загруженности сервиса. На видео, естественно, уходит больше времени. А вообще даже примерные сроки назвать очень трудно. Один из тестовых примеров обработался за 20 минут, а на другой ушло почти три часа.

Модели можно просматривать в любом браузере с поддержкой WebGL в виде нетекстурированного объекта или облака точек. Экспорт доступен только в форматы OBJ и PLY. У My3DScanner есть забавный глюк: он нередко вполне успешно создаёт неплохую модель отснятого объекта, но при этом накрывает его своеобразным «куполом», тянущимся с краёв подставки, на которой стоит сам объект. В целях экономии создатели сервиса хранят готовые модели в течение нескольких дней, а потом удаляют. Так что позаботьтесь о сохранении ваших «оцифровок» в более надёжном месте.

У всех трёх сервисов качество готовых моделей хоть и удовлетворительное, но всё равно требует ручной доработки. В основном придётся «отрезать» лишние детали или подложку. По крайней мере большую часть работы по оцифровке объекта берёт на себя автоматика. После экспериментов с «облачными» сервисами можно потренироваться работать в standalone-приложениях вроде 3DSom (Strata Foto 3D CX), iModeller, PhotoModeller и других. Возни с ними больше, но и результат гораздо более впечатляющий. Ну а потом можно и вовсе окунуться в мир настоящего 3D-моделирования. Но это уже совсем другая история. Удачи!



Оригинал материала: https://3dnews.ru./624259