1. 程式人生 > >MVE(Multi-View Enviroment)三維重建

MVE(Multi-View Enviroment)三維重建

對於三維重建,絕大部分的人應該都是用Bundler + CMVS-PMVS進行三維重建,有篇博文寫的很詳細,親測可用:Bundler + CMVS-PMVS

不過另一個三維重建的開源工具,在國內好像很少見到哎,這個工具功能齊全,包括紋理對映等等,都有自己的東西,還是按照常規習慣,先給連結:MVS

按照官網上說的意思呢,這是個加強版的三維重建開源軟體,三維重建和紋理對映都有,功能齊全,完全符合導師的要求和想法,不知道我這麼努力加班,會不會下個學期漲工資,哈哈哈哈哈哈

官網上給了一些MVE features,每個feature(除了第三個)都有對應的論文,論文看不下去哇~翻譯不過來,如圖


官網上圖片所示的內容下面是一些分開介紹該軟體的東東,後面估計會全看一下,這篇博文,主要說怎麼編譯,怎麼用。至於原理和功能,不再贅述。

系統:ubuntu17.10

編譯器:gcc 7.2.0

MVE工具的編譯:

1.下載原始碼

或者應用git命令:

git clone https://github.com/simonfuhrmann/mve.git

2.按照使用者手冊(user‘s guide)進行編譯

可以選擇直接閱讀手冊編譯

當然也可以接著我的往下看:

1)進入下載好的mve資料夾

cd mve
2)進行編譯
make -j8
備註:

編譯過程中,可能會遇到依賴庫的問題,在使用者手冊上也說的很詳細需要哪些哪些庫,對於編譯時報的錯,如下圖所示(編譯這個程式碼時的錯誤忘記記錄了,找了個別的,可能與實際不太一樣,不過大同小異),couldn't find TBB,可以google一下“how to install ××× on ubuntu”):


所有庫安裝好,編譯完成,就已經可以使用了

2.應用MVE前準備

同樣在上面提到的使用者手冊(user guide)中,有說如何應用(即該軟體有好幾個工具,各個工具會生成三維重建整個過程中的不同階段性產物,對於科研還有按需取用,真的是大有裨益:


按照上述命令,一步一步處理序列圖片,可以最終得到三維重建的結果

不過在輸入上述命令的時候,會遇到找不到命令的情況,因為上述的應用還尚未新增到環境變數中,所以不能直接在命令列下使用,所以為了方便使用,將這些所有的工具都新增到環境變數中去,新增環境變數的方式如下:

1)應用vi編輯器開啟環境變數的檔案(命令如下,即將mve的所有apps都新增到環境變數中):

vi ~/.bashrc

2)更新環境變數,使上述修改的環境變數能夠生效

source ~/.bashrc

3.資料準備

在MVE官網上有對應的練手的資料集可以使用,我下載的時Der Hass資料集,就是一堆圖片,然後這個可以把MVE的所有工具都能用一遍,生成一個ply的三維模型:


4.應用MVE

1)下載得到資料集後解壓:


2)在上圖所示的資料夾,即存放der_hass-20140923資料夾的目錄下開啟終端,輸入命令(der_hass-20140923代表的時待處理的資料集,der_hass代表的是處理後輸出的存放資料的資料夾):

makescene -i der_hass-20140923 der_hass

3)處理完成後,依次輸入下面的命令,每輸入一次命令後,需要等待一段時間處理影象(提取特徵點,匹配特徵點的過程略漫長, sfmrecon的命令如圖,其餘命令資料夾的輸入輸出與2)中的資料夾輸入輸出一樣):
sfmrecon der_hass
dmrecon -s2 der_hass
scene2pset -F2 der_hass der_hass/pset-L2.ply
fssrecon der_hass/pset-L2.ply der_hass/surface-L2.ply
meshclean -t10 der_hass/surface-L2.ply der_hass/surface-L2-clean.ply


5.Show Time

得到的各種ply檔案如圖:


最後生成的檔案為surface-L2-clean.ply,用meshlab開啟的結果為:


MVE各個工具分開跑下來展示了整個三維重建的過程和步驟,每個部分都有對應的論文,覺得無論做三維重建還是應用三維重建的演算法,整個工具都是很好的選擇。