Фотограмметрическое программное обеспечение что это такое
Фотограмметрия и фотограмметрические программы
Фотограмметрия — дисциплина в научно-технической области, суть которой заключается в обработке изображений и определении на их основе различных характеристик объекта: размера, форм, положения и др. Простыми словами — это создание трехмерной модели объекта с помощью его фотографий, сделанных под разным углом.
В фотограмметрии выделяют два основных направления. Первое — решение прикладных задач в различных сферах (архитектура, медицина, строительство и т.п.). Второе — создание планов космических объектов (в том числе Земли) и карт. Обработка изображений осуществляется с помощью специального программного обеспечения. Ниже представлены как платные профессиональные инструменты, так и бесплатные фотограмметрические программы.
RealityCapture
1
Программа анализирует обычные фотографии и данные, полученные путем лазерного сканирования. Применима для различных областей: создания двухмерных и трехмерных карт, моделей, 3D-печати и др. Чтобы протестировать возможности Reality Capture бесплатно, можно скачать и установить демо-версию. Полный функционал доступен после покупки лицензии (подписка или разовый платеж).
Agisoft Metashape
Нагрузка на ПК зависит от количества обрабатываемых изображений. Например, для обработки 100 снимков среднего качества необходимо от 3 до 9 Гб оперативной памяти. Agisoft Metashape распространяется в нескольких платных версиях, разница между которыми заключается в функционале. Чтобы построить модель большого масштаба, вам понадобится профессиональная версия.
COLMAP
ПО содержит огромное количество дополнений и плагинов, поскольку имеет открытый код. Доступна функция экспорта 3D-поверхности, но стоит учитывать, что алгоритмы COLMAP могут работать лишь с плотным облаком точек. Также для повышения качества трехмерных моделей вам потребуются сторонние инструменты.
Meshroom
С программой несложно будет разобраться даже новичку. Тем не менее, она обладает всем необходимым функционалом. Любой параметр можно настроить для получения оптимального результата. Преимуществом программы также является предустановленный плагин для экспорта трехмерных моделей и дальнейшей их обработки в Maya.
MicMac
Программа MicMac сориентирована в первую очередь на профессионалов, но подойдет и для создания различных трехмерных моделей, карт начинающими пользователями. Программа предлагает набор сложных фотограмметрических функций. ПО разработано научным сообществом и является универсальным в использовании.
С помощью МикМак можно обрабатывать обычные фотографии, аэроснимки крупного масштаба, сканы объектов небольшого размера. Также доступна функция обработки видеофайлов для построения трехмерных моделей. Скачать MicMac для ОС Windows вы можете бесплатно, никаких ограничений по времени и функционалу нет.
Остались вопросы, предложения или замечания? Свяжитесь с нами и задайте вопрос.
(Надеюсь) всё, что нужно знать о фотограмметрии
В моих предыдущих статьях я всегда пропускал введение в фотограмметрию, потому что существует множество ознакомительных инструкций. Однако недавно я заметил, что большинство из них не рассматривает подробно, как нужно правильно снимать изображения. Поэтому я решил создать собственное руководство обо всём, что знаю в фотограмметрии.
Эта статья предназначена для следующих категорий пользователей:
Выражаю особую благодарность Югославу Пендичу (Jugoslav Pendić) за редактирование и дополнение этой статьи. Ещё я благодарю команду, занимающуюся 3D-сканированием, за ликвидацию пробелов в моих знаниях.
Что такое фотограмметрия?
Если вы читаете эту статью, то, надеюсь, вы уже знаете, что такое фотограмметрия. Если вкратце, то это процесс создания 3D-моделей из нескольких изображений одного объекта, сфотографированного с разных углов.
Хотя эта техника совсем не нова, она намного старее современного процесса, и она широко использовалась в картографии и геодезии. Она стала более популярной благодаря доступности из-за увеличения мощности компьютеров, что позволило ей распространиться в другие области, такие как видеоэффекты и разработка игр.
Если вы хотите быстро ознакомиться с началами фотограмметрии, рекомендую изучить следующие материалы:
Программное обеспечение
Существует множество программ для фотограмметрии, которые можно использовать для обработки снятых изображений. Обычно все они дают достаточно хорошие результаты. Однако одни приложения могут иметь преимущества в некоторых областях. Но всё-таки стоит заметить, что хотя правила съёмки фотографий и одинаковы для всего ПО, существуют специфические для разных приложений рекомендации, потому что каждая программа обрабатывает данные по-своему. Эти рекомендации позволяют полностью использовать возможности ПО, и я советую потратить время на ознакомление с ними.
Например, из-за медленности вычислений в Agisoft вы можете стремиться записать в одно изображение как можно деталей. А Reality Capture стремится отфильтровывать эти фоновые детали, потому что они могут вносить шум. Однако Reality Capture быстрее, поэтому для неё можно просто сделать больше фотографий.
И ещё одно примечание: все описания основаны на моём личном опыте работы с этим ПО, который может отличаться от вашего. Рекомендую изучить эти варианты ПО (или другие) и самостоятельно сделать выбор.
Есть также пакет SuRe, который интересен тем, что даже работа с ним многому вас учит — у него есть GUI (самые первые версии работали только с командной строкой) и авторы очень открыто рассказывают о том, что они предлагают. Тем не менее, SuRe почти полностью направлена на использование с камерами большого формата, авторы продают свой код для включения в более удобное пользователям окружение. В SuRe даже нет этапа «выстраивания», он полагается на данные, экспортированные из Pix4D, Agisoft или других продуктов. Он имеет преимущество в скорости генерирования плотных облаков точек и удивительно точно текстурирует модели, но невероятно жаден до ОЗУ, даже больше, чем Agisoft. Кроме того, создаваемые им модели (сетки) имеют потрясающую детализацию, однако с ними сложно работать, если у вас нет мощного компьютера. Пакет не бесплатен, но связавшись с авторами, можно получить его для использования в научных целях.
Компьютер
Требования к компьютеру зависят от выбранного ПО, однако с помощью исследований и экспериментов я выяснил, что для большинства пакетов рекомендуемыми минимальными требованиями являются следующие:
Оборудование
При работе с фотограмметрией обычно используются следующие инструменты:
В качестве высокоточного устройства позиционирования используется мобильное устройство DGPS (differential GPS) или тахеометр. Это в основном относится к использованию дронов для разметки рельефа и в геодезии. Три точки — это самый минимум, возможно, вам понадобится больше. Они располагаются таким образом, чтобы точки равномерно распределялись по всей документируемой области, а несколько находилось в центре. Этого очень сложно добиться на месте съёмки, и обычно такой подход используется в проектах с большим финансированием. Определение масштаба здесь не является проблемой, но позиционирование при геодезических работах означает, что из окончательного результата получаются планы, анализы или средства контроля. Т.е. обычно они будут использоваться в рабочем пространстве GIS.
Инструкции
В этом разделе содержатся общие советы по правильной съёмке изображения и о том, на что стоит обратить внимание.
Во-первых, прочитайте великолепную статью Искусство фотограмметрии: как делать снимки, в ней очень хорошо всё объяснено.
Во-вторых, вот общие советы, полученные с форумов по Reality Capture, от 3D Scanning User Group и из личного опыта.
В-четвёртых, всегда следует с самого начала определяться с целевых разрешением. На самом деле, вам может понадобиться не такое большое разрешение, как вы думаете, что сэкономит время обработки. Разрешение зависит от параметров обработки, разрешения изображений и количества фотографий. Всё это можно и нужно иметь в виду. При сканировании камней для игры, чтобы получить модели высокого разрешения может хватить 20 снимков, в особенности если поверх отсканированной тестуры наложить процедурную текстуру с деталями. Если вы сканируете замок, вам тоже может не понадобиться большое разрешение. Просто отсканируйте замок в низком разрешении, выберите ключевые повторяющиеся элементы и отсканируйте их в высоком разрешении. Затем сгенерируйте остальное. Может возникнуть и противоположная ситуация: потребуется 500 снимков для сканирования одного камешка.
Чаще всего вам не понадобится режим Ultra High Settings в Agisoft или High settings в Reality Capture.
Практика
Теперь, когда вы кое-что знаете о фотограмметрии, вот несколько интересных примеров, которые стоит попробовать:
Другие способы сканирования
Следует знать, что фотограмметрия — не решение всех задач. Существуют другие способы сканирования, в некоторых случаях срабатывающие лучше.
Заключение
Приступайте к работе, не сомневайтесь, постоянно практикуйтесь и пробуйте сканировать любым доступным оборудованием.
Если вы прочитали эту статью и все остальные, на которые я ссылался, и теперь не знаете, что ещё можно изучить, то прочитайте мою статью «Процесс создания готовых игровых текстур и ресурсов с помощью фотограмметрии». Также можно прочитать другие мои статьи на веб-сайте моей игры World Void на странице Devlog.
Если у вас есть вопросы, или вы считаете, что я что-то упустил, то свяжитесь со мной в Твиттере: @JosephRAzzam.
Сравнение 7 систем фотограмметрии. Что лучше выбрать?
Приветствую, Хабр. Это моя первая попытка перевода статьи. Надеюсь, она будет полезна не только жителям хабра, но и археологам, на которых ориентирован оригинал статьи.
Когда я объясняю людям, что фотограмметрия аналогична процессу 3D-сканирования с фотографиями, мне всегда не доверяют, так как это кажется слишком фантастическим, чтобы быть правдой. Только представьте себе, сделать несколько снимков объекта, отправить их в алгоритм и получить текстурированную 3D модель. Вау!
После представления модели, второй вопрос, который задают – вопрос точности. Какова точность 3D-сканирования по фото? Ответ: субмиллиметровый диапазон. И снова я удивлен выражением недоверия. К счастью, наша команда написала научную статью об эксперименте, который показал среднее отклонение 0,78 мм, то есть меньше одного миллиметра по сравнению со сканированной 3D моделью, сделанной с помощью лазерного сканера.
Так же, как на рынке лазерных сканеров, в фотограмметрии есть много различных опций ПО для проверки. Они варьируются от собственных и закрытых решений, до открытых и бесплатных. И точно, среди такого рода программ и решений, приходит третий вопрос, до сих пор остающийся без ответа, по крайней мере официально: какое программное обеспечение фотограмметрии является лучшим?
На этот вопрос сложно ответить, потому что ответ во многом зависит от ситуации. Но думая об этом, среди многих подходов, которые я взял в течение долгого времени, я решил ответить так, чтобы дать простой и объёмный ответ.
Череп лорда Сипана
В июле 2016 года я поехал в Ламбаек, Перу, где я встретился лицом к лицу с черепом лорда Сипана. Анализируя его, я понял, что можно было бы восстановить его лицо с помощью судебно-медицинской техники реконструкции лица. Череп, однако, был сломан и искажен годами давления, которое он перенес в своей могиле, найденной полной в 1987, одной из больших археологических экспедиций во главе с доктором Вальтером Альва.
Чтобы восстановить череп, я сделал 120 фотографий на смартфон ASUS Zenphone 2 и с этими фотографиями, я возобновил работы по реконструкции. Параллельно этому процессу, профессиональный фотограф Raúl Martin из отдела маркетинга Inca University Garcilaso de la Vega (спонсор моей поездки) сделал 96 фотографий на камеру Canon EOS 60D. Из них я выбрал 46 изображений, чтобы продолжить эксперимент.
Специалист Министерства культуры Перу, начинает процесс оцифровки черепа (в центре)
Спустя день после фотографического обследование, перуанское Министерство культуры послало специалистов в области лазерного сканирования, для сканирования черепа лорда Сипана, с помощью оборудования Leica ScanStation C10. Окончательное облако точек было отправлено через 15 дней, то есть тогда, когда я получил данные от лазерного сканера, все модели, полученные с помощью фотограмметрии были готовы.
Нам пришлось ждать всё это время, так как модель, полученная с помощью оборудования является золотым стандартом, то есть, все сетки, полученные с помощью фотограмметрии будут сопоставляться, одна за другой, с ней.
Полное облако точек, импортированное в MeshLab после преобразования сделаного в CloudCompare
3D-сетка реконструированы из облака точек. Цвет вершины (выше) и поверхность только с одним цветом (ниже).
Как было отмечено выше, челюсть и поверхность стола, где были размещены части были также отсканированы. Часть, связанная с черепом, была изолирована и убрала для эксперимента, который будет выполнен. Я не буду иметь дело с этими деталями здесь, так как объем отличается. Я уже писал другие материалы, объясняющие, как удалить несущественные части облака точек / сетки.
Для сканирования с помощью фотограмметрии, были выбраны системы:
1) OpenMVG (Open Multiple View Geometry library) + OpenMVS (Open Multi-View Stereo reconstruction library): Разряженное облако точек рассчитывается в OpenMVG и плотное облако точек в OpenMVS.
2) OpenMVG + PMVS (Patch-based Multi-view Stereo Software): Разряженное облако точек рассчитывается в OpenMVG, а затем, плотное облако точек с помощью PMVS.
3) MVE (Multi-View Environment): Полная система фотограмметрии.
4) Agisoft Photoscan: Полная и закрытая система фотограмметрии.
5) Autodesk Recap 360: Полная система онлайн фотограмметрии.
6) Autodesk 123D Catch: Полная система онлайн фотограмметрии.
7) РРТ-GUI (Python Photogrammetry Toolbox с графическим интерфейсом пользователя): Разряженное облако точек генерируется Bundler, а позже PMVS создает плотное облако.
Выше у нас есть таблица, содержащая важные аспекты каждой из систем. В целом по крайней мере по-видимому, нет ни одной системы, которая выделяется намного больше, чем другие.
Генерация разряженного облака + генерация плотного облака + 3D сетка + текстуры, немного времени, чтобы загрузить фотографии и 3D сетки (в случаях с Recap 360 и 123D Catch).
Выравнивание на основе общих точек
Выровненные черепа
Все сетки были импортированы в Blender и совмещены с лазерным сканированием.
Присмотревшись, мы увидим, что результат согласуется с менее плотным результатом подразделений в сетке. Конечная цель сканирования, по крайней мере, в моей работе – получить сетку, которая согласуется с исходным объектом. Если эта сетка упрощается, так как она находится в гармонии с реальным объемным аспектом, это даже лучше, потому что, когда 3D-сетка имеет меньше граней, то она быстрее будет обработана при выпуске.
Если мы посмотрим на размеры файлов (.stl экспортированный без текстуры), что является хорошим показателем сравнения, мы увидим, что чистая сетка созданная в OpenMVG + OpenMVS, имеет размер 38.4 MB и Recap 360 всего 5,1 Мб!
После нескольких лет работы с фотограмметрией, я понял, что лучше всего делать, когда мы сталкиваемся с очень плотной сеткой, это упростить сетку, так что мы можем обрабатывать её в режиме реального времени. Трудно сказать, действительно это так или нет, поскольку это запатентованное и закрытое решение, но я полагаю, что Recap 360 и 123D Catch генерируют сложные сетки, но в конце процесса они значительно её упрощают, так что они работают на любом оборудовании (ПК и смартфоны), желательно с поддержкой WebGL (интерактивное 3D в интернет-браузере).
Вскоре мы вернемся к обсуждению этой ситуации, связанной с упрощением сеток, а теперь давайте сравним их.
Как работает сравнение 3D сеток
После того, как все черепа были очищены и приведены в соответствие с золотым стандартом (лазерного сканирования) пришло время сравнить сетки в CloudCompare. Но как работает технология сравнения 3D сеток?
Для иллюстрации я создал некоторые дидактические элементы. Давайте вернемся к ним.
Этот дидактические элемент имеет дело с двумя плоскостями с поверхностями нулевой толщины (это возможно в 3D моделировании), образуя X.
Тогда мы имеем объект А и объект B. В окончательной части обеих сторон концы плоскостей отстоят на миллиметры. Там, где существует пересечение, расстояние, конечно, 0 мм.
При сравнении двух сеток в CloudCompare они получаются пигментированными с цветовым спектром, который идет от синего до красного. На рисунке выше показаны два уже пигментированных плана, но мы должны помнить, что они представляют собой два различных элемента и сравнение производится в двух моментах, один по отношению к другому.
Теперь у нас есть четкое представление о том, как это работает. В основном то, что происходит, заключается в следующем: мы устанавливаем предел расстояния, в данном случае 5 мм. Сетка «из» старается быть пигментирована красным, а та, что «в» имеет тенденцию быть окрашенной синим и то, что находится на пересечении, то есть на той же линии, как правило, пигментировано в зеленый цвет.
Мы можем удалить части, выходящие за пределы визуализации, чтобы они не мешали нам.
Таким образом, в результате, в сетке имеется только процентная часть структуры
Для тех, кто понимает немного больше 3D моделировании, ясно, что сравнение производится по вершинам, а не граням. Из-за этого, у нас есть зазубренный край.
Сравнение черепов
OpenMVG+OpenMVS
OpenMVG+PMVS
Photoscan
MVE
Recap 360
123D Catch
PPT-GUI
Поставив в сравнении всё рядлм, мы видим, что существует сильная тенденция сведения ошибки к нулю. Все семь систем фотограмметрии эффективно совместились с лазерным сканированием!
Обратимся теперь к вопросу о размере файлов. Одна вещь, которая всегда беспокоила меня в сравнении с участием результатов фотограмметрии был учет полигонов, генерируемых алгоритмом реконструкции сетки. Как я уже говорил выше, это не имеет особого смысла, так как в случае черепа мы можем упростить поверхность и тем не менее она сохраняет информацию, необходимую для работы при проведении антропологического обследования и судебно-медицинской реконструкции лица.
В свете этого, я решил выровнять все файлы, оставляя их совместимы по размеру и полигонами. Чтобы сделать это, я взял за основу меньший размер файла, который генерирует 123D Catch и использовал фильтр MeshLab Quadratic Edge Collapse Detection до 25000. Это сделало 7 STL файлов размером 1,3 МБ каждый.
С помощью этого выравнивания мы имеем справедливое сравнение между системами фотограмметрии.
Выше мы можем визуализировать этапы работы. В Original положены черепа, выровненные изначально. Тогда в Compared мы наблюдаем черепа только областях, представляющих интерес и, наконец, в Decimated мы имеем черепа, выровненные по размеру. Для ничего не подозревающего читателя это, кажется, одно изображение, помещенное рядом.
Когда мы представляем себе сравнение в «твердой» модели, мы понимаем, как все они совместимы. Теперь давайте перейдем к выводам.
Выводы
Наиболее очевидный вывод заключается в том, что все программы, за исключением MVE, показали меньшие определения в сетке, и все системы фотограмметрии имели очень схожие визуальные результаты.
Означает ли это, что MVE уступает другим?
Нет, совсем наоборот. MVE является очень надежной и практичной системой. В другом варианте я представлю его использование в случае изготовления протеза с миллиметровым качеством. В дополнение к этому случаю он был также использован в других проектах, делающих протезирование, а это область, которая требует большой точности, и она была успешной. Кейс был даже опубликован на официальном сайте Darmstadt University, института, который разрабатывает его.
Какая система фотограмметрии является лучшей?
Очень трудно ответить на этот вопрос, потому что многое зависит от пользовательского стиля.
Какая система является лучшей для начинающих?
Несомненно, это Autodesk Recap 360. Это онлайн-платформа, которая может быть доступна из любой операционной системы, которая имеет интернет-браузер с поддержкой WebGL. Я уже опробовал непосредственно на смартфоне, и она работала. На курсах, которые я проводил о фотограмметрии, я использовал это решение все больше и больше, потому что студенты, как правило, понимают процесс гораздо быстрее, чем другие варианты.
Какая система является лучшей для моделирования и анимации для профессионалов?
Я хотел бы указать на Agisoft PhotoScan. Он имеет графический интерфейс, который позволяет, помимо прочего создавать маски в интересующей области для фотограмметрии, а также позволяет ограничить область расчета, что резко сокращает время обработки на машине. Кроме того, она экспортирует в самых разнообразных форматах, предлагая возможность показать, где были камеры во время фотографирования сцены.
Какая система Вам нравится больше всего?
Ну, лично я ценю все в определенных ситуациях. Моя любимая на сегодня смесь это OpenMVG + OpenMVS. Оба являются открытыми и могут быть доступны с помощью командной строки, что позволяет мне контролировать ряд свойств, регулируя процесс сканирования при необходимости, будь то реконструкция лица, черепа или любого другого куска. Хотя мне очень нравится это решение, у него есть некоторые проблемы, такие как не совмещение камер по отношению к моделям, когда редкие облака сцены импортируется в Blender. Чтобы решить эту проблему я использую РРТ-GUI, который генерирует разреженное облако из Bundler и соответствия, то есть выравнивает камеры по отношению к облаку более точно. Еще одной проблемой, связанной с OpenMVG + OpenMVS является то, что он в конечном итоге не создает полное плотное облако, даже если разреженные данные показывают, что все камеры выровнены. Чтобы решить эту проблему я использую PMVS, который, хотя и генерирует менее плотные сетки, чем OpenMVS, он очень надежен и работает практически во всех случаях. Еще одна проблема с вариантами на открытом исходном коде – необходимость компиляции программ. Все работает очень хорошо на моих компьютерах, но, когда я должен передать решения студентам или заинтересованным, это становится большой головной болью. Для конечного пользователя важно иметь программное обеспечение, в котором на одной стороне загружаются изображения, а с другой получается 3D модель и это предлагают запатентованные решения. Кроме того, лицензии полученных моделей понятнее в этих приложениях, и я чувствую себя безопаснее в области профессионального моделирования, чем, например, при использовании шаблонов, генерируемых в PhotoScan. Технически, вы платите за лицензию и можете генерировать шаблоны по своему желанию, используя их в своих работах. Так, что это решение подобно решениям от Autodesk.