2015-02-05 76 views
0

我正在阅读这篇特别的论文http://www.robots.ox.ac.uk/~vgg/publications/2011/Chatfield11/chatfield11.pdf,我发现Fisher矢量与GMM词汇的方法非常有趣,我想自己测试一下。PCA在筛分和费舍尔矢量

但是,对于我来说,他们如何将PCA维度降低应用于数据是完全不清楚的。我的意思是,他们是否计算特征空间,一旦计算出来,他们会对其执行PCA?或者他们只是在计算SIFT之后在每个图像上执行PCA,然后创建特征空间?

这是否应该为两个训练测试集完成?对我来说,这是一个'明显是'的答案,但不清楚。

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

编辑1;

简单的例子:

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

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

reduced_test_img = test_img * coef;(然后选择第80个尺寸reduced_test_img的)

你觉得呢?干杯

回答

1

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

也是在引言部分“以下三个步骤:局部图像特征(i)提取 (例如,SIFT描述符),(ii)图像描述符中的局部特征的编码(例如,量化的局部特征的直方图),以及(iii)分类...最近几位作者已经集中于改善第二部分“所以在我看来,维度降低发生在SIFT之后,并且论文只是谈论几种不同的方法来做这件事,并且每个人的表现都不同。我也猜测(如你所做的那样),你将不得不在两组图像上运行它。否则,你会使用两种不同的度量来对图像进行分类,就像比较苹果和橘子一样。将缩小的尺寸表示与完整的表示进行比较(即使是相同的确切图像)也会显示一些变化。事实上,这是PCA的整个前提,您为了计算效率放弃了一些较小的特性(通常)。与PCA或降维算法真正的问题是我多少信息可以放弃,仍然可靠的分类/段不同的数据集

而且作为最后一点,你就必须把两个图像以同样的方式,因为您的最终目标是使用Fisher特征向量进行分类,如测试训练。现在想象你决定训练图像不要PCA和测试图像。现在我给你一些图片X,你会用它做什么?在你分类之前,你怎么能把一套图像与另一套图像区别开来?在两组上使用相同的技术意味着你会处理我的图像X,然后决定把它放在哪里。

无论如何,我希望有所帮助,而不是咆哮般的。好运:-)