【视觉SLAM入门】8. 回环检测,词袋模型,字典,感知,召回,机器学习

news2024/11/17 1:45:17

"见人细过 掩匿盖覆”

  • 1. 意义
  • 2. 做法
    • 2.1 词袋模型和字典
      • 2.1.2 感知偏差和感知变异
      • 2.1.2 词袋
      • 2.1.3 字典
    • 2.2 匹配(相似度)计算
  • 3. 提升

前言: 前端提取数据,后端优化数据,但误差会累计,需要回环检测构建全局一致的地图;

1. 意义

  • 通俗的讲,机器人两次经过同一个场景,为了检测是同一个场景,这就是回环检测。它可以用来构建全局一致的地图。有了时隔更加久远的约束,一定程度消除累计飘移。形象的想弹簧,就是把原来已经优化好的,拉的更贴近真实位置。
  • 回环检测还可以做重定位,在跟踪丢失的时候。

2. 做法

以下是几种做法:

  • 取当前图像和历史所有图像一一进行特征提取并比对,通过匹配的数量确定。O( n 2 n^2 n2),缺点资源;
  • 还是上边的方法,但不一一匹配,随机抽取,可检测到的帧少很多;
  • 里程计配合给一个大致位置,这里的进行回环检测,缺点里程计自带误差,只能小范围;
  • 基于外观,主流,其中一种就是词袋模型。

2.1 词袋模型和字典

2.1.2 感知偏差和感知变异

感知偏差(假阳性),感知变异(假阴性)

在这里插入图片描述

  • 准确率(检测正确的数量 / 检测的总数量): P r e c i s i o n = T P / ( T P + F P ) Precision = TP/(TP+FP) Precision=TP/(TP+FP)

  • 召回率(实际检测出来的数量 / 理应检测出来的数量): R e c a l l = T P / ( T P + F N ) Recall = TP/(TP+FN) Recall=TP/(TP+FN)

一般这两个数据呈矛盾,不取极端,只说在recall为多少,pre为多少时候效果最好,一般我们对P的要求更高。这是回环检测的严格性导致的。

2.1.2 词袋

  • 字典实际就是对所有图片中的特征进行提取,比如"人","车"等,它们是单词,对全部图像特征提取所有单词(特征)后构成一个字典。
  • 词袋说的是一帧图像中,能够提取出来的单词。

比如现在有一本4个特征的字典: D = [ x 1 , x 2 , x 3 , x 4 ] D = [x_1,x_2,x_3,x_4] D=[x1,x2,x3,x4]
而我们有两个 x 1 x_1 x1 一个 x 3 x_3 x3 特征的图像,那用词袋可以记为:
A = 2 ⋅ x 1 + 0 ⋅ x 2 + 1 ⋅ x 3 + 0 ⋅ x 4 A = 2\cdot x_1 + 0\cdot x_2 + 1\cdot x_3 + 0\cdot x_4 A=2x1+0x2+1x3+0x4
它的向量就是
A = [ 2 , 1 , 0 , 0 ] A = [2,1,0,0] A=[2,1,0,0]

那么检测两个图像,则举例可以用

s ( a , b ) = 1 − 1 W ∣ ∣ a − b ∣ ∣ 1 s(a,b) = 1 - \frac{1}{W}||a-b||_1 s(a,b)=1W1∣∣ab1

L1范数,各元素绝对值之和,向量完全一样则得到1,是回环。

2.1.3 字典

字典里的单词是某一类特征的组合,类似于一个聚类问题,UML(无监督学习常见问题)。

  • 假设要做 k k k 个单词的字典,可以用K-means,K-means++等实现,这里以K-means(均值)为例:
    在这里插入图片描述

字典规模大,要在字典中查找单词属于哪个,逐个查找复杂度 O ( n ) O(n) O(n),参考数据结构,这里有很多优化方法,这里以最简单的K叉树为例去优化字典结构:
在这里插入图片描述
又很像K-D树,聚类类中类,聚中聚哈哈。一棵深度为 d d d , 分支为 k k k 的树,可以容纳, k d k^d kd 单词。

2.2 匹配(相似度)计算

