随着路径的不断延伸,机器人在建图过程中会存在一些累计误差,除了利用局部优化、全局优化等来调整之外,还可以利用回环检测来优化位姿。

  

  什么是回环检测?

  回环检测,又称闭环检测,是指机器人识别曾到达某场景,使得地图闭环的能力。说的简单点,就是机器人在左转一下,右转一下建图的时候能意识到某个地方是“我”曾经来过的,然后把此刻生成的地图与刚刚生成的地图做匹配。

  

  回环检测成功

  回环检测之所以能成为一个难点,是因为:如果回环检测成功,可以显著地减小累积误差,帮助机器人更精准、快速的进行避障导航工作。而错误的检测结果可能使地图变得很糟糕。因此,回环检测在大面积、大场景地图构建上是非常有必要的 。

  

  回环检测失败

  如何提升机器人回环检测能力?

  那么,怎么才能让机器人的回环检测能力得到一个质的提升呢?首先要有一个算法上的优化。

  1. 基于图优化的SLAM算法

  基于图优化的SLAM 3.0 算是提升机器人回环检测能力的一大突破。

  SLAM 3.0采用图优化的方式进行建图,进行了图片集成与优化处理,当机器人运动到已经探索过的原环境时,SLAM 3.0可依赖内部的拓扑图进行主动式的闭环检测。当发现了新的闭环信息后,SLAM 3.0使用Bundle Adjuestment(BA)等算法对原先的位姿拓扑地图进行修正(即进行图优化),从而能有效的进行闭环后地图的修正,实现更加可靠的环境建图。

  

  SLAM 3.0闭环检测

  SLAM 3.0环路闭合逻辑:先小闭环,后大闭环 ;选择特征丰富的点作为闭环点;多走重合之路,完善闭环细节。即使在超大场景下建图,也不慌。

  

  超大场景下建图完整闭合过程

  2.词袋模型

  除了SLAM算法的升级和优化之外,现在还有很多系统采用成熟的词袋模型方法来帮助机器人完成闭环,说的简单点就是把帧与帧之间进行特征比配。

  1、从每幅图像中提取特征点和特征描述,特征描述一般是一个多维向量,因此可以计算两个特征描述之间的距离;

  2、将这些特征描述进行聚类(比如k-means),类别的个数就是词典的单词数,比如1000;也可以用Beyes、SVM等;

  3、将这些词典组织成树的形式,方便搜索。

  

  
利用这个树,就可以将时间复杂度降低到对数级别,大大加速了特征匹配。

  3.相似度计算

  这种做法是从外观上根据两幅图像的相似性确定回环检测关系,那么,如何确定两个地图之间的相关性呢?

  比如对于图像A和图像B,我们要计算它们之间的相似性评分:s(A,B)。如果单单用两幅图像相减然后取范数,即为: s(A,B)=||AB||s(A,B)=||AB||。但是由于一幅图像在不同角度或者不同光线下其结果会相差很多,所以不使用这个函数。而是使用相似度计算公式。

  这里,我们提供一种方法叫TF-IDF。

  TF的意思是:某特征在一幅图像中经常出现,它的区分度就越高。另一方面,IDF的思想是,某特征在字典中出现的频率越低,则分类图像时的区分度越高。

  对于IDF部分,假设所有特征数量为n,某个节点的Wi所含的数量特征为Ni,那么该单词的IDF为:

  

  TF是指某个特征在单副图像中出现的频率。假设图像A中单词Wi出现了N次,而一共出现的单词次数是n,那么TF为:

  

  于是Wi的权重等于TF乘IDF之积,即:

  

  考虑权重以后,对于某副图像,我们可以得到许多个单词,得到BOW:

  

  (A表示某幅地图)

  如何计算俩副图像相似度,这里使用了L1范数形式:

  

  

4.深度学习及其他

  除了上面的几种方式之外,回环检测也可以建成一个模型识别问题,利用深度学习的方法帮助机器人完成回环检测。比如:决策树、SVM等。

  ……

  最后,当回环出现以后,也不要急着就让机器人停止运动,要继续保持运动,多走重合的路,在已经完成闭合的路径上,进一步扫图完善细节

  

  继续走重合之路,完善闭环细节

