Ubuntu16.04安裝bundler+PMVS

一.Bundler下載與安裝

1.Bundler工具包下載

(1)Bundler下載

Bundler源代碼現(xiàn)在在GitHub上托管南捂,下載地址: GitHub:bundler_sfm 璧亚,也可以在官網(wǎng)上查看相關(guān)信息:Bunlder官網(wǎng)

(2)SIFT下載

Bundler工具包需要利用SIFT進行特征提取蔼两,下載地址:SIFT

2.Bundler編譯安裝

可以參考官網(wǎng)文檔:安裝文檔,安裝過程中可能會出現(xiàn)一些問題,記錄如下:

(1)Bunlder編譯

只需要進入Bunlder根目錄并執(zhí)行make即可

cd bundler_sfm
make

編譯過程中可能會出現(xiàn)"error trying to exec 'f951': execvp: No such file or directory"問題,解決方法:

sudo apt-get install gfortran

可能出現(xiàn)以下問題:

image

解決方法:

sudo apt-get install libjpeg-dev

可能出現(xiàn)以下問題:

image

解決方法:

sudo apt-get install libblas-dev liblapack-dev

(2)SIFT執(zhí)行文件

解壓下載的SIFT工具包,將"sift"文件拷貝到文件夾/bundler_sfm/bin中(bundler根目錄下的bin文件夾)

安裝SIFT運行所需要的依賴包霹娄,詳細參見GitHub上的issue#36

安裝命令:

sudo apt-get install libc6-dev-i386

(3)jhead安裝

sudo apt-get install jhead

安裝完成后將jhead文件拷貝至./bin目錄下

sudo cp /usr/bin/jhead ./bin

(4)ANN共享文件配置

依據(jù)官網(wǎng)文檔,我們需要將/libANN_char.so加入到系統(tǒng)庫中

Finally, once Bundler is compiled, copy the approximate nearest neighbors (ANN) shared library at BASE_PATH/bin/libANN_char.so (Linux/cygwin) or BASE_PATH/bin/ann_1.1_char.dll (Windows VS2005) to a location in your LD_LIBRARY_PATH

執(zhí)行以下命令即可:

sudo cp ./lib/libANN_char.so /lib

3.測試

利用Bundler自帶的example中的圖片進行測試鲫骗,以kermit為例:

cd ./examples/kermit
../../RunBundler.sh

最終會生成很多文件犬耻。其中bundle文件夾下的bundler.out中存儲了重建的稀疏3D坐標和相機參數(shù)。內(nèi)容的具體格式參見README.md

image

4.Bundle2PMVS轉(zhuǎn)換

利用Bundler得到場景的稀疏點云后可以利用PMVS進行稠密點云重建执泰,在此之前需要將Bundler的輸出轉(zhuǎn)換為CMVS-PMVS2的輸入格式枕磁。Bundler自帶了轉(zhuǎn)換工具:bin目錄下的Bundle2PMVS:

../../bin/Bundle2PMVS prepare/list.txt bundle/bundle.init.out

執(zhí)行完畢后有如下提示:

image

此時在bundler_sfm/examples/kermit目錄下會生成pmvs子目錄,將pmvs目錄中的prep_pmvs.sh中的BUNDLER_BIN_PATH修改為bundler的bin文件夾的路徑术吝,例如:

BUNDLER_BIN_PATH=/home/st/app/bundler_sfm/bin

修改完成后運行:

sh pmvs/prep_pmvs.sh

得到txt计济,visualize,models目錄和bundle.rd.out, list.rd.txt, vis.dat, pmvs_options.txt等文件排苍,這些文件就可以作為PMVS的輸入了沦寂。

二.PMVS/CMVS下載與安裝

1.PMVS/CMVS下載

Bundler官網(wǎng)上提供的PMVS鏈接已經(jīng)失效,PMVS2和CMVS的官網(wǎng)地址分別為:PMVSCMVS

下載pmvs-2-fix0.tar.gz

下載cmvs-fix2.tar.gz(243Mb)

