COLMAP のインストールと3次元再構成の実行(COLMAP のソースコード,vcpkgm, Visual Studio Community 2019 を使用)(Windows 上)

Windows で COLMAP のインストールを行う.

【目次】

  1. 前準備
  2. vckpg のインストール(Windows 上)
  3. 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"

Visual Studio Community 2019 のインストール(Windows 上)

COLMAP 公式ドキュメントによれば,Windows 上での ビルドに必要な Visual Studio は 2019 以降である.

Windows での Visual Studio Community のインストール: 別ページ »で説明

【関連する外部ページ】

以前のバージョンのVisual Studio Community のダウンロードのページ: https://visualstudio.microsoft.com/ja/vs/older-downloads/

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

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

【関連する外部ページ】

vckpg のインストール(Windows 上)

vcpkg は,C や C++ のライブラリを管理する機能を持ったソフトウェア.Windows, Linux, MacOS で動く. ダウンロードされたファイルは,downloads 下に保存される.

vcpkg の GitHub のページ: https://github.com/microsoft/vcpkg

vcpkg のインストール後, cmake から,vcpkg でインストールされたソフトウェアを認識できるようにするために, cmake の実行において,次のようなオプションを付ける場合がある.
-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows
  1. 以下の操作を管理者権限のコマンドプロンプトで実行する (手順:Windowsキーまたはスタートメニュー → cmd と入力 → 右クリック → 「管理者として実行」)。

  2. vcpkg のインストール

    次のコマンドを実行

    このとき,「CMake の使用時に "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" を使う」のように表示されるので,確認する.

    cd c:\
    rmdir /s /q vcpkg
    git clone https://github.com/microsoft/vcpkg
    cd c:\vcpkg
    git pull
    .\bootstrap-vcpkg.bat
    cd c:\
    c:\vcpkg\vcpkg update
    c:\vcpkg\vcpkg integrate install   
    
    powershell -command "[System.Environment]::SetEnvironmentVariable(\"VCPKG_ROOT\", \"c:\vcpkg\", \"Machine\")"
    powershell -command "[System.Environment]::SetEnvironmentVariable(\"VCPKG_DEFAULT_TRIPLET\", \"x64-windows\", \"Machine\")"
    powershell -command "[System.Environment]::SetEnvironmentVariable(\"CMAKE_TOOLCHAIN_FILE\", \"c:/vcpkg/scripts/buildsystems/vcpkg.cmake\", \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"LIB\", \"Machine\"); $oldpath += \";c:\vcpkg\installed\x64-windows\lib\"; [System.Environment]::SetEnvironmentVariable(\"LIB\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"INCLUDE\", \"Machine\"); $oldpath += \";c:\vcpkg\installed\x64-windows\include\"; [System.Environment]::SetEnvironmentVariable(\"INCLUDE\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\vcpkg\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\vcpkg\installed\x64-windows\bin\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    

COLMAP のインストールとテスト実行(vcpkg を利用)

ここでは, vcpkg を使う方法を説明する.

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

  2. 次のコマンドを実行
    c:\vcpkg\vcpkg search colmap
    c:\vcpkg\vcpkg install colmap[cuda,tests]:x64-windows
    powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\vcpkg\installed\x64-windows\tools\colmap\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
    
  3. 動作確認のため COLMAP を実行してみる
    1. Windows で,コマンドプロンプトを実行.
    2. 画像データの準備

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

      cd /d c:%HOMEPATH%
      mkdir colmap
      cd colmap
      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 /d c:%HOMEPATH%\colmap
      colmap automatic_reconstructor --workspace_path . --image_path ./images
      
    4. 終了の確認

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

      必要に応じて,段階を分けて次のコマンドを実行できる.

      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