matlab中的sift函数,matlab - 用Matlab从VLFeat中的SIFT描述符中提取VLAD - 堆栈内存溢出...
首先,您需要获得一个视觉单词词典,或更具体地说:使用k -means聚类对所有图像的SIFT特征进行聚类。 在[1]中,推荐使用例如64或256个群集的粗略群集。
为此,我们必须将所有描述符连接到一个矩阵中,然后可以将其传递给vl_kmeans函数。 此外,我们将描述符从uint8转换为single ,因为vl_kmeans函数要求输入为single或double 。
all_descr = single([sift_descr{:}]);
centroids = vl_kmeans(all_descr, 64);
其次,您必须创建一个分配矩阵,该矩阵的尺寸为NumberOfClusters-by-NumberOfDescriptors ,该矩阵将每个描述符分配给一个群集。 在创建此分配矩阵时,您具有很大的灵活性:您可以进行软分配或硬分配,可以随意使用简单的最近邻居搜索或kd树或其他近似或分层的最近邻居方案。
在本教程中,他们使用kd-tree,因此请坚持以下步骤:首先,必须构建kd-tree。 在找到centroids之后,此操作即centroids :
kdtree = vl_kdtreebuild(centroids);
然后,我们准备为每个图像构建VLAD向量。 因此,我们必须再次浏览所有图像,并独立计算其VLAD向量。 首先,我们完全按照本教程中的描述创建分配矩阵。 然后,我们可以使用vl_vlad函数对SIFT描述符进行编码。 所得的VLAD向量将具有NumberOfClusters * SiftDescriptorSize的大小,即在我们的示例中为64 * 128。
enc = zeros(64*128, numel(sift_descr));
for k=1:numel(sift_descr)
% Create assignment matrix
nn = vl_kdtreequery(kdtree, centroids, single(sift_descr{k}));
assignments = zeros(64, numel(nn), 'single');
assignments(sub2ind(size(assignments)), nn, 1:numel(nn))) = 1;
% Encode using VLAD
enc(:, k) = vl_vlad(single(sift_descr{k}), centroids, assignments);
end
最后,我们为数据库中的所有图像提供了高维VLAD向量。 通常,您将需要降低VLAD描述符的维数,例如使用PCA。
现在,赋予了新的形象这是不是在数据库中,你可以提取SIFT特征使用vl_sift ,创建具有分配矩阵vl_kdtreequery ,并创建使用该图像的VLAD矢量vl_vlad 。 因此,您不必查找新的质心或创建新的kd树:
% Load image and extract SIFT features
new_image = imread('filename.jpg');
new_image = single(rgb2gray(new_image));
[~, new_sift] = vl_sift(new_image);
% Create assignment matrix
nn = vl_kdtreequery(kdtree, centroids, single(new_sift));
assignments = zeros(64, numel(nn), 'single');
assignments(sub2ind(size(assignments)), nn, 1:numel(nn))) = 1;
% Encode using VLAD
new_vlad = vl_vlad(single(new_sift), centroids, assignments);
[1] Arandjelovic,R.和Zisserman,A.(2013)。 所有关于VLAD。 IEEE计算机视觉和模式识别会议(CVPR),1578年至1585年。
matlab中的sift函数,matlab - 用Matlab从VLFeat中的SIFT描述符中提取VLAD - 堆栈内存溢出...相关推荐
- linux中timer的作用,linux - linux / timer.h setup_timer()到期功能不起作用? - 堆栈内存溢出...
因此,我的setup_timer()中的TimerExpire函数会引起巨大的恐慌(将在下面发布),而对TimerExpire()的常规函数调用实际上将输出我的输入. void TimerExpi ...
- pdf 中的java运行,java - 从pdf文件读取特定位置的itext在intellij中运行,并提供所需的输出,但是可执行jar抛出错误 - 堆栈内存溢出...
我正在从n个页面的输入pdf文件中读取特定位置,并在这些位置上列出文本. 然后,我编写一个新的pdf文档,并将列表中的这些字符串写入包含单元格的表中. 我提出了两个主要问题. 我想在表中有三列,但是如 ...
- python从html拿到数据,python - 使用BeautifulSoup和Python从HTML文件中提取数据 - 堆栈内存溢出...
我需要提取的数据可以在不同的标题下找到. 这是我到目前为止: from BeautifulSoup import BeautifulSoup ecj_data = open("data\ec ...
- ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务-Oracle连接错误
连接Oracle时突然报"ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务"错误 检查OracleServiceORCL服务是否启动! win10:此电脑→管理 ...
- ORA-12514 监听程序当前无法识别连接描述符中的服务
今天在用oracle的时候遇到了这样一个问题:"ORA-12514 监听程序当前无法识别连接描述符中的服务",网了看了好多别人的办法都没有解决,自己就试着解决了一下,嘿,还真解决了 ...
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
在安装完Oracle10g后,使用PL/SQL工具连接,提示如下的问题: ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务 解决办法是手动修改监听配置文件: # listen ...
- windows 2008 64位oracle11g部署问题(3)之ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务...
oracle11g安装完毕了,监听也起来了,发现通过客户端 本地网络服务名配置(如下图)链接oracle11g服务器,确报ORA-12514的错误,该如何解决呢? 1. 找到listener.ora监 ...
- windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法 参考文章: (1)windows7 ORA-12514 TNS 监听程序当前无法识别连接描述符中请求 ...
- ora-12514: tns: 监听程序当前无法识别连接描述符中请求的服务 问题解决
通过PlSQL Developer 访问oracle出现: ora-12514: tns: 监听程序当前无法识别连接描述符中请求的服务 通过重启服务的方式启动数据库,也不能连接上oracle数据库 ...
最新文章
- amazon linux 安装nginx,linux – NGINX不显示Amazon EC2实例上的默认页...
- 《系统集成项目管理工程师》必背100个知识点-46质量与等级
- IDEA中SVN未提交代码,更新时有冲突接受其它怎么办
- 远程连接server问题
- 解决Struts2的配置文件struts.xml文件无提示问题
- mysql full customer_mysql优化通常使用的几种方法
- NDK编译php,Android NDK编译常见错误及解决方案
- [渝粤教育] 广东-国家-开放大学 21秋期末考试马克思主义基本原理概论(A)10882k1 (2)
- 27.Linux/Unix 系统编程手册(上) -- 程序的执行
- ibm服务器操作系统重装步骤,ibm服务器安装 操作系统安装步骤
- android手机主流屏幕大小,如何选择适合自己的手机屏幕大小 屏幕大小选择标准【详解】...
- 手机屏幕分辨率真的是越高越清晰吗?
- 用CSS3实现无图片的百度Logo
- 【android开发】手机应用管理器的实现之获取应用列表(一)
- ssm框架搭建连接mysql_搭建SSM框架(一) - xiaoqi__y的个人空间 - OSCHINA - 中文开源技术交流社区...
- 不同框架模型的对比试验
- 一个人的精神结构和他的精神资源
- linux远程判断目录是否存在,用shell判断远程主机上是否存在某个文件
- 设置行与行的间隔(行间距)
- JS验证用户真实姓名
热门文章
- c++ win32 裁剪窗口为圆角矩形窗口
- 简要描述java语言的特点是什么_java语言的特点是什么
- 五百左右蓝牙耳机哪个牌子好?学生党平价蓝牙耳机推荐
- 【imx6ul】SIM7600CE 4G模块在imx6ul linux4.15上拨号上网
- 7035. 2021.03.30【2021省赛模拟】神奇纸牌(uno)题解
- 云呐统一运维一体机,智能运维解决方案
- java filter chain_Filter及FilterChain的使用详解
- LayaAir基础(2) 之 资源加载
- kaggle搭建环境
- kaggle无法注册的问题解决