0

我正在阅读这篇特别的论文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个维度)

你怎么看?干杯

4

1 回答 1

1

在我看来,他们先做 SIFT,然后做 PCA。文章在第 2.1 节“本地描述符在所有实验中都固定为 SIFT 描述符......”中指出

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

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

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

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

于 2015-02-05T18:16:38.557 回答