Теперь можно определиться с инструментарием.

Для реализации нашей задачи будем использовать связку open source приложений:

Первое что нам понадобиться это приложение VisualSFM, которое абсолютно безвозмездно берем тут, попутно выяснив что VisualSFM это приложение для создания 3д реконструкций использующее алгоритм SFM (Structure From Motion), и позволяющее быстро определить, рассчитать и вычислить зависимости уникальных точек на изображениях за счет использования многопоточных параллельных вычислений.

А так же то, что для расчета и визуализации более плотной поверхности нам понадобиться установить внешний инструмент PMVS/CMVS, который скачиваем архивом вот здесь.

VisualSFM позволит нам загрузить папку с изображениями, найти уникальные точки в каждом изображении, рассчитать из этих данных 3D-модель, и затем детализировать эту модель, “уплотнив” полученное облако точек. На выходе мы получим:

 

  • Файл .out (формат Bundler), который хранит вычисленные локации камер и проанализированное облако точек используемое программным обеспечением для расчета и определения этих локаций.
  • Файл .ply, который хранит более плотное облако точек, координаты каждой, вместе с информацией о цвете и нормале (векторе, перпендикулярного плоскости, в которой лежит исходная точка).

Распаковываем архив с программой VisualSFM в удобное место. Далее туда же копируем содержимое папки CMVS-PMVS-master\binariesWin-Linux\Win64-VS2010 распакованного архива PMVS/CMVS (в моем случае скопировано содержимое директории Win64-VS2010, пользователям Mac или Linux следует выбрать соответствующие директории).

Приступим.

Запустим VisualSFM и загрузим наши изображения, выбрав соответствующую иконку, или воспользовавшись меню File → Open+ Multi Images.

images_loader

selector_images_window

 

После чего идем в меню SfM→Pairwise Matching→Compute Missing Match, и запускаем процесс определения и анализа уникальных точек на изображениях и их связей или шлепаем иконку.

 

run_computes

 

После того как программа проанализирует загруженные изображения (времени этот процесс может занять предостаточно, поэтому предварительно удалите все нечеткие размытые и пр. “неполучившиеся” фотографии, тем самым исключив вероятность некорректного вычисления и сократив потраченное на него время), результат можно будет посмотреть выбрав в строке меню SfM→Pairwise Matching→Show Spanning Forest.

Далее запустим процесс расчета 3д реконструкции на основе полученной в результате информации выбрав в строке меню SfM→Reconstruct Sparce, или кликнув по соответствующей иконке.

run_reconstuction

 

Процесс реконструкции в VisualSFM является полностью интерактивным и позволяет панорамировать, вращать и масштабировать сцену в  3D-пространстве в ходе вычислений.

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

compute_of_reconstruction

 

Следующий шаг – создание более плотного облака точек, которые мы будем использовать далее, для создания меша. Выберите в строке меню SfM→Reconstruct Dense, или просто жмите иконку CMVS после чего укажите программе путь сохранения проекта, и идите попейте чайку, на вычисления понадобиться некоторое время.

run_dense

после того как в окне журнала появилось сообщение о том что процесс создание плотного облака точек завершен выберите View→Dense 3D Points

 

 

result_of_computes_CMVSresult_of_CMVScomputes

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

Однако едем дальше.

3 мысли о «Фотограмметрия — облако точек VisualSFM»

  1. Как скоро планируется продолжение серии?
    Жду не дождусь статьи по MeshLab

  2. Упоминания: Фотограмметрия - первым делом - 3drewwviwer

Комментарии закрыты.