SfM(一)

本文介绍了SfM算法的基本流程,从图像输入到相机姿态和稀疏点云的生成过程,涉及提点、去错点、求初始P矩阵、前方交会及BA等内容,并对核线几何等背景知识进行了说明。

SfM算法是很大的一块,从图像输入到相机姿态和稀疏点云,里面包括了提点、去错点、求初始P矩阵、前方交会最后还有BA。BA这块还没有搞明白,从共线方程出发的一下处理,以后在研究。

一,背景知识

1.核线几何


两幅影像,像主点O,O` 空间一点P,在两幅影响上投影点p 和p`。构成几何约束

04-14
### SFM (Structure from Motion) 的定义与应用 SFM 是计算机视觉领域中的个重要概念,其全称为 **Structure from Motion** 或者有时也被解释为 **Simultaneous Feature Matching**。它是种通过分析物体或相机运动来重建三维结构的技术[^1]。 #### 定义 SFM 技术的核心目标是从系列二维图像中恢复场景的三维几何结构以及相机的姿态参数。这过程依赖于多视图几何理论,利用特征匹配、三角化和优化算法完成三维重建任务[^1]。 #### 使用方法概述 以下是实现 SFM 方法的主要技术环节: 1. **特征提取与匹配** 特征检测通常采用 SIFT(Scale-Invariant Feature Transform)、SURF(Speeded-Up Robust Features)或其他现代深度学习模型如 SuperPoint 提取局部特征点并计算描述子。随后使用暴力匹配或 FLANN 等高效算法寻找对应关系[^1]。 2. **本质矩阵估计** 基于 RANSAC 鲁棒估计方法求解本质矩阵 \( E \),该矩阵编码了两幅图像之间的相对旋转和平移信息。具体公式如下所示: ```python import numpy as np # 计算基础矩阵 F 和本质矩阵 E K = ... # 相机内参矩阵 F, mask = cv2.findFundamentalMat(pts1, pts2, cv2.FM_RANSAC) E = K.T @ F @ K ``` 3. **相机姿态初始化** 利用奇异值分解(SVD)从本质矩阵中提取可能的四组解,并依据三角不等式约束筛选出唯合理的组作为初始位姿估计[^1]。 4. **稀疏重建** 对所有已知视角下的特征点执行增量式 BA(Bundle Adjustment),逐步扩展全局地图规模直至覆盖整个序列范围内的全部帧数据为止[^1]。 5. **密集重建** 在获得初步骨架框架之后,进步借助 MVS(Multi-View Stereo)或多层网格融合手段生成高分辨率表面细节纹理贴图效果。 #### 应用实例 SFM 广泛应用于无人机航拍建模、自动驾驶环境感知、增强现实 AR 地图构建等领域之中。例如 Google Earth 中的城市全景展示即采用了类似的原理制作而成[^1]。 ```python import open3d as o3d # 可视化最终成果 pcd = o3d.geometry.PointCloud() pcd.points = o3d.utility.Vector3dVector(points_3D) o3d.visualization.draw_geometries([pcd]) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值