如何提升机器人的回环检测能力?相关推荐

  1. ​综述 | SLAM回环检测方法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨任旭倩 来源丨计算机视觉life 在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一 ...

  2. Karto的后端优化与回环检测功能对比测试与分析

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 上篇文章讲解了Karto的前端是如何工作的. 这篇文章将slam_karto中的后端优化部分的代码添加 ...

  3. 视觉SLAM⑪----回环检测

    目录 11.0 本章目标 11.1 概述 11.1.1 回环检测的意义 11.1.2 回环检测的方法 11.1.3 准确率和召回率 11.2 词袋模型 11.3 字典 11.3.1 字典的结构 11. ...

  4. 3D激光SLAM的回环检测方法

    一.Scan-to-Scan 1.格地图或者说是概率占据栅格地图初步 在Matlab中创建一个1000*1000大小的二维数组,如果数组中每个元素取值为0到255的整数(灰度图),再把这个数组用Mat ...

  5. 最全综述 | SLAM中回环检测方法 收藏

    在视觉SLAM问题中,位姿的估计往往是一个递推的过程,即由上一帧位姿解算当前帧位姿,因此其中的误差便这样一帧一帧的传递下去,也就是我们所说的累积误差.一个消除误差有效的办法是进行回环检测.回环检测判断 ...

  6. SC-A-LOAM:在A-LOAM中加入回环检测

    Thanks to LOAM, A-LOAM, and LIO-SAM code authors. The major codes in this repository are borrowed fr ...

  7. segMatch:基于3D点云分割的回环检测

    该论文的地址是:https://arxiv.org/pdf/1609.07720.pdf segmatch是一个提供车辆的回环检测的技术,使用提取和匹配分割的三维激光点云技术.分割的例子可以在下面的图 ...

  8. SLAM前端中的视觉里程计和回环检测

    1. 通常的惯例是把 VSLAM 分为前端和后端.前端为视觉里程计和回环检测,相当于是对图像数据进行关联:后端是对前端输出的结果进行优化,利用滤波或非线性优化理论,得到最优的位姿估计和全局一致性地图. ...

  9. 视觉SLAM回环检测、词袋模型和视觉位置识别--论文记录和实验简析

    一.传统方法部分(词袋模型,bag of words,BoW) 1. 预先在环境中采集足够多的图像或者所有位置的图像(成千上万张图片)之后构建视觉词汇表 参考论文:2012年的TRO顶刊 Gálvez ...

最新文章

  1. CPU消耗,跟踪定位理论与实践
  2. ai外呼营销系统_郑州专业智能营销系统开发,外呼电话线路好用吗-有效!-「线路稳定 不封号」...
  3. 【pmcaff专栏】陆蔚青:漫谈商业智能
  4. 设计模式-依赖倒置-Dependency Inversion Principle
  5. docker 外部连接_如何从主机外部(同一网络)连接到Docker容器[Windows]
  6. Attribute is missing the Android namespace prefix
  7. 西门子cpu指示灯含义_西门子S7200仿真软件如何使用?
  8. IE6下div宽高设置
  9. 10 条真心有趣的 Linux 命令
  10. mall-swarm是一套微服务商城系统
  11. ubuntu18.04升级cmake
  12. 【BZOJ2989】数列(CDQ分治,扫描线)
  13. Windows PrintNightmare 漏洞和补丁分析
  14. 我是如何把SpringBoot项目的并发提升十倍量级的
  15. Smart 3D 切块合并 使用S3C索引 excel表格法
  16. JAVA随机抽取一名幸运观众(手动输入观众)小实例
  17. QtCharts:给QChartView换肤,换背景色添加背景图片
  18. html5跳动的心电图,jquery制作心电图跳动特效
  19. 小学生计算机课如何上,如何上好小学信息技术课
  20. SVN主干代码合并到分支(trunk to branch)

热门文章

  1. LaTeX技巧11:LaTeX上标下标的设置
  2. seafile实时备份
  3. 一篇小学生作文《我的爸爸在华为》,看哭无数人!
  4. 用Python删除电脑中的重复文件!竟然这么简单!
  5. python实战===一键刷屏
  6. 首批国家文化和旅游消费试点城市如何建?各地应当这样部署
  7. qemu和主机共享磁盘
  8. 计算机系vi论文,vi设计论文的参考文献
  9. 广东全国计算机考试考点,广东省全国计算机等级考试考点名单及联系方式
  10. 手机管理应用研究【2】—— 安装卸载篇