COLMAP開発環境の準備
これまでVisualSfMを使っていたが、SfMツールのデファクトスタンダードとなりつつあるCOLMAPに乗り換えてみることにした。ちなみに、COLMAPはECCV2020でPAMI Mark Everingham Prizeを受賞している。
COLMAP: https://colmap.github.io/index.html
COLMAPは比較的最近のアルゴリズムも実装されており、聞く話によるとVisualSfMよりも安定した復元が可能らしい。
COLMAPはビルド済みの実行ファイルも公開されているため、すぐに試すこともできる。
COLMAP binaries: https://github.com/colmap/colmap/releases
ただ、色々とカスタマイズして利用したいので、今回はVisual StudioでCOLMAPライブラリを利用できるようにすることを目指す。
開発環境(Windows10, Visual Studio 2019)の構築手順は以下の通りとなっている。基本的には、COLMAPのDocumentにあるvcpkgを使ったインストール手順に従えば良い(https://colmap.github.io/install.html)。(vcpkgを使わずにビルドしようとしたが色々と依存関係を解決するのが難しく断念した)
- vcpkgのインストールgit clone https://github.com/microsoft/vcpkg cd vcpkg bootstrap-vcpkg.bat vcpkg integrate install vcpkg install yasm-tool:x86-windows
- COLMAPのインストールvcpkg install colmap[cuda]:x64-windows
COLMAPのDocumentには手順1の"vcpkg install yasm-tool:x86-windows"が無いが、自分の環境ではこれが無いとビルドエラー(Error: Building package gmp:x64-windows failed with: BUILD_FAILED)でインストールが正常に完了しなかった。また、手順2は結構時間がかかるので、完了するまで気長に待つ必要がある。
後は、適当にVisual Studioのプロジェクトを作成し、プロジェクトのプロパティで以下のようにvcpkgの設定がなっていれば適宜必要なライブラリなどをリンクしてくれる。
#include <cstdlib>
#include <iostream>
#include <colmap/util/option_manager.h>
#include <colmap/util/string.h>
int main(int argc, char** argv) {
colmap::InitializeGlog(argv);
std::string input_path;
std::string output_path;
colmap::OptionManager options;
options.AddRequiredOption("input_path", &input_path);
options.AddRequiredOption("output_path", &output_path);
options.Parse(argc, argv);
std::cout << colmap::StringPrintf("Hello %s!", "COLMAP") << std::endl;
return EXIT_SUCCESS;
}
コメント
コメントを投稿