2.PMVS/CMVS安裝

(1)PMVS安裝

安裝過程參考官方文檔:PMVS文檔

Compilation
We suggest on using the binary distribution, but if you choose to compile the source codes, try the following.
1.Make sure you have all the libraries listed above in your system.
2.Go to directory "program/main"
3.Add INCLUDE and LDLIBRARY paths to Makefile
4.make depend
5.make

編譯之前淘衙,安裝依賴庫:

sudo apt-get install libgtk2.0-dev libdevil-dev libboost-all-dev libatlas-cpp-0.6-dev libatlas-dev imagemagick libcminpack-dev libgfortran3 libmetis-edf-dev libparmetis-dev freeglut3-dev libgsl0-dev 
sudo apt-get install libgsl0-dev libblas-dev libatlas-dev liblapack-dev liblapacke-dev

進入program/main目錄传藏,在Makefile中添加YOURINCLUDEPATHYOURLDLIBPATH路徑。

make depend
make

可能出現(xiàn)以下錯誤:

image

解決方法:

修改../base/numeric/mylapack.cc文件

Update ../base/numeric/mylapack.cc
From:
extern "C" {
#include <clapack/f2c.h>
#include <clapack/clapack.h>
};

To:
extern "C" {
//#include <clapack/f2c.h>
//#include <clapack/clapack.h>
#include <lapacke.h>
};
#define integer int

修改../base/numeric/mylapack.h文件

Update ../base/numeric/mylapack.h
From:
static void lls(std::vector& A, std::vector& b, long int width, long int height);
static void lls(std::vector& A, std::vector& b, long int width, long int height);

To:
static void lls(std::vector& A, std::vector& b, int width, int height);
static void lls(std::vector& A, std::vector& b, int width, int height);

注意:liblapack.so.3需要鏈接到/usr/lib/下的liblapack.so.3彤守,libblas.so.3需要鏈接到/usr/lib/下的libblas.so.3毯侦,不然編譯會警告:找不到libgfortran.so.1

image

修改好后再編譯,編譯好后測試:

cd program/main
./pmvs2 ../../data/hall/ option.txt

(2)CMVS安裝

安裝過程參考官方文檔:CMVS文檔

1)安裝依賴軟件和依賴庫

  • Bundler

  • PMVS2

  • Graclus 下載完后根據(jù)個人系統(tǒng)版本具垫,修改Makefile.in文件中的COPTIONS選項

COPTIONS = -DNUMBITS=32     #32位機器
COPTIONS = -DNUMBITS=64     #64位機器

修改完后在終端執(zhí)行make命令進行編譯叫惊。編譯完成后將libmetis.alibmultilevel.a兩個文件放到PMVS2的Makefile文件中YOUR_LDLIB_PATH設(shè)置的路徑下。

2)CMVS安裝

進入PMVS2目錄做修,備份Makefile文件

cd ./pmvs-2
mv program/main/Makefile program/main/Makefile.bak

將下載好的CMVS工具包解壓并將文件覆蓋PMVS的文件,然后修改Makefile文件:拷貝program/main/Makefile.bak文件中的YOUR_INCLUDE_PATHYOUR_LDLIB_PATH抡草,設(shè)置YOUR_INCLUDE_METIS_PATH為Graclus的目錄:

YOUR_INCLUDE_METIS_PATH = -I/home/st/app/graclus1.2/metisLib

