词袋

2023-05-16

brief描述子

在这里插入图片描述
一般Sb=48,Lb为256.brief描述子不具备旋转尺度不变性。

词袋

在这里插入图片描述
提取大量图片的描述子,将描述子用k-means聚类成K堆,这是第n层,把每一堆再次聚类形成下一层,总共聚类L次,到0层。这样就有L层,每次分叉为K。最终得到一棵有W个叶子的树,它们就是词库的单词。每一个单词都有一个权重,它表征了该单词在词库的relevance。
bag-of-words vector: 假设我们词库里有总共三个单词,w1, w2, w3. 图片里面包含2个w1, 0个w2,1个w3. 则图片可以表示为2w1+0w2+1*w3。因为词库是固定的,所以可以直接用[2,0,1]表示这张图片。

inverse index Word1: 存储了该单词在哪些图片出现,且它在该图片的权重。(从单词角度)
在查询图库的时候,如果查询图片有这个单词,那么能很快知道也有这个单词的图片。这样我们很方便就知道图库里面哪些图片和查询图片有最多的共同单词。当图库里面有新的图片加入,inverse index就会更新。当开始查询,就会获得inverse index。 < I t , v t i > <I_t,v_t^i> <It,vti>
direct index image 1:存储每张图片的特征点和它对应的节点。(从图片角度)如果候选帧已经被选出,direct index就会让查询帧和候选帧的特征点对应起来变的很方便。当图库里面有新的图片加入,direct index就会更新。当候选帧已经被选出,要开始匹配,就会获得direct index。

这两个index就是查询帧在图库里寻找匹配图片整个过程所需的,比如一张图片取图库里寻找它的相似帧,且输出该相似帧与它匹配的特征点,我们该怎么做呢?首先,我们要找到该相似图片,如何找?肯定是根据单词来,这时候inverse index就发挥了作用,根据inverse index,我们很快就知道了哪张图片和它有最多的公共单词,就是词向量求相似度。但是单词是不知道在图片中特征点的序号的,我们要知道该图片与查询帧的特征点对应关系,就得靠direct index了。
注意 词库和图库 词库是就是word vocabulary,它是固定不变的,即我们工程去读取的brief_k10L6.bin文件,而图库是我们工程读取的图片集合,使我们每个工程自己生成的

  1. 比较词向量的相似性:
    在这里插入图片描述

回环检测算法

1.Database query
每一张图片都被转换为词向量v了,直接用s(v1,v2)就可以计算出两张图片的相似度。假设当前帧是 v t v_t vt, 在图库里计算出一组匹配分 < v t , v t 1 > , < v t , < v t 2 > . . . <v_t, v_{t1}> , <v_t, <v_{t2}>... <vt,vt1>,<vt,<vt2>...,我们那当前帧与它上一帧的匹配分 < v t , v t − T > <v_t,v_{t-T}> <vt,vtT>作为标准,一般两帧的分数是比较高的(但是在旋转时会变小,要剔除)
在这里插入图片描述
如果这个值大于某个阈值,则认为是候选帧了。
2.Match grouping
在这里插入图片描述
这里的意思就是如果某一帧如果是真正的回环帧,那么它前后帧也都应该与当前帧相似,应该把这些看做是一次匹配,把他们都加起来,H越大,说明这个岛越大且分最高,说明越是可能的回环。
3.Temporal consistency
在这里插入图片描述
时间校验,这个候选帧(注意是岛的代表)必须跟当前帧的前7帧也是相似的,那么就从岛中选出得分最高的作为候选帧了。
上面都是提取候选帧。
下面是匹配。
4.几何校验
找出当前帧和候选帧的特征点对应关系,用ransac求F矩阵即可。找特征点对应关系就要用到direct index啦,
在这里插入图片描述
我们只计算两张图片同在一个叶子节点的特征点描述子的距离,这样就可以大大节省时间。但是如果l=0,导致只有属于同一个单词的特征点参与计算,这样对应关系肯定变少。两者需要权衡。如果l=Lw,那就是暴力匹配了。

tf-idf,

