使用 VLFeat 进行密集筛选

Posted

技术标签:

【中文标题】使用 VLFeat 进行密集筛选【英文标题】:Dense sift using VLFeat 【发布时间】:2014-01-16 13:08:57 【问题描述】:

我无法理解 http://www.vlfeat.org/matlab/vl_dsift.html 中显示的 vlfeat 中的密集筛选文档。他们提到了bin size 参数用于像素处的网格宽度,并提到了step 参数用于垂直和水平位移。

我使用以下代码测试这些参数

[f, d] = vl_dsift(single(image), 'size', 16 , 'step' , 5 ) ;

我的图像是 50X50 矩阵。我希望关键帧从 (1,1) 开始移动到 (1,6) #displacement of 5 水平等等。

但我得到的结果在 (25,25) 点只有 1 个筛选描述符。

有谁知道这些参数的实际含义以及我是否正确应用它们?有没有办法在上述模式中应用它(从左上角开始,除了手动获取位置之外,步长的垂直和水平位移)

【问题讨论】:

【参考方案1】:

他们写了

提取描述符的比例由选项控制 SIZE,即空间 bin 的像素宽度(回想一下 SIFT 描述符是具有 4 x 4 个 bin 的空间直方图)。

因此,它计算大小为 4*16 = 64 x 64 像素的图像正方形部分的 SIFT。您的整个图像小于计算所需的区域。我想知道,为什么你会得到那个。 此外,即使它足够大,也无法计算点 (1,1) 的 SIFT,因为只定义了补丁的东南部分,其他部分在图像之外。

【讨论】:

以上是关于使用 VLFeat 进行密集筛选的主要内容,如果未能解决你的问题,请参考以下文章

VLFeat:vl_kmeans 中某些簇的 ValueError

记录一下vlfeat视觉库配置

在 java 中使用 VLfeat 库编译 Matlab 代码

如何在 Octave 上设置 VLFEAT?

vlfeat说明以及matlab配置vlfeat失败的解决方式

使用 vlfeat 时是不是必须显式释放内存?