Открыть сервис

Structure from Motion

Structure from Motion (сокр. SfM, с англ. — «структура из движения») — это фотограмметрический метод трёхмерной реконструкции, позволяющий восстанавливать трёхмерную геометрию объектов и сцен, а также параметры камеры (положение, ориентацию, фокусное расстояние) на основе набора двумерных изображений, полученных с разных точек съёмки. Метод основан на анализе соответствий между ключевыми точками на перекрывающихся снимках и не требует предварительной информации о калибровке камеры или положении объекта в пространстве. SfM широко применяется в компьютерном зрении, геодезии, археологии, робототехнике, кинематографии и цифровом моделировании.

История

Истоки метода Structure from Motion восходят к развитию фотограмметрии в XIX веке, однако его современная математическая основа была заложена в 1970–1980-х годах с появлением компьютерного зрения. В 1979 году Ханс-Петер Моррисон и Джеймс Кроули предложили алгоритмы восстановления глубины по последовательности кадров. Ключевой прорыв произошёл в 1990-х годах, когда Ричард Хартли и другие исследователи формализовали задачу SfM как решение системы уравнений, связывающих координаты точек на изображениях с их трёхмерными координатами. В 2000-х годах развитие методов поиска и описания ключевых точек (SIFT, SURF) и алгоритмов разреженной реконструкции (Bundle Adjustment) сделало SfM пригодным для обработки тысяч изображений. С 2010-х годов метод стал доступен широкому кругу пользователей благодаря открытым библиотекам (OpenMVG, COLMAP, VisualSFM) и интеграции в коммерческие продукты (Agisoft Metashape, RealityCapture).

Основные принципы

1. Поиск и описание ключевых точек

На каждом изображении алгоритм находит характерные особенности (ключевые точки) — углы, границы, текстуры, устойчивые к изменениям освещения, масштаба и поворота. Для этого используются дескрипторы, например SIFT (Scale-Invariant Feature Transform) или AKAZE. Каждая точка описывается вектором признаков, позволяющим сопоставлять её с точками на других снимках.

2. Сопоставление точек

Для каждой пары изображений вычисляется множество соответствий между ключевыми точками. Если точка на одном снимке соответствует точке на другом, она может быть одной и той же физической точкой на объекте. Для отбора надёжных соответствий применяется геометрическая фильтрация, например алгоритм RANSAC (Random Sample Consensus), который отбрасывает выбросы на основе эпиполярной геометрии.

3. Оценка относительного положения камер

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

4. Триангуляция

Зная параметры камер и координаты точек на изображениях, можно вычислить трёхмерные координаты каждой точки методом триангуляции: лучи от камеры к точке пересекаются в пространстве. Результатом является разреженное облако точек (sparse point cloud), представляющее геометрию сцены.

5. Глобальная оптимизация (Bundle Adjustment)

Начальная реконструкция содержит ошибки из-за шума и неточных соответствий. Bundle Adjustment — это нелинейная оптимизация, которая одновременно корректирует трёхмерные координаты точек и параметры камер (вращение, перемещение, фокусное расстояние, радиальная дисторсия) так, чтобы минимизировать сумму квадратов ошибок проекции точек на изображения. Этот этап существенно повышает точность.

6. Плотная реконструкция (опционально)

После получения разреженного облака и точных параметров камер можно построить плотное облако точек (dense point cloud) или сетку (mesh) с помощью методов стереосопоставления (например, MVS — Multi-View Stereo). Для этого каждый пиксель изображения сопоставляется с соответствующими пикселями на соседних снимках, что позволяет восстановить детальную поверхность.

Классификация методов SfM

По типу входных данных

По способу инициализации

По масштабу

Применение

Археология и культурное наследие

SfM используется для создания точных 3D-моделей археологических объектов, раскопок, фресок и скульптур. Например, метод применялся для документирования храмов Пальмиры (Сирия) до разрушения, а также для реконструкции древних городов в Перу и Греции. Позволяет получать модели с разрешением до 0,1 мм.

Геодезия и картография

С помощью беспилотных летательных аппаратов (БПЛА) и SfM строятся ортофотопланы и цифровые модели рельефа (ЦМР) для мониторинга оползней, ледников, строительных площадок. Точность может достигать 1–5 см при высоте съёмки 50–100 м.

Робототехника и навигация

В системах SLAM (Simultaneous Localization and Mapping) SfM используется для одновременного построения карты окружающей среды и определения положения робота. Например, в автономных автомобилях и дронах.

Кинематография и компьютерная графика

SfM применяется для совмещения виртуальных объектов с реальной съёмкой (match moving). Программы, такие как PFTrack и SynthEyes, используют SfM для восстановления движения камеры по видеоряду.

Медицина и биология

Метод используется для создания 3D-моделей органов по серии медицинских снимков (например, КТ или МРТ), а также для реконструкции поверхности клеток и тканей в микроскопии.

Преимущества и ограничения

Преимущества

Ограничения

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

Открытое

Коммерческое

Интересные факты

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →