Фотограмметрия (Photogrammetry)

Автор: | 21.09.2020

Введение
Пример реконструкции 3D-объекта
Алгоритм 3D реконструкции по набору изображений
Описание технологии работы программных продуктов по трехмерной фотограмметрии
Полезные ссылки

Введение

Фотограмметрия — реконструкция поверхности 3D объекта с помощью фотографий (по одному или нескольким изображениям).

В статье 3D-реконструкция по двум изображениям была представлена простая математическая модель восстановления облака точек.

Пример реконструкции 3D-объекта

Ниже рассмотрен пример реконструкции 3D-объекта в редакторе 3DF Zephyr, совершаемого по множеству фото.

Загружаем и устанавливаем 3DF Zephyr Free.

Далее выполняем действия в соответствии с описаниями по ссылкам Getting started with 3DF Zephyr  и  3д-сканирование: Фотограмметрия.

  • Создаем новый проект и импортируем (перетаскиваем) в него первых 50 загруженных фото (В версии 3DF Zephyr Free ограничение на 50 фото).
  • Выполняем соответствующие настройки и запускаем процесс создания облака точек. Через несколько минут получаем облако точек вместе с расставленными вокруг него камерами

  • Запускаем генерацию 3D-модели. Процесс длился около 20 часов. В результате был получен следующий результат (см. рис. ниже).

Алгоритм 3D реконструкции по набору изображений

Алгоритм следующий:

  1. Определяются ключевые точки (см. Выделение особенностей на изображении).
  2. Устанавливается соответствие между между ключевыми точками на перекрывающихся фрагментах  последовательных пар изображений.
  3. Оценивается соответствие ключевых точек. Отфильтровываются ошибочные точки.
  4. По 2D координатам ключевых точек пар изображений решается система линейных уравнений и находятся параметры  положения камер (подробнее см. Геометрическая модель камеры — внешние и внутренние параметры, а также Калибровка камеры).
  5. Определяются 3D координаты  точек по соответствию цвета на перекрывающихся фрагментах  последовательных пар изображений (см. алгоритм в статье 3D-реконструкция по двум изображениям).

Продолжение описания алгоритма см. в статье  От облака точек к поверхности.

Описание технологии работы программных продуктов по фотограмметрии

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

Каждое соответствие становится ключевой точкой. Если ключевая точка найдена на трех фотографиях и более, программа строит эту точку в пространстве. Чем больше таких точек, тем лучше определяются координаты точки в пространстве. Следовательно, чем больше пересечений между фотографиями, тем точнее будет модель. Пересечение от 60 до 80% является оптимальным.

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

В процессе обработки фотографий создается расширенное облако точек (совокупность всех 3D­ точек), которое используется для генерирования поверхности, составленной из полигонов. В заключение определяется, какие пиксели на фотографии соответствуют какому полигону. Для этого 3D ­модель развертывается в плоскость и затем пространственное положение точки ставится в соответствие оригинальной фотографии для задания цвета.

Полезные ссылки:

 

Автор: Николай Свирневский