SLAM(一)-回环检测

来源:互联网 发布:ios10降9.3健康无数据 编辑:程序博客网 时间:2024/05/22 18:07

考虑一下人是怎么建立环境地图的:
在局部区域,人不断移动从而在脑海中建造增量式地图,但时间长了,人也会分不清现在到底朝向哪边,与起始点的关系如何。假如也恰好在某一时刻回到了之前路过的位置,如果这个人对环境足够敏感,他就能发现这一事实,从而修正自己之前对方位的判断,此时,我们说,检测到了一个回环。显然,人是通过看面前的景物并与脑海中残存的印象比对从而检测到回环的。
问题的关键是:如何判断两帧图片的相似度。最直观的做法是:特征匹配,比较匹配的数量是否足够多。此时,可以采用词袋模型,用来加速特征匹配。


词袋模型:


 词袋模型(Bag-of-Words,BoW)把特征当成一个个单词,通过比较两张图片中出现的单词是否一致,来判断两张图片是否是同一场景。 为了能够把特征归类为单词,我们需要训练一个字典。所谓的字典,就是包含了所有可能的单词的集合,为了提高通用性,需要使用海量的数据训练。 字典的训练其实就是一个聚类的过程,假设所有图片中共提供了10,000,000个特征,可以使用K-Means方法把他们聚成1000,000个单词。但是,如果只是用这100,000个单词来匹配的话,效率还是太低,因为每个特征需要比较100,000次才能找到自己对应的单词。为了提高效率,字典在训练的过程中,构建了一个k个分支,深度为d的树,如下图所示。只管上看,上层节点提供了粗分类,下层结点提供了细分类,直到叶子结点,利用这个树,就可以将时间复杂度降低到对数级别,大大加速了特征匹配。

参考资源:http://www.jianshu.com/p/023e5006499d

原创粉丝点击