SFM,VO,SLAM,BA,Graph Optimization的区别

1、SLAM  

 SLAM 分为很多种,目前主要有:PATM、MonoSLAM、ORB-SLAM、RGBD-SLAM、RTAB-SLAM、LSD-SLAM

SLAM这里主要讨论VSLAM,其中还可能包含其他传感器,如IMU、GPS、COMPASS等

VSLAM主要包含建图(包含回环检测)和后端优化两个部分

建图可以分为光流法、直接法和基于特征的方法;

直接法参考:http://www.cnblogs.com/gaoxiang12/p/5689927.html

基于特征的方法如下:

在已经接触到的RGBD-SLAM和MonoSLAM前端主要分为feature detect and descriptor、motion estimation等步骤,

feature detector可以分为point-feature detectors (比如:Moravec、Forstner、Harris、Shi-Tomasi、Fast)和 blob detectors(比如:SIFT、SURF、CENSURE)(《visual odometry part II》)

motion estimation 有3D-to-3D方法(如ICP算法)、3D-to-2D方法(D.nister 的《visual odometry》)、2D-to-2D(还没见过,应该有)方法 《visual odometry part I》


2、VO

Monocular VO 可以分为feature-based method、appearance-based method and hybrid method (《visual odometry part I》)


3、VO Versus SLAM

The goal of SLAM in general (and V-SLAM in particular) is to obtain a global ,consistent estimate of the robot path.This implies keeping a track of a map of the enviroment(even in the case where the map is not needed per se) because it is needed to realize when the robot returns to a previously visited area.(This is called loop closure.When a loop closure is detected ,this information is used to reduce the drift in both the map and camera path.Understanding when a loop closure occurs and efficiently integrating this new constraint into the current map are two of the main issues in SLAM.)Conversely,VO aims at recovering the path incrementally,pose after pose, and potentially optimizing only over the last n poses of the path(this is also called windowed bundle adjustment).This sliding window optimization can be considered equivalent to building a local map in SLAM;however,the philosophy is different:in VO,we only care about local consistency of the trajectory and the local map is used to obtain a more accurate estimate of the local trajectory (for example,in bundle adjustment),whereas SLAM is concerned with the global map consistency.  (《visual odometry part I》)

大意就是:VO专注于改善局部的轨迹,而SLAM专注于全局的轨迹c


4、SFM Versus SLAM

参考:https://www.quora.com/What-is-the-difference-between-SfM-and-Visual-SLAM

(1)SFM 图像无序的、离线处理的,对处理时间要求不严格;SLAM图像有序的,在线处理的,对处理时间要求严格;

(2)SFM一般用在大的范围,如构建谷歌地图;SLAM中尺度较大也就达到几千米。


5、BA(bundle adjustment)

Definition of reference frames for the bundle adjustment problem.There is a stationary reference frame and a moving reference frame, attached to a vehicle.A collection of points,Pj,are observed by the moving vehicle (using a camera) and the goal is to determine the relative pose of the moving frame with respect to the stationary one(at all of the times of interest) as well as the positions of all the points in the stationary frame.(摘自:《state estimation for robotics》第9章)

简而言之,BA算法是估计运动相机的位姿并且估计三维场景点的位置。


6、Graph Optimization

只要将优化问题表示成图的形式,这个优化问题就叫做图优化。


7、BA Versus Graph Optimization

通过以上关于Graph Optimization和BA算法的定义可以知道,BA算法属于图优化。所以既可以说SLAM的后端处理用的是BA算法,也可以说用的是图优化。

SFM(Structure from Motion)SLAM(Simultaneous Localization and Mapping)是计算机视觉机器人领域中的两个重要研究方向。 深入SFM,首先要了解其基本概念。SFM是一种从图像序列中重建三维场景的方法。它通过分析图像中物体摄像机的运动来推导出场景的结构摄像机的轨迹。在SFM中,我们使用了特征点匹配、三维点云重建等技术来实现场景的重建。此外,SFM还可以用于姿态估计、虚拟现实等领域。 在学习SFM时,我们需要掌握深度学习技术计算机视觉基础知识。了解深度神经网络、卷积神经网络、循环神经网络等深度学习模型对于理解SFM中的特征点检测、匹配姿态估计等步骤非常重要。同时,了解摄像机成像原理、特征描述子、三维点云重建算法等知识也是必不可少的。 深入SLAM,首先需要了解其基本概念。SLAM是一种同时定位地图构建的技术,用于机器人或自主系统实时建立环境的地图并同时估计自身的位置。SLAM主要关注于解决机器人在未知环境中自主导航的问题。SLAM算法通常包括前端后端两个模块。前端负责对环境进行感知,通过传感器(如激光雷达、摄像头等)获取数据。而后端负责估计机器人的轨迹构建地图。 学习SLAM时,我们需要掌握激光雷达、摄像头等传感器的工作原理以及数据处理方法。此外,了解滤波器理论、优化算法(如最小二乘法、非线性优化等)也是必要的。同时,学习SLAM框架(如ORB-SLAM、LSD-SLAM等)的实现原理代码实现可以帮助我们更好地理解SLAM算法。 总结而言,深入SFMSLAM需要掌握深度学习、计算机视觉机器人相关的知识。通过学习基本概念、核心算法实际应用,我们可以更好地理解应用SFMSLAM技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值