SLAM(同步定位与地图构建)、三维重建以及SFM(运动恢复结构)是计算机视觉与机器人技术中三大核心方法,三者既相互关联又各有侧重。本文综合多位业内专家的观点,系统梳理这三项技术的定义、本质区别以及实际场景中的选型指导,助您快速建立全面认知。
一、核心概念速览
在展开详细对比前,我们先清晰界定这三个术语的基本定义:
-
SLAM(同步定位与地图构建)
- “定位对象是谁?”——相机自身的姿态,即相机所在的机器人或设备的空间位姿。
- “构建谁的地图?”——相机所经过场景的地图。两相结合,才能确定机器人在某一地图中的精确位置及连续运动轨迹。
-
SFM(从运动恢复结构)
- 侧重于重建目标的三维模型。目标是人则重建人,目标是物体则重建物体,目标是场景则生成整个场景的三维结构。
-
三维重建(密集重建)
- 关键在于恢复深度图,特别是关键帧的深度信息,可通过立体匹配算法或深度传感器直接获得,最终输出高精度的稠密三维模型。

图1:LSD-SLAM中蓝色代表运动轨迹位置,黄色表示位置间的约束关系(优化问题)。由此可见,SLAM生成的是稀疏点云。
二、SLAM vs 三维重建(含SFM)的核心区别
1. 定位 vs 建图:侧重不同
- SLAM:核心在于定位。相机必须实时知晓自身姿态,由于所需姿态通常是三维的,在恢复3D位姿时通过PnP方法可获取若干3D点作为地图,但通常呈现稀疏特征。直接法则计算图像梯度变化剧烈区域的深度,生成半稀疏地图。
- SFM/三维重建:核心在于建图。目标是获得精细的三维模型,无需实时定位能力。
2. 实时性要求
- SLAM:必须满足实时性。否则在自动驾驶、机器人导航等场景中可能引发事故。SLAM优先保证速度,精度次之,因此仅在关键帧间执行BA(光束法平差),非关键帧则采用基于滤波器的方式。
- SFM:对实时性无要求。数据可无序输入,能充分利用所有图像信息,在可行之处均进行BA优化,以追求更高精度。
3. 稀疏 vs 稠密
- SLAM:属于稀疏重建范畴。现有方法在小尺度场景下可实现相对稠密的地图构建(如图2),但在大场景中难以做到。因为导航任务需要实时性,大场景稠密地图的读取与存储对当前硬件仍是挑战。因此,SLAM遗留的一个关键问题是如何实现稀疏地图的稠密化,或稠密地图的稀疏表达(如八叉树octotree)。
- 三维重建:属于密集重建。生成的三维模型非常精细,可针对人、物体或场景进行高保真重建。
4. 数据有序性
- SLAM:数据呈线性顺序,无法一次性获取所有图像,且部分SLAM算法可能丢失历史信息。
- SFM:数据是无序的,可一次性输入全部图像,充分利用所有可用信息。
三、SLAM与SFM的详细对比
区别
- 动态 vs 静态:SLAM需处理动态问题,涉及滤波、运动学等知识;SFM主要聚焦于图像处理技术。
- 速度与精度取舍:SLAM优先保证速度,精度相对次要;SFM则优先追求精度,速度可放宽。
- BA执行频次:SLAM仅在关键帧之间执行BA;SFM在所有可能环节均执行BA。
联系
- 基本理论相同:均基于多视角几何原理。
- 传统方法均需进行特征提取与匹配。
- 都需要最小化投影误差(重投影误差)。
- 回环检测与矫正,与SfM中的全局注册本质上是一回事。
四、三维重建(密集重建)的特殊性
三维重建与SLAM/SFM最根本的区别在于:它必须恢复深度图,至少是关键帧的深度信息。获取深度图的主要途径包括:
- 立体匹配:代表方法有SGM类和PatchMatch类。PatchMatch可借助前期SLAM或SFM解算得到的稀疏3D点,在全图像平面进行传播;而SGM则需要从头开始进行匹配。
- 深度图融合:三维模型的表示方式多样,如三角网格(Triangle Mesh)、体素(Voxel)、截断符号距离函数(TSDF)等。不同表示对应不同的融合策略,这是一个独立的研究方向。
到这一阶段,三维重建与SLAM的技术路线已完全不同。
五、常见问题与解答(FAQ)
Q1:为什么SLAM不直接构建稠密地图?
A:主要受限于实时性要求。SLAM必须实时运行,而大场景稠密地图的读取与存储当前硬件难以承受。尽管稠密地图更有利于机器人自主定位,但其计算开销过大。目前的应对策略包括稀疏地图的稠密化,或采用稠密地图的稀疏表达方式(如八叉树octotree)。
Q2:SLAM和SFM哪个更先进?
A:两者并无优劣之分,适用场景不同。SLAM适合实时导航、机器人等需要连续定位的任务;SFM则适用于离线三维建模、影视特效、文物数字化等对精度要求高且无需实时处理的场景。
Q3:SLAM中的M(地图)什么时候能变成可用于语义分割的稠密地图?
A:这是当前SLAM领域的前沿课题之一。一旦实现真正意义上的稠密建图(dense mapping),并能够支持语义分割与识别,机器人的自主感知能力将得到质的飞跃。
六、小提示
- 如果您的应用场景要求实时定位(如自动驾驶、扫地机器人),应优先选用SLAM技术。
- 如果您的需求是高精度三维模型(如文物数字化、影视特效),则推荐采用SFM或三维重建方案。
- 在实际工程项目中,常将两者结合:先用SLAM实现快速定位与稀疏建图,再通过SFM或深度图融合生成精细模型。
本文由计算机视觉life综合多位专家回答整理而成,解释权归原作者所有。如涉及侵权,请联系删除。编辑:黄飞
