50字范文,内容丰富有趣,生活中的好帮手!
50字范文 > matlab怎么提取特征 matlab – 了解提取特征的编码

matlab怎么提取特征 matlab – 了解提取特征的编码

时间:2022-02-26 04:02:04

相关推荐

matlab怎么提取特征 matlab – 了解提取特征的编码

我关注的编码是fisher编码,因为我已经证明我的工作效果最好.所以我想在我提取的(SIFT)功能上测试Fisher编码,并测试系统的性能,无论是否编码.

而不是重新开始我发现vl_feat有一个用于fisher编码的内置库,他们有一个教程,以及链接here

现在我已经完成了所需的大部分工作,但实际上编码的内容让我很困惑,例如教程清楚地表明使用GMM获得的参数执行Fisher编码,例如[均值,协方差,先验]和SIFT根据教程,GMM中将使用提取的特征:

The Fisher encoding uses GMM to construct a visual word dictionary. To

exemplify constructing a GMM, consider a number of 2 dimensional data

points. In practice, these points would be a collection of SIFT or

other local image features.

numFeatures = 5000 ;

dimension = 2 ;

data = rand(dimension,numFeatures) ;

numClusters = 30 ;

[means, covariances, priors] = vl_gmm(data, numClusters);

一旦我执行了这一步,我将编码另一个数据集?这让我很困惑.我已经使用我提取的SIFT功能生成GMM的参数.

Next, we create another random set of vectors, which should be encoded

using the Fisher Vector representation and the GMM just obtained:

encoding = vl_fisher(datatoBeEncoded, means, covariances, priors);

所以这里编码是最终结果,但它编码了什么?我想要从我的图像中提取的SIFT功能进行编码,但是如果我按照GMM中使用的教程进行编码.如果是这种情况那么什么是datatoBeEncoded?我是否再次使用SIFT专长?

谢谢

更新:

@Shai

谢谢,但我相信我一定做错了.我不太明白你的意思是“将图像与自己比较”.我有4个班,每班1000个图像.所以我使用了第1类中的前600个图像来学习gmm参数,然后使用这些参数来编码fisher矢量

numClusters = 128 ;

[means, covariances, priors] = vl_gmm(data, numClusters);

因此,每个均值,协方差大小为128 x 128,大小为1 x 128

现在,当我使用这些函数来对400幅图像上的fisher矢量进行编码时

encoding = vl_fisher(datatoBeEncoded, means, covariances, priors);

编码的大小非常不同,大小为12000 x 1.这些无法与生成的模型进行比较.

我已经有一个系统正在处理数据集的非编码版本,它运行良好,但我想看看编码将如何产生影响,理论上应该改进结果.

如果需要,我可以在这里添加代码,但它适用于UBM-GMM,我感到困惑的原因是因为你提到的训练方法是我用于UBM的.

如果我只编码测试图像,由于尺寸不匹配,我不能在分类器中使用它们.

也许我没有正确地选择这个或者犯了一些愚蠢的错误,是否有可能得到一个简单的例子,我可以通过它来理解工作.

非常感谢

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。