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

 

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