colmap的使用简介
colmap的三维重建使用简介,首先colmap的安装传送门在我另一篇中有记录。
本篇记录一下使用方法。
1.数据集获取
首先是数据集问题,可以下载自己想试着重建的数据集保存。
通过colmap -h
和colmap gui
打开colmap的界面。
2.新建项目
首先点击file新建项目“New Project”
,弹出窗口,首先建立database,命名为scan1,后缀的db是它自动带上的,然后在Image中选择自己想要重建的图像。
3.特征点提取
之后就可以进行特征点提取,点击processing中的Feature extraction
,其中可以什么都不动,使用默认项,也可以自己修改,比如相机模型一般选择针孔模型,也可以换别的。然后点击Extract
选择相机模型为Pinhole
选择Parameters from EXIF:从EXIF中提取相机内参(一般采集到的影响都携带EXIF文件)其他参数暂且默认
然后点击Extract进行特征提取
4.特征点匹配
特征提取之后,需要进行特征匹配,点击processing中的Feature matching
,其中可以什么都不动,使用默认项,也可以自己修改,然后点击run
。
这个步骤结束之后会自动生成场景图和匹配矩阵(以不同视图之间同名特征数为权重,以不同视图为图节点的图结构)
5.稀疏点云重建
然后就是稀疏点云重建。这里点击“reconstruction”中的“start reconstruction”进行一键式重建,整个过程将会自动进行增量式重建,我们可以从旁边的log框内查询当前状态。
1.右侧显示中,可以看出,
Registering image #39(49) :当前正在新增第39个视角
=> Image sees 337 / 503 poin :当前影像可以看到已有点云的337个
Pose refinement report :姿态细化信息
Residuals:672
Parameters:8 //参数
Iterations:8 //迭代次数
time:0.0055149
Initial cost:0.62589
Final cost:0.55798
Termination:covergence
Continued observation:3 //继续观察
Added observations:47 //新增观察点
2.进行姿态估计(Pose Refinement Report),再进行BA优化
Bundle adjustment report :BA优化
Residuals:12142
Parameters:1082 //参数
Iterations:12 //迭代次数
time:0.167065
Initial cost:0.515275
Final cost:0.504027
Termination:covergence
Merged observations:110//合并观察? 整体稀疏点云融合测量点110个
Completed observations:XXX //完成观察
Filtered observation 41 //过滤观察 滤除测量点41个
Changed observation XXX
最后进行三角测量(Retriangulation)新增观测点111个。
上述过程结束后,进行迭代全局的BA优化,优化已有相机的姿态和三维稀疏点云坐标。
以第49张图像(39个视角)为例
已有点云576个首先进行姿态估计(Pose Refinement Report)再进行BA优化:整体稀疏点云融合测量点149个,滤除测量点32个再进行三角测量(Retriangulation)最后再进行迭代全局的BA优化,优化已有相机的姿态和三维稀疏点云坐标
6.稠密点云重建
点击“reconstruction”中的“dense reconstruction”,弹出稠密重建窗口,并点击“select”选择生成文件存放的目录,首先新建workspace的保存路径。
然后对窗口前三个选项一次点击。
Undistortion: 影像去畸变
注意:这里不要选择项目的根目录,拷贝图片的时候会报错路径已存在导致colmap gui闪退的;同时undistortion也只能点一次,第二次同样会因为路径已存在闪退
带有畸变的图像会导致边缘有较大的时差估计误差,因此在深度图估计之前,使用光学一致性和几何一致性联合约束构造代价匹配
dtu数据集和之前配置成针孔模型已经隐含无畸变 如果使用自采集数据集需要更改相机模型为带畸变参数的相机模型
stereo:深度估计
深度估计结束后,可以得到“photometric”和“geometric”下的深度图和法向量图。由之前提及的原理,COLMAP会利用光学一致性(photometric)同时估计视角的深度值和法向量值,并利用几何一致性(geometric)进行深度图优化,因此可以点击“Depth Map”和“Normal Map”,即可得到对应视角的深度图和法向量图。
点击这些就可以观察光学一致性photometric和几何一致性geometric后的depth map和normal map
Colmap会利用光学一致性同时估计视角的深度值和法向量值,并利用几何一致性进行深度图优化
参考图片
Fusion:稠密重建
通过meshlab,可以更清晰的看到重建结果。meshlab需要自己安装。
重建后会在dense中生成ply模型文件
7.匹配矩阵
通过点击“Extras”中的“Match Matrix”可以导出当前场景的匹配矩阵。
从匹配矩阵中看出数据集之间相机运动规律,若相机围绕物体呈圆周采样,匹配矩阵将有条带出现且若途中各个条带的平行关系越紧致,则说明相机的运动控制越严格。采集数据集的前期控制对重现效果有影响。
8.深度估计时间
表1 深度图估计运行时间对比(单位:分钟)数据参考文章
本实验28个图像用时约21分钟
7.其中一些内容
1.photometric光度
Depth map 深度图
normal map 法线图
2.geometric几何
Depth map 深度图
normal map 法线图
COLMAP可以用于快速三维重建,代码封装良好。但缺点为深度图估计速度过慢,且在深度图估计精度上略低于深度学习的方法。
更多推荐
所有评论(0)