SFM方向开源软件COLMAP代码分析

作为目前最优的SFM开源软件COLMAP(离线处理模式),其详细介绍可参考:http://colmap.github.io/ ,编译源码后运行程序界面如下:

SFM方向开源软件COLMAP代码分析_第1张图片

其稀疏重建数据处理流程为:

1)“File->Project",设置工程目录以及导入待处理数据集;

2)”Processing->Feature extraction/Feature matching",对导入的数据集进行特征提取与匹配;

3)“Reconstructin->Start reconstruction",进行增量式重建。

重建示例:

SFM方向开源软件COLMAP代码分析_第2张图片

 

源码分析:

下载下来的源码位于colmap-3.5/src路径下,包括下图所示几个子文件夹:

SFM方向开源软件COLMAP代码分析_第3张图片

base/util文件夹下除提供最基本的数据缓存存储格式定义外还有整个SFM流程中的最底层操作,其中最关键的是correspondence_graph的建立,对于后续的最优初始化图像对的选取以及Next best view selection;特征提取与匹配的基本操作在feature文件夹下,增量式重建的最基本操作在sfm文件夹下,光束法平差的最基本操作在optim文件夹下,controllers文件夹下涉及对最底层增量式重建和光束法平差操作的进一步封装,其下的”automatic_reconstruction"将前面分析的三步数据处理流程合并,一键式重建,ui文件夹与软件界面相关。

流程伪代码表示:

SFM方向开源软件COLMAP代码分析_第4张图片

详细的函数实现总结如下(列出了源码中主要步骤涉及到的主要函数,函数实现的功能就是函数名表示的含义。具体参数变量定义见源码):

SFM方向开源软件COLMAP代码分析_第5张图片

SFM方向开源软件COLMAP代码分析_第6张图片

以上函数涉及到很多的参数选项设置,针对上面的三个数据处理流程,涉及到的选项设置如下(具体见源码,这里只是提取汇总):

SFM方向开源软件COLMAP代码分析_第7张图片

发展趋势:

SFM相比于vSLAM,其重建速度略慢,但精度较高。COLMAP仍然为离线处理模式,可以向在线处理模式发展。

 

 

你可能感兴趣的:(SFM方向开源软件COLMAP代码分析)