注意前面加上"-I"饰及。另外,下載的CMVS中的Makefile文件中有幾行(10,13,16行)說明內(nèi)容需要手動注釋掉(前面加#號即可)康震。修改完Makefile文件后make即可燎含。

如果出現(xiàn)以下錯誤:

image

解決方法:修改../base/cmvs/bundle.cc文件

Add this to ../base/cmvs/bundle.cc
#include <numeric>

修改好后重新make,如果出現(xiàn)以下錯誤:

image

解決方法:修改genOption.cc文件

Add this to genOption.cc
#include <cstdlib>

修改好后重新make即可腿短。

安裝成功后將會得到pmvs2屏箍、cmvs绘梦、genOption三個二進制文件。

3.PMVS使用

以PMVS工具包自帶的data/hall為例赴魁,進入program/main目錄

默認指令:

./pmvs2 ../../data/hall/ option.txt

如果機器內(nèi)存不是很大的話卸奉,可以分兩步執(zhí)行:

./pmvs2 ../../data/hall/ option.txt-0000
./pmvs2 ../../data/hall/ option.txt-0001

如果機器內(nèi)存足夠的話,可以嘗試下面的指令獲得稠密點云:

./pmvs2 ../../data/hall/ option-highres.txt

結(jié)果將會保存在文件夾hall/models下颖御,默認指令下榄棵,將會得到三個文件:outputs.option.txt.plyoption.txt.patch潘拱、option.txt.pset

4.CMVS使用

參考CMVS官方文檔

5.稠密點云的可視化

利用PMVS進行稠密重建得到的outputs.option.txt.ply可以用可視化軟件MeshLab進行顯示疹鳄。

三.參考內(nèi)容

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末芦岂,一起剝皮案震驚了整個濱河市瘪弓,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌禽最,老刑警劉巖腺怯,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異弛随,居然都是意外死亡瓢喉,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門舀透,熙熙樓的掌柜王于貴愁眉苦臉地迎上來栓票,“玉大人,你說我怎么就攤上這事愕够∽咛埃” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵惑芭,是天一觀的道長坠狡。 經(jīng)常有香客問我,道長遂跟,這世上最難降的妖魔是什么逃沿? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮幻锁,結(jié)果婚禮上凯亮,老公的妹妹穿的比我還像新娘。我一直安慰自己哄尔,他們只是感情好假消,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岭接,像睡著了一般富拗。 火紅的嫁衣襯著肌膚如雪臼予。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天啃沪,我揣著相機與錄音粘拾,去河邊找鬼。 笑死谅阿,一個胖子當著我的面吹牛半哟,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播签餐,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼寓涨,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了氯檐?” 一聲冷哼從身側(cè)響起戒良,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冠摄,沒想到半個月后糯崎,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡河泳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年沃呢,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拆挥。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡薄霜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出纸兔,到底是詐尸還是另有隱情惰瓜,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布汉矿,位于F島的核電站崎坊,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洲拇。R本人自食惡果不足惜奈揍,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赋续。 院中可真熱鬧打月,春花似錦、人聲如沸蚕捉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫淹。三九已至秘通,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間敛熬,已是汗流浹背肺稀。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留应民,地道東北人话原。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像诲锹,于是被迫代替她去往敵國和親繁仁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 版權(quán)所有归园,轉(zhuǎn)載請注明出處 一. 簡介 Bundler和PMVS(CMVS)是進行三維重構(gòu)中非常有用的一套工具包黄虱,B...
    mac在路上閱讀 6,927評論 0 6
  • 小程序 1 創(chuàng)建項目 我們需要通過開發(fā)者工具,來完成小程序創(chuàng)建和代碼編輯庸诱。 開發(fā)者工具安裝完成后捻浦,打開并使用微信掃...
    zhangyu_2943閱讀 244評論 0 0
  • 鍵盤控制方向 1.主光源刪掉,新建一個Plane桥爽,一個Cube朱灿,一個Point Light,Point Light...
    唯一的one閱讀 285評論 0 0
  • 與艾瑪交流后钠四,任申在心中做出了數(shù)個推論盗扒,并逐一確認。雖然艾瑪也不清楚【主神】的情況形导,任申總覺得那應(yīng)該是某類外星人环疼,...
    ginsan閱讀 401評論 0 2
  • 昨天晚上七點左右,天色漸暗但還沒有完全黑下來朵耕,我一個人站在在街邊等同事炫隶,她開車去了,街上很多店鋪都關(guān)門了阎曹,但還是人...
    諸里夫人閱讀 368評論 0 0