Bundler及PMVS的配置与使用(简易版)

一、Bundler的配置

Bundler是Noah Snavely开发的一套基于SfM原理、能够利用无序图片重建三维模型的系统。配置方法如下:

1. 下载并安装cygwin。当安装步骤进行到select packages时,选择全部安装,也就是将All后面的Default改为Install。

2.  下载并解压Bundler源码bundler-v0.4-source.tar.gz(传送门)。建议解压至某个盘的根目录,不然以后运行需要输入好长的指令!本文所放置的目录为 e:/bundler。

3. 打开cygwin,编译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")

然后:

$ cd e:/bundler
$ make
 make成功之后,会在bin目录下生成bundler.exe,Bundle2PMVS,exe, BundleVis.exe, KeyMatchFull.exe, RadialUndistort.exe, libANN_char.dll。

4. 下载SIFT(传送门),解压后将其中的siftWin32.exe拷贝到/bundler/bin, 这个siftWin32.exe会被Bundler调用作为特征点探测器。

5. 下载安装  ImageMagick(传送门) 。提取特征点时需要用到.pgm格式的图片,会自动调用该程序将 .jpg图像转换为 .pgm图像。不装会报错。

6. 运行Bundler:

$ cd /bundler
$ mkdir result  ##(创建一个放置运行结果的目录)
$ cd result
$ ../RunBundler.sh  ../examples/ET
前半句是程序,后半句是输入,所以后半句应该根据你图片放置的目录作相应变化。运行之后,result目录下生成bundle和prepare两个文件夹。

7. 将Bundler的输出转换为CMVS-PMVS2的输入。(此步骤可选, 如果还要使用Dr. Furukawa的PMVS2软件进行稠密重建的话):

$ ../bin/Bundle2PMVS.exe list.txt bundle/bundle.out
此时result目录下生成了pmvs子目录,编辑里边的prep_pmvs.sh,指明BUNDLE_BIN_PATH路径来寻找RadialUndistort.exe和Bundle2Vis.exe。由于使用cygwin,所以应在路径前加上/cygdrive/。如:

BUNDLER_BIN_PATH=/cygdrive/e/bundler/bin
8. 修改后, 完成最后的转换:

$ pmvs/prep_pmvs.sh
在pmvs目下生成txt, visualize, models目录和bundle.rd.out, list.rd.txt, vis.dat,pmvs_options.txt文件, 这些都是PMVS2的输入。至此,Bundler部分全部完成。


二、CMVS-PMVS的配置

Bundler输出的是相机track和稀疏点云,要想把点云稠密化,需要借助Yasutaka Furukama开发的CMVS-PMVS系统。


1. 配置方法:

下载CMVS-PMVS并解压缩(传送门)。里面有一个binariesWin-Linux文件夹,里面有配置好的基于Linux,Win32,和Win64的可执行程序,因此可直接使用而不需编译源码。将CMVS-PMVS-master\binariesWin-Linux\Win64-VS2010文件夹中的文件全部拷贝到之前的result文件夹目录下。


2. 使用方法:

①. 打开cmd ,进入/bundler/result文件夹下。有个简便方法:打开result文件夹,按住shift,再鼠标右键,即可在此处打开命令窗口,而不用cd来cd去。

②. 输入运行cmvs pmvs/

③. 输入运行genOption pmvs/ (这一步并不会出现任何现象)

④. 输入运行pmvs2 pmvs/ option-0000 (注意option之前的空格键)。运行完后,/pmvs/models/文件夹里多了几个文件,其中*.ply文件即为最终的3D点云模型文件,可直接用meshlab查看。


以上即为Bundler及PMVS的配置与使用,若还有其他问题,可参考我的另一篇文章《Bundler 及 PMVS 常见问题&解决方法》。

本文参考了《bundler编译和配置》和《在CYGWIN下编译和运行软件Bundler ,以及PMVS,CMVS的编译与使用》两篇文章,结合自己的实现过程,经过总结完善得到本文,旨在方便大家使用,让大家少走弯路。

        下面是我运行结果的几幅截图:


Bundler及PMVS的配置与使用(简易版)_第1张图片

Bundler及PMVS的配置与使用(简易版)_第2张图片








你可能感兴趣的:(计算机视觉,三维重建,Bundler,CMVS,PMVS,cygwin,SIFT)