三维重建工具COLMAP使用笔记。
安装
sudo apt install colmap
运行
在命令行中
colmap -h
在可视化界面中
colmap gui
重建步骤
新建项目
File
->New Project
;- 设置
Database
为存储.db
文件的路径; - 设置
Images
为存储图片的路径;
特征提取
Processing
->Feature extraction
;Camera model
根据相机结构选择,以PINHOLE
为例;- 勾选
Custom Parameters
,输入预先标定的相机内参(中间无空格分隔),PINHOLE
相机模型内参包括fx,fy,cx,cy
; - 如有GPU,勾选
use_gpu
; - 点击
Extract
;
特征匹配
Processing
->Feature matching
;- 选择匹配方法,以
Exhaustive
为例,经测试相比于Sequential
耗时更长,但重建效果更好; - 如有GPU,勾选
use_gpu
; - 点击
Run
;
三维重建
Reconstruction
->Reconstruction Options
->Bundle
->Camera parameters
,取消勾选refine_focal_length
、refine_principal_point
、refine_extra_params
;Reconstruction
->Start reconstruction
;
结果保存和查看
结果保存
File
->Save project
,替换保存project.ini
文件;File
->Export model as text
,导出重建结果;
结果查看
File
->Import model
,导入重建结果;
注意事项
- 建议在重建前先标定相机内参,在重建过程中设置不优化相机内参,防止重建失败;
- 使用ZED 2相机可以获得去畸变后的图片以及对应的相机内参(发布在camera_info话题中,每次开机自标定后内参会有细微不同),此时可直接采用
PINHOLE
相机模型; - 一般来说采用
OpenCV
相机模型可以满足要求,模型参数包括fx,fy,cx,cy,k1,k2,p1,p2
,在标定时径向畸变和切向畸变选择两参数模型; - Xbbei/super-colmap使用SuperPoint代替COLMAP原来使用的SIFT特征来提取特征点,获得了更加鲁棒的特征点,提高了重建结果的质量,zxl19/super-colmap在其基础上添加了手动回环检测;
- 迭代结束时重投影误差一般在0.8个像素左右;