colmap - eiichiromomma/CVMLAB GitHub Wiki

(COLMAP)

導入

特別な作業は特になく素直に入った。

関連ライブラリ

必要なライブラリは下のCOLMAPのcmakeを走らせて無いと怒られたものをaptで入れる。無ければソースからビルドしてインストールする感じ。

sudo apt install libfreeimage-dev libfreeimageplus-dev 

ceres solver

git clone https://ceres-solver.googlesource.com/ceres-solver
cd ceres-solver/
mkdir build
cd build/
cmake ..
make -j4
sudo make install

COLMAP

git clone https://github.com/colmap/colmap.git
cd colmap/
mkdir build
cd build/
cmake ..
make -j4

実行

build/src/exe/colmapが実行形式で、GUIを使いたいときはguiオプションで起動する。

./src/exe/colmap gui

作成時のコツ(Tutorialより)

  • テクスチャのある対象を撮る (白壁とか何もない机とかは対応点が取れない)
  • 照明環境は揃え,ダイナミックレンジの広い環境は避ける (窓から陽が入っているような環境は良くない)
  • できるだけ重複を多くする (少なくとも同じ場所が3枚の画像に写るように)
  • 視点の異なる画像を使う (動画を使う場合も同じなのでフレームは間引いて異なる視点を増やすようにする)

動画からのreconstruction

視点が変わるように動画を撮影しffmpegでフレーム連番画像に変換、COLMAPでautomatic reconstructionでCUDA搭載マシンだとDenseなMVSまでやってくれる。(プロジェクトのdenseフォルダにplyファイルが出来る)

mkdir project1

でプロジェクトフォルダに動画(ここではIMG_0001.mov)を置く。その後ffmpegでフレーム画像に変換する。

cd project1
mkdir frames
ffmpeg -i IMG_0001.mov -vf framestep=10 frames/%05d.png

framestepが間引くステップ数なので、静止物体についてはそれなりに間引かないと処理に使う画像が大くなり、演算時間がかかる。

colmapを起動する。

./src/exe/colmap gui

"Reconstruction"メニューの"Automatic reconstruction"を選び、Workspace folderをproject1に、Image folderをproject1/framesに。Data typeをVideo framesにして"Run"で放置。枚数にもよるが数時間でSparseな点群が表示される。 Workspace folderのdense内に密なMVSのデータが.ply形式で保存されるのでMeshLab等で開ける。