COLMAP のインストールと3次元再構成の実行(COLMAP の公式ビルド済みバイナリを使用)(Windows 上)

COLMAP は,画像からの3次元再構成が可能なソフトウェアである.インストールはコマンドプロンプトを管理者で実行し,コマンドを実行して行うことができる.3次元再構成の実行は,画像データの準備後,コマンドプロンプトでの所定のコマンドを実行することで可能である.GUIも使用できる.

【目次】

  1. 前準備
  2. COLMAP のインストールと3次元再構成の実行

COLMAP

COLMAP は 3次元再構成の機能を持ったソフトウェア.

【文献】

Johannes L. Schonberger, Jan-Michael Frahm, Structure-From-Motion Revisited, CVPR 2016, 2016

https://openaccess.thecvf.com/content_cvpr_2016/papers/Schonberger_Structure-From-Motion_Revisited_CVPR_2016_paper.pdf

【サイト内の関連ページ】

【関連する外部ページ】

前準備

Git のインストール(Windows 上) [クリックして展開]

管理者権限のコマンドプロンプトで以下を実行する.管理者権限は,winget の --scope machine オプションでシステム全体にインストールするために必要となる.

REM Git をシステム領域にインストール
winget install --scope machine --id Git.Git -e --silent --disable-interactivity --force --accept-source-agreements --accept-package-agreements --override "/VERYSILENT /NORESTART /NOCANCEL /SP- /CLOSEAPPLICATIONS /RESTARTAPPLICATIONS /COMPONENTS=""icons,ext\reg\shellhere,assoc,assoc_sh"" /o:PathOption=Cmd /o:CRLFOption=CRLFCommitAsIs /o:BashTerminalOption=MinTTY /o:DefaultBranchOption=main /o:EditorOption=VIM /o:SSHOption=OpenSSH /o:UseCredentialManager=Enabled /o:PerformanceTweaksFSCache=Enabled /o:EnableSymlinks=Disabled /o:EnableFSMonitor=Disabled"

Build Tools for Visual Studio 2022,NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN 8.9.7 のインストール(Windows 上)

【サイト内の関連ページ】 NVIDIA グラフィックスボードを搭載しているパソコンの場合には, NVIDIA ドライバ, NVIDIA CUDA ツールキット, NVIDIA cuDNN のインストールを行う.

【関連する外部ページ】

COLMAP のインストールと3次元再構成の実行

COLMAP のインストール

  1. 以下の操作を管理者権限のコマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

  2. ダウンロードとインストール

    https://github.com/colmap/colmap/releases で最新版のファイル名(例: COLMAP-X.X.X-windows-cuda.zip)を確認し,次のコマンドを実行する.X.X.X の部分は確認したバージョン番号に置き換える.

    cd C:\
    mkdir COLMAP-windows-cuda
    cd COLMAP-windows-cuda
    curl -L -O https://github.com/colmap/colmap/releases/download/X.X.X/COLMAP-X.X.X-windows-cuda.zip
    powershell -command "Expand-Archive -DestinationPath .. -Path COLMAP-X.X.X-windows-cuda.zip"
    
  3. ファイルの確認

    dir コマンドを実行.bin,COLMAP.bat,lib ができていることを確認.

  4. https://github.com/colmap/colmap/releases から,Vocabulary Trees をダウンロード

    次のコマンドを実行.vocab_tree のリリースタグは,上記ページで最新の値を確認する.

    cd C:\
    cd COLMAP-windows-cuda
    curl -L -O https://github.com/colmap/colmap/releases/download/3.11.1/vocab_tree_flickr100K_words32K.bin
    
  5. 必要であれば,次のページから,付属のデータセットをダウンロードできる.

    https://colmap.github.io/datasets.html

  6. Windows のシステム環境変数 Path に c:\COLMAP-windows-cuda\bin,c:\COLMAP-windows-cuda\lib を追加することにより,パスを通す.

    Windows で,管理者権限でコマンドプロンプトを起動(手順:Windowsキーまたはスタートメニュー > cmd と入力 > 右クリック > 「管理者として実行」)。

    次のコマンドを実行

    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\COLMAP-windows-cuda\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\COLMAP-windows-cuda\lib\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

3次元再構成の実行

動作確認のため COLMAP を実行してみる

  1. Windows で,コマンドプロンプトを実行.
  2. 画像データの準備

    ここでは, https://www.kkaneko.jp/sample/potato/potato_image.zip をダウンロードし,その中の画像ファイルを images ディレクトリに置いている.

    cd C:\
    cd COLMAP-windows-cuda
    curl -O https://www.kkaneko.jp/sample/potato/potato_image.zip
    powershell -command "Expand-Archive -DestinationPath . -Path potato_image.zip"
    mkdir images
    cd images
    move ..\potato_image\*.JPG .
    
  3. COLMAP による3次元再構成
    cd C:\
    cd COLMAP-windows-cuda
    colmap automatic_reconstructor --workspace_path . --image_path ./images
    
  4. 終了の確認

    エラーメッセージが出ていないことを確認する.

    主なファイルの配置は次のようになる

       ├─database.db
       ├─dense
          ├─0
             ├─fused.ply
             ├─images
             ├─sparse
             ├─stereo
    
  5. Blender で .ply ファイルを開き確認する

GUI での利用

次のコマンドで起動

colmap gui

メニューの「Reconstruction」. Image foloder は3次元再構成した画像のあるディレクトリを指定. Vocabulary tree は先ほどダウンロードしたVocabulary treeを指定. Workspace folder, Mask folder は,すでに存在するディレクトリを指定する(処理で使用される)

段階を分けて処理したい場合

colmap image_undistorter --image_path images --input_path sparse/0 --output_path dense --output_type COLMAP
colmap patch_match_stereo --workspace_path dense --workspace_format COLMAP --PatchMatchStereo.geom_consistency true
colmap stereo_fusion --workspace_path dense --workspace_format COLMAP --input_type geometric --output_path dense/fused.ply
colmap poisson_mesher --input_path dense/fused.ply --output_path dense/meshed-poisson.ply
colmap delaunay_mesher --input_path dense --output_path dense/meshed-delaunay.ply