SLAM流程之优化后端

优化后端:

SLAM的优化后端完成工作主要是对视觉前端得到的不够准确的相机位姿和重建地图进行优化微调。在视觉前端中,不管是进行位姿估计还是建图,都是利用相邻帧之间的关系来完成的,这种依赖局部约束且不停地链式进行的算法,必将导致优化误差逐帧累积,最终产生一个较大的误差漂移。因此,后端优化的思路就是从全局(整个相机运动过程)中选取一些关键帧,利用这些关键帧之间的关系建立起时间和空间跨度更大的、需要同时满足的全局约束,以优化之前得到的不够准确的各帧的相机位姿,实际上就是完成一个Bundle Adjustment(最小化重投影误差)。该全局优化问题可以通过建立和优化位姿图(pose graph)来求解。位姿图是以关键帧的全局位姿作为图的节点,以关键帧之间的相对位姿误差作为图的边的权重,通过令整个图的所有边的权重值总和最小,来优化得到每个图节点的值

在相机的运动过程中,有时候会重复地观测到以前观测过的区域(revisited areas),而由于视觉前端带来的误差漂移,会导致再次对这些区域进行建图时,会与先前在同一区域建图的结果不重合,即出现了重影现象。因此在后端优化中,另一个重要的工作是进行闭环(loop closure)检测。所谓闭环检测,其实就是判断在相机的运动轨迹上,有没有观测到先前观测过的区域,而这些区域,就是闭环点

用于闭环检测的常用算法主要有:词袋模型随机蕨算法。词袋模型首先对一个图像帧上的描述子进行聚类:一个关于描述子的聚类称之为一个词,所有不同的词的集合称之为字典。对于在字典中和在单帧图像中出现频率较高的词,给予其较高的权重。当对比两个图像帧之间的相似度时,只要在这两个图像帧上,逐个词地进行权重对比即可,常用的用于衡量权重差异的尺度为L1范数。

在检测出闭环点之后,就可以利用闭环点建立起一个跨度较大的全局约束其实就是将视觉前端中的单向链式约束的头尾相连,并根据头尾相连处的位姿必须相等作为一个自洽条件,进而将这个约束条件反馈到闭合后的整个环式结构的优化中,使得每个历史帧的位姿优化不仅依赖于其过去的图像帧的约束,也依赖于其未来的图像帧的约束。这样的优化过程鲁棒性更好,因为对不同的优化方向作出贡献的噪声将借由多约束条件在一定程度上相互抵消,误差漂移现象也因此得到改善。

SLAM的发展:
SLAM近年来发展衍生出的一些其他类型的变种有:非刚性SLAM,多目标模型SLAM,动态SLAM,语义SLAM等。
SLAM的一些开源项目:
在项目代码方面,当前比较具有代表性的一些开源SLAM方案有:
Dense SLAM: KinectFusion, ElasticFusion,BundleFusion,InfiniTAM,MaskFusion
Semi-Dense SLAM: LSD-SLAM
Sparse SLAM: ORB-SLAM
SLAM的一些开发工具:
开发SLAM常用到的工具库主要包括:
OpenNI:用于与视觉传感器的交互操作;
OpenCV:用于图像处理;
PCL:用于点云处理;
Eigen:用于矩阵运算;
Sophus:用于李群李代数计算;
Ceres Solver:用于非线性优化;
g2o:用于图优化;
DBoW:用于处理词袋模型;
OpenGL:用于模型渲染;
CUDA toolkit:用于并行计算,等等。

随机蕨算法是对一个图像帧进行稀疏编码,即在图像帧的采样像素点上进行信息编码,一个像素点被称为一个蕨叶(fern),该像素点上的RGBD通道被称为该蕨叶上的一组节点,节点值都是binary的,即在每个节点上都有一个给定的阈值,该阈值将确定该节点值是0还是1。于是一个图像帧就可以用一个蕨丛来表征其信息。在随机蕨算法中,对于每个蕨叶都会建立起一个查找表,且查找表的每一行将对应这个蕨叶的一种编码结果。当每获取到一个新的图像帧,就将该图像帧的ID登记到描述其信息的蕨丛的各个蕨叶所对应的查找表的特定行上。如果有两个图像帧,其ID在超过某个给定阈值的数量的查找表里,都同时出现在同一行,则说明这两个图像帧相似,新获取到的这个图像帧是一个闭环点。反之,如果一个新获取到的图像帧,与所有的历史帧的相似度都足够小,则将该图像帧作为一个关键帧添加到关键帧的数据库中用于后续的闭环检测。随机蕨算法还可以在后端优化中完成位姿追踪失败后的重定位(re-localization):在关键帧数据库中检索与当前帧相似度最高的几个关键帧,并利用它们与当前帧的相似度作为权重,对这些关键帧对应的位姿进行加权求和,作为对当前帧的位姿的一个估计

  • 5
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实时全局一致的3D重建,使用动态表面重新整合技术实时,高品质,大尺寸场景的3D扫描是混合现实和机器人应用的关键。然而,可扩展性带来了姿态估计漂移的挑战,在累积模型中引入了显着的错误。方法通常需要几个小时的离线处理来全局纠正模型错误。最近的在线方法证明了令人信服的结果,但遭受以下缺点:(1)需要几分钟的时间才能执行在线修正,影响了真正的实时使用; (2)脆弱的帧到帧(或帧到模型)姿态估计导致许多跟踪失败;或(3)仅支持非结构化的基于点的表示,这限制了扫描质量和适用性。我们通过一个新颖的,实时的端对端重建框架来系统地解决这些问题。其核心是强大的姿态估计策略,通过考虑具有高效分层方法的RGB-D输入的完整历史,针对全局摄像机姿态优化每帧。我们消除了对时间跟踪的严重依赖,并且不断地将其定位到全局优化的帧。我们提出了一个可并行化的优化框架,它采用基于稀疏特征和密集几何和光度匹配的对应关系。我们的方法估计全局最优化(即,束调整的姿势)实时,支持从总跟踪故障(即重新定位)恢复的鲁棒跟踪,并实时重新估计3D模型以确保全局一致性;都在一个框架内。我们优于最先进的在线系统,质量与离线方法相同,但速度和扫描速度前所未有。我们的框架导致尽可能简单的扫描,使用方便和高质量的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值