开源词袋模型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:0] Initialize OpenCL runtime...
done detecting features
f.size = 1
f.cols = 32
f.rows = 89
f.type = 0

那么一个特征就是89行*32列的cv::Mat, 这样的特征在调voc.transform生成词向量之前需要先拉长成(32列*1行)的89维vector,像这样:

std::vector<cv::Mat> vf(features.rows);  //改成这种格式才能用voc.transform

打印结果:

feature size: rows = 89 ; cols = 32
the 0th of vf: [32 x 1]
the 1th of vf: [32 x 1]
the 2th of vf: [32 x 1]
the 3th of vf: [32 x 1]
the 4th of vf: [32 x 1]
the 5th of vf: [32 x 1]
the 6th of vf: [32 x 1]
the 7th of vf: [32 x 1]
the 8th of vf: [32 x 1]

queryL1:

对每个entryId, 从word的权值和entryId权值中找里原点最近的,累加程序里的实现是

累加|qvalue-dvalue|-|qvalue|-|dvalue|,最后加负号/2即可

原文地址:https://www.cnblogs.com/zhengmeisong/p/8525083.html

时间: 2024-08-29 22:57:24

开源词袋模型DBow3原理&源码(二)ORB特征的保存和读取的相关文章

开源词袋模型DBow3原理&amp;源码

前人摘树,后人乘凉. 源码在github有CMakeLists,代码下下来可以直接编译. 泡泡机器人有个很详细的分析,结合浅谈回环检测中的词袋模型,配合高翔的回环检测应用,基本上就可以串起来了. tf-idf的概念,表达方式不唯一,这里的定义是这样: tf表示词频,这个单词在图像中出现的次数/图像单词总量 idf表示单词在整个训练语料库中的常见程度:idf=log(N/Ni),N是训练语料库中的图片总数,Ni是训练语料库中包含这个单词的图像数 由于Ni<=N,idf>=0,当Ni=N时,idf

防猎豹垃圾清理(实现原理+源码)

防猎豹垃圾清理(实现原理+源码) 转载请注明出处: 防猎豹垃圾清理(实现原理+源码) 前几天无意打开猎豹内存大师, 发现它的垃圾清理很强大, 效果也不错, 闲着就研究了下. 不过.. 结果貌似和我想象的不太一样.怎么说呢, 听我下文一一分析. 效果图: 从效果图, 我们可以看出它有以下几个功能: 获取设备上已安装的所有App 获取App的信息, 包括图标和名称 获取当前已用存储和可用存储 扫描App动画效果 清除所有App垃圾文件 看到这里, 你是不是也觉得很强大? 然后然后, 感叹的同时, 我

【141030】金山卫士开源代码,VC++完整源码

VC++金山卫士开源代码,包含所有模块的源码,促进互联网行业的开源计划 :也是你学习VC++的绝佳范例,可以接触到中国最专业的安全类软件源代码,你可以自由的使用/研究/修订/再发布 这些代码以及延伸作品.VC++金山卫士开源代码下载. 游戏源码下载地址:点击下载

App开源分享-在路上项目源码

App开源分享-在路上项目源码 在路上是一款旅游型的APP,是集旅游旅游目的地攻略指南,可以自动定位到城市,景点,餐馆,酒店,还可以分享旅游经验,与参与者互动.架构合理,有详细的注解.很好的学习材料. 下载地址:http://www.devstore.cn/code/info/905.html 运行截图:    

看看Spring源码(二)——bean实例化

首先来看一段代码,看过上一节的朋友肯定对这段代码并不陌生.这一段代码诠释了Spring加载bean的完整过程,包括读取配置文件,扫描包,加载类,实例化bean,注入bean属性依赖. public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // Prepare this context for refreshing. prep

yii源码二 -- interfaces

path:framework/base/interfaces.php overview:This file contains core interfaces for Yii framework. interface IApplicationComponent:all application components must implement. 在application完成配置后就调用init()初始化application. interface ICache:must be implemente

深入java并发包源码(二)AQS的介绍与使用

深入java并发包源码(一)简介 深入java并发包源码(二)AQS的介绍与使用 深入java并发包源码(三)AQS独占方法源码分析 AQS 本文章会讲解 AQS 的使用方法,然后通过 DEBUG 跟踪 AQS 执行的一系列操作来分析源码,读者跟着文章 DEBUG 跟踪源码能更容易理解. AQS 是什么? AbstractQueuedSynchronizer 队列同步器(AQS)是一个抽象类,作为并发工具的基础组件,为真正的实现类提供基础设施.并发工具是面向使用者的,AQS 面向的是并发工具的实

群控云控源码二次开发定制

群控云控源码二次开发定制系统介绍:群控系统是在windows系统下运行的,具有操作简单,运行稳定,升级方便,功能丰富等优点,系统同时可以管理大量wei信帐号,一号一机,安全稳定,不容易封号主要功能:通过Android自动化控制集成系统,把多个手机操作界面直接映射到电脑显示器,实现一台电脑来控制多部手机操作.批量发朋友圈,批量wei信聊天,自动化批量加好友,便捷智能,稳定防封号.群控系统介绍实时群控 支持一台电脑控制管理15-300部手机,电脑画面和手机屏幕实时同步操作自动营销电脑一键实现多部手机

CAD ObjectARX扩展工具的源码(二)

CAD ObjectARX扩展工具的源码(二)  //AcDbObjectId CDrawFunction::createtextAll(AcGePoint3d pt,char *text,AcDb::TextHorzMode hMode,AcDb::TextertMode Mode,double hight,double widthFactor,double rotation,int color,CString smallFontName,CString bigFontName,CString