问题标签 [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.
multicore - 使用 VLfeat 的 vl_kdforest_query_with_array 时出现问题
我正在尝试使用 VlFeat 的 vl_kd_forest_query 和 vl_kdforest_query_with_array。文档很差。它所说的只是 vl_kdforest_query_with_array “可以”利用多个核心来运行。有谁知道这个功能是否已经使用了多个核心,或者有没有办法利用它?谢谢!
(我知道一种选择是通过代码,但只是想知道是否有人已经拥有此信息。)
binary - VLfeat 二进制分类
训练: [w, b] = vl_svmtrain(feature_matrix.FeatureVector, label_vector.labelsMatrix, 0.1) ;
分类:
[~,~,~,scores] = vl_svmtrain(feature_matrix.FeatureVector_temp, labels, 0, 'model', ww, 'bias', bb, 'solver', 'none') ;
我在训练时给出了标签 -1 和 1。当我使用模型进行分类时,它返回的分数小于 -1 也大于 1。如何使用这些分数进行二元分类?分数实际上意味着什么?
matlab - 使用 vl_gmm 时出错 - 尝试将脚本作为函数执行
您好,我想将 Fisher Vector 用于我的 SIFT 描述符。我尝试使用 VL_FEAT 中的函数。我在 MATLAB 中添加了目录并运行 vl_startup。它运行成功但是当我尝试这个例子时
它给了我这个错误:
任何人都可以帮助我如何解决这个问题?
matlab - SVM 预测单元格中的数据而不是预期矩阵
对于我正在使用的 svm 训练和预测vl_svmtrain
,可以在此处找到其文档:http ://www.vlfeat.org/matlab/vl_svmtrain.html
[WB] = VL_SVMTRAIN(X, Y, LAMBDA) 从数据向量 X 和标签 Y 训练一个线性支持向量机 (SVM)。X 是一个 D×N 矩阵,每个示例一列和 D 个特征维度(SINGLE或双)。Y 是具有 N 个元素的 DOUBLE 向量,每个训练点带有二进制(-1 或 +1)标签。
根据文档,数据X
必须在 D × N 矩阵中,每列一个样本。
问题是我的数据根本没有以这种方式排列,即使我愿意,我也不认为我可以这样排列。我的每个图像都由一个 size 的特征矩阵表示512 * 257
,它们存储在一个单元格中。同样,每个测试图像也具有相同的大小。
因此,为了简化起见,我假设我只有 3 个类,每个类都由一个大小模型表示,512 * 257
并且我有数千个测试,我必须与每个模型进行比较,更像是一个对所有的方法。但它是我遇到困难的数据安排。
是否可以将数据以单元格格式而不是矩阵格式呈现给 SVM?
更新:
我提到的单元阵列由 28 个模型组成。所以我一共有 28 个类,每个类都由一个 size 数组表示512 * 257
。写models(1)
礼物ans = [512x257 double]
和写作models{1}
会产生512*257
双重矩阵。
这就是我用来训练 SVM 的方法,同样,每个测试的大小也相同,并且排列方式相同。
我如何为每个模型得到这个矩阵?我从每个类/模型的 100 个图像中提取了 RootSIFT 特征。然后我将这些特征呈现给一个高斯混合模型脚本,并将集群的数量设置为 512。这给了我 512 个集群的均值、协方差和权重。然后我将它们连接起来使用models{i} = [gmm_models{i}.w(:) gmm_models{i}.mu' gmm_models{i}.sigma'];
测试方面,从 5 张图像中提取 RootSIFT 特征,然后对它们进行与模型相同的处理,得到相同大小的级联矩阵。所以很自然地,每个模型都有数百个测试矩阵。
我希望这比以前更清楚了。
c++ - 如何使用 Visual c++ 编译器在 MATLAB 中编译 vlfeat 和 mexopencv 库?
我正在做一个计算机视觉项目,我需要使用vlfeat
和mexopencv
库,我正在使用 MATLAB R2008a,我无法更改 MATLAB 编译器来编译和设置库。
我已经安装了 Microsoft Visual C++ Express,但我不知道如何使用 MATLAB 中的 Visual C++ 编译器编译库。
c++ - 函数中 void const * 参数的用途
我正在尝试使用 VLFeat 中的库函数,该函数要求数据为 const void *。我真的不明白如何创建数据然后将其传入。
数据论点是让我感到震惊的论点。我尝试构建一个随机数据矩阵来测试kmeans 聚类函数,但我不知道如何使用这些数据。换句话说,这个函数需要这个参数。但要使其有用,我必须了解如何投射/创建/加载数据以使其工作。这意味着,我需要了解const void *
参数中类型的目的。
任何帮助将不胜感激。
注意:我确实理解 const 的含义,但是,例如,我不知道如何迭代地构建 const 数据(即用双 for 循环填充矩阵)
谢谢!
matlab - vlfeat-0.9.19/toolbox/mex/mexa64/libvl.so:未定义符号:GOMP_parallel
我已经在 linux (archlinux) 上编译了 vlfeat,并通过以下命令为 matlab 制作 mex
在 VLFEATROOT 目录中。输出看起来不错,没有报告错误。顺便说一句,我使用 gcc4.7 来编译上面的东西。
我在我的 matlab 中执行非常简单的代码:
matlab 报告以下红线:
我对openmp不太了解,但似乎与此有关。我注意到在 vlfeat 的 makefile 中有一个关闭 openmp 的选项:
我将其设置为“是”,编译并运行简单代码。上面的一切现在都可以正常执行了。
但是我想知道如果我将选项保留为否,会出现什么问题。makefile 评论说:
我在google上简单搜索了一些openmp知识,似乎我所有的openmp或gomp都安装得很好。见下文: ldconfig -p | grep gomp 结果是:
在此先感谢您的帮助!
c++ - VLFeat kmeans C API 解释
我正在尝试在 C 中使用 VLFeat 的 kmeans 实现,但我很难理解它是如何工作的。
注意:我在 C++ 程序中使用 C API,所以我在这里发布的任何代码都是 C++。此外,我正在使用 Eigean 头库,所以这就是那些 Matrix 数据类型的来源。
从示例和 API 中不清楚的事情是:
- 数据必须采用什么格式?kmeans 库函数似乎需要一个一维数组,可以从矩阵的支持中获取。但是,这个矩阵需要是列优先还是行优先?也就是说,函数如何知道区分数据的维度和不同的数据向量?
- 我如何实际访问集群中心信息?我运行了一个测试,声明我想要 5 个集群,但是使用上面链接中的示例代码,我只返回 1。
代码:
示例输出:centers = 0.0376879(标量)
我如何获得所有中心?我尝试使用数组来存储中心,但它不接受该类型。
我还尝试了以下方法,假设我可能只是错误地访问了中心信息:
但是对于索引 0-4(给定 5 个聚类中心),我应该只有非零值。我实际上预计会为更高的指数抛出异常。如果这是正确的方法,有人可以向我解释这些其他值(索引 5-8)来自什么吗?
我敢肯定还有其他令人困惑的部分,但我什至还没有解决它们,因为我一直停留在这两个非常重要的部分上(我的意思是如果你不能正确集群开始,什么是 kmeans)。
预先感谢您的帮助!
python - 为 vlfeat 安装 python 包装器
在过去的 5 个小时里,我一直在尝试为 VlFeat 安装 python 包装器,它总是以:
正如其他线程中所建议的,我更改了设置文件以要求它使用 python 2.7 boost 库。我系统上的python版本是2.7.6。这就是我得到 -lboost_python-mt-py27 而不是 -lboost_python-mt-py26 的原因
此外,我重新安装了 boost-python-dev。然而,这个问题并没有消失。我已经完全没有想法了,不知道还能做什么。
[编辑] 当我这样做时: ldconfig -p |grep libboost
我得到:
因此,它寻找的“mt”版本似乎不存在。我在我的 linux mint 系统上看不到任何安装候选者。
[编辑 2]:我通过链接到标准 boost 库使其工作,但想知道如何让它与多线程版本一起工作!
c++ - VlFeat kdtree 设置和查询
我已经设法让 VlFeat 的 SIFT 实现工作,我想尝试匹配两组图像描述符。
SIFT 的特征向量是 128 个元素的浮点数组,我将描述符列表存储在std::vector
s 中,如下面的片段所示:
据我所知,这应该可行,但我所得到的只是距离nan
。描述符数组结帐的长度,因此似乎确实有数据进入树。我已经绘制了关键点,它们看起来也很合理,因此数据相当合理。
我错过了什么?
这里的文档很少(API 链接):http ://www.vlfeat.org/api/kdtree.html