初次嘗試使用VisualSFM記錄
對於SFM一直覺得高大上又神祕,一年前粗略的瞭解過一下,今年有時間嘗試深入瞭解SFM,對於初學者來說,VisualSFM真的時非常好的感受SFM的免費軟體,於是通過其他部落格的指導(沒去看官方的英文版,容易犯困),做了一個3D模型出來,感覺還挺好玩,記錄一下。
實際上,VisualSFM只做了一部分工作,優化是用MeshLab做的,所以分兩個環節:
1.VisualSFM做"影象匹配"、“SFM”(CMVS)、"BA"
官網下載的UI不帶cmvs,所以從別的部落格
1.1 匯入影象
滑鼠單擊下面的按鈕
選擇需要匯入的影象
影象匯入完成
1.2 影象配準
滑鼠單擊下面的按鈕“Compute Missing Matches”
開始配準了...
(注意:高解析度的影象,這裡預設3200,具體請參考這裡:https://blog.csdn.net/kiara_wei/article/details/68485062)
配準完事了,Log Window可見
1.3 稀疏點雲
配準完了之後點選下面的按鈕:
開始生成點雲了,很快,而且有顯示:
1.4 加密點雲
按下面的按鈕:
開始之後,命名,然後就要等了,稍微有點慢(87秒/73張圖):
完成了!
2. MeshLab 該登場了
2.1 open project
開啟VisualSFM生成的 “.out”,和“list.txt”
稍等片刻:
2.2 顯示相機位置
Render->ShowCamera
然後設定尺度:(參考:https://blog.csdn.net/moneyhoney123/article/details/78454837)
(注:其實這一步可以不要,但是這一步能直觀的給你展示一個SFM的具體的樣子,對於新手還是很有必要的)
2.3 載入稠密點雲
注意,就是用VisualSFM生成稠密點雲時咱命名的哪個檔名,別選錯了。
2.4 清除雜點
就是把那些離散的很遠的,點都去掉,把不是我們想要的目標的點去掉,還有就是明顯錯誤的點(例如:不在本來的平面上)都去掉。(注意:這時我們右邊的圖層中應該選中的是剛開啟的稠密點雲.ply,而不是稀疏點雲 model)
按下面的這個按鈕:
選擇需要清除的點:
然後點下面這個按鈕刪除:
重複上面的操作:選擇->刪除->選擇->刪除->選擇->刪除........en,乾淨、整齊了很多
2.4 網格化(參考:https://blog.csdn.net/moneyhoney123/article/details/78454837)
Filter -> Point Set -> Surface Reconstruction:Poisson
en,我電腦垃圾,所以有點慢:(關於這裡的引數設定,可以參考上面的參考部落格,我不想深究,就想早點看到結果)
上面的曲面明顯多了很多,下面就把多餘的刪除:
Filter-> Slection -> Slect Face With edges longer than...
然後按下面這兩個按鈕,刪除:
然後,儲存整個工程和檔案;
2.5 修復流形邊
Filter-> Selction ->Slect non Manifold Edges
執行完成之後,再點一次下面的兩個按鈕,刪除之:
2.6 引數化(Parameterization)
Filter–> Texture –> Parameterization from registered rasters
Apply!
2.7 紋理投影
Filter–> Texture –> Project active rasters color to current mesh, filling thetexture
執行完成之後,得把稠密點雲和稀疏點雲都關閉(隱藏),就能看出建立好的模型了:
2.8 完成了,就可匯出了,不匯出下次可就看不到了;
-----------------------------------------------------------------------------------------------------------------------------
好了,完事了,總結一下:
圖越多,效果越好哈,真的是;(這是一句廢話)
2.4柵格化的時候,刪除多餘的面,如果手動刪除的話也是可行的,這樣滑鼠的表面就不會被刪除了,最終的結果就不會鏤空那麼多了。