複数の画像から撮影時のカメラの位置情報を求める「bundler」

その画像セットとbundlerで得られるデータから形状データを取得する「pmvs」 までの動作メモ。

bundlerの準備

以下のページからバイナリをダウンロードするのが手っ取り早いと思います。
http://francemapping.free.fr/Portfolio/Prog3D/BUNDLER.html

cygwinのインストール

bundlerを実行するには、bundler用のshファイルを実行するのが楽です。
windows環境ならば、cygwinをインストールして cygwin上でshファイルを実行するのが良いかと思います。
cygwinをインストールする際、perl と graphicsのパッケージも インストールしておきましょう。

pmvsの準備

以下のページのPrecompiled win32/win64 binariesをダウンロードします。
http://francemapping.free.fr/Portfolio/Prog3D/CMVS.html

実行前のフォルダ構成

とりあえず、説明上、以下のようなフォルダ構成で進めます。

pmvs_config2

binフォルダの中には、pmvsのバイナリやbundlerで使うバイナリなど ごっちゃに入れてみました。

pmvs_config

kermitの画像で動作テスト

同梱のサンプル画像セット「kermit」で動作テストしてみます。
まずRunBundle.shを実行します。
よくわかっていませんが、私の環境では $(dirname $(which $0)); がうまく動いてくれないので RunBundler.sh内では BASE_PATH="."
ToSift.sh内では、 BIN_PATH="bin"; と書き換えました。
そして
$ sh RunBundle.sh example/kermit
と実行します。

するとカレントディレクトリにファイルやbundleフォルダが出力されます。
after_runbundle
次に、以下のコマンドを実行します。
$ ./bin/Bundle2PMVS.exe list.txt bundle/bundle.out
するとpmvsというフォルダが作られます。
after_bundle2pmvs

そして、pmvsフォルダにはprep_pmvs.shがあります。 次にprep_pmvs.shを実行し、pmvs用の入力ファイルを作ることをするのですが、 実行する前に、prep_pmvs.shを少しいじります。 (本当はいじらずに実行できるようなフォルダ構成にするべきかもしれませんが・・・)
4行目を
BUNDLER_BIN_PATH="bin"

15行目以下を
# Copy and rename files
mv pmvs/kermit000.rd.jpg pmvs/visualize/00000000.jpg
mv pmvs/00000000.txt pmvs/txt/
mv pmvs/kermit001.rd.jpg pmvs/visualize/00000001.jpg
mv pmvs/00000001.txt pmvs/txt/
mv pmvs/kermit002.rd.jpg pmvs/visualize/00000002.jpg
mv pmvs/00000002.txt pmvs/txt/
mv pmvs/kermit003.rd.jpg pmvs/visualize/00000003.jpg
mv pmvs/00000003.txt pmvs/txt/
mv pmvs/kermit005.rd.jpg pmvs/visualize/00000004.jpg
mv pmvs/00000004.txt pmvs/txt/
mv pmvs/kermit007.rd.jpg pmvs/visualize/00000005.jpg
mv pmvs/00000005.txt pmvs/txt/
mv pmvs/kermit008.rd.jpg pmvs/visualize/00000006.jpg
mv pmvs/00000006.txt pmvs/txt/
mv pmvs/kermit009.rd.jpg pmvs/visualize/00000007.jpg
mv pmvs/00000007.txt pmvs/txt/
mv pmvs/kermit010.rd.jpg pmvs/visualize/00000008.jpg
mv pmvs/00000008.txt pmvs/txt/


そして
$ ./pmvs/prep_pmvs.sh
と実行します。

最後に以下のコマンドを実行すると最終結果がpmvs/modelsに出力されます。
$ ./bin/pmvs2.exe pmvs/ pmvs_options.txt
result1
実行結果を可視化したもの。