SLAM的一些学习笔记

目录

一.基础概念

1)关于Hx=g方程中

没有位姿与位姿的约束

H为什么是J的转置乘以J

2)关于雅克比矩阵:

2.1)所谓增量方程系数的路标部分为什么是对角阵

3)所谓边缘化

4)邻接矩阵(Adjacency Matrix)

5)关于非线性优化定位和稠密建图的深度滤波器

6)上采样和下采样

7)专有名词

二.各个开源代码

2.1 dso

前后端

滑动窗口 

边缘化

DSO的大致流程

FEJ零空间

Jacobi矩阵导数推导

2.2 LSD

2.3 orb-slam

关于orb-slam的BA:

关于回环检测

2.4 SVO

三.有关语义

1)关于图像识别和图像分割


一.基础概念

1)关于Hx=g方程中

没有位姿与位姿的约束

背景:B矩阵代表左上角位姿对角阵,C代表右下角特征点对角阵。

其中H=J的转置*J(J是雅克比矩阵)J的每一行都是由偏导数组成的,对于一个位姿T1观察到地图点P1的事件来说,J11的这一行,除了J11对T1的偏导数,J11对P1的偏导数,其余全为0(系统中还有别的T和P)

心得:在J矩阵中,为什么没有对T1和T2再进行约束了,我想原因是:T1和T2的共视点已经表示出了这种约束关系。其实对于视觉定位来说,本身位姿就是由共视点来计算的,所以不需要在BA中再体现位姿之间的关系了。

所谓的回环检测也是一样的 就是当前帧和回环帧有共视点了 这就是回环检测做的约束,而且在回环检测全局优化当中,当前帧和回环帧是不动的 所以误差才被传递了。(当前帧会在全局优化前被重新求解)

H为什么是J的转置乘以J

我不知道我这一点我在写什么,随便瞎写的 将来估计也看不懂了

在高斯牛顿法中是这样的,在别的优化方案中可能有变体,但是都与它息息相关。

在《十四讲》第六章先是推导了一阶和二阶梯度法,再来GN和LM法,看那个会有点想不通的原因是它指的是对f(x)求最小值,但是对于BA是一个代价函数,长相是 e-h(T,p)这样的,但是不管怎么都是最小值。沿着雅克比矩阵(一阶倒数很好想)的转置方向下降就是数学中沿着梯度下降的方法,其余的方法也能勉强想通。

2)关于雅克比矩阵:

基于特征点法的BA算法中 雅克比矩阵一般由两部分构成(视觉SLAM十四讲P247)

  • 一部分是整体目标函数对相机姿态的偏导数
  • 一部分是对路标点位置的偏导

目标函数即是 图像的二维像素位置与路标点经过相机外参数投影到像平面的位置之差的最小(可以有很多种方式表达比如范数)

这体现了SLAM的基本思想 同步获取姿态信息和地图 (地图在这里就是地图点了)

而在基于直接法的DSO中,雅可比由三部分组成(比一般的多一个):

  • 图像雅可比,即图像梯度;
  • 几何雅可比,描述各量相对几何量,例如旋转和平移的变化率;
  • 光度雅可比,描述各个量相对光度参数的雅可比;

(作者认为,几何和光度的雅可比,相对自变量来说通常是光滑函数;而图像雅可比则依赖图像数据,不够光滑;所以,在优化过程中,几何和光度的雅可比仅在迭代开始时计算一次,此后固定不变[1]。而图像雅可比则随着迭代更新。这种做法称为First-Estimate-Jacobian(FEJ),在VIO中也会经常用到[8]。它可以减小计算量、防止优化往错误的地方走太多,也可以在边缘化过程中保证零空间的维度不会降低,后者我们还要在后文继续谈。)

这是因为直接法的原理造成的 在基于直接法的SLAM当中,甚至地图都不可重复利用,地图只是在运动中绘制出的周围环境罢了,所以目标函数?还不太清楚 再看一下

2.1)关于增量方程系数的路标部分是对角阵 

  • 有人会把增量方程的系数称作Hessian矩阵(下面我也会这么说),不过也有道理,毕竟在<牛顿法>当中就是Hessian矩阵,但是GN法把这个改成简单的J转置J了.然后LM法又添加了一个小东西.
  • 关于雅可比矩阵和S矩阵.注意到一般的增量方程如果使用schur消元,那么一直利用的都是路标部分的对角阵的逆非常好求解的特性.而S矩阵则表明了两个相机之间的共视关系
  • 为什么增量方程系数的路标部分一般是是对角阵呢?注意,这是大多数情况下的,dso就不是.

大多数情况:采用最小几何误差方法.将一个已经计算出来的三维点重投影到当前这个帧上,对比重投影出来的二维坐标和实际上图片的二维坐标,得出误差.后续通过迭代的方法,不断计算增量并改变相机位姿和三维点的位置,来起到减小误差的作用.

这个小误差所涉及到的东西为:一个三维点(x,y,z),当前帧图像(当前相机外参),相机内参?,注意哦!一个误差只涉及到一个帧,也就是一个相机位姿.所以是对角阵!

dso等的情况:采用最小光度误差的方法,他直接在哪里呢?不要三维点,我直接这个像素点利用逆深度信息反投影到空间再投影到下个帧.

那么这样的话,这个点就一定需要一个主导帧(host frame),然后我又要投影到新的帧上,所以一个点对应着两个帧,和一个逆深度信息.所以Hessian矩阵中的位姿部分就不是对角阵啦,但是能不能代表共视关系呢???不管怎样,我计算Schur消元不在乎他是不是对角阵,只要路标部分是对角阵就好啦(没有几何先验,也就是不稠密,或者稠密但是忽视或者近似)!

  • PS: 一个dso误差涉及到:
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值