10.又回到曾经的地点:回环检测

1.回环检测是指在视觉SLAM(Simultaneous Localization and Mapping)系统中,通过识别场景中的回环(Loop Closure)来提高定位和建图的准确性。回环指的是机器人在不同时间或位置观察到的相似场景之间的关联。回环检测的目标是在机器人运行时,识别当前观察到的场景是否与之前观察到的场景中的某个回环相匹配。

①词袋模型(Bag-of-Words Model)是一种常用的文本表示方法,用于将文本表示为词汇表中单词的统计信息。它忽略了单词的顺序和语法,只考虑单词的出现频率。在词袋模型中,文本被表示为一个向量,向量的每个维度对应于词汇表中的一个单词,而向量的值表示该单词在文本中的出现频率或权重。

②随机蕨法(Random Ferns)是一种基于随机决策树的机器学习方法。它可以用于特征提取和分类任务。在随机蕨法中,决策树的每个节点都是一个随机选择的特征测试,而叶子节点则对应于不同的类别。通过在训练过程中随机选择特征和训练样本,随机蕨法可以有效地处理高维特征空间和大规模数据。

③CALA(Context-Aware Learning for Activity Recognition)是一种基于深度学习的活动识别方法。它利用环境上下文信息,如时间、地点和周围物体等,来改善活动识别的准确性。CALA方法通过将环境上下文信息与传感器数据进行融合,可以更好地理解和推断用户的活动。

④基于缩略图的方法是一种图像检索和识别的方法,其中图像被表示为其缩略图或小尺寸的版本。这种方法的优点是可以减少计算和存储的需求,并且可以加快图像处理的速度。基于缩略图的方法通常使用特征提取和匹配技术来进行图像检索和识别,例如通过提取缩略图的颜色、纹理或形状等特征,并与数据库中的特征进行比较来实现图像匹配和检索。这种方法常用于大规模图像库的快速搜索和识别任务。

2.在词袋模型中,词的生成主要包括以下几个步骤: 分词:将待处理的文本划分为一系列词语或单词。 构建词汇表:根据分词结果构建一个包含所有出现的词语的词汇表(字典)。每个词语在词汇表中都有一个唯一的索引。 统计词频:对于每个文本样本,统计每个词语在文本中出现的频率。可以用一个向量表示,向量的长度等于词汇表的大小,每个维度对应一个词语,值表示该词语在文本中的出现频率或权重。 生成词袋向量:根据统计的词频信息,生成词袋向量表示文本。词袋向量是一个与词汇表大小相等的向量,每个维度对应一个词语,值表示该词语在文本中的出现次数或权重。

3.使用字典表征图像是指将图像表示为一个固定长度的向量或特征向量,其中字典是一组预定义的视觉特征或视觉单词。常见的方法是使用视觉词袋(Visual Bag-of-Words)模型,类似于文本词袋模型。首先,构建一个视觉词汇表,该词汇表包含从训练图像中提取的视觉特征。然后,对于待处理的图像,提取视觉特征并将其映射到最接近的视觉词汇表中的单词。最后,通过统计每个视觉单词的出现频率,生成图像的字典向量表示。 相似度计算在回环检测中起关键作用,用于比较当前观察到的场景和之前观察到的场景之间的相似程度。常用的相似度计算方法包括欧氏距离、余弦相似度和汉明距离等。具体选择哪种相似度计算方法取决于具体的应用场景和数据特点。

回环检测流程一般包括以下步骤:

采集数据:通过移动机器人或传感器,获取环境中的数据,例如图像、激光扫描或传感器读数等。

特征提取:对采集到的数据进行特征提取,例如从图像中提取视觉特征或从传感器读数中提取关键特征。

特征匹配:将当前观察到的特征与之前保存的特征进行匹配。通过比较特征之间的相似度计算,找到与当前观察到的特征相似的之前观察到的特征。

回环判断:根据特征匹配的结果,判断当前观察到的场景是否与之前观察到的某个回环相匹配。可以基于相似度阈值或其他规则进行判断。

回环更新:如果判断为回环,则更新机器人的定位和地图信息,以纠正之前的定位误差并改善地图的准确性。

