SFM方向开源软件COLMAP代码分析
作為目前最優(yōu)的SFM開源軟件COLMAP(離線處理模式),其詳細(xì)介紹可參考:http://colmap.github.io/ ,編譯源碼后運行程序界面如下:
其稀疏重建數(shù)據(jù)處理流程為:
1)“File->Project",設(shè)置工程目錄以及導(dǎo)入待處理數(shù)據(jù)集;
2)”Processing->Feature extraction/Feature matching",對導(dǎo)入的數(shù)據(jù)集進(jìn)行特征提取與匹配;
3)“Reconstructin->Start reconstruction",進(jìn)行增量式重建。
重建示例:
?
源碼分析:
下載下來的源碼位于colmap-3.5/src路徑下,包括下圖所示幾個子文件夾:
base/util文件夾下除提供最基本的數(shù)據(jù)緩存存儲格式定義外還有整個SFM流程中的最底層操作,其中最關(guān)鍵的是correspondence_graph的建立,對于后續(xù)的最優(yōu)初始化圖像對的選取以及Next best view selection;特征提取與匹配的基本操作在feature文件夾下,增量式重建的最基本操作在sfm文件夾下,光束法平差的最基本操作在optim文件夾下,controllers文件夾下涉及對最底層增量式重建和光束法平差操作的進(jìn)一步封裝,其下的”automatic_reconstruction"將前面分析的三步數(shù)據(jù)處理流程合并,一鍵式重建,ui文件夾與軟件界面相關(guān)。
流程偽代碼表示:
詳細(xì)的函數(shù)實現(xiàn)總結(jié)如下(列出了源碼中主要步驟涉及到的主要函數(shù),函數(shù)實現(xiàn)的功能就是函數(shù)名表示的含義。具體參數(shù)變量定義見源碼):
以上函數(shù)涉及到很多的參數(shù)選項設(shè)置,針對上面的三個數(shù)據(jù)處理流程,涉及到的選項設(shè)置如下(具體見源碼,這里只是提取匯總):
發(fā)展趨勢:
SFM相比于vSLAM,其重建速度略慢,但精度較高。COLMAP仍然為離線處理模式,可以向在線處理模式發(fā)展。
?
?
總結(jié)
以上是生活随笔為你收集整理的SFM方向开源软件COLMAP代码分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【JavaSE】Lambda表达式、接口
- 下一篇: win10+VS2012+opencv2