SLAM的Bundle Adjustment上,随着时间的推移,路标特征点和相机的位姿越来越多,BA的计算量随着变量的增加而增加。因此,要限制优化变量的多少,不能只一味的增加待优化的变量到BA里,而应该去掉一些变量。如何丢变量就是很重要的问题!

比如有frame1,frame2,frame3 以及这些frame上的特征点pt1…ptn。新来了一个frame4,为了不再增加BA的变量,出现在脑海里的直接做法是把frame1以及相关特征点pt直接丢弃,只优化frame2,frame3,frame4及相应特征点。然而,直接丢掉变量,就导致损失了信息,frame1可能能更多的约束相邻的frame,直接丢掉的方式就破坏了这些约束。

在SLAM中,一般概率模型都是建模成高斯分布,如相机的位姿都是一个高斯分布,轨迹和特征点形成了一个多元高斯分布p(x1,x2,x3,pt1…),然后图优化或者BA就从一个概率问题变成一个最小二乘问题。因此,从这个多元高斯分布中去掉一个变量的正确做法是把他从这个多元高斯分布中边缘化出去。边缘化就是使用Schur complement(舒尔补)

我们知道SLAM中的图优化和BA都是最小二乘问题,通过高斯牛顿迭代求得,即
其中,J是误差对位姿等的雅克比,W是权重。我们关注的marginalize. 就是说只去求解我们希望保留的变量,那些我们要marg的变量就不关心了,从而达到减少计算的目的。假设变量x中可以分为保留部分和marg部分,那么上面的线性方程可以写成如下形式:

这里我们要marg掉,而计算, 对上面这个方程进行消元得到:

其中​就称为中的舒尔补。有了这个上三角形式,我们就可以直接计算出了:

这样我们就能够迭代的更新部分变量,从而维持计算量不增加。在上面这个过程中,我们要注意,构建出来的Hx=b是利用了marg变量的信息,也就是说我们没有人为的丢弃约束,所以不会丢失信息,但是计算结果的时候,我们只去更新了我们希望保留的那些变量的值。在slam的过程中,BA不断地加入新的待优化的变量,并marg旧的变量,从而使得计算量维持在一定水平。

ref:

http://blog.csdn.net/heyijia0327/article/details/52822104

《视觉SLAM十四讲》

SLAM中的边缘化舒尔补相关推荐

  1. VINS-Mono中的边缘化与滑窗 (2)—— 边缘化最老帧

    文章目录 1. 添加和最老帧有关的参数块 1.1. 和最老帧的IMU约束有关的参数块 1.2. 和最老帧的视觉重投影约束有关的参数块 2. `MarginalizationInfo::preMargi ...

  2. 舒尔补在SLAM中的应用

    舒尔补在SLAM中的应用 1.舒尔补的定义 2.舒尔补的由来 3.舒尔补在多元高斯分布中的应用 3.1 多元变量的高斯分布 3.2 边缘概率和条件概率的协方差矩阵 3.3 边缘概率和条件概率的信息矩阵 ...

  3. SLAM基础——舒尔补介绍

    文章目录 1:book: 舒尔补介绍 1-1:bookmark: 舒尔补定义 1-2:bookmark: 舒尔补的定理推导 1-3 :bookmark: 用途:快速求矩阵的逆 1-4:bookmark ...

  4. 【小白冲冲冲!!!】补2:SLAM中最小二乘问题的引入及求解

    这一部分是我自己加的, 对于理解非线性优化以及那些常用的优化算法有很大的帮助,所以有时间也可以看看,互相交流: 我们都已经知道SLAM中的问题求解其实就是要求出一个位姿,使得噪声项的平方,即误差最小化 ...

  5. SLAM中的marginalization 和 Schur complement

    在视觉SLAM的很多论文中,会大量或者偶尔出现marginalization这个词(翻译为边缘化),有的论文是特地要用它,比如sliding window slam [2], okvis [3], d ...

  6. 舒尔补理论Schur Compliment

    在做slam的时候经常遇到的一个概念就是schur complement,了解这个概念,对于理解slam的优化过程也会有很大的帮助: 首先给出的是舒尔补的定义: 舒尔补的由来其实就是将一个矩阵变成对角 ...

  7. 重磅直播|慕尼黑工业大学博士详解室内SLAM中的几何约束

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 大家好,本公众号现已开启线上视频公开课,主讲人通过B站直播间,对3D视觉领域相关知识点进行讲解,并在微 ...

  8. 视觉SLAM总结——LSD SLAM中关键知识点总结

    视觉SLAM总结--LSD SLAM中关键知识点总结 视觉SLAM总结--LSD SLAM中关键知识点总结 1. LSD SLAM的创新点/关键点是什么? 2. LSD SLAM的整体框架是怎样的? ...

  9. 深蓝学院-视觉SLAM课程-第7讲作业:SLAM中g2o入门详解,直接法BA

    1. 引言 在SLAM中,BA是个重要的部分,前后端很多地方都用得到,而g2o是一个很重要的使用图优化求解优化问题的库,所以有必要熟练掌握,尽管有了些C++的底子,但是看g2o的代码还是比较吃力,所以 ...

  10. SLAM中常用的相机模型及标定工具

    最近一段时间准备作多传感器的SLAM研究,第一步是要解决传感器间的联合标定.所要开展实验的机器人平台配置了相机.单线雷达和IMU,自然而然地,首先是要先确定各个传感器的内参数,然后再确定传感器之间的外 ...

最新文章

  1. 第二课unit2 控制对文件的访问
  2. linux 利用yum源安装mysql5.7
  3. python调用c 接口_python调用C接口
  4. hibernate处理懒加载异常的方法
  5. tkinter 菜单添加事件_Python+tkinter设置Label字体、字号、样式、对齐方式、鼠标形状、响应鼠标事件...
  6. springboot日志写入mysql_44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】
  7. php 跳板机连接mysql,使用python如何通过跳板机连接MySQL数据库
  8. 相关系数矩阵计算_corrplot包:相关性矩阵可视化
  9. 不卖了?这家公司暂停门店销售iPhone!
  10. Python MQTT订阅获取发布信息字典过滤
  11. (转)JVM——内存管理和垃圾回收
  12. PySpark任务在YARN集群上运行python 算法
  13. 2021-视频监控中的多目标跟踪综述
  14. 1.还不会部署高可用的kubernetes集群?看我手把手教你使用二进制部署v1.23.6的K8S集群实践(上)
  15. vue项目中如何设置ico图标
  16. Latex入门篇之论文排版
  17. 【Edge浏览器】edge浏览器下载插件时报Download interrupted错误解决方法
  18. 在线支付(通过第三方支付平台易保支付)
  19. Marvell 88nv1120开卡方法集大成之作,附开卡工具
  20. CSS+Java Script+HTML实现打飞机小游戏

热门文章

  1. 洛谷【P1359】租用游艇
  2. 网络投票的另一面:“刷票”与“防刷” 大PK
  3. 求职经历,三轮技术面 +HR 面,面试也不过如此
  4. dropbox连接不上解决方法
  5. 频繁默认网关不可用_win7系统默认网关不可用频繁掉线的解决方法
  6. 服务器上主要有什么作用,服务器是干什么的,有什么作用!
  7. 查看Mac上已连接WiFi的密码?
  8. 2022年Google SEO基础知识,技术搜索引擎优化介绍
  9. c语言黑熊,BLACK BRUIN黑熊扭矩马达C5510000AA
  10. c语言编写dxf文件吗,判断dxf文件的版本