tf是词频(term frequency),表示词在文本中出现的频率
在这里插入图片描述
idf逆向文件频率,总文件数目除以包含该单词的文件数目,再将商取对数,即idf。如果idf越大,说明出现该单词的文件越少,则该词越具有区分性。
在这里插入图片描述
tf-idf 就是tf * idf。
什么意思呢?我们要区分文本,靠的是单词,有些单词具有很好的区分性,有些单词可能每个文本都出现,这样的单词区分性就比较差。tf表征了单词在所有文本库中出现的频率,如果单用tf来衡量,是很难的,因为tf大,有可能它确实在某几篇文档中反复出现,这种是可以的,但是它也有可能是在大量出现在所有文档中(比如我,的这样的单词)。引入idf就是为了避免这种情况,它表征了该单词在多少个文本中出现,像“我”、“的”这样的单词idf就非常小,就算tf很大,相乘之后tf-idf就很小,说明该词区分性不好。tf-idf越大,说明该单词不仅出现次数多而且它所在的文本数量少,这样的词就具备很好的区分性。
DBOW
dbow1,2,3的区别

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

词袋 的相关文章

  • Sql Server服务远程过程调用失败

    由于开发系统 xff0c 需要vs版本统一 xff0c 于是经过了昨天一整天艰苦卓绝的斗争 xff0c 小编终于成功的写在了13版本的vs xff0c 重新装上了12版本的vs xff0c 本来想着 xff0c 12版本的vs搭建成功了 x
  • Android仿淘宝购物车demo

    夏的热情渐渐退去 xff0c 秋如期而至 xff0c 丰收的季节 xff0c 小编继续着实习之路 xff0c 走着走着 xff0c 就走到了购物车 xff0c 逛过淘宝或者是京东的小伙伴都知道购物车里面的宝贝可不止一件 xff0c 对于爱购
  • Android Demo---实现从底部弹出窗口

    在前面的博文中 xff0c 小编简单的介绍了如何制作圆角的按钮以及圆角的图片 xff0c 伴着键盘和手指之间的舞步 xff0c 迎来新的问题 xff0c 不知道小伙伴有没有这样的经历 xff0c 以App为例 xff0c 点击头像的时候 x
  • 浅谈如何带领好一个团队

    实习回来之后 xff0c 小编接手了一个新的项目 xff0c 市委组织部考核项目 xff0c 听着有没有很高大上 xff0c 因为这个项目是给国家机关做的 xff0c 跟他们打交道 xff0c 小编的心情只能用两个字来形容 xff0c 呵呵
  • 为什么说slam技术不等于智能导航?

    在机器人智能移动中 xff0c SLAM发挥了无可比拟的作用 xff0c SLAM simultaneous localization and mapping 也称为CML Concurrent Mapping and Localizati
  • 情不知所起,一“网”而深

    你只看到我的程序 xff0c 却没有看到背后的代码 xff1b 你有你的选择 xff0c 我有我的坚持 xff1b 你嘲笑我假期过节不回家陪父母 xff0c 我可怜你只在家向父母衣食伸手 xff1b 你可以轻视我的道路 xff0c 我会证明
  • 【项目实战】---首页一级分类的显示

    在前面的博文中 xff0c 小编主要简单的介绍了用户模块中的验证码程序是如何实现的 xff0c 今天继续来介绍我们的项目 xff0c 今天小编主要简单的介绍一下如何实现首页的一级分类的显示 xff0c 比如小伙伴现在看的CSDN xff0c
  • Kettle---初识

    最近因公司项目的原因 xff0c 小编接触到了Kettle这样一款工具 xff0c 感觉挺好玩儿的 xff0c 通过几天的探索和学习 xff0c 对 Kettlde 的使用有了一点点小心得 xff0c 小编打算把这段期间学习和探索到的关于
  • 读书笔记---《人月神话》

    台上一分钟 xff0c 台下十年功 宝剑锋从磨砺出 xff0c 梅花香自苦寒来 xff1b 不经一番寒彻骨 xff0c 哪得梅花扑鼻香 xff1b 业精于勤而荒于嬉 xff0c 行成于思而毁于随 不积跬步 xff0c 无以至千里 xff1b
  • Intel CPU型号官网详解

    https www intel cn content www cn zh processors processor numbers html
  • Nrf52832 freeOS系统移植

    最近因为项目开发需要 xff0c 需要多任务的操作系统在nrf52832上运行 xff0c 于是根据例程移植了下FreeOS系统 根据例程F nRF5 SDK 15 2 0 9412b96 examples ble peripheral b
  • tf 使用

    1 发布自己的tf xff1a 其实就是发布你建立的坐标系 步骤如下 xff1a 1 定义一个广播 xff0c 相当于发布话题时定义一个发布器 xff0c 还是以官方的小乌龟例程为例 xff1a span class hljs keywor
  • 解决问题:xshell6评估已过期

    一 问题描述 今天打开xshell xff0c 发现报错 xff1a 34 xshell6评估过期 34 无法打开xshell xff0c 当时急着要用xshell xff0c 所以 xff0c 是有这个问题的 二 解决方法 1 进入xsh
  • 华为机试题: 水仙花数

    描述 水仙花数又称阿姆斯特朗数 水仙花数是指一个n 位数 n 3 xff0c 它的每个位上的数字的n 次幂之和等于它本身 xff08 例如 xff1a 1 3 43 5 3 43 3 3 61 153 xff09 求输入的数字是否为水仙花数
  • 【手把手教你树莓派3 (二)】 启动wifi模块

    概述 树莓派3内置了wifi和蓝牙模块 xff0c 我们不用像以前的版本那样 xff0c 再去购买一个外接的模块练到raspberry上 当我们第一次启动了树莓派的时候 xff0c 必然使用了网线 xff0c 但是之后的每一次使用 xff0
  • 社区活动 | Apache Kylin × Apache RocketMQ Meetup 深圳站

    9 月 7 日 xff0c Apache Kylin Meetup 即将走进深圳 xff01 本次 Meetup 由 Apache Kylin 与 Apache RocketMQ 联合举办 xff0c 邀请到来自腾讯 阿里 平安云以及 Ky
  • 【手把手教你树莓派3 (六)】使用 motion 和 mjpg 做视频监控器

    概述 买了一个罗技的usb接口的摄像头 xff0c 想通过raspberry pi做一个视频的实时监控器 xff0c 看了一下这各功能可以通过两款软件实现 xff1a motion和mjpg streamer xff0c 先来简单介绍下这两
  • 【zookeeper】data/zookeeper_server.pid: No such file or directory FAILED TO WRITE PID 报错

    今天在配置zk的伪集群 xff0c 发现了如下报错 xff1a 上网查看有的说是因为zoo cfg配置文件 61 前后有空格 xff0c 查了以后我的配置文件并没有空格 xff0c 所以我排除了这个原因 最后解决 xff1a zk的配置文件
  • golang tag 之 gomodifytags

    链接 xff1a gomodifytags原文链接 gomodifytags 是go工具 xff0c 用来修改 更新struct字段的标签tag 使用gomodifytags可以很方便的update add delete struct的字段
  • Vscode Clangformat 配置

    1 xff0c vscode 安装 c 43 43 intellisense 即可自动安装clangformat 格式化工具 2 xff0c vs setting Clang format path 配置 一般位置就是 vscode ext

