📷
colmapとpycolmapのCLI/API比較表
COLMAPのコマンドラインインターフェース(CLI)とPyCOLMAPのPython APIの機能を整理します。
最新の情報は、各OSSの公式ページを参照してください。
📊 COLMAP CLI と PyCOLMAP API の機能比較表
機能カテゴリ | 小機能カテゴリ | COLMAP CLI コマンド | PyCOLMAP API 関数・クラス pycolmap.xxx |
---|---|---|---|
特徴抽出とマッチング | 特徴抽出 | feature_extractor |
extract_features() |
特徴マッチング |
exhaustive_matcher sequential_matcher spatial_matcher vocab_tree_matcher
|
match_exhaustive() match_sequential() match_spatial() match_vocabulary_tree()
|
|
スパース再構成(SfM) | インクリメンタル再構成 |
mapper hierarchical_mapper
|
incremental_mapping() |
三角測量 | point_triangulator |
point_triangulator() |
|
バンドル調整 |
bundle_adjuster rig_bundle_adjuster
|
BundleAdjuster クラス |
|
デンス再構成(MVS) | 画像の歪み補正 | image_undistorter |
undistort_images() |
パッチマッチステレオ | patch_match_stereo |
patch_match_stereo() |
|
ステレオフュージョン | stereo_fusion |
stereo_fusion() |
|
メッシュ生成 |
poisson_mesher delaunay_mesher
|
対応なし | |
モデルの操作と変換 | モデルの整列 |
model_aligner model_orientation_aligner
|
align_reconstruction_to_locations() align_reconstructions_via_points()
|
モデルの変換・統合 |
model_converter model_merger
|
対応なし | |
モデルの解析 | model_analyzer |
compare_reconstructions() |
|
ポーズ推定と最適化 | ポーズ推定 | 対応なし |
estimate_absolute_pose() refine_absolute_pose() estimate_and_refine_absolute_pose()
|
データベースと画像の管理 | データベース操作 |
database_creator image_deleter
|
Database クラス |
画像の整流処理 | image_rectifier |
対応なし | |
画像の登録 | image_registrator |
対応なし | |
合成データセット生成 | 合成データセット生成 | 対応なし | synthesize_dataset() |
GUIの提供 | GUIの起動 | gui |
対応なし |
🧩 小機能カテゴリの説明
-
特徴抽出:
- 画像から特徴点(通常はSIFT)を抽出し、データベースに保存します。
-
特徴マッチング:
- 抽出された特徴点を用いて、画像間の対応関係を確立します。手法には全探索、連続、空間的、ボキャブラリツリーを用いたマッチングがあります。
-
インクリメンタル再構成:
- 特徴マッチング結果を基に、画像を逐次追加しながらスパースな3Dモデルを構築します。
-
三角測量:
- 既存のカメラポーズとマッチング結果から、3D点の位置を計算します。
-
バンドル調整:
- カメラパラメータと3D点の位置を同時に最適化し、再構成精度を向上させます。
-
画像の歪み補正:
- カメラのレンズ歪みを補正し、デンス再構成の前処理を行います。
-
パッチマッチステレオ:
- 複数の画像間で視差マップを計算し、デンスな3D情報を取得します。
-
ステレオフュージョン:
- 複数の視差マップを統合し、デンスな点群を生成します。
-
メッシュ生成:
- デンスな点群からメッシュモデルを生成します。Poisson法やDelaunay法が用いられます。
-
モデルの整列:
- 再構成されたモデルを外部座標系や他のモデルと整列させます。
-
モデルの変換・統合:
- 再構成モデルのフォーマット変換や、複数モデルの統合を行います。
-
モデルの解析:
- 再構成モデルの統計情報や品質を解析します。
-
ポーズ推定:
- 2D-3D対応点からカメラの位置と向きを推定します。
-
データベース操作:
- COLMAPのSQLiteデータベースの作成や画像の追加・削除を行います。
-
画像の整流処理:
- ステレオマッチングのために画像を整流(リファイン)します。
-
画像の登録:
- 新しい画像を既存の再構成モデルに追加します。
-
合成データセット生成:
- シミュレーション用の合成画像データセットを生成します。
-
GUIの起動:
- COLMAPのグラフィカルユーザーインターフェースを起動します。
📚 出典情報
- COLMAP CLI ドキュメント: https://colmap.github.io/cli.html
- PyCOLMAP API ドキュメント: https://colmap.github.io/pycolmap/index.html
colmapのhierarchical_mapperとmapperのパラメータ
パラメータ | hierarchical_mapper 既定値 | mapper 既定値 | 備考 |
---|---|---|---|
共通 (トップレベル) | |||
--random_seed | 0 | 0 | 乱数シード |
--log_to_stderr | 0 | 0 | 標準エラーへのログ出力 |
--log_level | 2 | 2 | glog レベル |
--project_path | (なし) | (なし) | プロジェクトルート |
--database_path | (なし) | (なし) | COLMAP DB ファイル |
--image_path | (なし) | (なし) | 画像ディレクトリ |
--output_path | (なし) | (なし) | 出力 (モデル) 保存先 |
トップレベル : 片方にのみ存在 | |||
--num_workers | -1 | ― | 階層的マッピング各ノードの並列ワーカー数 |
--image_overlap | 50 | ― | 隣接クラスタ間で共有する画像数 (%) |
--leaf_max_num_images | 500 | ― | 末端クラスタ 1 つ当たりの最大画像枚数 |
--input_path | ― | (なし) | 既存モデルを入力して継続マッピング |
--image_list_path | ― | (なし) | マッピング対象画像リスト |
Mapper. オプション (両者共通)* | |||
Mapper.min_num_matches | 15 | 15 | 画像ペア登録に必要な最小マッチ数 |
Mapper.ignore_watermarks | 0 | 0 | ウォーターマーク除外 |
Mapper.multiple_models | 1 | 1 | 複数モデル生成を許可 |
Mapper.max_num_models | 50 | 50 | 生成モデル数上限 |
Mapper.max_model_overlap | 20 | 20 | モデル間で共有可能な画像上限 |
Mapper.min_model_size | 10 | 10 | 有効モデルとする最小画像枚数 |
Mapper.init_image_id1 / 2 | -1 / -1 | -1 / -1 | 初期画像 ID を固定する場合に指定 |
Mapper.init_num_trials | 200 | 200 | 初期ペア探索試行回数 |
Mapper.extract_colors | 1 | 1 | 点群色推定を行う |
Mapper.num_threads | -1 | -1 | スレッド数 (-1 は自動) |
Mapper.min_focal_length_ratio | 0.1 | 0.1 | 最小 f / image_size |
Mapper.max_focal_length_ratio | 10 | 10 | 最大 f / image_size |
Mapper.max_extra_param | 1 | 1 | 歪みパラメータ最大数 |
Mapper.ba_refine_focal_length | 1 | 1 | BA で f を最適化 |
Mapper.ba_refine_principal_point | 0 | 0 | BA で主点を最適化 |
Mapper.ba_refine_extra_params | 1 | 1 | BA で歪みも最適化 |
Mapper.ba_min_num_residuals_for_multi_threading | 50000 | 50000 | BA を並列化する閾値 |
Mapper.ba_local_num_images | 6 | 6 | ローカル BA の画像窓幅 |
Mapper.ba_local_function_tolerance | 0 | 0 | ローカル BA 収束閾値 |
Mapper.ba_local_max_num_iterations | 25 | 25 | ローカル BA 最大反復 |
Mapper.ba_global_use_pba | 0 | 0 | PBA を用いてグローバル BA |
Mapper.ba_global_pba_gpu_index | -1 | -1 | PBA 使用 GPU (-1 で自動) |
Mapper.ba_global_images_ratio | 1.1 | 1.1 | グローバル BA 画像増加閾値 |
Mapper.ba_global_points_ratio | 1.1 | 1.1 | グローバル BA 点増加閾値 |
Mapper.ba_global_images_freq | 500 | 500 | 画像増加頻度 (step) |
Mapper.ba_global_points_freq | 250000 | 250000 | 点群増加頻度 |
Mapper.ba_global_function_tolerance | 0 | 0 | グローバル BA 収束閾値 |
Mapper.ba_global_max_num_iterations | 50 | 50 | グローバル BA 最大反復 |
Mapper.ba_global_max_refinements | 5 | 5 | グローバル BA 最大再最適化回数 |
Mapper.ba_global_max_refinement_change | 0.0005 | 0.0005 | BA 再最適化終了閾値 |
Mapper.ba_local_max_refinements | 2 | 2 | ローカル BA 最大再最適化回数 |
Mapper.ba_local_max_refinement_change | 0.001 | 0.001 | ローカル BA 再最適化終了閾値 |
Mapper.snapshot_path | (なし) | (なし) | 途中スナップショット保存先 |
Mapper.snapshot_images_freq | 0 | 0 | スナップショット間隔 |
Mapper.fix_existing_images | 0 | 0 | 既存画像パラメータ固定 |
Mapper.init_min_num_inliers | 100 | 100 | 初期ペア RANSAC インライア数 |
Mapper.init_max_error | 4 | 4 | 初期ペア RANSAC 最大誤差 |
Mapper.init_max_forward_motion | 0.95 | 0.95 | 進行方向比率上限 |
Mapper.init_min_tri_angle | 16 | 16 | 三角測量最小角度 |
Mapper.init_max_reg_trials | 2 | 2 | 初期ペア登録最大試行 |
Mapper.abs_pose_max_error | 12 | 12 | PnP 最大 reproj 誤差 |
Mapper.abs_pose_min_num_inliers | 30 | 30 | PnP 最小インライア |
Mapper.abs_pose_min_inlier_ratio | 0.25 | 0.25 | PnP インライア比率 |
Mapper.filter_max_reproj_error | 4 | 4 | outlier filter reproj 閾値 |
Mapper.filter_min_tri_angle | 1.5 | 1.5 | outlier filter 角度閾値 |
Mapper.max_reg_trials | 3 | 3 | 1 枚画像登録最大試行 |
Mapper.local_ba_min_tri_angle | 6 | 6 | ローカル BA 対象点角度 |
Mapper.tri_max_transitivity | 1 | 1 | 視線伝播最大次数 |
Mapper.tri_create_max_angle_error | 2 | 2 | 新規点生成 max 誤差 |
Mapper.tri_continue_max_angle_error | 2 | 2 | 追加入力 max 誤差 |
Mapper.tri_merge_max_reproj_error | 4 | 4 | 点マージ reproj 閾値 |
Mapper.tri_complete_max_reproj_error | 4 | 4 | 点補完 reproj 閾値 |
Mapper.tri_complete_max_transitivity | 5 | 5 | 点補完伝播上限 |
Mapper.tri_re_max_angle_error | 5 | 5 | 点再三角測量 max 誤差 |
Mapper.tri_re_min_ratio | 0.2 | 0.2 | 点再三角測量最小比率 |
Mapper.tri_re_max_trials | 1 | 1 | 点再三角測量最大試行 |
Mapper.tri_min_angle | 1.5 | 1.5 | 有効点最小角度 |
Mapper.tri_ignore_two_view_tracks | 1 | 1 | 2-view Track 無視 |
Discussion