Это многостраничный печатный вид этого раздела. Нажмите что бы печатать.

Вернуться к обычному просмотру страницы.

Запуск COLMAP с настроенными параметрами

В этом разделе показано, как настройка параметров COLMAP может улучшить реконструкцию. Шаги по заданию путей и созданию выходных папок такие же, как в разделе Запуск COLMAP с параметрами по умолчанию, поэтому здесь они не повторяются.

Запустите извлечение признаков (feature extraction)

Команда извлечения признаков не отличается от конфигурации по умолчанию. Она использует GPU‑ускорение и предполагает одну камеру с pinhole‑моделью:

%COLMAP_PATH% feature_extractor ^
    --database_path %DB_PATH% ^
    --image_path %IMAGE_PATH% ^
    --ImageReader.single_camera 1 ^
    --ImageReader.camera_model PINHOLE ^
    --SiftExtraction.use_gpu 1

Команда должна дать вывод, похожий на запуск по умолчанию, что подтверждает успешное извлечение SIFT‑признаков из каждого изображения.

Запустите сопоставление признаков (feature matching) (настроенные параметры)

Используйте следующую команду, чтобы запустить сопоставление признаков с изменёнными настройками:

%COLMAP_PATH% exhaustive_matcher ^
    --database_path %DB_PATH% ^
    --SiftMatching.use_gpu 1 ^
    --SiftMatching.guided_matching 1

По сравнению с конфигурацией по умолчанию здесь добавлен параметр --SiftMatching.guided_matching 1, который включает guided matching (сопоставление с геометрическими ограничениями). Guided matching использует ограничения на базе двухвидовой геометрии (two‑view geometry), чтобы отфильтровать кандидатные соответствия. Это уменьшает число выбросов и повышает устойчивость, особенно в сценах со слабой текстурой или ограниченным перекрытием изображений.

Пример вывода:

==============================================================================
Feature matching
==============================================================================
Creating SIFT GPU feature matcher
Generating exhaustive image pairs...
Matching block [1/2, 1/2]
in 1.112s
Matching block [1/2, 2/2]
in 0.435s
Matching block [2/2, 1/2]
in 0.987s
Matching block [2/2, 2/2]
in 0.952s
Elapsed time: 0.059 [minutes]
Loading database
Loading cameras...
 1 in 0.001s
Loading matches...
 213 in 0.001s
Loading images...
 84 in 0.009s (connected 84)
Loading pose priors...
 0 in 0.001s
Building correspondence graph...
 in 0.009s (ignored 0)
Elapsed time: 0.000 [minutes]

Запустите разреженную 3D‑реконструкцию (настроенные параметры)

Чтобы повысить устойчивость реконструкции, используйте следующую команду с ослабленными порогами:

%COLMAP_PATH% mapper ^
    --database_path %DB_PATH% ^
    --image_path %IMAGE_PATH% ^
    --output_path %SPARSE_PATH% ^
    --Mapper.init_min_tri_angle 2 ^
    --Mapper.init_min_num_inliers 4 ^
    --Mapper.abs_pose_min_num_inliers 3 ^
    --Mapper.abs_pose_max_error 8

Справка по параметрам

Эти параметры ослабляют несколько порогов COLMAP по умолчанию:

  • --Mapper.init_min_tri_angle 2 (по умолчанию: 16) Минимальный угол триангуляции (в градусах). Меньшие значения позволяют триангулировать больше точек, но могут снижать точность.

  • --Mapper.init_min_num_inliers 4 (по умолчанию: 100) Минимальное число проверенных соответствий, необходимое для инициализации модели.

  • --Mapper.abs_pose_min_num_inliers 3 (по умолчанию: 30) Минимальное число 2D–3D соответствий, необходимое для регистрации нового изображения.

  • --Mapper.abs_pose_max_error 8 (по умолчанию: 12) Допустимая ошибка репроекции (в пикселях) на этапе регистрации.

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

Примечание: Эти параметры подобраны специально под датасет, используемый в туториале. Они не являются универсальными значениями «по умолчанию». Скорее всего, вам придётся подстроить их под свою сцену, качество данных и цели реконструкции.

Пример вывода

При успехе COLMAP покажет последовательную (incremental) регистрацию изображений:

Finding good initial image pair
Initializing with image pair #20 and #39
Global bundle adjustment
Registering image #19 (3)
=> Image sees 110 / 618 points
Retriangulation and Global bundle adjustment
Registering image #1 (4)
=> Image sees 167 / 689 points
...

В логе не должно быть сообщений вида:

=> No good initial image pair found.

Также папка %SPARSE_PATH% (обычно sparse/) должна содержать только одну подпапку, как правило 0.
Если появляются несколько подпапок (например 1 или 2), это означает, что COLMAP построил несколько несвязанных 3D‑сцен. Обычно это признак того, что не все изображения удалось зарегистрировать в одну модель.

Просмотр реконструкции в COLMAP GUI

После завершения реконструкции можно посмотреть результат в COLMAP GUI:

  1. Запустите COLMAP.
  2. Выберите File → Import Model.
  3. В диалоге выбора папки перейдите в %SPARSE_PATH%\0 (обычно sparse/0).
  4. Нажмите Select Folder.

COLMAP отобразит разреженное облако точек и положения камер.

Чтобы улучшить читаемость визуализации:

  • Откройте Render → Render Options
  • Настройте Point size и Camera size

В строке статуса внизу должно быть что‑то вроде:

84 Images - 5863 Points

Это означает, что все 84 изображения были успешно зарегистрированы, и получилась разреженная реконструкция с 5 863 3D‑точками.

Рисунок 6. COLMAP GUI: разреженное облако точек и позы камер.

Опционально: запуск всего пайплайна через batch‑скрипт

Весь пайплайн COLMAP можно автоматизировать через batch‑файл. Пример .bat со всеми командами из раздела доступен здесь: scripts/run_colmap_adjusted.bat

Перед запуском скрипта обновите пути под вашу локальную установку.

Референсные результаты

Референсный вывод COLMAP (разреженное облако точек и оценённые позы камер) доступен в репозитории датасета из примера: datasets/plush-dog.

Замечания о подборе параметров и качестве датасета

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

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

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

  • Датасет может быть снят в неконтролируемых условиях
  • Освещение, текстура или настройки камеры могут быть не под вашим контролем
  • В сцене могут быть большие безтекстурные области или отражающие поверхности

В таких случаях настройка параметров становится необходимой, чтобы компенсировать ограничения входных данных.