文章目录
一、SfM概念与目标
- 目标:通过多张不同视角的图像,重建场景的三维结构,同时估计相机的运动轨迹(外参)。
- 输入:一组图像(通常是同一场景的多张照片或视频帧)。
- 输出:相机的姿态(位姿轨迹)和场景的稀疏点云。
二、核心思想
SfM 是一种 多视几何 的方法:
- 通过图像中的 特征点匹配,恢复两两图像间的 相对相机位姿。
- 将不同图像的位姿对齐到同一坐标系,逐步扩展重建场景点。
- 通过 BA(Bundle Adjustment,全局优化) 优化相机参数和三维点坐标。
三、算法流程
典型的 SfM 流程分为以下几个步骤:
1. 特征提取与匹配
- 提取局部特征:SIFT、SURF、ORB 等。
- 进行图像对之间的特征匹配,并用 RANSAC 估计几何模型,去除错误匹配。
2. 初始相机对的选择
- 选取一对视角差异较大、匹配点足够多的图像作为初始对。
- 使用 本质矩阵 E 或基础矩阵 F 分解,恢复这两张图像的相对姿态。
- 三角化匹配点,得到初始的 3D 点云。
3. 增量式重建
-
逐步加入新的图像:
- 将新图像与已有点云进行 PnP(Perspective-n-Point) 估计相机位姿。
- 对新图像与已有相机视角可见的点进行三角化,增加点云。
4. 全局优化(Bundle Adjustment, BA)
-
定义重投影误差:
min { R i , t i , X j } ∑ i , j ∥ x i j − π ( R i , t i , X j ) ∥ 2 \min_{\{R_i, t_i, X_j\}} \sum_{i,j} \| x_{ij} - \pi(R_i, t_i, X_j) \|^2 { Ri,t

最低0.47元/天 解锁文章
2352

被折叠的 条评论
为什么被折叠?