整个回环检测流程可以循环进行,持续地检测和更新回环信息,提高定位和建图的准确性。

4.使用精确度(Precision)和召回率(Recall)作为评判指标可以提供对回环检测算法性能的综合评价。精确度和召回率分别衡量了算法的准确性和全面性,可以通过以下方式进行评判:

①精确度(Precision):精确度是指回环检测算法在被判定为回环的样本中,真正是回环的样本所占的比例。精确度的计算公式为:精确度 = 正确回环数量 / (正确回环数量 + 错误回环数量)。 高精确度表示算法在判定为回环的样本中有较低的误报率,即较少将非回环样本错误地识别为回环。

②召回率(Recall):召回率是指回环检测算法成功检测到的回环样本所占的比例。召回率的计算公式为:召回率 = 正确回环数量 / (正确回环数量 + 未检测到的回环数量)。 高召回率表示算法能够较好地捕捉到回环样本,减少漏报的情况。

5.DBoW(Distributed Bag of Words)系列库是一组用于实现词袋模型的开源库,主要用于图像检索和视觉定位任务。其中,DBoW和DBoW2是该系列库的两个主要版本。

①DBoW: DBoW主要用于基于图像的检索任务,它将图像表示为词袋向量,并使用词袋模型进行图像之间的相似度计算。DBoW的关键思想是将图像特征向量量化为视觉词,并使用词频统计构建词袋向量。通过比较不同图像的词袋向量,可以计算它们之间的相似度,从而实现图像检索。

②DBoW2: DBoW2是DBoW系列库的第二个版本,由Dorian Gálvez-López在DBoW的基础上进行了改进和扩展。DBoW2在DBoW的基本框架上引入了一些新的特性和优化,提高了性能和功能。主要的改进包括: 层级词袋模型(Hierarchical Bag of Words):DBoW2引入了层级结构,将词袋模型扩展到多个层级。这样可以更好地表示图像的语义信息,提高图像检索的准确性。 快速近似最近邻搜索(Fast Approximate Nearest Neighbor Search):DBoW2使用了基于快速近似最近邻搜索的算法(如k-d树和近似最近邻哈希等),以提高在大规模特征数据库中的图像匹配和检索速度。 可扩展性和内存效率:DBoW2针对大规模图像数据库和有限内存资源进行了优化,提供了更好的可扩展性和内存效率。

③DBoW3只需要OpenCV。DLIB的DBoW2依赖性已被删除。DBoW3能够适用二进制和浮点描述符。无需为任何描述符重新实现任何类。DBoW3在linux和windows中编译。已经重写了一些代码以优化速度。DBoW3的界面已经简化。使用二进制文件。二进制文件加载/保存比yml快4-5倍。而且,它们可以被压缩。兼容DBoW2的yml文件

④FBOW(Fast Bag of Words)是DBow2 / DBow3库的极端优化版本。该库经过高度优化,可以使用AVX,SSE和MMX指令加速Bag of Words创建。

思考:

1.验证回环检测算法,需要有人工标记回环的数据集。然而人工标记回环是很不方便的,我们会考虑根据标准轨迹计算回环。即,如果轨迹中有两个帧的位姿非常相近,就认为它们是回环。请根据TUM数据集给出的标准轨迹,计算出一个数据集中的回环。这些回环的图像真的相似吗?

仅仅根据位姿的相似性来判断回环并不一定代表图像内容的相似性。虽然两个帧的位姿相近,但它们所对应的图像可能具有不同的视角、光照条件或者存在其他变化。因此,仅凭位姿相似性可能无法准确评估图像内容的相似性。 为了验证回环的图像相似性,通常需要进行额外的步骤,例如: 提取图像特征:对于每个帧,可以使用特征提取算法(如SIFT、ORB等)提取关键点和描述符,得到表示图像内容的特征向量。 特征匹配:对于被判定为回环的帧对,使用特征匹配算法(如基于描述符的匹配)来计算它们之间的特征匹配关系。 图像对比:通过对比回环帧对的图像内容,可以评估它们的相似性。可以使用一些相似性度量方法(如结构相似性指数(SSIM)、归一化互相关等)来量化图像之间的相似度。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值