Contents

三维重建

三维重建

sfm算法原理

https://wjiajie.github.io/contents/slam-sfm/sfm-intro/

从无序图片中进行三维重建的离线算法

从运动中恢复物体的三维结构,估计出图片的R,t,结合相机内参重建稀疏点云

/posts/algorithm_knowledge_base/8_%E4%B8%89%E7%BB%B4%E9%87%8D%E5%BB%BA/image%2040.png

重建稀疏点云–重建稠密点云–点云融合-生成网格–添加纹理

SFM负责重建稀疏点云这一部分,从多张视图中估计出照片的旋转平移矩阵R,t,结合相机内参恢复物体稀疏点云结构。

获得两张图片中的对应点,然后估计基础矩阵F,再估计本征矩阵E,再通过SVD分解求得较好的R,t,得到物体的三维点,最后将多个稀疏点云融合

/posts/algorithm_knowledge_base/8_%E4%B8%89%E7%BB%B4%E9%87%8D%E5%BB%BA/image%2041.png

内参未知的情况下,F可通过SVD分解重构本质矩阵

SfM 流程总结:

1、关键点检测(Keypoint Detection):

从多张图像中提取关键点(如图中的雕塑)。这些关键点通常是图像中具有显著特征的点,例如角点或纹理丰富的区域。关键点的提取有助于在不同视图中进行匹配。

2、关键点匹配(Matching Keypoints):

在不同的图像之间对关键点进行匹配,找到在不同视图中对应的点对。这些匹配的点对为后续的几何推导奠定基础。通过匹配,可以确定哪些点在多幅图像中是相同的三维点的投影。

3、基础矩阵计算(Fundamental Matrix Calculation):

使用匹配到的关键点对,计算基础矩阵 F 。基础矩阵 F 描述了两个图像之间的几何约束关系,而不依赖于相机的内参。这一矩阵可以将一个图像中的点映射到另一个图像的极线上,定义了视图间的点对几何约束。

4、本质矩阵计算(Essential Matrix Calculation):

在相机的内参已知的情况下,将基础矩阵 F 转换为本质矩阵 E 。本质矩阵包含了两台相机之间的相对旋转和平移信息。它不仅描述了点在两幅图像之间的几何关系,还体现了相机的相对姿态。

5、相机位姿恢复([R|t] Decomposition):

从本质矩阵 E 中分解出相机的相对位姿,即旋转矩阵 R 和平移向量 t 。这些参数描述了相机在三维空间中的相对位置和方向,从而使我们能够将两个图像的坐标系关联起来。

6、三角测量(Triangulation):

利用多视角的点对和已估计的相机位姿,通过三角测量恢复三维空间中关键点的实际位置。这一步通过几何关系计算出三维点的空间坐标,从而生成场景的稀疏三维结构

7、构建三维结构(3D Structure Construction):

最终,经过上述步骤,得到的三维点可以组合成稀疏的三维点云模型,描述了场景的基本结构。这一稀疏模型可进一步用于密集重建、光束平差优化等后续步骤。

colmap

特征提取

特征匹配

SFM稀疏点云生成

去畸变

稠密点云生成

稠密点云融合 全局BA(非线性优化)

openMVS

ply格式转为mvs

生成网格

添加纹理

结果可视化

NeRF

辐射神经场

直接输出是视频

本质上是一个生成逼真渲染的技术,隐式表达

sfm与slam关系

  • 共同点
    • 两者都涉及到相机的运动和三维结构的重建,通常需要提取特征点并进行匹配。
    • 都依赖于几何关系和优化技术。
  • 不同点
    • 实时性:SLAM强调实时性,适用于动态环境;SFM通常是离线处理。
    • 目标:SFM主要关注重建场景的三维模型,而SLAM则同时关注定位和地图构建。
    • 数据来源:SLAM可以利用多种传感器数据(如激光、IMU等),而SFM主要基于视觉图像。

ply数据格式

Stanford Triangle Format

https://huangwang.github.io/2019/06/04/PLY%E6%96%87%E4%BB%B6%E6%A0%BC%E5%BC%8F%E5%88%86%E6%9E%90/

该格式主要用以储存立体扫描结果的三维数值,透过多边形片面的集合描述三维物体,与其他格式相较之下这是较为简单的方法。它可以储存的资讯包含颜色、透明度、表面法向量、材质座标与资料可信度,并能对多边形的正反两面设定不同的属性。

element vertex 100
property float x
property float y
property float z
property float nx
property float ny
property float nz