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

COLMAP

COLMAP — это кроссплатформенная программа с открытым исходным кодом для фотограмметрии и трёхмерной реконструкции, предназначенная для построения плотных облаков точек и трёхмерных моделей объектов и сцен на основе набора двумерных изображений. Основным методом работы COLMAP является структура из движения (Structure from Motion, SfM) и мультивидовая стереозрение (Multi-View Stereo, MVS). Программа разрабатывается на кафедре информатики Технического университета Мюнхена (TUM) и распространяется под лицензией BSD.

История

Разработка COLMAP началась в 2014 году в рамках исследовательской работы группы Computer Vision and Artificial Intelligence Group Технического университета Мюнхена под руководством профессора Даниэля Кремерса. Первая публичная версия была выпущена в 2016 году. Проект быстро приобрёл популярность в научном сообществе благодаря своей эффективности, точности и открытости исходного кода. Ключевые версии включают:

  • 2016 год — релиз COLMAP 1.0, реализующий базовые алгоритмы SfM и MVS.
  • 2018 год — версия 3.4, в которой были добавлены поддержка облачных вычислений и улучшенные методы глобальной оптимизации.
  • 2020 год — версия 3.7, включающая интеграцию с нейросетевыми методами (например, COLMAP + NeRF).
  • 2023 год — версия 3.9, с улучшенной поддержкой GPU-ускорения и новыми алгоритмами для работы с большими наборами данных.

Принцип работы

COLMAP реализует двухэтапный конвейер обработки изображений.

Этап 1: Структура из движения (SfM)

На этом этапе программа определяет взаимное расположение камер и трёхмерные координаты характерных точек сцены. Процесс включает:

  1. Извлечение и сопоставление признаков — с помощью алгоритмов SIFT (Scale-Invariant Feature Transform) или его модификаций (например, RootSIFT) на каждом изображении находятся ключевые точки, которые затем сопоставляются между парами снимков.
  2. Оценка относительной ориентации — для каждой пары изображений вычисляется фундаментальная матрица или матрица гомографии, позволяющая определить взаимное положение камер.
  3. Глобальная оптимизация — с помощью метода пучковой коррекции (Bundle Adjustment) минимизируется ошибка перепроецирования всех трёхмерных точек на все изображения, что позволяет получить согласованную трёхмерную модель и точные параметры камер (фокусное расстояние, дисторсия, положение в пространстве).

Этап 2: Мультивидовая стереозрение (MVS)

После получения разреженного облака точек и параметров камер COLMAP переходит к плотной реконструкции. На этом этапе для каждого пикселя изображения вычисляется глубина, что позволяет получить плотное облако точек. Используются методы:

  • PatchMatch Stereo — итеративный алгоритм, который для каждого пикселя находит наилучшую плоскость глубины, минимизируя фотометрическую ошибку между соседними изображениями.
  • Глобальная оптимизация глубины — с помощью методов, основанных на графах (Graph Cut) или вариационных подходах, устраняются артефакты и сглаживаются результаты.

Классификация и виды

COLMAP можно классифицировать по нескольким признакам:

  • По типу реконструкции:
  • Разреженная реконструкция (SfM) — создание облака из нескольких тысяч характерных точек.
  • Плотная реконструкция (MVS) — создание облака из миллионов точек, пригодного для построения полигональных сеток.
  • По способу ввода данных:
  • Автоматический режим — программа сама определяет порядок обработки и параметры.
  • Ручной режим — пользователь может задавать калибровку камер, маски, ограничения.
  • По вычислительной платформе:
  • CPU-версия — работает на центральном процессоре, подходит для небольших наборов данных.
  • GPU-версия — использует видеокарту (CUDA) для ускорения вычислений, рекомендуется для больших проектов.

Устройство и интерфейс

COLMAP имеет два основных режима работы:

  • Графический интерфейс (GUI) — предоставляет визуальное представление облака точек, панели управления и инструменты для редактирования. Позволяет в реальном времени просматривать результаты, добавлять или удалять изображения, изменять параметры.
  • Командная строка (CLI) — используется для пакетной обработки, автоматизации и интеграции в скрипты. Команды позволяют запускать все этапы реконструкции с заданными параметрами.

