Valve фотограмметрия

Фотограмметрия в VR (Часть 1) (Блог Valve SteamVR)

Хотите воссоздать в VR, например, вашу комнату, своими руками? Тогда эта статья от компании Valve для вас, она посвящена захвату реальных сцен и мест с помощью лома и такой-то матери фотоаппарата и программного обеспечения.

Это не магия, но…

Есть большой шанс, что у вас уже есть собственный 3D сканер высокого класса, способный захватывать красиво освещенные и текстурированные реальные сцены для Виртуальной Реальности.


Этот процесс, известный как фотограмметрия, не является магией, но весьма на нее смахивает. Он включает в себя использование изображений, полученных с обычной цифровой камеры для создания трехмерных сцен, извлечение разницы между фотографиями, полученными с разных точек и углов. Многое сдерживает прогресс — получение качественного материала от источника сродни искусству — но когда все работает хорошо — результат Виртуальной реальности в пределах комнаты может быть и убедительным, и тревожащим. Виртуальный перенос в иное настоящее место, а затем возможность походить там — все еще ощущается как нечто из будущего. Самое большое чувство погружения я испытывал именно в сценах, которые были захвачены таким способом.

Данная статья нацелена на общее представление фотограмметрии для целей VR и систематизации советов и рекомендаций, которые я собрал. Это не полное руководство, но оно должно помочь вам начать работу и предупредить о возможных подводных камнях на этом пути. Так что вперед, захватим мир!

Программное Обеспечение

Больше всего я общался с программным обеспечением Agisoft PhotoScan, сделанным небольшой российской компанией в Санкт-Петербурге. Вообще-то это больше ГИС приложение (с функционалом для аэрофотосъемки), но ему нашлось более художественное применение в компьютерной графике.

PhotoScan оказался весьма универсальным и настраиваемым, хотя и не единственным в своем роде программным продуктом такого назначения — есть еще решения от Autodesk: облачное 123D-Catch и Memento. Для локального выполнения процесс требует больших ресурсов оборудования для продвинутых сцен, так что готовьтесь предоставить большой объем памяти, CPU и GPU. Если вы внимательны, вы можете ограничить сложность сцены, чтобы ваше оборудование справилось с задачей в разумное время. Хотя восьмиядерный монстр в этой работе очень ценится…

Вы могли слышать  о фотограмметрии, которая использовалась в недавней инди игре The Vanishing of Ethan Carter — она была использована для захвата поверхностей, декораций и структур для переноса в относительно традиционный рабочий процесс трехмерного моделирования. Они опубликовали несколько очень полезных советов, которые направлены в основном на  захват отдельных объектов — захват всей сцены имеет некоторые отличия.

Как это работает

Основной принцип фотограмметрии включает наличие, по крайней мере, двух фотографий с разных углов каждой точки, по которой вы хотите иметь трехмерную информацию — выявление сходства и выяснения при использовании математики, где эти точки находятся в пространстве. Это означает, что метод ограничивается статичными сценами, содержащими непрозрачные незеркальные поверхности — как и упоминалось, это не магия.

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

The software will take your photos and, if there are enough common features between different photos, will automatically calculate all the camera positions. The process is a little like automatically stitching together photos for a panorama, only here you absolutely don’t want the camera to stay in one place. Think lots of stereoscopic pairs, although it can work with most potential photo alignments.

После того, как оно выровняет все камеры (или нет), оно генерирует разрозненное облако точек, затем вы получите плотное облако точек — потенциально сотни миллионов точек, если вы перестарались с настройками качества. Из этого вы можете сгенерировать сетку — потенциально с миллионами треугольников — а затем создать текстуру для этой сетки. (вы можете отрисовать удивительно тяжелые сетки в VR!)



Аппаратное обеспечение

Я использую относительно скромное оборудование — Canon EOS 7D digital SLR для большинства вещей, обычно с объективом 17-55 мм f/2.8 EF-S. Для низкого освещения штатив просто находка, но я я получил удивительные результаты, фотографируя с рук. Вам необходимо получить максимальную глубину резкости  (f/11 кажется приличным компромиссом между глубиной резкости и четкостью) с как можно более низким ISO, какое вы можете достичь (чтобы не вылезал шум от сенсора и не портил детали).

Любая приличная цифровая камера с мягким объективом должна работать хорошо — для полных VR сцен, широкоугольный объектив может оказаться невероятно полезным для захвата сцены с разумным количеством фотографий в ограниченное время и снижает шанс того, что вы пропустите какую-то область. Чем шире объектив, тем сложнее получить приличную калибровку, хотя объектив Sigma 10-20mm страдает неточностью в углах, что типично для объектива данной модели, в то время как объектив Canon 10-22mm дает более приличный результат. Объектив 17-55mm, который упоминался ранее, имеет более точные показатели на широкоугольной настройке и скорректированные искажения — дает отличные результаты за счет большего количества фотографий. (Он также стабилизирован, и выполнение ручной съемки выполняется легче при низком освещении и низком ISO). Изображения с камер GoPro тоже можно использовать, но стоит ожидать больших заморочек с калибровкой.

Я получил фантастические результаты с заимствованным кинематографическим 14-мм объективом на EOS 5D Mark III — довольно неправдоподобное оборудование для бытового использования, но это колоссальный широкий угол (14 мм на полном кадре!) c его минимальным размытием, которое было полностью скорректировано.

Процесс должен работать с фотографиями, снятыми разными объективами и камерами — для размеров комнаты я могу сделать избыточный захват с супершироким объективом, чтобы удостовериться, что я ничего не пропустил перед тем, как начну заниматься отдельными объектами. Не забудьте, что вам необходимо свести к минимуму разницу между объективами — если у вас есть объектив с зумом, убедитесь, что вы зафиксировали фокусное расстояние (закрепить кольцо зума очень полезно!) или в итоге вы получите много «объективов» с разными ошибками калибровки. Переключение на ручной фокус и сохранение одного и того же фокусного расстояния также позволит избежать «дыхания» фокуса. (Убедитесь, что вы переключились потом назад!)

(Замечание о зафиксированной длине фокуса: чуть более, чем за час-полтора я захватил фантастически детальную сцену в Исландии с моим суперширокоугольным объективом. Так как я снимал в HDR, камера была на штативе и я двигал штатив и камеру для каждого набора снимков. По некоторым причинам, кольцо зума на объективе не было зафиксировано и медленно дрейфовало от 10 мм до 14 мм — штатив, как я думал, не выполнял свою основную работу по удержанию зума на самом широком угле левой рукой. Я спас сцену за счет нездорово большого количества калибровок объектива в PhotoScan, равномерно распределенным по снимкам. — к счастью, сцена имела достаточно фотограмметрических деталей, чтобы можно было это применить — но она по прежнему не такая высококачественная, как могла бы быть. Так что, да, даже если вы знаете о потенциальной проблеме — закрепляйте кольцо зума в любом случае. Это позволит спасти вас от многих разочарований позже.)

Продолжение следует…
Источник, перевод Natusik.

1 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 51 оценка, среднее: 5,00 из 5 (Голосов: 1, оценка: 5,00 из 5)
Чтобы проголосовать, необходимо зарегистрироваться.
Загрузка...

Комментарии:

Главная Форумы Фотограмметрия в VR (Часть 1) (Блог Valve SteamVR)

  • Для ответа в этой теме необходимо авторизоваться.