1

我正在做一个学校项目,在许多任务之间,我需要按照本文中所写的内容对 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 向量以使其更适合以下二值化吗?

在此先感谢您的时间!

4

1 回答 1

1

这个问题有两种可能的解决方案:

  1. 您将手放在开源库代码上并使其返回您需要的内容
  2. 您实现自己的方式来二值化 Fisher 向量

我最终在 Matlab 中进行了第二步,而不是把我的手放在 C 库上。请记住,这篇文章在计算对数域中的 GMM 时非常有用。完成项目后,我将立即将我的实现作为开源发布。

于 2015-05-09T08:22:49.587 回答