bundler編譯和配置

Bundler的配置

(1) 下載並安裝CYGWIN(下載地址: http://cygwin.com), 安裝時選擇全部安裝, 大約要用掉19+G硬盤空間.
(2) 下載並解壓Bundler源碼bundler-v0.4-source.tar.gz(下載地址:http://phototour.cs.washington.edu/bundler/), 假設Bundler的安裝位置在/bundler
(3) 編譯Bundler

(3) 編譯Bundler
    在編譯之前請大家在/src打開Bundle2PMVS.cpp將217行的

fprintf(f_scr,"mv  pmvs/%s.rd.jpg %s/visualize/%08d.jpg\n", 修改爲 fprintf(f_scr, "mv %s.jpg %s/visualize/%08d.jpg\n"。原因後面第(6)步大家會知道。

$ cd /bundler
$ make
(在編譯到BundlerApp.h文件第620行, 出現錯誤: 不能直接調用構造函數'SkeletalApp::BundlerApp')該頭文件在/bundler/src目錄中, 註釋掉該行, 繼續make, 可以通過編譯此次make共生成bundler.exe,Bundle2PMVS,exe, BundleVis.exe, KeyMatchFull.exe, RadialUndistort.exe, libANN_char.dll, 都放置在/bundler/bin目錄下。
(4) 下載SIFT(下載地址: http://www.cs.ubc.ca/~lowe/keypoints/siftDemoV4.zip),解壓後將其中的siftWin32.exe拷貝到/bundler/bin, 這個siftWin32.exe會被Bundler調用作爲特徵點探測器。
(5) 運行Bundler

$ cd /bundler
$ mkdir result (創建一個放置運行結果的目錄)
$ cd result

$ ../RunBundler.sh  ../examples/ET (注: ../examples/ET指明用於進行多視角重建的圖像所在目錄)此時已經運行完Bundler, 在./bundle/bundle.out文件裏有重建的稀疏點3D座標和相機參數, 具體說明參見/bundler/readme.txt。
這樣/bundler會生成兩個文件夾/bundle和/prepare。
(6) 將Bundler的輸出轉換爲CMVS-PMVS2的輸入(此步驟可選, 如果還要使用Dr. Furukawa的PMVS2軟件進行稠密重建的話)
         Bundler會生成一個Bundle2PMVS.exe用於將Bundler生成的結果轉化成CMVS要求的輸入。注意這裏的操作一定是在bundler的根目錄下面。否則後面生成的目錄文件會有錯
$ ../bin/Bundle2PMVS.exe list.txt bundle/bundle.out
       此時生成了pmvs子目錄, 編輯裏邊的prep_pmvs.sh,指明BUNDLE_BIN_PATH路徑來尋找RadialUndistort.exe和Bundle2Vis.exe。注意我們用的是Cygwin所以改BUNDLE_BIN_PATH要注意目錄的格式,比如我的Bundler在E盤根目錄,那麼BUNDLER_BIN_PATH=/cygdrive/e/bundler-v0.4-source/bin或者是../bin

mv pmvs/../examples/Kermit(刪除)/kermit000.rd.jpgpmvs/visualize/00000000.jpg
(7) 完成最後的轉換$ pmvs/prep_pmvs.sh
      在pmvs目下生成txt, visualize, models目錄和bundle.rd.out, list.rd.txt, vis.dat,pmvs_options.txt文件, 這些都是PMVS2的輸入

(8)可以選擇在此定標

Bundler有個選項可以在前次標定基礎上重新進行標定, 以提高精度. 修改缺省的運行配置文件options.txt, 改爲如下內容:

--match_table matches.init.txt
--output bundle2.out  這裏bundle2.out是重標定後輸出的結果, 文件名自選
--output_all bundle_
--output_dir bundle
--variable_focal_length
--use_focal_estimate
--constrain_focal
--constrain_focal_weight 0.0001
--estimate_distortion
--rerun_bundle  這個選項表示再次進行標定
--bundle bundle/bundle.out 
讀入前次標定結果文件

保存好這個options.txt文件後, 輸入下列命令啓動重標定:

$ ../bin/bundler.exe list.txt --options_file options.txt

再次標定的結果文件就存入了bundle2.out文件中, 其格式和bundle.out完全相同.

(9)CMVS-PMVS的配置:

         Yasutaka Furukama網站上提供的CMVS是基於Linux上的比較。好在有個人將它轉成了可以在Windows下運行的文件,見http://francemapping.free.fr/Portfolio/Prog3D/CMVS.html
<1>  下載CMVS-PMVS並解壓縮。發現裏面有一個binariesWin-Linux文件夾,裏面有配置好的基於Linux,Win32,和Win64的可執行程序(多麼的人性化呀)。
<2>  進入/Win64-vs2010文件夾,建一個文件夾叫ET。將上面配置好的文件夾/pmvs考到這個ET裏面。下面執行3行命令行就可以生成我們最後想要得到的稠密網格模型啦(堅持就是勝利)。可以參考/Win64-vs2010裏面的Readme.txt。
>cmvs.exeET/pmvs/ maximage[=100] CPU[=4]
>genOption.exeET/pmvs/       
>pmvs2.exeET/pmvs/ option-0000

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章