三维重建与视觉 SLAM 概览

进阶03-相机与三维几何预计 35 分钟SFMSLAM束调整三维重建

前置知识点

kp-012 对极几何:本质矩阵与基本矩阵 kp-013 立体视觉与深度

一句话定义

三维重建从多视角图像恢复相机位姿与场景结构(SFM 离线、SLAM 实时增量),核心流程是「特征匹配 → 两视图初始化 → 位姿图/束调整优化」,SLAM 在此之上增加实时回环与增量建图。

为什么重要

重建与定位是视觉进入机器人、测绘、元宇宙内容生产的接口;理解 SFM/SLAM 的模块划分,能让你读懂 COLMAP、ORB-SLAM 这类系统的架构图,也能判断「我的场景该用离线重建还是实时 SLAM」。

直观类比

离线 SFM 像修史:把上百张老照片(图像集)逐对考证(匹配),先确定两张的可信时间线(两视图初始化),再不断把新照片编入并整体校对年表(束调整)。SLAM 像边走边画的探险家:每走一步更新自己的位置(前端跟踪),随时把新地形补进地图(后端建图),绕回原地发现画错了就重描(回环检测与修正)。

前置知识

kp-012(本质矩阵与三角化);kp-013(深度与匹配);kp-008(特征匹配)。

核心概念

原理与机制

SFM 增量流程:选一对视图用 E 初始化(尺度和单位任意,即 up-to-scale);三角化出初始点云;对每个新视图用 PnP 注册位姿、三角化新点;每隔若干步做一次局部/全局 BA。BA 的目标函数是全部观测的重投影残差平方和,因雅可比矩阵高度稀疏(每个观测只关联 1 个相机与 1 个点),用稀疏求解器(如 Schur 消元)才能处理数千相机。SLAM 与 SFM 的本质差异是约束实时性:前端以 kp-022 光流或特征匹配跟踪局部地图点,后端维护关键帧位姿图,回环一旦确认即触发改写历史的位姿图优化——漂移不再随里程无限累积。

公式与模型

min_{R_i, t_i, X_j} Σ_{i,j} ρ( ‖ π(K, R_i, t_i, X_j) − x_{ij} ‖² ) (束调整:对相机位姿 i 与三维点 j 联合最小化重投影误差,ρ 为鲁棒核)

图示

相机位姿(待优化) 三维点(待优化) 回环约束(消除累积漂移)

实例与案例

无人机倾斜摄影测图:数千张照片经 COLMAP 类 SFM 重建稀疏云,MVS 稠密化后生成正射影像与三维模型。扫地机器人:VSLAM 以关键帧 + 回环维护户型图,断电重定位后继续清扫。AR 建图:手机实时 VIO(视觉 + IMU)估计位姿并增量建图,IMU 提供绝对尺度补上单目短板。神经渲染方向:NeRF/3DGS 用可微渲染拟合多视角外观实现照片级新视角合成,属于「重建的外观表达」新流派(图像生成另站覆盖,此处仅定位其感知侧角色)。

常见误区

与其他知识点的关系

两视图初始化(kp-012)与深度先验(kp-013)是本站积木;前端跟踪复用 kp-008 匹配与 kp-022 光流;回环思想与 kp-024 多目标跟踪的「轨迹确认」有相似的关联管理逻辑。

自测题

  1. SLAM 相比离线 SFM 必须新增哪两类机制?

答案要点:实时增量前端(跟踪已知地图)与回环检测 + 位姿图优化(消除累积漂移)。

  1. 为什么束调整必须用稀疏求解器?

答案要点:残差只关联单个相机与单个点,雅可比极度稀疏;稠密求逆在相机数上升后不可行,Schur 消元利用块结构。

  1. PnP 解决什么问题?

答案要点:已知若干 3D 点及其 2D 投影,求相机位姿 [R|t];是增量式重建注册新视图的标准步骤。

延伸阅读

相关知识点

kp-023 单目标跟踪:相关滤波与 Siamesekp-024 多目标跟踪:SORT/DeepSORT 与轨迹管理