Программа поддерживает импорт изображений в форматах JPEG, PNG, TIFF, а также экспорт результатов в форматы PLY, OBJ, XYZ, PCD и другие. Внутренняя структура данных основана на бинарных файлах (.bin) и текстовых файлах (.txt), что позволяет легко обмениваться данными с другими программами (например, MeshLab, Blender, CloudCompare).

Применение

COLMAP широко используется в различных областях науки и техники:

  • Археология и культурное наследие — создание цифровых копий памятников, артефактов и архитектурных объектов. Например, реконструкция древнеримских форумов или египетских гробниц.
  • Геодезия и картография — построение цифровых моделей рельефа (ЦМР) и ортофотопланов на основе аэрофотосъёмки с беспилотных летательных аппаратов.
  • Робототехника — использование для визуальной одометрии и построения карт окружающей среды (SLAM) в мобильных роботах и дронах.
  • Компьютерная графика и анимация — создание трёхмерных моделей для игр, фильмов и виртуальной реальности. COLMAP часто используется в пайплайнах для генерации данных для нейросетей, таких как NeRF (Neural Radiance Fields) и 3D Gaussian Splatting.
  • Медицина — реконструкция трёхмерных моделей органов и тканей по серии медицинских снимков (например, КТ или МРТ), хотя для этого существуют специализированные инструменты.

Примеры использования

  • Реконструкция собора Святого Петра в Риме — в 2019 году группа исследователей из TUM использовала COLMAP для создания детальной трёхмерной модели фасада собора на основе 5000 фотографий, сделанных с земли и с дрона.
  • Создание цифровых двойников городов — в рамках проекта «Умный город» в Москве (Россия) COLMAP применялся для построения трёхмерных моделей отдельных зданий и кварталов по данным аэрофотосъёмки.
  • Интеграция с нейросетями — в 2022 году компания NVIDIA выпустила инструмент Instant NeRF, который использует COLMAP для предварительного вычисления параметров камер, а затем обучает нейросеть для синтеза новых видов сцены.

Критика и ограничения

Несмотря на широкую популярность, COLMAP имеет ряд недостатков:

  • Высокие требования к вычислительным ресурсам — для больших наборов данных (более 10 000 изображений) требуется значительное время обработки и объём оперативной памяти (до 64 ГБ и более).
  • Чувствительность к качеству исходных изображений — размытые, пересвеченные или снятые с большим движением камеры снимки могут привести к ошибкам в сопоставлении признаков и снижению точности.
  • Отсутствие встроенной поддержки текстур — COLMAP создаёт только облака точек и сетки, но не генерирует текстуры для моделей. Для текстурирования требуется использование сторонних инструментов (например, MeshLab или Blender).
  • Сложность настройки — для достижения оптимальных результатов пользователю необходимо понимать принципы фотограмметрии и уметь подбирать параметры (например, пороги для сопоставления признаков, параметры фильтрации глубины).

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

  • COLMAP является одним из самых цитируемых проектов в области компьютерного зрения — по состоянию на 2024 год на него ссылаются более 5000 научных статей.
  • Исходный код программы написан на C++ и Python, что позволяет легко модифицировать и расширять функциональность.
  • COLMAP поддерживает работу с камерами, имеющими неизвестные параметры — программа может автоматически оценить фокусное расстояние, дисторсию и положение камеры на основе анализа изображений.

Источники

  • Johannes L. Schönberger, Jan-Michael Frahm. «Structure-from-Motion Revisited». Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2016.
  • Johannes L. Schönberger, Enliang Zheng, Jan-Michael Frahm, Marc Pollefeys. «Pixelwise View Selection for Unstructured Multi-View Stereo». European Conference on Computer Vision (ECCV), 2016.
  • Официальная документация COLMAP: https://colmap.github.io/
  • Технический университет Мюнхена, кафедра информатики. «COLMAP: A General-purpose Structure-from-Motion and Multi-View Stereo Pipeline». 2020.

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

На главную BFOmetr →