colmap+meshlab 三维重建

1 篇文章 0 订阅
1 篇文章 0 订阅

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框内查询当前状态。
在这里插入图片描述
5.项目保存
稀疏点云重建后进行项目保存
在这里插入图片描述
在这里插入图片描述
6.稠密点云重建
在这里插入图片描述
创建workspace
在这里插入图片描述

点击“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:稠密重建
在这里插入图片描述
7.导出模型
在这里插入图片描述
在这里插入图片描述

meshlab的三维重建点云后处理
open project
1.打开 bundle.out 文件 :
在这里插入图片描述
在这里插入图片描述
稍等片刻:加载成功后
显示相机位置

Render->ShowCamera
在这里插入图片描述
注:其实这一步可以不要,但是这一步能直观的给你展示一个SFM的具体的样子,对于新手还是很有必要的

import mesh(加载稠密点云)

在这里插入图片描述
2.4 清除杂点

就是把那些离散的很远的,点都去掉,把不是我们想要的目标的点去掉,还有就是明显错误的点(例如:不在本来的平面上)都去掉。(注意:这时我们右边的图层中应该选中的是刚打开的稠密点云.ply,而不是稀疏点云 model)
在这里插入图片描述

2.4 网格化(参考:https://blog.csdn.net/moneyhoney123/article/details/78454837)

Filter -> remeshing simpfication and reconstuction -> Screened Possion Surface Reconstruction
在这里插入图片描述

在这里插入图片描述
en(关于这里的参数设置,可以进行自定调整,Depth越大越精细,且重建所需时间越长)
上面的曲面明显多了很多,下面就把多余的删除:

Filter-> Slection -> Slect Face With edges longer than…
在这里插入图片描述
然后按下面这两个按钮,删除:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
参数化(Parameterization)+纹理投影
在这里插入图片描述
在这里插入图片描述
export mesh as…
在这里插入图片描述

附言:
1.colmap 相机模型及参数

// Simple Pinhole camera model.
//   f, cx, cy
CAMERA_MODEL_DEFINITIONS(0, "SIMPLE_PINHOLE", 3)

// Pinhole camera model.
//    fx, fy, cx, cy
CAMERA_MODEL_DEFINITIONS(1, "PINHOLE", 4)

// Simple camera model with one focal length and one radial distortion
// parameter.
//    f, cx, cy, k
CAMERA_MODEL_DEFINITIONS(2, "SIMPLE_RADIAL", 4)

// Simple camera model with one focal length and two radial distortion
// parameters.
//    f, cx, cy, k1, k2
CAMERA_MODEL_DEFINITIONS(3, "RADIAL", 5)

// OpenCV camera model.
//    fx, fy, cx, cy, k1, k2, p1, p2
CAMERA_MODEL_DEFINITIONS(4, "OPENCV", 8)

// OpenCV fish-eye camera model.
//    fx, fy, cx, cy, k1, k2, k3, k4
CAMERA_MODEL_DEFINITIONS(5, "OPENCV_FISHEYE", 8)

// Full OpenCV camera model.
//    fx, fy, cx, cy, k1, k2, p1, p2, k3, k4, k5, k6
CAMERA_MODEL_DEFINITIONS(6, "FULL_OPENCV", 12)

// FOV camera model.
//    fx, fy, cx, cy, omega
CAMERA_MODEL_DEFINITIONS(7, "FOV", 5)

// Simple camera model with one focal length and one radial distortion
// parameter, suitable for fish-eye cameras.
//    f, cx, cy, k
CAMERA_MODEL_DEFINITIONS(8, "SIMPLE_RADIAL_FISHEYE", 4)

// Simple camera model with one focal length and two radial distortion
// parameters, suitable for fish-eye cameras.
//    f, cx, cy, k1, k2
CAMERA_MODEL_DEFINITIONS(9, "RADIAL_FISHEYE", 5)

// Camera model with radial and tangential distortion coefficients and
// additional coefficients accounting for thin-prism distortion.
//    fx, fy, cx, cy, k1, k2, p1, p2, k3, k4, sx1, sy1
CAMERA_MODEL_DEFINITIONS(10, "THIN_PRISM_FISHEYE", 12)

2.若要使用自己摄像机参数进行重建,需选择摄像机模型类型(camera model),输入自己相机参数,继而把图片的camera-id全部设置为前面设置相机id
在这里插入图片描述
在这里插入图片描述
关闭项目自动改善相机参数功能:
在这里插入图片描述

  • 13
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值