COLMAP のインストールと3次元再構成の実行(COLMAP のソースコード,vcpkgm, Visual Studio Community 2019 を使用)(Windows 上)
【目次】
COLMAP
COLMAP は 3次元再構成の機能を持ったソフトウェア.
【文献】
Johannes L. Schonberger, Jan-Michael Frahm, Structure-From-Motion Revisited, CVPR 2016, 2016
【サイト内の関連ページ】
- COLMAP 3.8 のインストールと3次元再構成の実行(COLMAP 3.8 を使用)(Windows 上): 別ページ »で説明
- COLMAP のインストールと3次元再構成の実行(COLMAP のソースコード,vcpkgm, Visual Studio Community 2019 を使用)(Windows 上): 別ページ »で説明
【関連する外部ページ】
- Papers with Code の colmap のページ: https://paperswithcode.com/paper/structure-from-motion-revisited
- COLMAP の公式ページ(公式リリース,Vocabulary tree, データセットへのリンクなど): https://demuc.de/colmap
- COLMAP の公式の説明: https://colmap.github.io
- COLMAP を公開している公式ページ: https://github.com/colmap/colmap/releases
- Gerrard Hall, Craham Hall, Person Hall, South Building データセット: https://colmap.github.io/datasets.html
前準備
Git のインストール(Windows 上)
Gitは,分散型のバージョン管理システム.
【手順】
- Windows で,コマンドプロンプトを管理者として実行
コマンドプロンプトを管理者として実行: 別ページ »で説明
次のコマンドを実行
次のコマンドは,Gitをインストールし,Gitにパスを通すものである.
次のコマンドでインストールされるGitは 「git for Windows」と呼ばれるものであり, Git,MinGW などから構成されている.
winget install --scope machine Git.Git powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\Program Files\Git\cmd\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
【関連する外部ページ】
- Git の公式ページ: https://git-scm.com/
【関連項目】 Git バージョン管理システム, Git の利用
Visual Studio Community 2019 のインストール(Windows 上)
COLMAP 公式ページによれば, Visual Studio 2019 が必要である(2022 では動かない).
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 のインストールを行う.
- Windows での Build Tools for Visual Studio 2022 のインストール: 別ページ »で説明
- Windows での NVIDIA ドライバ,NVIDIA CUDA ツールキット 11.8,NVIDIA cuDNN v8.9.7 のインストール手順: 別ページ »で説明
【関連する外部ページ】
- Build Tools for Visual Studio 2022 (ビルドツール for Visual Studio 2022)の公式ダウンロードページ: https://visualstudio.microsoft.com/ja/visual-cpp-build-tools/
- NVIDIA ドライバのダウンロードの公式ページ: https://www.nvidia.co.jp/Download/index.aspx?lang=jp
- NVIDIA CUDA ツールキットのアーカイブの公式ページ: https://developer.nvidia.com/cuda-toolkit-archive
- NVIDIA cuDNN のダウンロードの公式ページ: https://developer.nvidia.com/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
- Windows で,コマンドプロンプトを管理者として実行.
コマンドプロンプトを管理者として実行: 別ページ »で説明
- 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 を使う方法を説明する.
- Windows で,コマンドプロンプトを管理者として実行.
コマンドプロンプトを管理者として実行: 別ページ »で説明
- 次のコマンドを実行
c:\vcpkg\vcpkg search colmap c:\vcpkg\vcpkg install --triplet x64-windows colmap[tests,cuda] powershell -command "$oldpath = [System.Environment]::GetEnvironmentVariable(\"Path\", \"Machine\"); $oldpath += \";c:\vcpkg\installed\x64-windows\tools\colmap\"; [System.Environment]::SetEnvironmentVariable(\"Path\", $oldpath, \"Machine\")"
- 動作確認のため COLMAP を実行してみる
- Windows で,コマンドプロンプトを実行.
- 画像データの準備
ここでは, 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 .
- COLMAP による3次元再構成
cd /d c:%HOMEPATH%\colmap colmap automatic_reconstructor --workspace_path . --image_path ./images
- 終了の確認
エラーメッセージが出ていないこと.
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