SLAM、SFM、MVG与MVS的区别和联系
时间:2023-07-18 00:37:00
看了许多与本人研究方向有关的论文,经常涉及到SLAM、SFM、MVG、MVS这些部分有很大的相似之处,但是重点不同,因此,根据目标设计的策略是不同的。
以下是我的理解。如有问题,请在评论区指出并讨论。
1.SLAM(Simultaneous Localization and Mapping),也称为CML (Concurrent Mapping and Localization)
顾名思义,同步定位与建图,目的是让在未知的环境中的机器人(无人机、无人车等等)边走边确定自己的定位的同时描绘周围场景。
从任务要求可以看出,这是一项实时要求高的感知任务,便于后续决策。因此SLAM的重点在于实时精确导航,无偏差构图和渲染场景的优先级较低。
1.1实时要求与后面不同SFM的本质:
1.操作数据不同。SLAM输入多是有时序的连贯图像(也可能是其他传感器信息)主要在这里VSLAM),不可能一次获得所有图像,也可能为了实时性而主动丢弃过去的一些信息
- SFM可以一次输入所有图像(主要是无序的)所有信息进行优化
2.时间要求不同。SLAM实时性导致了许多准确定位的好处不能应用耗时的方法于online;
- 而SFM主要是离线工作,不惜一切代价为精度牺牲时间
3.时间需求不同。SLAM是实时Online的,任务是正在进行时,因此,我们非常有必要知道实时获取图像的位置信息,以便后续Prediction、决策规划(是动态问题
- 而SFM是离线Offline的,图像信息在之前已经全部采集好了,不会重点关注于具体某一处的位姿信息。
2.SFM(Structure from Motion)
其核心目的是3D Reconstruction
这里的Structure个人认为是VSLAM里的mapping
SFM里的Camera Pose个人认为是VSLAM里的Localization
SLAM与SFM的区别在1.已经解释过了,从中也可以看出两者其实有很大的联系,个人认为VSLAM其实是SFM的子集,随着硬件和计算能力的创新,未来两者将更加相似:
- SLAM现阶段主要关注real-time、prediction、navigation,突破实时性问题时,mapping上发力。
- SFM主要精力在于精度,为后面MVS做好准备,有余力的时候会实时发力,增量式sfm和VSLAM边界更加模糊。
3. MVG(Multiple View Geometry)和MVS(Multiple View Stereovision)
多视图几何(MVG)多视图立体视觉(MVS)不同的任务:
- 前者是骨架,从数据(图像和相机内参)中恢复相机的位置和方向;还可以输出稀疏的3D点云(三角测量是通过从照片中观察到的特征来构建的)MVG在这里就是SFM,从字面上MVG应该是SFM本质(不知道大家怎么看?
- 后者是皮包骨,得到了密集的三维重建;一般输入是MVG相机位置和相应图像的输出可以是密集的点云、刻面曲面(网格)或一组平面,可以视为场景的真实3D渲染。
三维重建真实场景一般的pipeline:
SfM(Structure from Motion) MVS(Multi View Stereo) SR(Surface Reconstruction) TM(Texture Mapping),下图(源):
现在的趋势是SFM后部用机器学习或深度学习来恢复现实世界的感官。