两个概念:

  • TF(Term Frequency)译频率: 某单词在一副图像中经常出现,它的区分度就高;
  • IDF(Inverse Document Frequency)逆文档频率: 某单词在字典中出现的频率低,它的区分度就高;
  1. 在做字典时候,用IDF,假设所有特征总数为 n n n, 当前要统计的单词特征 w i w_i wi 的数量为 n i n_i ni, 则此单词的IDF为:
    I D F i = l o g n n i IDF_i = log \frac{n}{n_i} IDFi=lognin

  2. 对一副图像而言,假设特征/单词 w i w_i wi 出现了 n i n_i ni 次,而这幅图一共出现的单词数量为 n n n,则TF为:
    T F i = n i n TF_i = \frac{n_i}{n} TFi=nni

  3. 基于以上知识,一个图像的特征点可以对应到很多单词,则它的词袋(BOW)为:
    A = ( w 1 , η 1 ) , ( w 2 , η 2 ) , . . . , ( w N , η N )    ⟺    v A A = {(w_1, \eta _1), (w_2, \eta _2), ... , (w_N, \eta _N)} \iff v_A A=(w1,η1),(w2,η2),...,(wN,ηN)vA
    词袋中有很多0值,因为它不能包含字典中所有词。

  4. 计算两图词袋的差异(匹配度),给出一种方式(一范数),还有很多:
    s ( v A − v B ) = 2 ∑ i = 1 N ∣ v A i ∣ + ∣ v B i ∣ − ∣ v A i − v B i ∣ s(v_A - v_B) = 2\sum^N_{i=1}|v_{Ai}| +|v_{Bi}|-|v_{Ai}-v_{Bi}| s(vAvB)=2i=1NvAi+vBivAivBi

3. 提升

对于回环检测,有几点可以提升的部分:

  1. 增加字典规模
  2. 相似性评分处理

对于环境外观相似,比如教室同款椅子很多,利用先验的相似度(某时刻关键帧图像与上一时刻关键帧的相似性)进行归一化:
s ( v t , v t j ) ′ = s ( v t , v t j ) / s ( v t , v t − Δ t ) s(v_t,v_{tj})' = s(v_t,v_{tj})/s(v_t,v_{t-\Delta t}) s(vt,vtj)=s(vt,vtj)/s(vt,vtΔt)

  1. 关键帧处理
  1. 相邻帧肯定满足回环检测条件,因为变化太小,所以回环检测的帧一般稀疏;
  2. 检测到的回环相邻帧意义不大,一帧就可以优化轨迹,因此会把相近的回环聚类成一类,使算法不会反复检测同一类。
  1. 验证

词袋没有顺序,相机颠倒也是回环,如何验证?
回环缓存机制是一种,单词检测到的回环不足以构成约束,在一段时间内一直检测到的回环才是正确的回环(时间上的一致性检测)

  1. 机器学习应用于类别

图像连续变化产生不同类别,甚至可以认为是连续的;
图像间相似性可以利用深度学习方法;
词袋方法的物体识别能力不如神经网络,回环检测类似。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1025749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构与算法(C语言版)P5---栈

1、栈 1.1、栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。__进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。__栈中的数据元素遵守__后进先出(先进后出)__LIFO&#xf…

【C++STL基础入门】list改、查操作

文章目录 前言一、list查操作1.1 迭代器循环1.2 for_each函数 二、list改操作2.1 迭代器修改2.2 assign函数2.3 运算符 总结 前言 C标准模板库(STL)是C语言中非常重要的部分,它提供了一组通用的模板类和函数,用于处理常见的数据结…

利用C++开发一个迷你的英文单词录入和测试小程序-源码

接上一篇,有了数据库的查询,再把小测试的功能给补足,小程序的结构就出来了。 备注:enable_if 有更优秀的concept C 20替代品,C11 里面提到的any,variant,再C17 已经被纳入了标准库。这里完全可…

iOS加固保护技术:保护你的iOS应用免受恶意篡改

目录 转载:开始使用ipaguard 前言 下载ipa代码混淆保护工具 获取ipaguard登录码 代码混淆 文件混淆 IPA重签名与安装测试 转载:开始使用ipaguard 前言 iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件…

机器学习(17)---支持向量机(SVM)

支持向量机 一、概述1.1 介绍1.2 工作原理1.3 三层理解 二、sklearn.svm.SVC2.1 查看数据集2.2 contour函数2.3 画决策边界:制作网格2.4 建模画图 三、非线性情况推广3.1 查看数据集3.2 线性画图3.3 为非线性数据增加维度并绘制3D图像 四、核函数 一、概述 1.1 介绍…

记一次 mysql 数据库定时备份

环境:Centos 7.9 数据库:mysql 8.0.30 需求:生产环境 mysql 数据(约670MB)备份。其中存在大字段、longblob字段 参考博客:Linux环境下使用crontab实现mysql定时备份 - 知乎 一、数据库备份 1. 备份脚本。创…

Python项目Flask ipv6双栈支持改造

一、背景 Flask 是一个微型的(轻量)使用Python 语言开发的 WSGI Web 框架(一组库和模块),基于Werkzeug WSGI工具箱/库和Jinja2 模板引擎,当然,Python的WEB框架还有:Django、Tornado、Webpy,这暂且不提。 Flask使用BSD授权。 Flask也被称为microframework(微框架),F…

