杏耀注册登录中国站

您好,欢迎访问我们的网站,我们将竭诚为您服务!

ORB_SLAM2 Optimizer

2024-04-15 12:03分类: 茶道 阅读:

 

ORB_SLAM2使用g2o库进行优化。
优化分为四种:
(1)全局BA优化(在单目初始化之后、回环检测之后进行全局BA优化。对所有关键帧的位姿、路标点进行优化)
(2)局部BA优化(在局部建图之后进行,对当前帧及其共视关键帧的位姿、路标点进行优化)
(3)位姿图优化(仅优化位姿,在恒速运动模型、参考关键字模型、重定位、局部地图跟踪的时候执行)
(4)本质图优化(在回环校正过程中进行优化,将闭环误差分配到本质图中)
(5)Sim3优化(检测到回环之后,会进行闭环帧和当前帧间的Sim3估计,随后进行Sim3优化)
需要注意的是,优化完路标点之后,要记得更改路标点的属性(如观测角度,平均深度等)。

(1)全局BA优化(GlobalBundleAdjustment)与局部BA优化(LocalBundleAdjustment)

在这里插入图片描述

(2)位姿优化(只优化相机位姿,不优化路标点坐标)
在这里插入图片描述

(3)优化本质图
优化本质图中的关键帧的位姿以及路标点坐标。
在这里插入图片描述

(4)筛选出的闭环帧的位姿优化
在这里插入图片描述

优化所有关键帧的位姿和路标点。(单目初始化、闭环优化后)

 
 
 
 
 
 

边中只加入了路标点与关键帧间的连接边。
在边中会设置信息矩阵。信息矩阵的作用是确定在优化过程中,每条边分担的误差有多少。

 
 

?
?

 

在恒速运动模型、参考关键帧模型、重定位、局部地图跟踪(和局部地图优化不一样,局部地图追踪是在Track线程中,而局部地图优化是在LocalMapping线程中)的时候,都会用到位姿优化。(个人感觉与位姿图优化不一样。位姿图优化的话,边连接的是两个顶点,BaseBinaryEdge。而这里的边只连接一个顶点,BaseUnaryEdge。)

边为一元边,因为边只连接位姿。
?
?

在局部建图线程处理完最后一个关键帧之后,调用局部BA优化。
局部地图中包括当前帧及其共视关键帧(权值大于一定的比例)。对于那些权值小于阈值的关键帧,在BA优化过程中,只提供约束,不进行优化。

 

过程与全局BA优化相似,设定位姿顶点、路标顶点,建立两个顶点间的边。进行优化(一开始使用鲁棒核函数进行优化,优化之后去掉外点(边的代价过大),然后对剩下的点不使用鲁棒核函数进一步优化)。
?
?

 

本质图与共视图相似,但更加严格。其主要作用是在回环检测之后,将闭环误差均摊到本质图中。
在本质图优化中,只优化关键帧的位姿。
是一个位姿图优化,边连接两个位姿顶点。
?
?

 

检测到回环,计算出当前帧和回环帧间的Sim3变换后,进行优化。
在第一次优化过程中,那些误差很大的边,直接剔除掉,然后对剩下的边进一步进行优化。

郑重声明:喝茶属于保健食品,不能直接替代药品使用,如果患有疾病者请遵医嘱谨慎食用,部分文章来源于网络,仅作为参考,如果网站中图片和文字侵犯了您的版权,请联系我们处理!

上一篇:布局的近义词是什么

下一篇:优化算法的复杂度分析

相关推荐

关注我们

    杏耀注册登录中国站
返回顶部

平台注册入口