【问题标题】:PCA on Sift desciptors and Fisher Vectors筛选描述符和 Fisher 向量上的 PCA
【发布时间】:2015-02-05 17:00:00
【问题描述】:

我正在阅读这篇特别的论文 http://www.robots.ox.ac.uk/~vgg/publications/2011/Chatfield11/chatfield11.pdf,我发现带有 GMM 词汇表的 Fisher Vector 方法非常有趣,我想自己测试一下。

但是,完全不清楚(对我而言)他们如何对数据应用 PCA 降维。我的意思是,他们是否计算了特征空间,一旦计算出来,他们会对其执行 PCA 吗?还是他们只是在计算 SIFT 之后对每张图像执行 PCA,然后创建特征空间?

这是否应该对两个训练测试集都进行?对我来说,这是一个“显然是”的答案,但还不清楚。

我正在考虑从训练集创建特征空间,然后在其上运行 PCA。然后,我可以使用训练集中的 PCA 系数来减少每个图像的筛选描述符,该描述符将被编码为 Fisher Vector 以供以后分类,无论是测试图像还是训练图像。

编辑 1;

简单的例子:

[coef , reduced_feat_space]= pca(Feat_Space','NumComponents', 80);

然后(对于测试和训练图像)

reduced_test_img = test_img * coef;(然后选择reduce_test_img的前80个维度)

你怎么看?干杯

【问题讨论】:

    标签: matlab computer-vision feature-detection pca mixture-model


    【解决方案1】:

    在我看来,他们就像是先做 SIFT,然后再做 PCA。文章在第 2.1 节 “在所有实验中将局部描述符固定为 SIFT 描述符......”

    在介绍部分中也有以下三个步骤:(i)提取 局部图像特征(例如,SIFT 描述符),(ii)图像描述符中局部特征的编码(例如,量化局部特征的直方图),以及(iii)分类......最近有几位作者专注于改进第二个组件” 所以在我看来,降维发生在 SIFT 之后,本文只是在讨论几种不同的方法,以及每种方法的性能

    我也猜想(就像你做的那样)你必须在两组图像上运行它。否则,您将使用两种不同的指标对图像进行分类,这就像比较苹果和橙子一样。将缩减的维度表示与完整的表示进行比较(即使对于相同的精确图像)将显示出一些变化。事实上,这就是 PCA 的全部前提,为了计算效率,您(通常)放弃了一些较小的特征。 PCA 或任何降维算法的真正问题是我可以放弃多少信息并仍然可靠地分类/分割不同的数据集

    最后一点,您必须以相同的方式处理这两个图像,因为您的最终目标是使用 Fisher 特征向量作为 testtraining 进行分类时间>。现在想象一下,你决定训练图像不得到 PCA,而测试图像得到。现在我给你一些图像 X,你会用它做什么?在对一组图像进行分类之前,如何区别对待另一组图像?在两组上使用相同的技术意味着您将处理我的图像 X,然后决定将它放在哪里。

    无论如何,我希望这有所帮助,而不是像咆哮一样。祝你好运:-)

    【讨论】:

      猜你喜欢
      • 2013-08-07
      • 2018-03-25
      • 2015-02-07
      • 2020-08-29
      • 2014-03-10
      • 2013-05-27
      • 1970-01-01
      • 2016-10-26
      • 1970-01-01
      相关资源
      最近更新 更多