问题标签 [vlfeat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 如何确保 SIFT 特征的一致性?
我正在使用一种分类算法,该算法要求训练和测试中所有样本的特征向量的大小相同。
我也将使用 SIFT 特征提取器。这会导致问题,因为每个图像的特征向量都以不同大小的矩阵出现。我知道 SIFT 会检测每个图像中的可变关键点,但是有没有办法确保 SIFT 特征的大小是一致的,这样我就不会dimension mismatch
出错。
我尝试rootSIFT
过一种解决方法:
这为每个图像提供了一个一致的128 x 1
向量,但它对我不起作用,因为每个向量的大小现在非常小,而且我的NaN
分类结果得到了很多。
有没有办法解决这个问题?
android-ndk - ndk-build 使用 amadillo (blas lapack) 和 vlfeat lib
我正在尝试编译使用犰狳编写的 c++ 代码,我在 config.hpp 中取消了对 blas lapack 的注释,在 Andriod make 文件中也取消了 vlfeat (vl.so) 的注释。
在 Jni 文件夹中,我有以下 Andriod.mk
对于每个模块 blas、lapack 和 vlfeat,我使用了 .so 库,如下所示:
和
matlab - “尝试将脚本作为函数执行”错误 - 编译后清空 MEX 文件夹
这是我第一次使用 Matlab 和 vl_feat 库。我安装了 vl_feat 库并使用addpath(genpath())命令将库路径添加到 Matlab 路径。
但是当我尝试执行vl_sift函数时,它会给出错误“尝试将 SCRIPT vl_sift 作为函数执行”。我尝试了很多方法来找出该错误的原因。我编译了库文件以在“VLFEATROOT/toolbox”中生成mex文件夹。但是文件夹是空的。是不是这个错误的原因。如果,是,如何生成文件夹的内容来纠正错误。
c++ - 使用编译 vlfeat 库时找不到 -lvl
我尝试在自己的项目中使用 VLFEAT。按照其主页中提供的说明进行操作,我仍然有一个问题。
首先,我使用 g++ 'make ARCH=glnx86' 编译库。看起来没问题。然后我使用一个小程序检查它是否编译正确。
我使用以下脚本进行编译:
VLROOT 是我电脑中 vlfeat 路径的缩写。
失败了!!错误信息是:
我知道 -l 标志用于告诉 g++ 应该链接哪个静态库。在这种情况下,似乎需要“libvl.a”。但是,我检查了 vlfeat,它没有“libvl.a”。仅找到动态库“libvl.so”。
vlfeat 本身不提供静态库吗?以及如何修复此错误以便我可以在自己的项目中使用它?
matlab - ???尝试去引用非结构数组字段
我正在做一个图像检索项目。它需要 VLFeat 开源库,该库实现了专门用于图像理解和局部特征提取和匹配的流行计算机视觉算法。即使在成功实施 VLFEAT 工具箱后,我也会收到以下错误:
fq
是由 VLFEAT 返回的具有 N 个查询特征的结构:包含两个元素:
fq.f
是一个 6xN 矩阵,其中包含查询中每个检测到的特征的椭圆体描述符。fq.d
是一个 MxN 矩阵,其中包含查询中每个检测到的特征的 M 维特征描述符。
'fq' 是主函数 'gm' 的输入参数,它执行查询图像和 R 参考图像之间的图像检索任务。
matlab - 如何二值化 Fisher 向量?
我正在做一个学校项目,在许多任务之间,我需要按照本文中所写的内容对 Fisher Vectors 进行二值化。我获得了与 Matlab 一起使用的 vl_feat 库,并且我实现了这个简单的教程来返回给定一些特征的 Fisher 向量。
一切正常,我成功更新了 vl_fisher 函数,以将 Fisher 向量的每个维度提升到值 α ∈ [0, 1] 的幂,如第 4.1 节所述。在 α = 0 的情况下,我可以得到一个值为 {-1,0,1} 的 Fisher 向量,这是一个三元封装。
4.1 节的第二部分解释了如何将这种三进制编码转换为等效的二进制编码。我在那里有点迷路,主要是因为我正在使用库来返回费希尔向量表示。这种表示由一个双精度向量组成,这使得遵循论文描述变得更加棘手。
所以我的问题是,如何在 Matlab 上使用 vl_feat 库对 Fisher 向量进行二值化?我只需要对三元编码进行二值化吗?我应该以另一种方式计算 Fisher 向量以使其更适合以下二值化吗?
在此先感谢您的时间!
matlab - 使用 vlfeat 替代词袋方法中的空间直方图
vlfeat 中的 phow_caltech101 演示应用程序为 Caltech101 数据集上的图像分类创建了一个完整的 Bag of Words 过程,大致如下:
- 特征提取
- 视觉词汇建设
- 空间直方图计算
- 支持向量机训练
- SVM 测试和评估,
获得一个模型,该模型可用于以后对新的未分类实例进行分类。直方图计算的唯一问题是空间直方图,这意味着如果我有一个大小为 n 的视觉词汇表,我会期望直方图的大小为 nx (size_collection),其中包含每个训练实例中每个视觉单词的出现次数。
然而,空间直方图根据指定的模型存储在一个结构中,默认情况下它有两个空间参数,spatialX 和 spatialY,这会产生一个大小为 spatialX * spatialY * (size_vocabulary) 的结构,该结构后来被归一化,这是用于训练 SVM 的那个。
现在,如果我想使用正常直方图,无论是否归一化,但是直方图给我每张图像的视觉词 1-1 对应关系,或者从空间直方图中获取此信息,该怎么办?此外,当我描绘词袋过程时,使用空间直方图而不是我考虑的经典直方图效率高多少?
任何帮助表示赞赏。
更新:
这是计算直方图的代码的一部分,您可以看到如何以大小为直方图 (spatialX * spatialY * number_visual_words) 而不是以直方图向量结束 (number_visual_words) 结束。让我澄清一下,在这种情况下,模型被定义为具有 spatialX = [2 4] 和 spatialY = [2 4]。
部分问题是我也没有使用空间直方图,所以我不确定它们比“正常”直方图好多少。也许以前使用过这种直方图的人可以提供更有用的见解。
c++ - 如何使用 vlfeat 和 opencv 确定 C++ 中图像的 PHOW 特征?
我在matlab中实现了一个PHOW特征检测器,如下:
这是代码的包装:
我正在使用 opencv 和 vlfeat 在 c++ 中进行实现。这是我的实现代码的一部分,用于计算图像(Mat 图像)的 PHOW 特征:
我不确定返回是否应该是所有尺度的所有描述符的集合,这在我们处理多个图像时需要大量存储空间;或不同尺度的描述符之间的运算结果。你能帮我解决这个疑问吗?谢谢
python - OpenCV-Python 密集 SIFT 设置
这是之前发布的关于在 python 中使用 OpenCVs 密集筛选实现的问题( OpenCV-Python 密集筛选)的后续问题。
使用建议的代码进行密集筛选
我有以下问题:
- 我可以访问 python 中的任何 DenseFeatureDetector 属性吗?设置或至少阅读?
- c++s FeatureDetector::create 变成 pythons FeatureDetector_create 背后的逻辑是什么?根据文档( http://docs.opencv.org/modules/features2d/doc/common_interfaces_of_feature_detectors.html ) ,我怎么知道?
- 对 VLFeat 库的 python 包装器有什么建议吗?pyvlfeat 仍然是要走的路吗(我试图设置 pyvlfeat 但它没有在我的 Mac 上编译)?
谢谢!
c++ - 带有 VLFeat 的 Qt Creator
所以我正在尝试将 C++ VLFeat 库与 Qt 一起使用。我尝试在 make 参数中添加以下指令: -IC:/vlfeat-0.9.20 -LC:/vlfeat-0.9.20/bin/win64 -lvl -lm (我在 Google 的某个地方找到了它......)出现以下错误消息:不支持符号链接:禁用 -L
我还尝试将项目的 .pro 文件中的库和 dll 的路径添加到变量 LIBS,但该库仍未链接到 Qt。
有谁知道如何解决这个问题?