三维重建工具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个像素左右;