RFID技术在工业智能制造生产线中的应用

随着自动化和信息化的快速发展,工业智能制造成为制造业的重要趋势,在制造商的生产线上,准确获取和管理工艺流程等各个环节的信息至关重要,作为物联网感知层的核心组成部分,RFID技术以其非接触式、无感知的特点&#xf…

隔山打牛:金融大崩溃

当2004-2006年美联储主席格林斯潘在任期的末尾一鼓作气把联邦利率从1%拉高到5%,然后把美联储主席的位子交给继任者伯南克的时候,没有人意识到接下来将要发生何等巨变。 图:美国联邦利率 伯南克把利率稳定在5.3%附近的高位一年左右时间&#x…

【ArcGIS】基本概念-矢量空间分析

栅格数据与矢量数据 1.1 栅格数据 栅格图是一个规则的阵列,包含着一定数量的像元或者栅格 常用的栅格图格式有:tif,png,jpeg/jpg等 1.2 矢量数据 矢量图是由一组描述点、线、面,以及它们的色彩、位置的数据&#x…

无涯教程-JavaScript - AVEDEV函数

描述 AVEDEV函数返回数据点与其平均值的绝对偏差的平均值。 AVEDEV是数据集中变异性的量度。 语法 AVEDEV (number1, [number2] ...)争论 Argument描述Required/OptionalNumber11 to 255 arguments for which you want the average of the absolute deviations.Requirednum…

趴趴雅思作文修改

前言 在网上试了下趴趴雅思作文修改的服务,淘宝上直接就可以购买,首次有优惠,之后还是挺贵的。 用了下感觉,有用还是有用的,但是挺贵的,一次40,不值。他给我作文的评分是7分,应该给…

fineReport11.0.4版本新建数据链接

需要以下几步: 1.设计器和服务器都需要安装对应数据库的驱动(已安装就跳过) 对应驱动可以在官网下载,百度搜下有教程 2.服务器没有驱动需要上传驱动 2.1 服务器上传驱动文件,需要修改finedb中的fine_conf_entity表…

Mobpush上线跨时区推送功能,助力中国开发者应用出海

近年来随着国内移动应用存量市场饱和,国内移动应用厂商转向”移动出海“,把握国际市场中存在结构性发展机会,提升中国品牌移动应用的知名度和影响力。根据公开资料显示,中国应用开发者中有79.1%计划出海,其中43%的开发…

极光笔记 | 大语言模型插件

在人工智能领域,大语言模型(LLMs)是根据预训练数据集进行”学习“,获取可以拟合结果的参数,虽然随着参数的增加,模型的功能也会随之增强。但无论专业领域的小模型,还是当下最火、效果最好的大模…

分享一下微信公众号怎么实现积分商城功能

微信公众号作为一种社交媒体平台,可以帮助商家与消费者进行互动和沟通。除了实现微信拼团活动外,微信公众号还可以实现积分商城功能,提高消费者的参与度和忠诚度。本文将介绍如何在微信公众号实现积分商城功能。 一、了解积分商城 积分商城是…

邮件如何避免进垃圾箱

邮件营销是一种常见的营销手段,可以帮助企业向大量目标群体发送营销信息,因此邮件营销被广泛应用于促销活动、产品推广、新闻发布、客户维护等场景。然而随着垃圾邮件的泛滥,国内外大部分的电子邮件服务商都采取了越来越严厉的垃圾邮件过滤机…

系统集成|第九章(笔记)

目录 第九章 成本管理9.1 成本管理概念及相关术语9.2 主要过程9.2.1 制订成本管理计划9.2.2 成本估算9.2.3 成本预算9.2.4 成本控制 上篇:第八章、进度管理 第九章 成本管理 9.1 成本管理概念及相关术语 概述:项目成本管理就是要确保在批准的预算内完成…

怎么优化企业内部的报修流程?有什么好用的企业智能报修管理系统?

随着数字化转型成为企业的新风向,传统的企业报修方式已经变得不够便捷。传统的报修流程往往依赖于企业内部的组织架构,给员工和用户带来了许多麻烦。报修人需要注册、登录、下载和安装相关软件,而且一个故障报修还需要进行多个步骤的操作才能…

AI生成原创文章的工具-AI生成原创文字软件

让我们来了解一下AI生成原创文章的概念。这是指使用人工智能技术,特别是自然语言处理模型,来生成文字内容,这些文字看起来就像是由我们创作的。这种技术已经在自媒体、新闻媒体、博客和其他各种网站上广泛使用。但是,问题出现在于…