sfm从运动到结构

本文详细介绍Structure from Motion (SFM)技术原理及实现流程,包括特征点提取与匹配、旋转和平移平均计算等,并展示了视频帧处理的实际效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


sfm,即structure from motion。从一堆同一场景的照片中恢复场景的三维结构和照片拍摄时相机的位置,可分为全局sfm和增量式sfm。


全局sfm主要包括以下步骤:

1.提取各张照片上的特征点及其描述;

2.对所有照片相互进行特征点匹配;

3.根据匹配的特征点计算照片i到照片j的相互位置关系(本质矩阵5点算法,或其它算法),得到view graph;

4.对相互位置关系进行准确性验证(validation check);

5.根据照片两两之间的匹配点数或者匹配误差,从view graph 中提取maximum spanning tree 用于计算各个照片在全局坐标系下的旋转初值;

6.通过view graph 进行rotation averaging获取各照片在全局坐标系下的旋转值;

7.使用全局旋转进行translation averaging获取各照片在全局坐标系下的平移量(或者同时获取了匹配点三维坐标值);

8.进行最终的光束平差优化。


近十年该领域的发展主要集中在rotation averaging和translation averaging这两方面的鲁棒性和精确性提升。


根据以上pipeline,编程实现了以上7个步骤。对一段视频提取拍摄相机的运动数据(未知相机内参数,图像畸变很小,下载地址http://download.youkuaiyun.com/download/j10527/10168529),结果见下图:






view graph如下,越亮表示匹配点越多



validation check通过的如下白色所示,未通过为灰色。



maximum spanning tree如下图所示:


地形数据测量是许多地貌研究应用程序的基本方面,尤其是那些包括地形监测和地形变化研究的应用程序。然而,大多数测量技术需要相对昂贵的技术或专门的用户监督。 Motion(SfM)摄影测量技术的结构通过允许使用消费级数码相机和高度自动化的数据处理(可以免费使用)减少了这两个限制。因此,SfM摄影测量法提供了快速,自动化和低成本获取3D数据的可能性,这不可避免地引起了地貌界的极大兴趣。在此贡献中,介绍了SfM摄影测量的基本概念,同时也承认了其传统。举几个例子来说明SfM在地貌研究中的应用潜力。特别是,SfM摄影测量为地貌学家提供了一种工具,用于在一定范围内对3-D形式进行高分辨率表征,并用于变化检测。 SfM数据处理的高度自动化既创造了机遇,也带来了威胁,特别是因为用户控制倾向于将重点放在最终产品的可视化上,而不是固有的数据质量上。因此,这项贡献旨在指导潜在的新用户成功地将SfM应用于一系列地貌研究。 关键词:运动结构,近距离摄影测量,智能手机技术,测量系统,表面形态echnology reduces both these constraints by allowing the use of consumer grade digital cameras and highly automated data processing, which can be free to use. SfM photogrammetry therefore offers the possibility of fast, automated and low-cost acquisition of 3-D data, which has inevitably created great interest amongst the geomorphological community. In this contribution, the basic concepts of SfM photogrammetry are presented, whilst recognising its heritage. A few examples are employed to illustrate the potential of SfM applications for geomorphological research. In particular, SfM photogrammetry offers to geomorphologists a tool for high-resolution characterisation of 3-D forms at a range of scales and for change detection purposes. The high level of automation of SfM data processing creates both opportunities and threats, particularly because user control tends to focus upon visualisation of the final product rather than upon inherent data quality. Accordingly, this contribution seeks to guide potential new users in successfully applying SfM for a range of geomorphic studies.
### 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]) ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值