Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv PCA如何用于SIFT或VLAD向量?_Opencv_Matrix_Pca_Sift_Svd - Fatal编程技术网

Opencv PCA如何用于SIFT或VLAD向量?

Opencv PCA如何用于SIFT或VLAD向量?,opencv,matrix,pca,sift,svd,Opencv,Matrix,Pca,Sift,Svd,我读了很多关于和(FV)的论文。特别是,在论文中(基本上是每篇讨论该主题的论文),作者使用PCA来减少SIFT、VLAD和FV维度 然而,据我所知,主成分分析涉及到计算协方差矩阵的特征值,我们只能计算平方矩阵的特征值 现在,假设我们要计算1M SIFT向量的PCA。我们如何在1Mx128矩阵上计算PCA 我的理解是,SVD是一种替代方案,但我很惊讶,因为在任何报纸上都没有人谈论过PCA!我错过什么了吗 VLAD和Fisher向量的实现有效地倾向于使用PCA来降低图像块的维数。大多数论文报告的典型

我读了很多关于和(FV)的论文。特别是,在论文中(基本上是每篇讨论该主题的论文),作者使用PCA来减少SIFT、VLAD和FV维度

然而,据我所知,主成分分析涉及到计算协方差矩阵的特征值,我们只能计算平方矩阵的特征值

现在,假设我们要计算1M SIFT向量的PCA。我们如何在1Mx128矩阵上计算PCA


我的理解是,SVD是一种替代方案,但我很惊讶,因为在任何报纸上都没有人谈论过PCA!我错过什么了吗

VLAD和Fisher向量的实现有效地倾向于使用PCA来降低图像块的维数。大多数论文报告的典型值为DIM=64,并且使用1M补丁,这使得直接应用SVD变得非常困难


我已经看到了用于SIFT的PCA实现,它使用了此处报告的迭代算法:

谢谢你的回答。你能给我建议一个有效的C++ PCA实现大约500字吗?在我以前实验室使用的SIFT PCA的实现是很不幸的。Fisher向量的两个最流行的实现是:1)INRIA one()和2)Oxford的VLFeat one()。在这两个版本中,可能也有对VLAD的引用。也许是一个调查他们如何处理PCA的好地方。