随机推荐

  • 计算机基本原理之内存编址

    内存编址目的 存储器由一块块的空间 xff08 存储单元 xff09 组成 xff0c 为了方便寻找到每一块空间 xff0c 我们需要对每一个空间进行标识 内存编址 内存编址概述 芯片 存储器由若干个芯片构成 内存容量 存储器的大小 内存容
  • PowerDesigner—你知道CDM、LDM、PDM、OOM的区别吗?

    导读 在本篇文章中 xff0c 你将会了解到PowerDesigner工具中的三种模型CDM xff0c OOM xff0c PDM的区别和联系 PowerDesigner 简称PD xff0c 是一种数据建模工具 xff0c 适合于开发大
  • 基础 HTML之目录问题(相对路径和绝对路径区别)

    导读 复习HTML知识的时候 xff0c URL的路径的写法是我们经常会用到的一块内容 相对路径和绝对路径的问题不难 xff0c 只要明白各自的道理 xff0c 同时清楚 这些字符的含义就可以了 原文链接 xff1a http www jb
  • 【Android开发—智能家居系列】(一):智能家居原理

    来到JCZB公司的第二天 xff0c 就接到了开发类似于小米智能家庭APP的任务 组长让我在手机上安装上此款APP xff0c 给了我个小米智能插座 xff0c 就让我开始了解需求 这便开启了我的智能家居旅程 说实话 xff0c 我也真是o
  • 【Android开发—智能家居系列】(二):用手机对WIFI模块进行配置

    在实际开发中 xff0c 我开发的这款APP是用来连接温控器 xff0c 并对温控器进行控制的 有图为证 xff0c 哈哈 上一篇文章 Android开发 智能家居系列 xff08 一 xff09 xff1a 智能家居原理 的文末总结中写到
  • 【POI】——获得单元格的值,并转化成字符串

    本篇文章分享一些在做导入导出EXCEL功能时用到的工具类的一些代码 span class hljs javadoc span class hljs javadoctag 64 param span cell span class hljs
  • ElementUI实现文件手动上传

    ElementUI实现文件手动上传 HTML部分 lt el upload ref 61 34 upload 34 multiple 61 34 true 34 file list 61 34 fileList 34 auto upload
  • 【工具篇】——利用EditPlus进行Json数据格式化

    从接口返回的数据基本都是json格式的数据 之前我要查看数据的内容 xff0c 为了方便我阅读 xff0c 我会直接复制这段数据到在线JSON校验格式化工具中进行格式化和校验 但是没网的时候 xff0c 就不能靠它了 而EditPlus是我
  • 【GIS】——mapnik在windows上的安装

    mapnik是瓦片生成器 这里先不解释了 xff0c 等用过了再谈理解 下载步骤 1 下载安装包 官网地址 xff1a http mapnik org http mapnik org pages downloads html 3 0 12还
  • 【GIS】——使用Python bindings操作mapnik

    背景介绍 使用mapnik有三种方式 xff1a 1 使用XML配置文件 2 使用Python bindings 3 使用C 43 43 中的API 这里我们先介绍第二种Python bindings xff0c 并采用这种方式做一个Dem
  • 【MongoDB】(一)——关于MondoDB索引的总结

    导读 为数据创建索引有助于提高查询数据的性能 xff0c 本篇文章总结了创建MongoDB索引应遵循的规则 我将这些规则分成四类 xff1a 1 query 2 sort 3 RAM 4 selectivity query db span
  • 【开发也是好测试】(四)—Mock

    有关Mock的思维导图 xff1a
  • 【MongoDB】——TTL Index

    TTL Index
  • ubuntu下的串行口通讯编程

    Linux 操作系统从一开始就对串行口提供了很好的支持 xff0c 本文就 Linux 下的串行口通讯编程进行简单的介绍 串口简介 串 行口是计算机一种常用的接口 xff0c 具有连接线少 xff0c 通讯简单 xff0c 得到广泛的使用
  • stm32 摄像头寻迹+平衡车

    链接 xff1a http download csdn net download u010925447 9866006
  • 【书籍推荐】自己动手写操作系统

    于渊 编著 尤晋元 审校 2005年8月出版 ISBN 7 121 01577 3 48 00元 xff08 含光盘1张 xff09 374页 用理论指导动手实践 xff0c 用实践深化理解理论 xff01 本书在详细分析操作系统原理的基础
  • 贝塔、伽马分布

    最近开始自学PRML xff0c 为此又补了概率论中的一些知识点 相较于古典概率通过各种估计手段来确定参数的分布 xff0c 贝叶斯学派则是使用后验概率来确定 xff0c 为了方便计算后验概率 xff0c 引入共轭先验分布来方便计算 xff
  • elementUI中el-dropdown的command如何传递多个参数

    el dropdown的command事件默认传递一个参数 xff0c 即每个下拉选项el dropdown item中设定的command的值 xff0c 那么如何传递多个参数呢 xff1f 实现方法 xff1a 动态设置el dropd
  • 记录ubuntu18.04下搭建nuttx RTOS的过程

    官方参考链接 xff1a https nuttx apache org docs latest quickstart install html Getting started 61 61 gt Installing 主要记录一下按照链接指导
  • 词袋

    brief描述子 一般Sb 61 48 Lb为256 brief描述子不具备旋转尺度不变性 词袋 提取大量图片的描述子 xff0c 将描述子用k means聚类成K堆 xff0c 这是第n层 xff0c 把每一堆再次聚类形成下一层 xff0