在Orb-Slam中有三个地图分别是Covisibility Graph,Spanning Graph,以及Essential Graph,它们三个分别是什么意思呢?

首先,图优化是目前视觉SLAM里主流的优化方式。其思想是把一个优化问题表达成图(Graph),以便我们理解、观察。如果题主想更清楚地认识图优化与SLAM的关系,可以参见

一个图中有很多顶点,以及连接各顶点的边。当它们表示一个优化问题时,顶点是待优化的变量,而是指误差项。我们把各个边的误差加到一起,就得到了整个优化问题的误差函数。

顶点的参数化形式可以有很多不同的样子。例如某些顶点可以表示相机的Pose,另一些顶点可以表示三维空间点。同理,边也有不同的形式。除了个别的顶点和边,我们也关心整个图的结构,例如连通性等。

一个不太恰当的例子(图来自FrameSLAM: From Bundle Adjustment to Real-Time Visual Mapping)。图中红色点可看成关键帧相机Pose,青色点表示空间点,蓝色和红色边表示Pose-Pose的边,而黄色边表示Pose-Point的边。(虽然这可能不是原图的意思,但我希望通过这个图可以帮助题主理解。)

你问题当中的Covisibility Graph, Essential Graph,都是不同图的形式。Spanning graph理解成生成树更好一些。

如果我们考虑所有的相机 Pose 和所有点的空间位置,构造出的图将会非常复杂,而难以直接进行实时优化。因此,通常我们会构建一些带有特殊结构的图,以满足实时性的需要。

最简单的是Pose Graph。如果我们对特征点的空间位置并不关心,就可以构建只带有Pose结点,以及Pose-Pose边这样的图。由于一个照片中常常有上千个特征点,这样做可以节省许多计算量。

Covisilibilty Graph 的顶点是相机的Pose,而边是Pose-Pose的变换关系——所以也算是Pose Graph 一种吧。当两个相机看到相似的空间点时,它们对应的Pose就会产生联系(我们就可以根据这些空间点在照片上的投影计算两个相机间的运动)。根据观测到的空间点的数量,给这个边加上一个权值,度量这个边的可信程度。

Essential Graph 比Covisibility Graph更为简单,ORB-SLAM主要用它来进行全局优化。为了限制优化的规模,ORB-SLAM试图尽量减少优化边的数量。而尽量减少边,又保持连通性的方法,就是做一个最小生成树。

Covisibility 是一直在用的概念,而Essential Graph是orbslam自己提出的概念,为了减小全局回环的计算量。当你自己实现SLAM时,也会碰到这些困难,并设计一些应对的策略,这些就是你的创新性。事实上,随着SLAM时间的增长,如何控制图的结构和优化的规模,仍是现在SLAM有待解决的一个问题。

我的理解:

1.covisibility graph
顶点:相机的 pose
边:pose 和 pose 间的位置关系
权值:边的可信度(每条边都有自己的权值)
具体到orb_slam2上,其表示了,每个关键帧处的相机位置之间的关系“图”
2.essential graph
顶点:相机的 pose
边:pose 和 pose 间的位置关系
权值:边的可信度(每条边都有自己的权值)
是orb_slam2中主要用的“图”。
是对 covisibility graph 的优化(边最少、置信值高、保持连通性)

最新文章

  1. react-native学习笔记--首次安装apk到小米5报错
  2. 命令行提交本地项目到github上
  3. CentOS 6.5 安装 MySQL5.6 并用Navicat for MySQL 连接
  4. 使用github参与开源项目
  5. js里面的等于号--
  6. gitHub-初识
  7. 算法题----称硬币: 2n(并不要求n是2的幂次方)个硬币,有两个硬币重量为m+1, m-1, 其余都是m 分治 O(lgn)找出假币
  8. [ 兼容 ] IE和Firefox的Javascript兼容性总结
  9. How to log in to Amazon EC2 using PEM format from SecureCRT
  10. $('li','div') $('div li') $('div li')
  11. 【转】android camera(四):camera 驱动 GT2005
  12. fedora 下安装 文泉驿正黑体
  13. sql 进制转换,支持93内的进制相互转换
  14. php get接口,并在浏览器中以json格式返回查找到的数据
  15. linux普通用户提权操作
  16. 用flask的扩展实现的简单的页面登录
  17. Tesseract环境搭建及编译安装
  18. mysql 查询上个月某一天
  19. 你不知道的JavasScript上篇·第四章·混合对象·类
  20. Asp.Net Core 文件上传处理

热门文章

  1. monkey命令详解《转载》
  2. 十一、CI框架之输出用户IP地址
  3. SpringMVC使用可以访问静态资源,但是导致Controller访问失败
  4. Monthly Expense(最大值最小化问题)
  5. 删除所有的docker容器和镜像(转载)
  6. zookeeper基础教程
  7. 关于 sublime 使用技巧
  8. dll hook 共享内存数据
  9. js.console携程近期低价机票信息
  10. SQL优化——ORACLE