开源词袋模型DBow3原理&源码(二)ORB特征的保存和读取
util里提供了create_voc_step0用于批量生成features并保存,create_voc_step1读入features再生成聚类中心,比较适合大量语料库聚类中心的生成。
提取一张图的特征如下:
第一行是文件头,分别用32bit表示特征来自几张图(1)、特征描述子长度(128bit,=32B), 特征长度(89), 特征类型(cv8u)
./utils/create_voc_step0 orb fea0 zs00.jpg
Extracting features...
reading image: zs00.jpg
extracting features
[ INFO:] Initialize OpenCL runtime...
done detecting features
f.size =
f.cols =
f.rows =
f.type =
那么一个特征就是89行*32列的cv::Mat, 这样的特征在调voc.transform生成词向量之前需要先拉长成(32列*1行)的89维vector,像这样:
std::vector<cv::Mat> vf(features.rows); //改成这种格式才能用voc.transform
打印结果:
feature size: rows = ; cols =
the 0th of vf: [ x ]
the 1th of vf: [ x ]
the 2th of vf: [ x ]
the 3th of vf: [ x ]
the 4th of vf: [ x ]
the 5th of vf: [ x ]
the 6th of vf: [ x ]
the 7th of vf: [ x ]
the 8th of vf: [ x ]
queryL1:
对每个entryId, 从word的权值和entryId权值中找里原点最近的,累加程序里的实现是
累加|qvalue-dvalue|-|qvalue|-|dvalue|,最后加负号/2即可
开源词袋模型DBow3原理&源码(二)ORB特征的保存和读取的更多相关文章
- 开源词袋模型DBow3原理&源码(一)整体结构
前人摘树,后人乘凉. 源码在github有CMakeLists,代码下下来可以直接编译. 泡泡机器人有个很详细的分析,结合浅谈回环检测中的词袋模型,配合高翔的回环检测应用,基本上就可以串起来了. tf ...
- Laya Timer原理 & 源码解析
Laya Timer原理 & 源码解析 @author ixenos 2019-03-18 16:26:38 一.原理 1.将所有Handler注册到池中 1.普通Handler在handle ...
- 深入理解Faiss 原理&源码 (一) 编译
目录 深入理解Faiss 原理&源码 (一) 编译 mac下安装 安装mac xcode工具包 安装 openblas 安装swig 安装libomp 编译faiss 附录 深入理解Faiss ...
- Unity UGUI图文混排源码(二)
Unity UGUI图文混排源码(一):http://blog.csdn.net/qq992817263/article/details/51112304 Unity UGUI图文混排源码(二):ht ...
- SharedPreferences 原理 源码 进程间通信 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- JMeter 源码二次开发函数示例
JMeter 源码二次开发函数示例 一.JMeter 5.0 版本 实际测试中,依靠jmeter自带的函数已经无法满足我们需求,这个时候就需要二次开发.本次导入的是jmeter 5.0的源码进行实际的 ...
- AQS源码二探-JUC系列
本文已在公众号上发布,感谢关注,期待和你交流. AQS源码二探-JUC系列 共享模式 doAcquireShared 这个方法是共享模式下获取资源失败,执行入队和等待操作,等待的线程在被唤醒后也在这个 ...
- 【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
[摘要] timers模块部分源码和定时器原理 示例代码托管在:http://www.github.com/dashnowords/blogs 一.概述 Timer模块相关的逻辑较为复杂,不仅包含Ja ...
- 【nodejs原理&源码杂记(8)】Timer模块与基于二叉堆的定时器
目录 一.概述 二. 数据结构 2.1 链表 2.2 二叉堆 三. 从setTimeout理解Timer模块源码 3.1 timers.js中的定义 3.2 Timeout类定义 3.3 active ...
随机推荐
- swift 桥接 Bridging 的创建和使用
swift编程时,大概率会用到OC的文件,这时就要使用swift与oc的桥接文件.桥接文件以 XXXX-Bridging-header.h 这样子的文件名形式为标准,XXXX是你的项目名字. 具体 ...
- eslint 在VSCode中不能使用
在VSCode中安装号eslint插件,还是不能使用,还需安装 npm install eslint-plugin-promise --save-dev 我也不知道为什么?我现在只是用两天不到vsco ...
- Java 堆外内存
入口ByteBuffer.allocateDirect public static ByteBuffer allocateDirect(int capacity) { return new Direc ...
- 如何为DigitalOcean上的服务器配置SSH密钥
本指南适用于mac OS和Linux,windows用户请绕道. 通常,当你启动DigitalOcean droplets时,只要过程完成,你会收到一封电子邮件,让你知道droplets的IP地址和密 ...
- 【SVD、特征值分解、PCA关系】
一.SVD 1.含义: 把矩阵分解为缩放矩阵+旋转矩阵+特征向量矩阵. A矩阵的作用是将一个向量从V这组正交基向量的空间旋转到U这组正交基向量的空间,并对每个方向进行了一定的缩放,缩放因子就是各 ...
- 匹配整个img路径
<script>var regex=/^(<img src=")(.+)(">)/;var src='<img src="file:///D ...
- Devops路线
自动化运维工具 Docker学习 .
- Spark SQL内置函数
Spark SQL内置函数官网API:http://spark.apache.org/docs/latest/api/scala/index.html#org.apache.spark.sql.fun ...
- 微信小程序实现简单的树形图treeview
H5有很多树形图(树状图)的组件,echarts也有.比如像bootstrap的treeview,定制性很强.不过这些都无法方便地为小程序所用,除非整个页面用H5搭建再用webview框进去,有点粗暴 ...
- Oracle查看用户密码过期,修改永不过期
01.查看当前open用户 select username,account_status,expiry_date,profile from dba_users; 02.查看目前的密码过期策略 sele ...